packages feed

amazonka-maciev2 (empty) → 2.0

raw patch · 441 files changed

+47837/−0 lines, 441 filesdep +amazonka-coredep +amazonka-maciev2dep +amazonka-test

Dependencies added: amazonka-core, amazonka-maciev2, 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 Macie 2 SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2020-01-01@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-maciev2)+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.MacieV2](http://hackage.haskell.org/package/amazonka-maciev2/docs/Amazonka-MacieV2.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-maciev2` 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-maciev2.cabal view
@@ -0,0 +1,354 @@+cabal-version:      2.2+name:               amazonka-maciev2+version:            2.0+synopsis:           Amazon Macie 2 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 @2020-01-01@ 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.MacieV2.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.MacieV2" 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-maciev2++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.MacieV2+    Amazonka.MacieV2.AcceptInvitation+    Amazonka.MacieV2.BatchGetCustomDataIdentifiers+    Amazonka.MacieV2.CreateAllowList+    Amazonka.MacieV2.CreateClassificationJob+    Amazonka.MacieV2.CreateCustomDataIdentifier+    Amazonka.MacieV2.CreateFindingsFilter+    Amazonka.MacieV2.CreateInvitations+    Amazonka.MacieV2.CreateMember+    Amazonka.MacieV2.CreateSampleFindings+    Amazonka.MacieV2.DeclineInvitations+    Amazonka.MacieV2.DeleteAllowList+    Amazonka.MacieV2.DeleteCustomDataIdentifier+    Amazonka.MacieV2.DeleteFindingsFilter+    Amazonka.MacieV2.DeleteInvitations+    Amazonka.MacieV2.DeleteMember+    Amazonka.MacieV2.DescribeBuckets+    Amazonka.MacieV2.DescribeClassificationJob+    Amazonka.MacieV2.DescribeOrganizationConfiguration+    Amazonka.MacieV2.DisableMacie+    Amazonka.MacieV2.DisableOrganizationAdminAccount+    Amazonka.MacieV2.DisassociateFromAdministratorAccount+    Amazonka.MacieV2.DisassociateFromMasterAccount+    Amazonka.MacieV2.DisassociateMember+    Amazonka.MacieV2.EnableMacie+    Amazonka.MacieV2.EnableOrganizationAdminAccount+    Amazonka.MacieV2.GetAdministratorAccount+    Amazonka.MacieV2.GetAllowList+    Amazonka.MacieV2.GetAutomatedDiscoveryConfiguration+    Amazonka.MacieV2.GetBucketStatistics+    Amazonka.MacieV2.GetClassificationExportConfiguration+    Amazonka.MacieV2.GetClassificationScope+    Amazonka.MacieV2.GetCustomDataIdentifier+    Amazonka.MacieV2.GetFindings+    Amazonka.MacieV2.GetFindingsFilter+    Amazonka.MacieV2.GetFindingsPublicationConfiguration+    Amazonka.MacieV2.GetFindingStatistics+    Amazonka.MacieV2.GetInvitationsCount+    Amazonka.MacieV2.GetMacieSession+    Amazonka.MacieV2.GetMasterAccount+    Amazonka.MacieV2.GetMember+    Amazonka.MacieV2.GetResourceProfile+    Amazonka.MacieV2.GetRevealConfiguration+    Amazonka.MacieV2.GetSensitiveDataOccurrences+    Amazonka.MacieV2.GetSensitiveDataOccurrencesAvailability+    Amazonka.MacieV2.GetSensitivityInspectionTemplate+    Amazonka.MacieV2.GetUsageStatistics+    Amazonka.MacieV2.GetUsageTotals+    Amazonka.MacieV2.Lens+    Amazonka.MacieV2.ListAllowLists+    Amazonka.MacieV2.ListClassificationJobs+    Amazonka.MacieV2.ListClassificationScopes+    Amazonka.MacieV2.ListCustomDataIdentifiers+    Amazonka.MacieV2.ListFindings+    Amazonka.MacieV2.ListFindingsFilters+    Amazonka.MacieV2.ListInvitations+    Amazonka.MacieV2.ListManagedDataIdentifiers+    Amazonka.MacieV2.ListMembers+    Amazonka.MacieV2.ListOrganizationAdminAccounts+    Amazonka.MacieV2.ListResourceProfileArtifacts+    Amazonka.MacieV2.ListResourceProfileDetections+    Amazonka.MacieV2.ListSensitivityInspectionTemplates+    Amazonka.MacieV2.ListTagsForResource+    Amazonka.MacieV2.PutClassificationExportConfiguration+    Amazonka.MacieV2.PutFindingsPublicationConfiguration+    Amazonka.MacieV2.SearchResources+    Amazonka.MacieV2.TagResource+    Amazonka.MacieV2.TestCustomDataIdentifier+    Amazonka.MacieV2.Types+    Amazonka.MacieV2.Types.AccessControlList+    Amazonka.MacieV2.Types.AccountDetail+    Amazonka.MacieV2.Types.AccountLevelPermissions+    Amazonka.MacieV2.Types.AdminAccount+    Amazonka.MacieV2.Types.AdminStatus+    Amazonka.MacieV2.Types.AllowListCriteria+    Amazonka.MacieV2.Types.AllowListStatus+    Amazonka.MacieV2.Types.AllowListStatusCode+    Amazonka.MacieV2.Types.AllowListSummary+    Amazonka.MacieV2.Types.AllowsUnencryptedObjectUploads+    Amazonka.MacieV2.Types.ApiCallDetails+    Amazonka.MacieV2.Types.AssumedRole+    Amazonka.MacieV2.Types.AutomatedDiscoveryStatus+    Amazonka.MacieV2.Types.AvailabilityCode+    Amazonka.MacieV2.Types.AwsAccount+    Amazonka.MacieV2.Types.AwsService+    Amazonka.MacieV2.Types.BatchGetCustomDataIdentifierSummary+    Amazonka.MacieV2.Types.BlockPublicAccess+    Amazonka.MacieV2.Types.BucketCountByEffectivePermission+    Amazonka.MacieV2.Types.BucketCountByEncryptionType+    Amazonka.MacieV2.Types.BucketCountBySharedAccessType+    Amazonka.MacieV2.Types.BucketCountPolicyAllowsUnencryptedObjectUploads+    Amazonka.MacieV2.Types.BucketCriteriaAdditionalProperties+    Amazonka.MacieV2.Types.BucketLevelPermissions+    Amazonka.MacieV2.Types.BucketMetadata+    Amazonka.MacieV2.Types.BucketMetadataErrorCode+    Amazonka.MacieV2.Types.BucketPermissionConfiguration+    Amazonka.MacieV2.Types.BucketPolicy+    Amazonka.MacieV2.Types.BucketPublicAccess+    Amazonka.MacieV2.Types.BucketServerSideEncryption+    Amazonka.MacieV2.Types.BucketSortCriteria+    Amazonka.MacieV2.Types.BucketStatisticsBySensitivity+    Amazonka.MacieV2.Types.Cell+    Amazonka.MacieV2.Types.ClassificationDetails+    Amazonka.MacieV2.Types.ClassificationExportConfiguration+    Amazonka.MacieV2.Types.ClassificationResult+    Amazonka.MacieV2.Types.ClassificationResultStatus+    Amazonka.MacieV2.Types.ClassificationScopeSummary+    Amazonka.MacieV2.Types.ClassificationScopeUpdateOperation+    Amazonka.MacieV2.Types.CriteriaBlockForJob+    Amazonka.MacieV2.Types.CriteriaForJob+    Amazonka.MacieV2.Types.CriterionAdditionalProperties+    Amazonka.MacieV2.Types.Currency+    Amazonka.MacieV2.Types.CustomDataIdentifiers+    Amazonka.MacieV2.Types.CustomDataIdentifierSummary+    Amazonka.MacieV2.Types.CustomDetection+    Amazonka.MacieV2.Types.DailySchedule+    Amazonka.MacieV2.Types.DataIdentifierSeverity+    Amazonka.MacieV2.Types.DataIdentifierType+    Amazonka.MacieV2.Types.DayOfWeek+    Amazonka.MacieV2.Types.DefaultDetection+    Amazonka.MacieV2.Types.DetectedDataDetails+    Amazonka.MacieV2.Types.Detection+    Amazonka.MacieV2.Types.DomainDetails+    Amazonka.MacieV2.Types.EffectivePermission+    Amazonka.MacieV2.Types.EncryptionType+    Amazonka.MacieV2.Types.ErrorCode+    Amazonka.MacieV2.Types.FederatedUser+    Amazonka.MacieV2.Types.Finding+    Amazonka.MacieV2.Types.FindingAction+    Amazonka.MacieV2.Types.FindingActionType+    Amazonka.MacieV2.Types.FindingActor+    Amazonka.MacieV2.Types.FindingCategory+    Amazonka.MacieV2.Types.FindingCriteria+    Amazonka.MacieV2.Types.FindingPublishingFrequency+    Amazonka.MacieV2.Types.FindingsFilterAction+    Amazonka.MacieV2.Types.FindingsFilterListItem+    Amazonka.MacieV2.Types.FindingStatisticsSortAttributeName+    Amazonka.MacieV2.Types.FindingStatisticsSortCriteria+    Amazonka.MacieV2.Types.FindingType+    Amazonka.MacieV2.Types.GroupBy+    Amazonka.MacieV2.Types.GroupCount+    Amazonka.MacieV2.Types.IamUser+    Amazonka.MacieV2.Types.Invitation+    Amazonka.MacieV2.Types.IpAddressDetails+    Amazonka.MacieV2.Types.IpCity+    Amazonka.MacieV2.Types.IpCountry+    Amazonka.MacieV2.Types.IpGeoLocation+    Amazonka.MacieV2.Types.IpOwner+    Amazonka.MacieV2.Types.IsDefinedInJob+    Amazonka.MacieV2.Types.IsMonitoredByJob+    Amazonka.MacieV2.Types.JobComparator+    Amazonka.MacieV2.Types.JobDetails+    Amazonka.MacieV2.Types.JobScheduleFrequency+    Amazonka.MacieV2.Types.JobScopeTerm+    Amazonka.MacieV2.Types.JobScopingBlock+    Amazonka.MacieV2.Types.JobStatus+    Amazonka.MacieV2.Types.JobSummary+    Amazonka.MacieV2.Types.JobType+    Amazonka.MacieV2.Types.KeyValuePair+    Amazonka.MacieV2.Types.LastRunErrorStatus+    Amazonka.MacieV2.Types.LastRunErrorStatusCode+    Amazonka.MacieV2.Types.ListJobsFilterCriteria+    Amazonka.MacieV2.Types.ListJobsFilterKey+    Amazonka.MacieV2.Types.ListJobsFilterTerm+    Amazonka.MacieV2.Types.ListJobsSortAttributeName+    Amazonka.MacieV2.Types.ListJobsSortCriteria+    Amazonka.MacieV2.Types.MacieStatus+    Amazonka.MacieV2.Types.ManagedDataIdentifierSelector+    Amazonka.MacieV2.Types.ManagedDataIdentifierSummary+    Amazonka.MacieV2.Types.MatchingBucket+    Amazonka.MacieV2.Types.MatchingResource+    Amazonka.MacieV2.Types.Member+    Amazonka.MacieV2.Types.MonthlySchedule+    Amazonka.MacieV2.Types.ObjectCountByEncryptionType+    Amazonka.MacieV2.Types.ObjectLevelStatistics+    Amazonka.MacieV2.Types.Occurrences+    Amazonka.MacieV2.Types.OrderBy+    Amazonka.MacieV2.Types.OriginType+    Amazonka.MacieV2.Types.Page+    Amazonka.MacieV2.Types.PolicyDetails+    Amazonka.MacieV2.Types.Range+    Amazonka.MacieV2.Types.Record+    Amazonka.MacieV2.Types.RelationshipStatus+    Amazonka.MacieV2.Types.ReplicationDetails+    Amazonka.MacieV2.Types.ResourceProfileArtifact+    Amazonka.MacieV2.Types.ResourcesAffected+    Amazonka.MacieV2.Types.ResourceStatistics+    Amazonka.MacieV2.Types.RevealConfiguration+    Amazonka.MacieV2.Types.RevealRequestStatus+    Amazonka.MacieV2.Types.RevealStatus+    Amazonka.MacieV2.Types.S3Bucket+    Amazonka.MacieV2.Types.S3BucketCriteriaForJob+    Amazonka.MacieV2.Types.S3BucketDefinitionForJob+    Amazonka.MacieV2.Types.S3BucketOwner+    Amazonka.MacieV2.Types.S3ClassificationScope+    Amazonka.MacieV2.Types.S3ClassificationScopeExclusion+    Amazonka.MacieV2.Types.S3ClassificationScopeExclusionUpdate+    Amazonka.MacieV2.Types.S3ClassificationScopeUpdate+    Amazonka.MacieV2.Types.S3Destination+    Amazonka.MacieV2.Types.S3JobDefinition+    Amazonka.MacieV2.Types.S3Object+    Amazonka.MacieV2.Types.S3WordsList+    Amazonka.MacieV2.Types.ScopeFilterKey+    Amazonka.MacieV2.Types.Scoping+    Amazonka.MacieV2.Types.SearchResourcesBucketCriteria+    Amazonka.MacieV2.Types.SearchResourcesComparator+    Amazonka.MacieV2.Types.SearchResourcesCriteria+    Amazonka.MacieV2.Types.SearchResourcesCriteriaBlock+    Amazonka.MacieV2.Types.SearchResourcesSimpleCriterion+    Amazonka.MacieV2.Types.SearchResourcesSimpleCriterionKey+    Amazonka.MacieV2.Types.SearchResourcesSortAttributeName+    Amazonka.MacieV2.Types.SearchResourcesSortCriteria+    Amazonka.MacieV2.Types.SearchResourcesTagCriterion+    Amazonka.MacieV2.Types.SearchResourcesTagCriterionPair+    Amazonka.MacieV2.Types.SecurityHubConfiguration+    Amazonka.MacieV2.Types.SensitiveDataItem+    Amazonka.MacieV2.Types.SensitiveDataItemCategory+    Amazonka.MacieV2.Types.SensitivityAggregations+    Amazonka.MacieV2.Types.SensitivityInspectionTemplateExcludes+    Amazonka.MacieV2.Types.SensitivityInspectionTemplateIncludes+    Amazonka.MacieV2.Types.SensitivityInspectionTemplatesEntry+    Amazonka.MacieV2.Types.ServerSideEncryption+    Amazonka.MacieV2.Types.ServiceLimit+    Amazonka.MacieV2.Types.SessionContext+    Amazonka.MacieV2.Types.SessionContextAttributes+    Amazonka.MacieV2.Types.SessionIssuer+    Amazonka.MacieV2.Types.Severity+    Amazonka.MacieV2.Types.SeverityDescription+    Amazonka.MacieV2.Types.SeverityLevel+    Amazonka.MacieV2.Types.SharedAccess+    Amazonka.MacieV2.Types.SimpleCriterionForJob+    Amazonka.MacieV2.Types.SimpleCriterionKeyForJob+    Amazonka.MacieV2.Types.SimpleScopeTerm+    Amazonka.MacieV2.Types.SortCriteria+    Amazonka.MacieV2.Types.Statistics+    Amazonka.MacieV2.Types.StorageClass+    Amazonka.MacieV2.Types.SuppressDataIdentifier+    Amazonka.MacieV2.Types.TagCriterionForJob+    Amazonka.MacieV2.Types.TagCriterionPairForJob+    Amazonka.MacieV2.Types.TagScopeTerm+    Amazonka.MacieV2.Types.TagTarget+    Amazonka.MacieV2.Types.TagValuePair+    Amazonka.MacieV2.Types.TimeRange+    Amazonka.MacieV2.Types.Type+    Amazonka.MacieV2.Types.UnavailabilityReasonCode+    Amazonka.MacieV2.Types.Unit+    Amazonka.MacieV2.Types.UnprocessedAccount+    Amazonka.MacieV2.Types.UsageByAccount+    Amazonka.MacieV2.Types.UsageRecord+    Amazonka.MacieV2.Types.UsageStatisticsFilter+    Amazonka.MacieV2.Types.UsageStatisticsFilterComparator+    Amazonka.MacieV2.Types.UsageStatisticsFilterKey+    Amazonka.MacieV2.Types.UsageStatisticsSortBy+    Amazonka.MacieV2.Types.UsageStatisticsSortKey+    Amazonka.MacieV2.Types.UsageTotal+    Amazonka.MacieV2.Types.UsageType+    Amazonka.MacieV2.Types.UserIdentity+    Amazonka.MacieV2.Types.UserIdentityRoot+    Amazonka.MacieV2.Types.UserIdentityType+    Amazonka.MacieV2.Types.UserPausedDetails+    Amazonka.MacieV2.Types.WeeklySchedule+    Amazonka.MacieV2.UntagResource+    Amazonka.MacieV2.UpdateAllowList+    Amazonka.MacieV2.UpdateAutomatedDiscoveryConfiguration+    Amazonka.MacieV2.UpdateClassificationJob+    Amazonka.MacieV2.UpdateClassificationScope+    Amazonka.MacieV2.UpdateFindingsFilter+    Amazonka.MacieV2.UpdateMacieSession+    Amazonka.MacieV2.UpdateMemberSession+    Amazonka.MacieV2.UpdateOrganizationConfiguration+    Amazonka.MacieV2.UpdateResourceProfile+    Amazonka.MacieV2.UpdateResourceProfileDetections+    Amazonka.MacieV2.UpdateRevealConfiguration+    Amazonka.MacieV2.UpdateSensitivityInspectionTemplate+    Amazonka.MacieV2.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-maciev2-test+  type:             exitcode-stdio-1.0+  default-language: Haskell2010+  hs-source-dirs:   test+  main-is:          Main.hs+  ghc-options:      -Wall -threaded++  -- This section is encoded by the template and any modules added by+  -- hand outside these namespaces will not correctly be added to the+  -- distribution package.+  other-modules:+    Test.Amazonka.Gen.MacieV2+    Test.Amazonka.MacieV2+    Test.Amazonka.MacieV2.Internal++  build-depends:+    , amazonka-core         >=2.0 && <2.1+    , amazonka-maciev2+    , amazonka-test         >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/AcceptInvitation.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/AcceptInvitationResponse.proto view
+ fixture/BatchGetCustomDataIdentifiers.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/BatchGetCustomDataIdentifiersResponse.proto view
+ fixture/CreateAllowList.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/CreateAllowListResponse.proto view
+ fixture/CreateClassificationJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/CreateClassificationJobResponse.proto view
+ fixture/CreateCustomDataIdentifier.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/CreateCustomDataIdentifierResponse.proto view
+ fixture/CreateFindingsFilter.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/CreateFindingsFilterResponse.proto view
+ fixture/CreateInvitations.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/CreateInvitationsResponse.proto view
+ fixture/CreateMember.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/CreateMemberResponse.proto view
+ fixture/CreateSampleFindings.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/CreateSampleFindingsResponse.proto view
+ fixture/DeclineInvitations.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/DeclineInvitationsResponse.proto view
+ fixture/DeleteAllowList.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/DeleteAllowListResponse.proto view
+ fixture/DeleteCustomDataIdentifier.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/DeleteCustomDataIdentifierResponse.proto view
+ fixture/DeleteFindingsFilter.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/DeleteFindingsFilterResponse.proto view
+ fixture/DeleteInvitations.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/DeleteInvitationsResponse.proto view
+ fixture/DeleteMember.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/DeleteMemberResponse.proto view
+ fixture/DescribeBuckets.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/DescribeBucketsResponse.proto view
+ fixture/DescribeClassificationJob.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/DescribeClassificationJobResponse.proto view
+ fixture/DescribeOrganizationConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/DescribeOrganizationConfigurationResponse.proto view
+ fixture/DisableMacie.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/DisableMacieResponse.proto view
+ fixture/DisableOrganizationAdminAccount.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/DisableOrganizationAdminAccountResponse.proto view
+ fixture/DisassociateFromAdministratorAccount.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/DisassociateFromAdministratorAccountResponse.proto view
+ fixture/DisassociateFromMasterAccount.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/DisassociateFromMasterAccountResponse.proto view
+ fixture/DisassociateMember.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/DisassociateMemberResponse.proto view
+ fixture/EnableMacie.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/EnableMacieResponse.proto view
+ fixture/EnableOrganizationAdminAccount.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/EnableOrganizationAdminAccountResponse.proto view
+ fixture/GetAdministratorAccount.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/GetAdministratorAccountResponse.proto view
+ fixture/GetAllowList.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/GetAllowListResponse.proto view
+ fixture/GetAutomatedDiscoveryConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/GetAutomatedDiscoveryConfigurationResponse.proto view
+ fixture/GetBucketStatistics.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/GetBucketStatisticsResponse.proto view
+ fixture/GetClassificationExportConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/GetClassificationExportConfigurationResponse.proto view
+ fixture/GetClassificationScope.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/GetClassificationScopeResponse.proto view
+ fixture/GetCustomDataIdentifier.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/GetCustomDataIdentifierResponse.proto view
+ fixture/GetFindingStatistics.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/GetFindingStatisticsResponse.proto view
+ fixture/GetFindings.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/GetFindingsFilter.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/GetFindingsFilterResponse.proto view
+ fixture/GetFindingsPublicationConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/GetFindingsPublicationConfigurationResponse.proto view
+ fixture/GetFindingsResponse.proto view
+ fixture/GetInvitationsCount.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/GetInvitationsCountResponse.proto view
+ fixture/GetMacieSession.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/GetMacieSessionResponse.proto view
+ fixture/GetMasterAccount.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/GetMasterAccountResponse.proto view
+ fixture/GetMember.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/GetMemberResponse.proto view
+ fixture/GetResourceProfile.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/GetResourceProfileResponse.proto view
+ fixture/GetRevealConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/GetRevealConfigurationResponse.proto view
+ fixture/GetSensitiveDataOccurrences.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/GetSensitiveDataOccurrencesAvailability.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/GetSensitiveDataOccurrencesAvailabilityResponse.proto view
+ fixture/GetSensitiveDataOccurrencesResponse.proto view
+ fixture/GetSensitivityInspectionTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/GetSensitivityInspectionTemplateResponse.proto view
+ fixture/GetUsageStatistics.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/GetUsageStatisticsResponse.proto view
+ fixture/GetUsageTotals.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/GetUsageTotalsResponse.proto view
+ fixture/ListAllowLists.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/ListAllowListsResponse.proto view
+ fixture/ListClassificationJobs.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/ListClassificationJobsResponse.proto view
+ fixture/ListClassificationScopes.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/ListClassificationScopesResponse.proto view
+ fixture/ListCustomDataIdentifiers.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/ListCustomDataIdentifiersResponse.proto view
+ fixture/ListFindings.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/ListFindingsFilters.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/ListFindingsFiltersResponse.proto view
+ fixture/ListFindingsResponse.proto view
+ fixture/ListInvitations.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/ListInvitationsResponse.proto view
+ fixture/ListManagedDataIdentifiers.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/ListManagedDataIdentifiersResponse.proto view
+ fixture/ListMembers.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/ListMembersResponse.proto view
+ fixture/ListOrganizationAdminAccounts.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/ListOrganizationAdminAccountsResponse.proto view
+ fixture/ListResourceProfileArtifacts.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/ListResourceProfileArtifactsResponse.proto view
+ fixture/ListResourceProfileDetections.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/ListResourceProfileDetectionsResponse.proto view
+ fixture/ListSensitivityInspectionTemplates.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/ListSensitivityInspectionTemplatesResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/PutClassificationExportConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/PutClassificationExportConfigurationResponse.proto view
+ fixture/PutFindingsPublicationConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/PutFindingsPublicationConfigurationResponse.proto view
+ fixture/SearchResources.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/SearchResourcesResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/TestCustomDataIdentifier.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/TestCustomDataIdentifierResponse.proto view
+ fixture/UntagResource.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/UpdateAllowList.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/UpdateAllowListResponse.proto view
+ fixture/UpdateAutomatedDiscoveryConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/UpdateAutomatedDiscoveryConfigurationResponse.proto view
+ fixture/UpdateClassificationJob.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/UpdateClassificationJobResponse.proto view
+ fixture/UpdateClassificationScope.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/UpdateClassificationScopeResponse.proto view
+ fixture/UpdateFindingsFilter.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/UpdateFindingsFilterResponse.proto view
+ fixture/UpdateMacieSession.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/UpdateMacieSessionResponse.proto view
+ fixture/UpdateMemberSession.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/UpdateMemberSessionResponse.proto view
+ fixture/UpdateOrganizationConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/UpdateOrganizationConfigurationResponse.proto view
+ fixture/UpdateResourceProfile.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/UpdateResourceProfileDetections.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/UpdateResourceProfileDetectionsResponse.proto view
+ fixture/UpdateResourceProfileResponse.proto view
+ fixture/UpdateRevealConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/UpdateRevealConfigurationResponse.proto view
+ fixture/UpdateSensitivityInspectionTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/macie2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  macie2.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/UpdateSensitivityInspectionTemplateResponse.proto view
+ gen/Amazonka/MacieV2.hs view
@@ -0,0 +1,1354 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.MacieV2+-- 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 @2020-01-01@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- Amazon Macie+module Amazonka.MacieV2+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** AccessDeniedException+    _AccessDeniedException,++    -- ** ConflictException+    _ConflictException,++    -- ** InternalServerException+    _InternalServerException,++    -- ** ResourceNotFoundException+    _ResourceNotFoundException,++    -- ** ServiceQuotaExceededException+    _ServiceQuotaExceededException,++    -- ** ThrottlingException+    _ThrottlingException,++    -- ** UnprocessableEntityException+    _UnprocessableEntityException,++    -- ** ValidationException+    _ValidationException,++    -- * Waiters+    -- $waiters++    -- ** FindingRevealed+    newFindingRevealed,++    -- * Operations+    -- $operations++    -- ** AcceptInvitation+    AcceptInvitation (AcceptInvitation'),+    newAcceptInvitation,+    AcceptInvitationResponse (AcceptInvitationResponse'),+    newAcceptInvitationResponse,++    -- ** BatchGetCustomDataIdentifiers+    BatchGetCustomDataIdentifiers (BatchGetCustomDataIdentifiers'),+    newBatchGetCustomDataIdentifiers,+    BatchGetCustomDataIdentifiersResponse (BatchGetCustomDataIdentifiersResponse'),+    newBatchGetCustomDataIdentifiersResponse,++    -- ** CreateAllowList+    CreateAllowList (CreateAllowList'),+    newCreateAllowList,+    CreateAllowListResponse (CreateAllowListResponse'),+    newCreateAllowListResponse,++    -- ** CreateClassificationJob+    CreateClassificationJob (CreateClassificationJob'),+    newCreateClassificationJob,+    CreateClassificationJobResponse (CreateClassificationJobResponse'),+    newCreateClassificationJobResponse,++    -- ** CreateCustomDataIdentifier+    CreateCustomDataIdentifier (CreateCustomDataIdentifier'),+    newCreateCustomDataIdentifier,+    CreateCustomDataIdentifierResponse (CreateCustomDataIdentifierResponse'),+    newCreateCustomDataIdentifierResponse,++    -- ** CreateFindingsFilter+    CreateFindingsFilter (CreateFindingsFilter'),+    newCreateFindingsFilter,+    CreateFindingsFilterResponse (CreateFindingsFilterResponse'),+    newCreateFindingsFilterResponse,++    -- ** CreateInvitations+    CreateInvitations (CreateInvitations'),+    newCreateInvitations,+    CreateInvitationsResponse (CreateInvitationsResponse'),+    newCreateInvitationsResponse,++    -- ** CreateMember+    CreateMember (CreateMember'),+    newCreateMember,+    CreateMemberResponse (CreateMemberResponse'),+    newCreateMemberResponse,++    -- ** CreateSampleFindings+    CreateSampleFindings (CreateSampleFindings'),+    newCreateSampleFindings,+    CreateSampleFindingsResponse (CreateSampleFindingsResponse'),+    newCreateSampleFindingsResponse,++    -- ** DeclineInvitations+    DeclineInvitations (DeclineInvitations'),+    newDeclineInvitations,+    DeclineInvitationsResponse (DeclineInvitationsResponse'),+    newDeclineInvitationsResponse,++    -- ** DeleteAllowList+    DeleteAllowList (DeleteAllowList'),+    newDeleteAllowList,+    DeleteAllowListResponse (DeleteAllowListResponse'),+    newDeleteAllowListResponse,++    -- ** DeleteCustomDataIdentifier+    DeleteCustomDataIdentifier (DeleteCustomDataIdentifier'),+    newDeleteCustomDataIdentifier,+    DeleteCustomDataIdentifierResponse (DeleteCustomDataIdentifierResponse'),+    newDeleteCustomDataIdentifierResponse,++    -- ** DeleteFindingsFilter+    DeleteFindingsFilter (DeleteFindingsFilter'),+    newDeleteFindingsFilter,+    DeleteFindingsFilterResponse (DeleteFindingsFilterResponse'),+    newDeleteFindingsFilterResponse,++    -- ** DeleteInvitations+    DeleteInvitations (DeleteInvitations'),+    newDeleteInvitations,+    DeleteInvitationsResponse (DeleteInvitationsResponse'),+    newDeleteInvitationsResponse,++    -- ** DeleteMember+    DeleteMember (DeleteMember'),+    newDeleteMember,+    DeleteMemberResponse (DeleteMemberResponse'),+    newDeleteMemberResponse,++    -- ** DescribeBuckets (Paginated)+    DescribeBuckets (DescribeBuckets'),+    newDescribeBuckets,+    DescribeBucketsResponse (DescribeBucketsResponse'),+    newDescribeBucketsResponse,++    -- ** DescribeClassificationJob+    DescribeClassificationJob (DescribeClassificationJob'),+    newDescribeClassificationJob,+    DescribeClassificationJobResponse (DescribeClassificationJobResponse'),+    newDescribeClassificationJobResponse,++    -- ** DescribeOrganizationConfiguration+    DescribeOrganizationConfiguration (DescribeOrganizationConfiguration'),+    newDescribeOrganizationConfiguration,+    DescribeOrganizationConfigurationResponse (DescribeOrganizationConfigurationResponse'),+    newDescribeOrganizationConfigurationResponse,++    -- ** DisableMacie+    DisableMacie (DisableMacie'),+    newDisableMacie,+    DisableMacieResponse (DisableMacieResponse'),+    newDisableMacieResponse,++    -- ** DisableOrganizationAdminAccount+    DisableOrganizationAdminAccount (DisableOrganizationAdminAccount'),+    newDisableOrganizationAdminAccount,+    DisableOrganizationAdminAccountResponse (DisableOrganizationAdminAccountResponse'),+    newDisableOrganizationAdminAccountResponse,++    -- ** DisassociateFromAdministratorAccount+    DisassociateFromAdministratorAccount (DisassociateFromAdministratorAccount'),+    newDisassociateFromAdministratorAccount,+    DisassociateFromAdministratorAccountResponse (DisassociateFromAdministratorAccountResponse'),+    newDisassociateFromAdministratorAccountResponse,++    -- ** DisassociateFromMasterAccount+    DisassociateFromMasterAccount (DisassociateFromMasterAccount'),+    newDisassociateFromMasterAccount,+    DisassociateFromMasterAccountResponse (DisassociateFromMasterAccountResponse'),+    newDisassociateFromMasterAccountResponse,++    -- ** DisassociateMember+    DisassociateMember (DisassociateMember'),+    newDisassociateMember,+    DisassociateMemberResponse (DisassociateMemberResponse'),+    newDisassociateMemberResponse,++    -- ** EnableMacie+    EnableMacie (EnableMacie'),+    newEnableMacie,+    EnableMacieResponse (EnableMacieResponse'),+    newEnableMacieResponse,++    -- ** EnableOrganizationAdminAccount+    EnableOrganizationAdminAccount (EnableOrganizationAdminAccount'),+    newEnableOrganizationAdminAccount,+    EnableOrganizationAdminAccountResponse (EnableOrganizationAdminAccountResponse'),+    newEnableOrganizationAdminAccountResponse,++    -- ** GetAdministratorAccount+    GetAdministratorAccount (GetAdministratorAccount'),+    newGetAdministratorAccount,+    GetAdministratorAccountResponse (GetAdministratorAccountResponse'),+    newGetAdministratorAccountResponse,++    -- ** GetAllowList+    GetAllowList (GetAllowList'),+    newGetAllowList,+    GetAllowListResponse (GetAllowListResponse'),+    newGetAllowListResponse,++    -- ** GetAutomatedDiscoveryConfiguration+    GetAutomatedDiscoveryConfiguration (GetAutomatedDiscoveryConfiguration'),+    newGetAutomatedDiscoveryConfiguration,+    GetAutomatedDiscoveryConfigurationResponse (GetAutomatedDiscoveryConfigurationResponse'),+    newGetAutomatedDiscoveryConfigurationResponse,++    -- ** GetBucketStatistics+    GetBucketStatistics (GetBucketStatistics'),+    newGetBucketStatistics,+    GetBucketStatisticsResponse (GetBucketStatisticsResponse'),+    newGetBucketStatisticsResponse,++    -- ** GetClassificationExportConfiguration+    GetClassificationExportConfiguration (GetClassificationExportConfiguration'),+    newGetClassificationExportConfiguration,+    GetClassificationExportConfigurationResponse (GetClassificationExportConfigurationResponse'),+    newGetClassificationExportConfigurationResponse,++    -- ** GetClassificationScope+    GetClassificationScope (GetClassificationScope'),+    newGetClassificationScope,+    GetClassificationScopeResponse (GetClassificationScopeResponse'),+    newGetClassificationScopeResponse,++    -- ** GetCustomDataIdentifier+    GetCustomDataIdentifier (GetCustomDataIdentifier'),+    newGetCustomDataIdentifier,+    GetCustomDataIdentifierResponse (GetCustomDataIdentifierResponse'),+    newGetCustomDataIdentifierResponse,++    -- ** GetFindingStatistics+    GetFindingStatistics (GetFindingStatistics'),+    newGetFindingStatistics,+    GetFindingStatisticsResponse (GetFindingStatisticsResponse'),+    newGetFindingStatisticsResponse,++    -- ** GetFindings+    GetFindings (GetFindings'),+    newGetFindings,+    GetFindingsResponse (GetFindingsResponse'),+    newGetFindingsResponse,++    -- ** GetFindingsFilter+    GetFindingsFilter (GetFindingsFilter'),+    newGetFindingsFilter,+    GetFindingsFilterResponse (GetFindingsFilterResponse'),+    newGetFindingsFilterResponse,++    -- ** GetFindingsPublicationConfiguration+    GetFindingsPublicationConfiguration (GetFindingsPublicationConfiguration'),+    newGetFindingsPublicationConfiguration,+    GetFindingsPublicationConfigurationResponse (GetFindingsPublicationConfigurationResponse'),+    newGetFindingsPublicationConfigurationResponse,++    -- ** GetInvitationsCount+    GetInvitationsCount (GetInvitationsCount'),+    newGetInvitationsCount,+    GetInvitationsCountResponse (GetInvitationsCountResponse'),+    newGetInvitationsCountResponse,++    -- ** GetMacieSession+    GetMacieSession (GetMacieSession'),+    newGetMacieSession,+    GetMacieSessionResponse (GetMacieSessionResponse'),+    newGetMacieSessionResponse,++    -- ** GetMasterAccount+    GetMasterAccount (GetMasterAccount'),+    newGetMasterAccount,+    GetMasterAccountResponse (GetMasterAccountResponse'),+    newGetMasterAccountResponse,++    -- ** GetMember+    GetMember (GetMember'),+    newGetMember,+    GetMemberResponse (GetMemberResponse'),+    newGetMemberResponse,++    -- ** GetResourceProfile+    GetResourceProfile (GetResourceProfile'),+    newGetResourceProfile,+    GetResourceProfileResponse (GetResourceProfileResponse'),+    newGetResourceProfileResponse,++    -- ** GetRevealConfiguration+    GetRevealConfiguration (GetRevealConfiguration'),+    newGetRevealConfiguration,+    GetRevealConfigurationResponse (GetRevealConfigurationResponse'),+    newGetRevealConfigurationResponse,++    -- ** GetSensitiveDataOccurrences+    GetSensitiveDataOccurrences (GetSensitiveDataOccurrences'),+    newGetSensitiveDataOccurrences,+    GetSensitiveDataOccurrencesResponse (GetSensitiveDataOccurrencesResponse'),+    newGetSensitiveDataOccurrencesResponse,++    -- ** GetSensitiveDataOccurrencesAvailability+    GetSensitiveDataOccurrencesAvailability (GetSensitiveDataOccurrencesAvailability'),+    newGetSensitiveDataOccurrencesAvailability,+    GetSensitiveDataOccurrencesAvailabilityResponse (GetSensitiveDataOccurrencesAvailabilityResponse'),+    newGetSensitiveDataOccurrencesAvailabilityResponse,++    -- ** GetSensitivityInspectionTemplate+    GetSensitivityInspectionTemplate (GetSensitivityInspectionTemplate'),+    newGetSensitivityInspectionTemplate,+    GetSensitivityInspectionTemplateResponse (GetSensitivityInspectionTemplateResponse'),+    newGetSensitivityInspectionTemplateResponse,++    -- ** GetUsageStatistics (Paginated)+    GetUsageStatistics (GetUsageStatistics'),+    newGetUsageStatistics,+    GetUsageStatisticsResponse (GetUsageStatisticsResponse'),+    newGetUsageStatisticsResponse,++    -- ** GetUsageTotals+    GetUsageTotals (GetUsageTotals'),+    newGetUsageTotals,+    GetUsageTotalsResponse (GetUsageTotalsResponse'),+    newGetUsageTotalsResponse,++    -- ** ListAllowLists (Paginated)+    ListAllowLists (ListAllowLists'),+    newListAllowLists,+    ListAllowListsResponse (ListAllowListsResponse'),+    newListAllowListsResponse,++    -- ** ListClassificationJobs (Paginated)+    ListClassificationJobs (ListClassificationJobs'),+    newListClassificationJobs,+    ListClassificationJobsResponse (ListClassificationJobsResponse'),+    newListClassificationJobsResponse,++    -- ** ListClassificationScopes (Paginated)+    ListClassificationScopes (ListClassificationScopes'),+    newListClassificationScopes,+    ListClassificationScopesResponse (ListClassificationScopesResponse'),+    newListClassificationScopesResponse,++    -- ** ListCustomDataIdentifiers (Paginated)+    ListCustomDataIdentifiers (ListCustomDataIdentifiers'),+    newListCustomDataIdentifiers,+    ListCustomDataIdentifiersResponse (ListCustomDataIdentifiersResponse'),+    newListCustomDataIdentifiersResponse,++    -- ** ListFindings (Paginated)+    ListFindings (ListFindings'),+    newListFindings,+    ListFindingsResponse (ListFindingsResponse'),+    newListFindingsResponse,++    -- ** ListFindingsFilters (Paginated)+    ListFindingsFilters (ListFindingsFilters'),+    newListFindingsFilters,+    ListFindingsFiltersResponse (ListFindingsFiltersResponse'),+    newListFindingsFiltersResponse,++    -- ** ListInvitations (Paginated)+    ListInvitations (ListInvitations'),+    newListInvitations,+    ListInvitationsResponse (ListInvitationsResponse'),+    newListInvitationsResponse,++    -- ** ListManagedDataIdentifiers (Paginated)+    ListManagedDataIdentifiers (ListManagedDataIdentifiers'),+    newListManagedDataIdentifiers,+    ListManagedDataIdentifiersResponse (ListManagedDataIdentifiersResponse'),+    newListManagedDataIdentifiersResponse,++    -- ** ListMembers (Paginated)+    ListMembers (ListMembers'),+    newListMembers,+    ListMembersResponse (ListMembersResponse'),+    newListMembersResponse,++    -- ** ListOrganizationAdminAccounts (Paginated)+    ListOrganizationAdminAccounts (ListOrganizationAdminAccounts'),+    newListOrganizationAdminAccounts,+    ListOrganizationAdminAccountsResponse (ListOrganizationAdminAccountsResponse'),+    newListOrganizationAdminAccountsResponse,++    -- ** ListResourceProfileArtifacts (Paginated)+    ListResourceProfileArtifacts (ListResourceProfileArtifacts'),+    newListResourceProfileArtifacts,+    ListResourceProfileArtifactsResponse (ListResourceProfileArtifactsResponse'),+    newListResourceProfileArtifactsResponse,++    -- ** ListResourceProfileDetections (Paginated)+    ListResourceProfileDetections (ListResourceProfileDetections'),+    newListResourceProfileDetections,+    ListResourceProfileDetectionsResponse (ListResourceProfileDetectionsResponse'),+    newListResourceProfileDetectionsResponse,++    -- ** ListSensitivityInspectionTemplates (Paginated)+    ListSensitivityInspectionTemplates (ListSensitivityInspectionTemplates'),+    newListSensitivityInspectionTemplates,+    ListSensitivityInspectionTemplatesResponse (ListSensitivityInspectionTemplatesResponse'),+    newListSensitivityInspectionTemplatesResponse,++    -- ** ListTagsForResource+    ListTagsForResource (ListTagsForResource'),+    newListTagsForResource,+    ListTagsForResourceResponse (ListTagsForResourceResponse'),+    newListTagsForResourceResponse,++    -- ** PutClassificationExportConfiguration+    PutClassificationExportConfiguration (PutClassificationExportConfiguration'),+    newPutClassificationExportConfiguration,+    PutClassificationExportConfigurationResponse (PutClassificationExportConfigurationResponse'),+    newPutClassificationExportConfigurationResponse,++    -- ** PutFindingsPublicationConfiguration+    PutFindingsPublicationConfiguration (PutFindingsPublicationConfiguration'),+    newPutFindingsPublicationConfiguration,+    PutFindingsPublicationConfigurationResponse (PutFindingsPublicationConfigurationResponse'),+    newPutFindingsPublicationConfigurationResponse,++    -- ** SearchResources (Paginated)+    SearchResources (SearchResources'),+    newSearchResources,+    SearchResourcesResponse (SearchResourcesResponse'),+    newSearchResourcesResponse,++    -- ** TagResource+    TagResource (TagResource'),+    newTagResource,+    TagResourceResponse (TagResourceResponse'),+    newTagResourceResponse,++    -- ** TestCustomDataIdentifier+    TestCustomDataIdentifier (TestCustomDataIdentifier'),+    newTestCustomDataIdentifier,+    TestCustomDataIdentifierResponse (TestCustomDataIdentifierResponse'),+    newTestCustomDataIdentifierResponse,++    -- ** UntagResource+    UntagResource (UntagResource'),+    newUntagResource,+    UntagResourceResponse (UntagResourceResponse'),+    newUntagResourceResponse,++    -- ** UpdateAllowList+    UpdateAllowList (UpdateAllowList'),+    newUpdateAllowList,+    UpdateAllowListResponse (UpdateAllowListResponse'),+    newUpdateAllowListResponse,++    -- ** UpdateAutomatedDiscoveryConfiguration+    UpdateAutomatedDiscoveryConfiguration (UpdateAutomatedDiscoveryConfiguration'),+    newUpdateAutomatedDiscoveryConfiguration,+    UpdateAutomatedDiscoveryConfigurationResponse (UpdateAutomatedDiscoveryConfigurationResponse'),+    newUpdateAutomatedDiscoveryConfigurationResponse,++    -- ** UpdateClassificationJob+    UpdateClassificationJob (UpdateClassificationJob'),+    newUpdateClassificationJob,+    UpdateClassificationJobResponse (UpdateClassificationJobResponse'),+    newUpdateClassificationJobResponse,++    -- ** UpdateClassificationScope+    UpdateClassificationScope (UpdateClassificationScope'),+    newUpdateClassificationScope,+    UpdateClassificationScopeResponse (UpdateClassificationScopeResponse'),+    newUpdateClassificationScopeResponse,++    -- ** UpdateFindingsFilter+    UpdateFindingsFilter (UpdateFindingsFilter'),+    newUpdateFindingsFilter,+    UpdateFindingsFilterResponse (UpdateFindingsFilterResponse'),+    newUpdateFindingsFilterResponse,++    -- ** UpdateMacieSession+    UpdateMacieSession (UpdateMacieSession'),+    newUpdateMacieSession,+    UpdateMacieSessionResponse (UpdateMacieSessionResponse'),+    newUpdateMacieSessionResponse,++    -- ** UpdateMemberSession+    UpdateMemberSession (UpdateMemberSession'),+    newUpdateMemberSession,+    UpdateMemberSessionResponse (UpdateMemberSessionResponse'),+    newUpdateMemberSessionResponse,++    -- ** UpdateOrganizationConfiguration+    UpdateOrganizationConfiguration (UpdateOrganizationConfiguration'),+    newUpdateOrganizationConfiguration,+    UpdateOrganizationConfigurationResponse (UpdateOrganizationConfigurationResponse'),+    newUpdateOrganizationConfigurationResponse,++    -- ** UpdateResourceProfile+    UpdateResourceProfile (UpdateResourceProfile'),+    newUpdateResourceProfile,+    UpdateResourceProfileResponse (UpdateResourceProfileResponse'),+    newUpdateResourceProfileResponse,++    -- ** UpdateResourceProfileDetections+    UpdateResourceProfileDetections (UpdateResourceProfileDetections'),+    newUpdateResourceProfileDetections,+    UpdateResourceProfileDetectionsResponse (UpdateResourceProfileDetectionsResponse'),+    newUpdateResourceProfileDetectionsResponse,++    -- ** UpdateRevealConfiguration+    UpdateRevealConfiguration (UpdateRevealConfiguration'),+    newUpdateRevealConfiguration,+    UpdateRevealConfigurationResponse (UpdateRevealConfigurationResponse'),+    newUpdateRevealConfigurationResponse,++    -- ** UpdateSensitivityInspectionTemplate+    UpdateSensitivityInspectionTemplate (UpdateSensitivityInspectionTemplate'),+    newUpdateSensitivityInspectionTemplate,+    UpdateSensitivityInspectionTemplateResponse (UpdateSensitivityInspectionTemplateResponse'),+    newUpdateSensitivityInspectionTemplateResponse,++    -- * Types++    -- ** AdminStatus+    AdminStatus (..),++    -- ** AllowListStatusCode+    AllowListStatusCode (..),++    -- ** AllowsUnencryptedObjectUploads+    AllowsUnencryptedObjectUploads (..),++    -- ** AutomatedDiscoveryStatus+    AutomatedDiscoveryStatus (..),++    -- ** AvailabilityCode+    AvailabilityCode (..),++    -- ** BucketMetadataErrorCode+    BucketMetadataErrorCode (..),++    -- ** ClassificationScopeUpdateOperation+    ClassificationScopeUpdateOperation (..),++    -- ** Currency+    Currency (..),++    -- ** DataIdentifierSeverity+    DataIdentifierSeverity (..),++    -- ** DataIdentifierType+    DataIdentifierType (..),++    -- ** DayOfWeek+    DayOfWeek (..),++    -- ** EffectivePermission+    EffectivePermission (..),++    -- ** EncryptionType+    EncryptionType (..),++    -- ** ErrorCode+    ErrorCode (..),++    -- ** FindingActionType+    FindingActionType (..),++    -- ** FindingCategory+    FindingCategory (..),++    -- ** FindingPublishingFrequency+    FindingPublishingFrequency (..),++    -- ** FindingStatisticsSortAttributeName+    FindingStatisticsSortAttributeName (..),++    -- ** FindingType+    FindingType (..),++    -- ** FindingsFilterAction+    FindingsFilterAction (..),++    -- ** GroupBy+    GroupBy (..),++    -- ** IsDefinedInJob+    IsDefinedInJob (..),++    -- ** IsMonitoredByJob+    IsMonitoredByJob (..),++    -- ** JobComparator+    JobComparator (..),++    -- ** JobStatus+    JobStatus (..),++    -- ** JobType+    JobType (..),++    -- ** LastRunErrorStatusCode+    LastRunErrorStatusCode (..),++    -- ** ListJobsFilterKey+    ListJobsFilterKey (..),++    -- ** ListJobsSortAttributeName+    ListJobsSortAttributeName (..),++    -- ** MacieStatus+    MacieStatus (..),++    -- ** ManagedDataIdentifierSelector+    ManagedDataIdentifierSelector (..),++    -- ** OrderBy+    OrderBy (..),++    -- ** OriginType+    OriginType (..),++    -- ** RelationshipStatus+    RelationshipStatus (..),++    -- ** RevealRequestStatus+    RevealRequestStatus (..),++    -- ** RevealStatus+    RevealStatus (..),++    -- ** ScopeFilterKey+    ScopeFilterKey (..),++    -- ** SearchResourcesComparator+    SearchResourcesComparator (..),++    -- ** SearchResourcesSimpleCriterionKey+    SearchResourcesSimpleCriterionKey (..),++    -- ** SearchResourcesSortAttributeName+    SearchResourcesSortAttributeName (..),++    -- ** SensitiveDataItemCategory+    SensitiveDataItemCategory (..),++    -- ** SeverityDescription+    SeverityDescription (..),++    -- ** SharedAccess+    SharedAccess (..),++    -- ** SimpleCriterionKeyForJob+    SimpleCriterionKeyForJob (..),++    -- ** StorageClass+    StorageClass (..),++    -- ** TagTarget+    TagTarget (..),++    -- ** TimeRange+    TimeRange (..),++    -- ** Type+    Type (..),++    -- ** UnavailabilityReasonCode+    UnavailabilityReasonCode (..),++    -- ** Unit+    Unit (..),++    -- ** UsageStatisticsFilterComparator+    UsageStatisticsFilterComparator (..),++    -- ** UsageStatisticsFilterKey+    UsageStatisticsFilterKey (..),++    -- ** UsageStatisticsSortKey+    UsageStatisticsSortKey (..),++    -- ** UsageType+    UsageType (..),++    -- ** UserIdentityType+    UserIdentityType (..),++    -- ** AccessControlList+    AccessControlList (AccessControlList'),+    newAccessControlList,++    -- ** AccountDetail+    AccountDetail (AccountDetail'),+    newAccountDetail,++    -- ** AccountLevelPermissions+    AccountLevelPermissions (AccountLevelPermissions'),+    newAccountLevelPermissions,++    -- ** AdminAccount+    AdminAccount (AdminAccount'),+    newAdminAccount,++    -- ** AllowListCriteria+    AllowListCriteria (AllowListCriteria'),+    newAllowListCriteria,++    -- ** AllowListStatus+    AllowListStatus (AllowListStatus'),+    newAllowListStatus,++    -- ** AllowListSummary+    AllowListSummary (AllowListSummary'),+    newAllowListSummary,++    -- ** ApiCallDetails+    ApiCallDetails (ApiCallDetails'),+    newApiCallDetails,++    -- ** AssumedRole+    AssumedRole (AssumedRole'),+    newAssumedRole,++    -- ** AwsAccount+    AwsAccount (AwsAccount'),+    newAwsAccount,++    -- ** AwsService+    AwsService (AwsService'),+    newAwsService,++    -- ** BatchGetCustomDataIdentifierSummary+    BatchGetCustomDataIdentifierSummary (BatchGetCustomDataIdentifierSummary'),+    newBatchGetCustomDataIdentifierSummary,++    -- ** BlockPublicAccess+    BlockPublicAccess (BlockPublicAccess'),+    newBlockPublicAccess,++    -- ** BucketCountByEffectivePermission+    BucketCountByEffectivePermission (BucketCountByEffectivePermission'),+    newBucketCountByEffectivePermission,++    -- ** BucketCountByEncryptionType+    BucketCountByEncryptionType (BucketCountByEncryptionType'),+    newBucketCountByEncryptionType,++    -- ** BucketCountBySharedAccessType+    BucketCountBySharedAccessType (BucketCountBySharedAccessType'),+    newBucketCountBySharedAccessType,++    -- ** BucketCountPolicyAllowsUnencryptedObjectUploads+    BucketCountPolicyAllowsUnencryptedObjectUploads (BucketCountPolicyAllowsUnencryptedObjectUploads'),+    newBucketCountPolicyAllowsUnencryptedObjectUploads,++    -- ** BucketCriteriaAdditionalProperties+    BucketCriteriaAdditionalProperties (BucketCriteriaAdditionalProperties'),+    newBucketCriteriaAdditionalProperties,++    -- ** BucketLevelPermissions+    BucketLevelPermissions (BucketLevelPermissions'),+    newBucketLevelPermissions,++    -- ** BucketMetadata+    BucketMetadata (BucketMetadata'),+    newBucketMetadata,++    -- ** BucketPermissionConfiguration+    BucketPermissionConfiguration (BucketPermissionConfiguration'),+    newBucketPermissionConfiguration,++    -- ** BucketPolicy+    BucketPolicy (BucketPolicy'),+    newBucketPolicy,++    -- ** BucketPublicAccess+    BucketPublicAccess (BucketPublicAccess'),+    newBucketPublicAccess,++    -- ** BucketServerSideEncryption+    BucketServerSideEncryption (BucketServerSideEncryption'),+    newBucketServerSideEncryption,++    -- ** BucketSortCriteria+    BucketSortCriteria (BucketSortCriteria'),+    newBucketSortCriteria,++    -- ** BucketStatisticsBySensitivity+    BucketStatisticsBySensitivity (BucketStatisticsBySensitivity'),+    newBucketStatisticsBySensitivity,++    -- ** Cell+    Cell (Cell'),+    newCell,++    -- ** ClassificationDetails+    ClassificationDetails (ClassificationDetails'),+    newClassificationDetails,++    -- ** ClassificationExportConfiguration+    ClassificationExportConfiguration (ClassificationExportConfiguration'),+    newClassificationExportConfiguration,++    -- ** ClassificationResult+    ClassificationResult (ClassificationResult'),+    newClassificationResult,++    -- ** ClassificationResultStatus+    ClassificationResultStatus (ClassificationResultStatus'),+    newClassificationResultStatus,++    -- ** ClassificationScopeSummary+    ClassificationScopeSummary (ClassificationScopeSummary'),+    newClassificationScopeSummary,++    -- ** CriteriaBlockForJob+    CriteriaBlockForJob (CriteriaBlockForJob'),+    newCriteriaBlockForJob,++    -- ** CriteriaForJob+    CriteriaForJob (CriteriaForJob'),+    newCriteriaForJob,++    -- ** CriterionAdditionalProperties+    CriterionAdditionalProperties (CriterionAdditionalProperties'),+    newCriterionAdditionalProperties,++    -- ** CustomDataIdentifierSummary+    CustomDataIdentifierSummary (CustomDataIdentifierSummary'),+    newCustomDataIdentifierSummary,++    -- ** CustomDataIdentifiers+    CustomDataIdentifiers (CustomDataIdentifiers'),+    newCustomDataIdentifiers,++    -- ** CustomDetection+    CustomDetection (CustomDetection'),+    newCustomDetection,++    -- ** DailySchedule+    DailySchedule (DailySchedule'),+    newDailySchedule,++    -- ** DefaultDetection+    DefaultDetection (DefaultDetection'),+    newDefaultDetection,++    -- ** DetectedDataDetails+    DetectedDataDetails (DetectedDataDetails'),+    newDetectedDataDetails,++    -- ** Detection+    Detection (Detection'),+    newDetection,++    -- ** DomainDetails+    DomainDetails (DomainDetails'),+    newDomainDetails,++    -- ** FederatedUser+    FederatedUser (FederatedUser'),+    newFederatedUser,++    -- ** Finding+    Finding (Finding'),+    newFinding,++    -- ** FindingAction+    FindingAction (FindingAction'),+    newFindingAction,++    -- ** FindingActor+    FindingActor (FindingActor'),+    newFindingActor,++    -- ** FindingCriteria+    FindingCriteria (FindingCriteria'),+    newFindingCriteria,++    -- ** FindingStatisticsSortCriteria+    FindingStatisticsSortCriteria (FindingStatisticsSortCriteria'),+    newFindingStatisticsSortCriteria,++    -- ** FindingsFilterListItem+    FindingsFilterListItem (FindingsFilterListItem'),+    newFindingsFilterListItem,++    -- ** GroupCount+    GroupCount (GroupCount'),+    newGroupCount,++    -- ** IamUser+    IamUser (IamUser'),+    newIamUser,++    -- ** Invitation+    Invitation (Invitation'),+    newInvitation,++    -- ** IpAddressDetails+    IpAddressDetails (IpAddressDetails'),+    newIpAddressDetails,++    -- ** IpCity+    IpCity (IpCity'),+    newIpCity,++    -- ** IpCountry+    IpCountry (IpCountry'),+    newIpCountry,++    -- ** IpGeoLocation+    IpGeoLocation (IpGeoLocation'),+    newIpGeoLocation,++    -- ** IpOwner+    IpOwner (IpOwner'),+    newIpOwner,++    -- ** JobDetails+    JobDetails (JobDetails'),+    newJobDetails,++    -- ** JobScheduleFrequency+    JobScheduleFrequency (JobScheduleFrequency'),+    newJobScheduleFrequency,++    -- ** JobScopeTerm+    JobScopeTerm (JobScopeTerm'),+    newJobScopeTerm,++    -- ** JobScopingBlock+    JobScopingBlock (JobScopingBlock'),+    newJobScopingBlock,++    -- ** JobSummary+    JobSummary (JobSummary'),+    newJobSummary,++    -- ** KeyValuePair+    KeyValuePair (KeyValuePair'),+    newKeyValuePair,++    -- ** LastRunErrorStatus+    LastRunErrorStatus (LastRunErrorStatus'),+    newLastRunErrorStatus,++    -- ** ListJobsFilterCriteria+    ListJobsFilterCriteria (ListJobsFilterCriteria'),+    newListJobsFilterCriteria,++    -- ** ListJobsFilterTerm+    ListJobsFilterTerm (ListJobsFilterTerm'),+    newListJobsFilterTerm,++    -- ** ListJobsSortCriteria+    ListJobsSortCriteria (ListJobsSortCriteria'),+    newListJobsSortCriteria,++    -- ** ManagedDataIdentifierSummary+    ManagedDataIdentifierSummary (ManagedDataIdentifierSummary'),+    newManagedDataIdentifierSummary,++    -- ** MatchingBucket+    MatchingBucket (MatchingBucket'),+    newMatchingBucket,++    -- ** MatchingResource+    MatchingResource (MatchingResource'),+    newMatchingResource,++    -- ** Member+    Member (Member'),+    newMember,++    -- ** MonthlySchedule+    MonthlySchedule (MonthlySchedule'),+    newMonthlySchedule,++    -- ** ObjectCountByEncryptionType+    ObjectCountByEncryptionType (ObjectCountByEncryptionType'),+    newObjectCountByEncryptionType,++    -- ** ObjectLevelStatistics+    ObjectLevelStatistics (ObjectLevelStatistics'),+    newObjectLevelStatistics,++    -- ** Occurrences+    Occurrences (Occurrences'),+    newOccurrences,++    -- ** Page+    Page (Page'),+    newPage,++    -- ** PolicyDetails+    PolicyDetails (PolicyDetails'),+    newPolicyDetails,++    -- ** Range+    Range (Range'),+    newRange,++    -- ** Record+    Record (Record'),+    newRecord,++    -- ** ReplicationDetails+    ReplicationDetails (ReplicationDetails'),+    newReplicationDetails,++    -- ** ResourceProfileArtifact+    ResourceProfileArtifact (ResourceProfileArtifact'),+    newResourceProfileArtifact,++    -- ** ResourceStatistics+    ResourceStatistics (ResourceStatistics'),+    newResourceStatistics,++    -- ** ResourcesAffected+    ResourcesAffected (ResourcesAffected'),+    newResourcesAffected,++    -- ** RevealConfiguration+    RevealConfiguration (RevealConfiguration'),+    newRevealConfiguration,++    -- ** S3Bucket+    S3Bucket (S3Bucket'),+    newS3Bucket,++    -- ** S3BucketCriteriaForJob+    S3BucketCriteriaForJob (S3BucketCriteriaForJob'),+    newS3BucketCriteriaForJob,++    -- ** S3BucketDefinitionForJob+    S3BucketDefinitionForJob (S3BucketDefinitionForJob'),+    newS3BucketDefinitionForJob,++    -- ** S3BucketOwner+    S3BucketOwner (S3BucketOwner'),+    newS3BucketOwner,++    -- ** S3ClassificationScope+    S3ClassificationScope (S3ClassificationScope'),+    newS3ClassificationScope,++    -- ** S3ClassificationScopeExclusion+    S3ClassificationScopeExclusion (S3ClassificationScopeExclusion'),+    newS3ClassificationScopeExclusion,++    -- ** S3ClassificationScopeExclusionUpdate+    S3ClassificationScopeExclusionUpdate (S3ClassificationScopeExclusionUpdate'),+    newS3ClassificationScopeExclusionUpdate,++    -- ** S3ClassificationScopeUpdate+    S3ClassificationScopeUpdate (S3ClassificationScopeUpdate'),+    newS3ClassificationScopeUpdate,++    -- ** S3Destination+    S3Destination (S3Destination'),+    newS3Destination,++    -- ** S3JobDefinition+    S3JobDefinition (S3JobDefinition'),+    newS3JobDefinition,++    -- ** S3Object+    S3Object (S3Object'),+    newS3Object,++    -- ** S3WordsList+    S3WordsList (S3WordsList'),+    newS3WordsList,++    -- ** Scoping+    Scoping (Scoping'),+    newScoping,++    -- ** SearchResourcesBucketCriteria+    SearchResourcesBucketCriteria (SearchResourcesBucketCriteria'),+    newSearchResourcesBucketCriteria,++    -- ** SearchResourcesCriteria+    SearchResourcesCriteria (SearchResourcesCriteria'),+    newSearchResourcesCriteria,++    -- ** SearchResourcesCriteriaBlock+    SearchResourcesCriteriaBlock (SearchResourcesCriteriaBlock'),+    newSearchResourcesCriteriaBlock,++    -- ** SearchResourcesSimpleCriterion+    SearchResourcesSimpleCriterion (SearchResourcesSimpleCriterion'),+    newSearchResourcesSimpleCriterion,++    -- ** SearchResourcesSortCriteria+    SearchResourcesSortCriteria (SearchResourcesSortCriteria'),+    newSearchResourcesSortCriteria,++    -- ** SearchResourcesTagCriterion+    SearchResourcesTagCriterion (SearchResourcesTagCriterion'),+    newSearchResourcesTagCriterion,++    -- ** SearchResourcesTagCriterionPair+    SearchResourcesTagCriterionPair (SearchResourcesTagCriterionPair'),+    newSearchResourcesTagCriterionPair,++    -- ** SecurityHubConfiguration+    SecurityHubConfiguration (SecurityHubConfiguration'),+    newSecurityHubConfiguration,++    -- ** SensitiveDataItem+    SensitiveDataItem (SensitiveDataItem'),+    newSensitiveDataItem,++    -- ** SensitivityAggregations+    SensitivityAggregations (SensitivityAggregations'),+    newSensitivityAggregations,++    -- ** SensitivityInspectionTemplateExcludes+    SensitivityInspectionTemplateExcludes (SensitivityInspectionTemplateExcludes'),+    newSensitivityInspectionTemplateExcludes,++    -- ** SensitivityInspectionTemplateIncludes+    SensitivityInspectionTemplateIncludes (SensitivityInspectionTemplateIncludes'),+    newSensitivityInspectionTemplateIncludes,++    -- ** SensitivityInspectionTemplatesEntry+    SensitivityInspectionTemplatesEntry (SensitivityInspectionTemplatesEntry'),+    newSensitivityInspectionTemplatesEntry,++    -- ** ServerSideEncryption+    ServerSideEncryption (ServerSideEncryption'),+    newServerSideEncryption,++    -- ** ServiceLimit+    ServiceLimit (ServiceLimit'),+    newServiceLimit,++    -- ** SessionContext+    SessionContext (SessionContext'),+    newSessionContext,++    -- ** SessionContextAttributes+    SessionContextAttributes (SessionContextAttributes'),+    newSessionContextAttributes,++    -- ** SessionIssuer+    SessionIssuer (SessionIssuer'),+    newSessionIssuer,++    -- ** Severity+    Severity (Severity'),+    newSeverity,++    -- ** SeverityLevel+    SeverityLevel (SeverityLevel'),+    newSeverityLevel,++    -- ** SimpleCriterionForJob+    SimpleCriterionForJob (SimpleCriterionForJob'),+    newSimpleCriterionForJob,++    -- ** SimpleScopeTerm+    SimpleScopeTerm (SimpleScopeTerm'),+    newSimpleScopeTerm,++    -- ** SortCriteria+    SortCriteria (SortCriteria'),+    newSortCriteria,++    -- ** Statistics+    Statistics (Statistics'),+    newStatistics,++    -- ** SuppressDataIdentifier+    SuppressDataIdentifier (SuppressDataIdentifier'),+    newSuppressDataIdentifier,++    -- ** TagCriterionForJob+    TagCriterionForJob (TagCriterionForJob'),+    newTagCriterionForJob,++    -- ** TagCriterionPairForJob+    TagCriterionPairForJob (TagCriterionPairForJob'),+    newTagCriterionPairForJob,++    -- ** TagScopeTerm+    TagScopeTerm (TagScopeTerm'),+    newTagScopeTerm,++    -- ** TagValuePair+    TagValuePair (TagValuePair'),+    newTagValuePair,++    -- ** UnprocessedAccount+    UnprocessedAccount (UnprocessedAccount'),+    newUnprocessedAccount,++    -- ** UsageByAccount+    UsageByAccount (UsageByAccount'),+    newUsageByAccount,++    -- ** UsageRecord+    UsageRecord (UsageRecord'),+    newUsageRecord,++    -- ** UsageStatisticsFilter+    UsageStatisticsFilter (UsageStatisticsFilter'),+    newUsageStatisticsFilter,++    -- ** UsageStatisticsSortBy+    UsageStatisticsSortBy (UsageStatisticsSortBy'),+    newUsageStatisticsSortBy,++    -- ** UsageTotal+    UsageTotal (UsageTotal'),+    newUsageTotal,++    -- ** UserIdentity+    UserIdentity (UserIdentity'),+    newUserIdentity,++    -- ** UserIdentityRoot+    UserIdentityRoot (UserIdentityRoot'),+    newUserIdentityRoot,++    -- ** UserPausedDetails+    UserPausedDetails (UserPausedDetails'),+    newUserPausedDetails,++    -- ** WeeklySchedule+    WeeklySchedule (WeeklySchedule'),+    newWeeklySchedule,+  )+where++import Amazonka.MacieV2.AcceptInvitation+import Amazonka.MacieV2.BatchGetCustomDataIdentifiers+import Amazonka.MacieV2.CreateAllowList+import Amazonka.MacieV2.CreateClassificationJob+import Amazonka.MacieV2.CreateCustomDataIdentifier+import Amazonka.MacieV2.CreateFindingsFilter+import Amazonka.MacieV2.CreateInvitations+import Amazonka.MacieV2.CreateMember+import Amazonka.MacieV2.CreateSampleFindings+import Amazonka.MacieV2.DeclineInvitations+import Amazonka.MacieV2.DeleteAllowList+import Amazonka.MacieV2.DeleteCustomDataIdentifier+import Amazonka.MacieV2.DeleteFindingsFilter+import Amazonka.MacieV2.DeleteInvitations+import Amazonka.MacieV2.DeleteMember+import Amazonka.MacieV2.DescribeBuckets+import Amazonka.MacieV2.DescribeClassificationJob+import Amazonka.MacieV2.DescribeOrganizationConfiguration+import Amazonka.MacieV2.DisableMacie+import Amazonka.MacieV2.DisableOrganizationAdminAccount+import Amazonka.MacieV2.DisassociateFromAdministratorAccount+import Amazonka.MacieV2.DisassociateFromMasterAccount+import Amazonka.MacieV2.DisassociateMember+import Amazonka.MacieV2.EnableMacie+import Amazonka.MacieV2.EnableOrganizationAdminAccount+import Amazonka.MacieV2.GetAdministratorAccount+import Amazonka.MacieV2.GetAllowList+import Amazonka.MacieV2.GetAutomatedDiscoveryConfiguration+import Amazonka.MacieV2.GetBucketStatistics+import Amazonka.MacieV2.GetClassificationExportConfiguration+import Amazonka.MacieV2.GetClassificationScope+import Amazonka.MacieV2.GetCustomDataIdentifier+import Amazonka.MacieV2.GetFindingStatistics+import Amazonka.MacieV2.GetFindings+import Amazonka.MacieV2.GetFindingsFilter+import Amazonka.MacieV2.GetFindingsPublicationConfiguration+import Amazonka.MacieV2.GetInvitationsCount+import Amazonka.MacieV2.GetMacieSession+import Amazonka.MacieV2.GetMasterAccount+import Amazonka.MacieV2.GetMember+import Amazonka.MacieV2.GetResourceProfile+import Amazonka.MacieV2.GetRevealConfiguration+import Amazonka.MacieV2.GetSensitiveDataOccurrences+import Amazonka.MacieV2.GetSensitiveDataOccurrencesAvailability+import Amazonka.MacieV2.GetSensitivityInspectionTemplate+import Amazonka.MacieV2.GetUsageStatistics+import Amazonka.MacieV2.GetUsageTotals+import Amazonka.MacieV2.Lens+import Amazonka.MacieV2.ListAllowLists+import Amazonka.MacieV2.ListClassificationJobs+import Amazonka.MacieV2.ListClassificationScopes+import Amazonka.MacieV2.ListCustomDataIdentifiers+import Amazonka.MacieV2.ListFindings+import Amazonka.MacieV2.ListFindingsFilters+import Amazonka.MacieV2.ListInvitations+import Amazonka.MacieV2.ListManagedDataIdentifiers+import Amazonka.MacieV2.ListMembers+import Amazonka.MacieV2.ListOrganizationAdminAccounts+import Amazonka.MacieV2.ListResourceProfileArtifacts+import Amazonka.MacieV2.ListResourceProfileDetections+import Amazonka.MacieV2.ListSensitivityInspectionTemplates+import Amazonka.MacieV2.ListTagsForResource+import Amazonka.MacieV2.PutClassificationExportConfiguration+import Amazonka.MacieV2.PutFindingsPublicationConfiguration+import Amazonka.MacieV2.SearchResources+import Amazonka.MacieV2.TagResource+import Amazonka.MacieV2.TestCustomDataIdentifier+import Amazonka.MacieV2.Types+import Amazonka.MacieV2.UntagResource+import Amazonka.MacieV2.UpdateAllowList+import Amazonka.MacieV2.UpdateAutomatedDiscoveryConfiguration+import Amazonka.MacieV2.UpdateClassificationJob+import Amazonka.MacieV2.UpdateClassificationScope+import Amazonka.MacieV2.UpdateFindingsFilter+import Amazonka.MacieV2.UpdateMacieSession+import Amazonka.MacieV2.UpdateMemberSession+import Amazonka.MacieV2.UpdateOrganizationConfiguration+import Amazonka.MacieV2.UpdateResourceProfile+import Amazonka.MacieV2.UpdateResourceProfileDetections+import Amazonka.MacieV2.UpdateRevealConfiguration+import Amazonka.MacieV2.UpdateSensitivityInspectionTemplate+import Amazonka.MacieV2.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 'MacieV2'.++-- $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/MacieV2/AcceptInvitation.hs view
@@ -0,0 +1,198 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.AcceptInvitation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Accepts an Amazon Macie membership invitation that was received from a+-- specific account.+module Amazonka.MacieV2.AcceptInvitation+  ( -- * Creating a Request+    AcceptInvitation (..),+    newAcceptInvitation,++    -- * Request Lenses+    acceptInvitation_administratorAccountId,+    acceptInvitation_masterAccount,+    acceptInvitation_invitationId,++    -- * Destructuring the Response+    AcceptInvitationResponse (..),+    newAcceptInvitationResponse,++    -- * Response Lenses+    acceptInvitationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newAcceptInvitation' smart constructor.+data AcceptInvitation = AcceptInvitation'+  { -- | The Amazon Web Services account ID for the account that sent the+    -- invitation.+    administratorAccountId :: Prelude.Maybe Prelude.Text,+    -- | (Deprecated) The Amazon Web Services account ID for the account that+    -- sent the invitation. This property has been replaced by the+    -- administratorAccountId property and is retained only for backward+    -- compatibility.+    masterAccount :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the invitation to accept.+    invitationId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AcceptInvitation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'administratorAccountId', 'acceptInvitation_administratorAccountId' - The Amazon Web Services account ID for the account that sent the+-- invitation.+--+-- 'masterAccount', 'acceptInvitation_masterAccount' - (Deprecated) The Amazon Web Services account ID for the account that+-- sent the invitation. This property has been replaced by the+-- administratorAccountId property and is retained only for backward+-- compatibility.+--+-- 'invitationId', 'acceptInvitation_invitationId' - The unique identifier for the invitation to accept.+newAcceptInvitation ::+  -- | 'invitationId'+  Prelude.Text ->+  AcceptInvitation+newAcceptInvitation pInvitationId_ =+  AcceptInvitation'+    { administratorAccountId =+        Prelude.Nothing,+      masterAccount = Prelude.Nothing,+      invitationId = pInvitationId_+    }++-- | The Amazon Web Services account ID for the account that sent the+-- invitation.+acceptInvitation_administratorAccountId :: Lens.Lens' AcceptInvitation (Prelude.Maybe Prelude.Text)+acceptInvitation_administratorAccountId = Lens.lens (\AcceptInvitation' {administratorAccountId} -> administratorAccountId) (\s@AcceptInvitation' {} a -> s {administratorAccountId = a} :: AcceptInvitation)++-- | (Deprecated) The Amazon Web Services account ID for the account that+-- sent the invitation. This property has been replaced by the+-- administratorAccountId property and is retained only for backward+-- compatibility.+acceptInvitation_masterAccount :: Lens.Lens' AcceptInvitation (Prelude.Maybe Prelude.Text)+acceptInvitation_masterAccount = Lens.lens (\AcceptInvitation' {masterAccount} -> masterAccount) (\s@AcceptInvitation' {} a -> s {masterAccount = a} :: AcceptInvitation)++-- | The unique identifier for the invitation to accept.+acceptInvitation_invitationId :: Lens.Lens' AcceptInvitation Prelude.Text+acceptInvitation_invitationId = Lens.lens (\AcceptInvitation' {invitationId} -> invitationId) (\s@AcceptInvitation' {} a -> s {invitationId = a} :: AcceptInvitation)++instance Core.AWSRequest AcceptInvitation where+  type+    AWSResponse AcceptInvitation =+      AcceptInvitationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          AcceptInvitationResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable AcceptInvitation where+  hashWithSalt _salt AcceptInvitation' {..} =+    _salt+      `Prelude.hashWithSalt` administratorAccountId+      `Prelude.hashWithSalt` masterAccount+      `Prelude.hashWithSalt` invitationId++instance Prelude.NFData AcceptInvitation where+  rnf AcceptInvitation' {..} =+    Prelude.rnf administratorAccountId+      `Prelude.seq` Prelude.rnf masterAccount+      `Prelude.seq` Prelude.rnf invitationId++instance Data.ToHeaders AcceptInvitation where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON AcceptInvitation where+  toJSON AcceptInvitation' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("administratorAccountId" Data..=)+              Prelude.<$> administratorAccountId,+            ("masterAccount" Data..=) Prelude.<$> masterAccount,+            Prelude.Just ("invitationId" Data..= invitationId)+          ]+      )++instance Data.ToPath AcceptInvitation where+  toPath = Prelude.const "/invitations/accept"++instance Data.ToQuery AcceptInvitation where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newAcceptInvitationResponse' smart constructor.+data AcceptInvitationResponse = AcceptInvitationResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AcceptInvitationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'acceptInvitationResponse_httpStatus' - The response's http status code.+newAcceptInvitationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  AcceptInvitationResponse+newAcceptInvitationResponse pHttpStatus_ =+  AcceptInvitationResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+acceptInvitationResponse_httpStatus :: Lens.Lens' AcceptInvitationResponse Prelude.Int+acceptInvitationResponse_httpStatus = Lens.lens (\AcceptInvitationResponse' {httpStatus} -> httpStatus) (\s@AcceptInvitationResponse' {} a -> s {httpStatus = a} :: AcceptInvitationResponse)++instance Prelude.NFData AcceptInvitationResponse where+  rnf AcceptInvitationResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/BatchGetCustomDataIdentifiers.hs view
@@ -0,0 +1,204 @@+{-# 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.MacieV2.BatchGetCustomDataIdentifiers+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves information about one or more custom data identifiers.+module Amazonka.MacieV2.BatchGetCustomDataIdentifiers+  ( -- * Creating a Request+    BatchGetCustomDataIdentifiers (..),+    newBatchGetCustomDataIdentifiers,++    -- * Request Lenses+    batchGetCustomDataIdentifiers_ids,++    -- * Destructuring the Response+    BatchGetCustomDataIdentifiersResponse (..),+    newBatchGetCustomDataIdentifiersResponse,++    -- * Response Lenses+    batchGetCustomDataIdentifiersResponse_customDataIdentifiers,+    batchGetCustomDataIdentifiersResponse_notFoundIdentifierIds,+    batchGetCustomDataIdentifiersResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newBatchGetCustomDataIdentifiers' smart constructor.+data BatchGetCustomDataIdentifiers = BatchGetCustomDataIdentifiers'+  { -- | An array of custom data identifier IDs, one for each custom data+    -- identifier to retrieve information about.+    ids :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchGetCustomDataIdentifiers' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'ids', 'batchGetCustomDataIdentifiers_ids' - An array of custom data identifier IDs, one for each custom data+-- identifier to retrieve information about.+newBatchGetCustomDataIdentifiers ::+  BatchGetCustomDataIdentifiers+newBatchGetCustomDataIdentifiers =+  BatchGetCustomDataIdentifiers'+    { ids =+        Prelude.Nothing+    }++-- | An array of custom data identifier IDs, one for each custom data+-- identifier to retrieve information about.+batchGetCustomDataIdentifiers_ids :: Lens.Lens' BatchGetCustomDataIdentifiers (Prelude.Maybe [Prelude.Text])+batchGetCustomDataIdentifiers_ids = Lens.lens (\BatchGetCustomDataIdentifiers' {ids} -> ids) (\s@BatchGetCustomDataIdentifiers' {} a -> s {ids = a} :: BatchGetCustomDataIdentifiers) Prelude.. Lens.mapping Lens.coerced++instance+  Core.AWSRequest+    BatchGetCustomDataIdentifiers+  where+  type+    AWSResponse BatchGetCustomDataIdentifiers =+      BatchGetCustomDataIdentifiersResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          BatchGetCustomDataIdentifiersResponse'+            Prelude.<$> ( x+                            Data..?> "customDataIdentifiers"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..?> "notFoundIdentifierIds"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    BatchGetCustomDataIdentifiers+  where+  hashWithSalt _salt BatchGetCustomDataIdentifiers' {..} =+    _salt `Prelude.hashWithSalt` ids++instance Prelude.NFData BatchGetCustomDataIdentifiers where+  rnf BatchGetCustomDataIdentifiers' {..} =+    Prelude.rnf ids++instance Data.ToHeaders BatchGetCustomDataIdentifiers where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON BatchGetCustomDataIdentifiers where+  toJSON BatchGetCustomDataIdentifiers' {..} =+    Data.object+      (Prelude.catMaybes [("ids" Data..=) Prelude.<$> ids])++instance Data.ToPath BatchGetCustomDataIdentifiers where+  toPath = Prelude.const "/custom-data-identifiers/get"++instance Data.ToQuery BatchGetCustomDataIdentifiers where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newBatchGetCustomDataIdentifiersResponse' smart constructor.+data BatchGetCustomDataIdentifiersResponse = BatchGetCustomDataIdentifiersResponse'+  { -- | An array of objects, one for each custom data identifier that matches+    -- the criteria specified in the request.+    customDataIdentifiers :: Prelude.Maybe [BatchGetCustomDataIdentifierSummary],+    -- | An array of custom data identifier IDs, one for each custom data+    -- identifier that was specified in the request but doesn\'t correlate to+    -- an existing custom data identifier.+    notFoundIdentifierIds :: 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 'BatchGetCustomDataIdentifiersResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'customDataIdentifiers', 'batchGetCustomDataIdentifiersResponse_customDataIdentifiers' - An array of objects, one for each custom data identifier that matches+-- the criteria specified in the request.+--+-- 'notFoundIdentifierIds', 'batchGetCustomDataIdentifiersResponse_notFoundIdentifierIds' - An array of custom data identifier IDs, one for each custom data+-- identifier that was specified in the request but doesn\'t correlate to+-- an existing custom data identifier.+--+-- 'httpStatus', 'batchGetCustomDataIdentifiersResponse_httpStatus' - The response's http status code.+newBatchGetCustomDataIdentifiersResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  BatchGetCustomDataIdentifiersResponse+newBatchGetCustomDataIdentifiersResponse pHttpStatus_ =+  BatchGetCustomDataIdentifiersResponse'+    { customDataIdentifiers =+        Prelude.Nothing,+      notFoundIdentifierIds =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array of objects, one for each custom data identifier that matches+-- the criteria specified in the request.+batchGetCustomDataIdentifiersResponse_customDataIdentifiers :: Lens.Lens' BatchGetCustomDataIdentifiersResponse (Prelude.Maybe [BatchGetCustomDataIdentifierSummary])+batchGetCustomDataIdentifiersResponse_customDataIdentifiers = Lens.lens (\BatchGetCustomDataIdentifiersResponse' {customDataIdentifiers} -> customDataIdentifiers) (\s@BatchGetCustomDataIdentifiersResponse' {} a -> s {customDataIdentifiers = a} :: BatchGetCustomDataIdentifiersResponse) Prelude.. Lens.mapping Lens.coerced++-- | An array of custom data identifier IDs, one for each custom data+-- identifier that was specified in the request but doesn\'t correlate to+-- an existing custom data identifier.+batchGetCustomDataIdentifiersResponse_notFoundIdentifierIds :: Lens.Lens' BatchGetCustomDataIdentifiersResponse (Prelude.Maybe [Prelude.Text])+batchGetCustomDataIdentifiersResponse_notFoundIdentifierIds = Lens.lens (\BatchGetCustomDataIdentifiersResponse' {notFoundIdentifierIds} -> notFoundIdentifierIds) (\s@BatchGetCustomDataIdentifiersResponse' {} a -> s {notFoundIdentifierIds = a} :: BatchGetCustomDataIdentifiersResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+batchGetCustomDataIdentifiersResponse_httpStatus :: Lens.Lens' BatchGetCustomDataIdentifiersResponse Prelude.Int+batchGetCustomDataIdentifiersResponse_httpStatus = Lens.lens (\BatchGetCustomDataIdentifiersResponse' {httpStatus} -> httpStatus) (\s@BatchGetCustomDataIdentifiersResponse' {} a -> s {httpStatus = a} :: BatchGetCustomDataIdentifiersResponse)++instance+  Prelude.NFData+    BatchGetCustomDataIdentifiersResponse+  where+  rnf BatchGetCustomDataIdentifiersResponse' {..} =+    Prelude.rnf customDataIdentifiers+      `Prelude.seq` Prelude.rnf notFoundIdentifierIds+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/CreateAllowList.hs view
@@ -0,0 +1,269 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.CreateAllowList+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates and defines the settings for an allow list.+module Amazonka.MacieV2.CreateAllowList+  ( -- * Creating a Request+    CreateAllowList (..),+    newCreateAllowList,++    -- * Request Lenses+    createAllowList_description,+    createAllowList_tags,+    createAllowList_criteria,+    createAllowList_clientToken,+    createAllowList_name,++    -- * Destructuring the Response+    CreateAllowListResponse (..),+    newCreateAllowListResponse,++    -- * Response Lenses+    createAllowListResponse_arn,+    createAllowListResponse_id,+    createAllowListResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateAllowList' smart constructor.+data CreateAllowList = CreateAllowList'+  { -- | A custom description of the allow list. The description can contain as+    -- many as 512 characters.+    description :: Prelude.Maybe Prelude.Text,+    -- | A map of key-value pairs that specifies the tags to associate with the+    -- allow list.+    --+    -- An allow list can have a maximum of 50 tags. Each tag consists of a tag+    -- key and an associated tag value. The maximum length of a tag key is 128+    -- characters. The maximum length of a tag value is 256 characters.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The criteria that specify the text or text pattern to ignore. The+    -- criteria can be the location and name of an S3 object that lists+    -- specific text to ignore (s3WordsList), or a regular expression (regex)+    -- that defines a text pattern to ignore.+    criteria :: AllowListCriteria,+    -- | A unique, case-sensitive token that you provide to ensure the+    -- idempotency of the request.+    clientToken :: Prelude.Text,+    -- | A custom name for the allow list. The name can contain as many as 128+    -- characters.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateAllowList' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createAllowList_description' - A custom description of the allow list. The description can contain as+-- many as 512 characters.+--+-- 'tags', 'createAllowList_tags' - A map of key-value pairs that specifies the tags to associate with the+-- allow list.+--+-- An allow list can have a maximum of 50 tags. Each tag consists of a tag+-- key and an associated tag value. The maximum length of a tag key is 128+-- characters. The maximum length of a tag value is 256 characters.+--+-- 'criteria', 'createAllowList_criteria' - The criteria that specify the text or text pattern to ignore. The+-- criteria can be the location and name of an S3 object that lists+-- specific text to ignore (s3WordsList), or a regular expression (regex)+-- that defines a text pattern to ignore.+--+-- 'clientToken', 'createAllowList_clientToken' - A unique, case-sensitive token that you provide to ensure the+-- idempotency of the request.+--+-- 'name', 'createAllowList_name' - A custom name for the allow list. The name can contain as many as 128+-- characters.+newCreateAllowList ::+  -- | 'criteria'+  AllowListCriteria ->+  -- | 'clientToken'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  CreateAllowList+newCreateAllowList pCriteria_ pClientToken_ pName_ =+  CreateAllowList'+    { description = Prelude.Nothing,+      tags = Prelude.Nothing,+      criteria = pCriteria_,+      clientToken = pClientToken_,+      name = pName_+    }++-- | A custom description of the allow list. The description can contain as+-- many as 512 characters.+createAllowList_description :: Lens.Lens' CreateAllowList (Prelude.Maybe Prelude.Text)+createAllowList_description = Lens.lens (\CreateAllowList' {description} -> description) (\s@CreateAllowList' {} a -> s {description = a} :: CreateAllowList)++-- | A map of key-value pairs that specifies the tags to associate with the+-- allow list.+--+-- An allow list can have a maximum of 50 tags. Each tag consists of a tag+-- key and an associated tag value. The maximum length of a tag key is 128+-- characters. The maximum length of a tag value is 256 characters.+createAllowList_tags :: Lens.Lens' CreateAllowList (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createAllowList_tags = Lens.lens (\CreateAllowList' {tags} -> tags) (\s@CreateAllowList' {} a -> s {tags = a} :: CreateAllowList) Prelude.. Lens.mapping Lens.coerced++-- | The criteria that specify the text or text pattern to ignore. The+-- criteria can be the location and name of an S3 object that lists+-- specific text to ignore (s3WordsList), or a regular expression (regex)+-- that defines a text pattern to ignore.+createAllowList_criteria :: Lens.Lens' CreateAllowList AllowListCriteria+createAllowList_criteria = Lens.lens (\CreateAllowList' {criteria} -> criteria) (\s@CreateAllowList' {} a -> s {criteria = a} :: CreateAllowList)++-- | A unique, case-sensitive token that you provide to ensure the+-- idempotency of the request.+createAllowList_clientToken :: Lens.Lens' CreateAllowList Prelude.Text+createAllowList_clientToken = Lens.lens (\CreateAllowList' {clientToken} -> clientToken) (\s@CreateAllowList' {} a -> s {clientToken = a} :: CreateAllowList)++-- | A custom name for the allow list. The name can contain as many as 128+-- characters.+createAllowList_name :: Lens.Lens' CreateAllowList Prelude.Text+createAllowList_name = Lens.lens (\CreateAllowList' {name} -> name) (\s@CreateAllowList' {} a -> s {name = a} :: CreateAllowList)++instance Core.AWSRequest CreateAllowList where+  type+    AWSResponse CreateAllowList =+      CreateAllowListResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateAllowListResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "id")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateAllowList where+  hashWithSalt _salt CreateAllowList' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` criteria+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` name++instance Prelude.NFData CreateAllowList where+  rnf CreateAllowList' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf criteria+      `Prelude.seq` Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders CreateAllowList where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateAllowList where+  toJSON CreateAllowList' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("criteria" Data..= criteria),+            Prelude.Just ("clientToken" Data..= clientToken),+            Prelude.Just ("name" Data..= name)+          ]+      )++instance Data.ToPath CreateAllowList where+  toPath = Prelude.const "/allow-lists"++instance Data.ToQuery CreateAllowList where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateAllowListResponse' smart constructor.+data CreateAllowListResponse = CreateAllowListResponse'+  { -- | The Amazon Resource Name (ARN) of the allow list.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the allow list.+    id :: 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 'CreateAllowListResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createAllowListResponse_arn' - The Amazon Resource Name (ARN) of the allow list.+--+-- 'id', 'createAllowListResponse_id' - The unique identifier for the allow list.+--+-- 'httpStatus', 'createAllowListResponse_httpStatus' - The response's http status code.+newCreateAllowListResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateAllowListResponse+newCreateAllowListResponse pHttpStatus_ =+  CreateAllowListResponse'+    { arn = Prelude.Nothing,+      id = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the allow list.+createAllowListResponse_arn :: Lens.Lens' CreateAllowListResponse (Prelude.Maybe Prelude.Text)+createAllowListResponse_arn = Lens.lens (\CreateAllowListResponse' {arn} -> arn) (\s@CreateAllowListResponse' {} a -> s {arn = a} :: CreateAllowListResponse)++-- | The unique identifier for the allow list.+createAllowListResponse_id :: Lens.Lens' CreateAllowListResponse (Prelude.Maybe Prelude.Text)+createAllowListResponse_id = Lens.lens (\CreateAllowListResponse' {id} -> id) (\s@CreateAllowListResponse' {} a -> s {id = a} :: CreateAllowListResponse)++-- | The response's http status code.+createAllowListResponse_httpStatus :: Lens.Lens' CreateAllowListResponse Prelude.Int+createAllowListResponse_httpStatus = Lens.lens (\CreateAllowListResponse' {httpStatus} -> httpStatus) (\s@CreateAllowListResponse' {} a -> s {httpStatus = a} :: CreateAllowListResponse)++instance Prelude.NFData CreateAllowListResponse where+  rnf CreateAllowListResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/CreateClassificationJob.hs view
@@ -0,0 +1,537 @@+{-# 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.MacieV2.CreateClassificationJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates and defines the settings for a classification job.+module Amazonka.MacieV2.CreateClassificationJob+  ( -- * Creating a Request+    CreateClassificationJob (..),+    newCreateClassificationJob,++    -- * Request Lenses+    createClassificationJob_allowListIds,+    createClassificationJob_customDataIdentifierIds,+    createClassificationJob_description,+    createClassificationJob_initialRun,+    createClassificationJob_managedDataIdentifierIds,+    createClassificationJob_managedDataIdentifierSelector,+    createClassificationJob_samplingPercentage,+    createClassificationJob_scheduleFrequency,+    createClassificationJob_tags,+    createClassificationJob_s3JobDefinition,+    createClassificationJob_jobType,+    createClassificationJob_clientToken,+    createClassificationJob_name,++    -- * Destructuring the Response+    CreateClassificationJobResponse (..),+    newCreateClassificationJobResponse,++    -- * Response Lenses+    createClassificationJobResponse_jobArn,+    createClassificationJobResponse_jobId,+    createClassificationJobResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateClassificationJob' smart constructor.+data CreateClassificationJob = CreateClassificationJob'+  { -- | An array of unique identifiers, one for each allow list for the job to+    -- use when it analyzes data.+    allowListIds :: Prelude.Maybe [Prelude.Text],+    -- | An array of unique identifiers, one for each custom data identifier for+    -- the job to use when it analyzes data. To use only managed data+    -- identifiers, don\'t specify a value for this property and specify a+    -- value other than NONE for the managedDataIdentifierSelector property.+    customDataIdentifierIds :: Prelude.Maybe [Prelude.Text],+    -- | A custom description of the job. The description can contain as many as+    -- 200 characters.+    description :: Prelude.Maybe Prelude.Text,+    -- | For a recurring job, specifies whether to analyze all existing, eligible+    -- objects immediately after the job is created (true). To analyze only+    -- those objects that are created or changed after you create the job and+    -- before the job\'s first scheduled run, set this value to false.+    --+    -- If you configure the job to run only once, don\'t specify a value for+    -- this property.+    initialRun :: Prelude.Maybe Prelude.Bool,+    -- | An array of unique identifiers, one for each managed data identifier for+    -- the job to include (use) or exclude (not use) when it analyzes data.+    -- Inclusion or exclusion depends on the managed data identifier selection+    -- type that you specify for the job (managedDataIdentifierSelector).+    --+    -- To retrieve a list of valid values for this property, use the+    -- ListManagedDataIdentifiers operation.+    managedDataIdentifierIds :: Prelude.Maybe [Prelude.Text],+    -- | The selection type to apply when determining which managed data+    -- identifiers the job uses to analyze data. Valid values are:+    --+    -- -   ALL - Use all the managed data identifiers that Amazon Macie+    --     provides. If you specify this value, don\'t specify any values for+    --     the managedDataIdentifierIds property.+    --+    -- -   EXCLUDE - Use all the managed data identifiers that Macie provides+    --     except the managed data identifiers specified by the+    --     managedDataIdentifierIds property.+    --+    -- -   INCLUDE - Use only the managed data identifiers specified by the+    --     managedDataIdentifierIds property.+    --+    -- -   NONE - Don\'t use any managed data identifiers. If you specify this+    --     value, specify at least one custom data identifier for the job+    --     (customDataIdentifierIds) and don\'t specify any values for the+    --     managedDataIdentifierIds property.+    --+    -- If you don\'t specify a value for this property, the job uses all+    -- managed data identifiers. If you don\'t specify a value for this+    -- property or you specify ALL or EXCLUDE for a recurring job, the job also+    -- uses new managed data identifiers as they are released.+    managedDataIdentifierSelector :: Prelude.Maybe ManagedDataIdentifierSelector,+    -- | The sampling depth, as a percentage, for the job to apply when+    -- processing objects. This value determines the percentage of eligible+    -- objects that the job analyzes. If this value is less than 100, Amazon+    -- Macie selects the objects to analyze at random, up to the specified+    -- percentage, and analyzes all the data in those objects.+    samplingPercentage :: Prelude.Maybe Prelude.Int,+    -- | The recurrence pattern for running the job. To run the job only once,+    -- don\'t specify a value for this property and set the value for the+    -- jobType property to ONE_TIME.+    scheduleFrequency :: Prelude.Maybe JobScheduleFrequency,+    -- | A map of key-value pairs that specifies the tags to associate with the+    -- job.+    --+    -- A job can have a maximum of 50 tags. Each tag consists of a tag key and+    -- an associated tag value. The maximum length of a tag key is 128+    -- characters. The maximum length of a tag value is 256 characters.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The S3 buckets that contain the objects to analyze, and the scope of+    -- that analysis.+    s3JobDefinition :: S3JobDefinition,+    -- | The schedule for running the job. Valid values are:+    --+    -- -   ONE_TIME - Run the job only once. If you specify this value, don\'t+    --     specify a value for the scheduleFrequency property.+    --+    -- -   SCHEDULED - Run the job on a daily, weekly, or monthly basis. If you+    --     specify this value, use the scheduleFrequency property to define the+    --     recurrence pattern for the job.+    jobType :: JobType,+    -- | A unique, case-sensitive token that you provide to ensure the+    -- idempotency of the request.+    clientToken :: Prelude.Text,+    -- | A custom name for the job. The name can contain as many as 500+    -- characters.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateClassificationJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'allowListIds', 'createClassificationJob_allowListIds' - An array of unique identifiers, one for each allow list for the job to+-- use when it analyzes data.+--+-- 'customDataIdentifierIds', 'createClassificationJob_customDataIdentifierIds' - An array of unique identifiers, one for each custom data identifier for+-- the job to use when it analyzes data. To use only managed data+-- identifiers, don\'t specify a value for this property and specify a+-- value other than NONE for the managedDataIdentifierSelector property.+--+-- 'description', 'createClassificationJob_description' - A custom description of the job. The description can contain as many as+-- 200 characters.+--+-- 'initialRun', 'createClassificationJob_initialRun' - For a recurring job, specifies whether to analyze all existing, eligible+-- objects immediately after the job is created (true). To analyze only+-- those objects that are created or changed after you create the job and+-- before the job\'s first scheduled run, set this value to false.+--+-- If you configure the job to run only once, don\'t specify a value for+-- this property.+--+-- 'managedDataIdentifierIds', 'createClassificationJob_managedDataIdentifierIds' - An array of unique identifiers, one for each managed data identifier for+-- the job to include (use) or exclude (not use) when it analyzes data.+-- Inclusion or exclusion depends on the managed data identifier selection+-- type that you specify for the job (managedDataIdentifierSelector).+--+-- To retrieve a list of valid values for this property, use the+-- ListManagedDataIdentifiers operation.+--+-- 'managedDataIdentifierSelector', 'createClassificationJob_managedDataIdentifierSelector' - The selection type to apply when determining which managed data+-- identifiers the job uses to analyze data. Valid values are:+--+-- -   ALL - Use all the managed data identifiers that Amazon Macie+--     provides. If you specify this value, don\'t specify any values for+--     the managedDataIdentifierIds property.+--+-- -   EXCLUDE - Use all the managed data identifiers that Macie provides+--     except the managed data identifiers specified by the+--     managedDataIdentifierIds property.+--+-- -   INCLUDE - Use only the managed data identifiers specified by the+--     managedDataIdentifierIds property.+--+-- -   NONE - Don\'t use any managed data identifiers. If you specify this+--     value, specify at least one custom data identifier for the job+--     (customDataIdentifierIds) and don\'t specify any values for the+--     managedDataIdentifierIds property.+--+-- If you don\'t specify a value for this property, the job uses all+-- managed data identifiers. If you don\'t specify a value for this+-- property or you specify ALL or EXCLUDE for a recurring job, the job also+-- uses new managed data identifiers as they are released.+--+-- 'samplingPercentage', 'createClassificationJob_samplingPercentage' - The sampling depth, as a percentage, for the job to apply when+-- processing objects. This value determines the percentage of eligible+-- objects that the job analyzes. If this value is less than 100, Amazon+-- Macie selects the objects to analyze at random, up to the specified+-- percentage, and analyzes all the data in those objects.+--+-- 'scheduleFrequency', 'createClassificationJob_scheduleFrequency' - The recurrence pattern for running the job. To run the job only once,+-- don\'t specify a value for this property and set the value for the+-- jobType property to ONE_TIME.+--+-- 'tags', 'createClassificationJob_tags' - A map of key-value pairs that specifies the tags to associate with the+-- job.+--+-- A job can have a maximum of 50 tags. Each tag consists of a tag key and+-- an associated tag value. The maximum length of a tag key is 128+-- characters. The maximum length of a tag value is 256 characters.+--+-- 's3JobDefinition', 'createClassificationJob_s3JobDefinition' - The S3 buckets that contain the objects to analyze, and the scope of+-- that analysis.+--+-- 'jobType', 'createClassificationJob_jobType' - The schedule for running the job. Valid values are:+--+-- -   ONE_TIME - Run the job only once. If you specify this value, don\'t+--     specify a value for the scheduleFrequency property.+--+-- -   SCHEDULED - Run the job on a daily, weekly, or monthly basis. If you+--     specify this value, use the scheduleFrequency property to define the+--     recurrence pattern for the job.+--+-- 'clientToken', 'createClassificationJob_clientToken' - A unique, case-sensitive token that you provide to ensure the+-- idempotency of the request.+--+-- 'name', 'createClassificationJob_name' - A custom name for the job. The name can contain as many as 500+-- characters.+newCreateClassificationJob ::+  -- | 's3JobDefinition'+  S3JobDefinition ->+  -- | 'jobType'+  JobType ->+  -- | 'clientToken'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  CreateClassificationJob+newCreateClassificationJob+  pS3JobDefinition_+  pJobType_+  pClientToken_+  pName_ =+    CreateClassificationJob'+      { allowListIds =+          Prelude.Nothing,+        customDataIdentifierIds = Prelude.Nothing,+        description = Prelude.Nothing,+        initialRun = Prelude.Nothing,+        managedDataIdentifierIds = Prelude.Nothing,+        managedDataIdentifierSelector = Prelude.Nothing,+        samplingPercentage = Prelude.Nothing,+        scheduleFrequency = Prelude.Nothing,+        tags = Prelude.Nothing,+        s3JobDefinition = pS3JobDefinition_,+        jobType = pJobType_,+        clientToken = pClientToken_,+        name = pName_+      }++-- | An array of unique identifiers, one for each allow list for the job to+-- use when it analyzes data.+createClassificationJob_allowListIds :: Lens.Lens' CreateClassificationJob (Prelude.Maybe [Prelude.Text])+createClassificationJob_allowListIds = Lens.lens (\CreateClassificationJob' {allowListIds} -> allowListIds) (\s@CreateClassificationJob' {} a -> s {allowListIds = a} :: CreateClassificationJob) Prelude.. Lens.mapping Lens.coerced++-- | An array of unique identifiers, one for each custom data identifier for+-- the job to use when it analyzes data. To use only managed data+-- identifiers, don\'t specify a value for this property and specify a+-- value other than NONE for the managedDataIdentifierSelector property.+createClassificationJob_customDataIdentifierIds :: Lens.Lens' CreateClassificationJob (Prelude.Maybe [Prelude.Text])+createClassificationJob_customDataIdentifierIds = Lens.lens (\CreateClassificationJob' {customDataIdentifierIds} -> customDataIdentifierIds) (\s@CreateClassificationJob' {} a -> s {customDataIdentifierIds = a} :: CreateClassificationJob) Prelude.. Lens.mapping Lens.coerced++-- | A custom description of the job. The description can contain as many as+-- 200 characters.+createClassificationJob_description :: Lens.Lens' CreateClassificationJob (Prelude.Maybe Prelude.Text)+createClassificationJob_description = Lens.lens (\CreateClassificationJob' {description} -> description) (\s@CreateClassificationJob' {} a -> s {description = a} :: CreateClassificationJob)++-- | For a recurring job, specifies whether to analyze all existing, eligible+-- objects immediately after the job is created (true). To analyze only+-- those objects that are created or changed after you create the job and+-- before the job\'s first scheduled run, set this value to false.+--+-- If you configure the job to run only once, don\'t specify a value for+-- this property.+createClassificationJob_initialRun :: Lens.Lens' CreateClassificationJob (Prelude.Maybe Prelude.Bool)+createClassificationJob_initialRun = Lens.lens (\CreateClassificationJob' {initialRun} -> initialRun) (\s@CreateClassificationJob' {} a -> s {initialRun = a} :: CreateClassificationJob)++-- | An array of unique identifiers, one for each managed data identifier for+-- the job to include (use) or exclude (not use) when it analyzes data.+-- Inclusion or exclusion depends on the managed data identifier selection+-- type that you specify for the job (managedDataIdentifierSelector).+--+-- To retrieve a list of valid values for this property, use the+-- ListManagedDataIdentifiers operation.+createClassificationJob_managedDataIdentifierIds :: Lens.Lens' CreateClassificationJob (Prelude.Maybe [Prelude.Text])+createClassificationJob_managedDataIdentifierIds = Lens.lens (\CreateClassificationJob' {managedDataIdentifierIds} -> managedDataIdentifierIds) (\s@CreateClassificationJob' {} a -> s {managedDataIdentifierIds = a} :: CreateClassificationJob) Prelude.. Lens.mapping Lens.coerced++-- | The selection type to apply when determining which managed data+-- identifiers the job uses to analyze data. Valid values are:+--+-- -   ALL - Use all the managed data identifiers that Amazon Macie+--     provides. If you specify this value, don\'t specify any values for+--     the managedDataIdentifierIds property.+--+-- -   EXCLUDE - Use all the managed data identifiers that Macie provides+--     except the managed data identifiers specified by the+--     managedDataIdentifierIds property.+--+-- -   INCLUDE - Use only the managed data identifiers specified by the+--     managedDataIdentifierIds property.+--+-- -   NONE - Don\'t use any managed data identifiers. If you specify this+--     value, specify at least one custom data identifier for the job+--     (customDataIdentifierIds) and don\'t specify any values for the+--     managedDataIdentifierIds property.+--+-- If you don\'t specify a value for this property, the job uses all+-- managed data identifiers. If you don\'t specify a value for this+-- property or you specify ALL or EXCLUDE for a recurring job, the job also+-- uses new managed data identifiers as they are released.+createClassificationJob_managedDataIdentifierSelector :: Lens.Lens' CreateClassificationJob (Prelude.Maybe ManagedDataIdentifierSelector)+createClassificationJob_managedDataIdentifierSelector = Lens.lens (\CreateClassificationJob' {managedDataIdentifierSelector} -> managedDataIdentifierSelector) (\s@CreateClassificationJob' {} a -> s {managedDataIdentifierSelector = a} :: CreateClassificationJob)++-- | The sampling depth, as a percentage, for the job to apply when+-- processing objects. This value determines the percentage of eligible+-- objects that the job analyzes. If this value is less than 100, Amazon+-- Macie selects the objects to analyze at random, up to the specified+-- percentage, and analyzes all the data in those objects.+createClassificationJob_samplingPercentage :: Lens.Lens' CreateClassificationJob (Prelude.Maybe Prelude.Int)+createClassificationJob_samplingPercentage = Lens.lens (\CreateClassificationJob' {samplingPercentage} -> samplingPercentage) (\s@CreateClassificationJob' {} a -> s {samplingPercentage = a} :: CreateClassificationJob)++-- | The recurrence pattern for running the job. To run the job only once,+-- don\'t specify a value for this property and set the value for the+-- jobType property to ONE_TIME.+createClassificationJob_scheduleFrequency :: Lens.Lens' CreateClassificationJob (Prelude.Maybe JobScheduleFrequency)+createClassificationJob_scheduleFrequency = Lens.lens (\CreateClassificationJob' {scheduleFrequency} -> scheduleFrequency) (\s@CreateClassificationJob' {} a -> s {scheduleFrequency = a} :: CreateClassificationJob)++-- | A map of key-value pairs that specifies the tags to associate with the+-- job.+--+-- A job can have a maximum of 50 tags. Each tag consists of a tag key and+-- an associated tag value. The maximum length of a tag key is 128+-- characters. The maximum length of a tag value is 256 characters.+createClassificationJob_tags :: Lens.Lens' CreateClassificationJob (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createClassificationJob_tags = Lens.lens (\CreateClassificationJob' {tags} -> tags) (\s@CreateClassificationJob' {} a -> s {tags = a} :: CreateClassificationJob) Prelude.. Lens.mapping Lens.coerced++-- | The S3 buckets that contain the objects to analyze, and the scope of+-- that analysis.+createClassificationJob_s3JobDefinition :: Lens.Lens' CreateClassificationJob S3JobDefinition+createClassificationJob_s3JobDefinition = Lens.lens (\CreateClassificationJob' {s3JobDefinition} -> s3JobDefinition) (\s@CreateClassificationJob' {} a -> s {s3JobDefinition = a} :: CreateClassificationJob)++-- | The schedule for running the job. Valid values are:+--+-- -   ONE_TIME - Run the job only once. If you specify this value, don\'t+--     specify a value for the scheduleFrequency property.+--+-- -   SCHEDULED - Run the job on a daily, weekly, or monthly basis. If you+--     specify this value, use the scheduleFrequency property to define the+--     recurrence pattern for the job.+createClassificationJob_jobType :: Lens.Lens' CreateClassificationJob JobType+createClassificationJob_jobType = Lens.lens (\CreateClassificationJob' {jobType} -> jobType) (\s@CreateClassificationJob' {} a -> s {jobType = a} :: CreateClassificationJob)++-- | A unique, case-sensitive token that you provide to ensure the+-- idempotency of the request.+createClassificationJob_clientToken :: Lens.Lens' CreateClassificationJob Prelude.Text+createClassificationJob_clientToken = Lens.lens (\CreateClassificationJob' {clientToken} -> clientToken) (\s@CreateClassificationJob' {} a -> s {clientToken = a} :: CreateClassificationJob)++-- | A custom name for the job. The name can contain as many as 500+-- characters.+createClassificationJob_name :: Lens.Lens' CreateClassificationJob Prelude.Text+createClassificationJob_name = Lens.lens (\CreateClassificationJob' {name} -> name) (\s@CreateClassificationJob' {} a -> s {name = a} :: CreateClassificationJob)++instance Core.AWSRequest CreateClassificationJob where+  type+    AWSResponse CreateClassificationJob =+      CreateClassificationJobResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateClassificationJobResponse'+            Prelude.<$> (x Data..?> "jobArn")+            Prelude.<*> (x Data..?> "jobId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateClassificationJob where+  hashWithSalt _salt CreateClassificationJob' {..} =+    _salt+      `Prelude.hashWithSalt` allowListIds+      `Prelude.hashWithSalt` customDataIdentifierIds+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` initialRun+      `Prelude.hashWithSalt` managedDataIdentifierIds+      `Prelude.hashWithSalt` managedDataIdentifierSelector+      `Prelude.hashWithSalt` samplingPercentage+      `Prelude.hashWithSalt` scheduleFrequency+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` s3JobDefinition+      `Prelude.hashWithSalt` jobType+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` name++instance Prelude.NFData CreateClassificationJob where+  rnf CreateClassificationJob' {..} =+    Prelude.rnf allowListIds+      `Prelude.seq` Prelude.rnf customDataIdentifierIds+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf initialRun+      `Prelude.seq` Prelude.rnf managedDataIdentifierIds+      `Prelude.seq` Prelude.rnf managedDataIdentifierSelector+      `Prelude.seq` Prelude.rnf samplingPercentage+      `Prelude.seq` Prelude.rnf scheduleFrequency+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf s3JobDefinition+      `Prelude.seq` Prelude.rnf jobType+      `Prelude.seq` Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders CreateClassificationJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateClassificationJob where+  toJSON CreateClassificationJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("allowListIds" Data..=) Prelude.<$> allowListIds,+            ("customDataIdentifierIds" Data..=)+              Prelude.<$> customDataIdentifierIds,+            ("description" Data..=) Prelude.<$> description,+            ("initialRun" Data..=) Prelude.<$> initialRun,+            ("managedDataIdentifierIds" Data..=)+              Prelude.<$> managedDataIdentifierIds,+            ("managedDataIdentifierSelector" Data..=)+              Prelude.<$> managedDataIdentifierSelector,+            ("samplingPercentage" Data..=)+              Prelude.<$> samplingPercentage,+            ("scheduleFrequency" Data..=)+              Prelude.<$> scheduleFrequency,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just+              ("s3JobDefinition" Data..= s3JobDefinition),+            Prelude.Just ("jobType" Data..= jobType),+            Prelude.Just ("clientToken" Data..= clientToken),+            Prelude.Just ("name" Data..= name)+          ]+      )++instance Data.ToPath CreateClassificationJob where+  toPath = Prelude.const "/jobs"++instance Data.ToQuery CreateClassificationJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateClassificationJobResponse' smart constructor.+data CreateClassificationJobResponse = CreateClassificationJobResponse'+  { -- | The Amazon Resource Name (ARN) of the job.+    jobArn :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the job.+    jobId :: 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 'CreateClassificationJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'jobArn', 'createClassificationJobResponse_jobArn' - The Amazon Resource Name (ARN) of the job.+--+-- 'jobId', 'createClassificationJobResponse_jobId' - The unique identifier for the job.+--+-- 'httpStatus', 'createClassificationJobResponse_httpStatus' - The response's http status code.+newCreateClassificationJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateClassificationJobResponse+newCreateClassificationJobResponse pHttpStatus_ =+  CreateClassificationJobResponse'+    { jobArn =+        Prelude.Nothing,+      jobId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the job.+createClassificationJobResponse_jobArn :: Lens.Lens' CreateClassificationJobResponse (Prelude.Maybe Prelude.Text)+createClassificationJobResponse_jobArn = Lens.lens (\CreateClassificationJobResponse' {jobArn} -> jobArn) (\s@CreateClassificationJobResponse' {} a -> s {jobArn = a} :: CreateClassificationJobResponse)++-- | The unique identifier for the job.+createClassificationJobResponse_jobId :: Lens.Lens' CreateClassificationJobResponse (Prelude.Maybe Prelude.Text)+createClassificationJobResponse_jobId = Lens.lens (\CreateClassificationJobResponse' {jobId} -> jobId) (\s@CreateClassificationJobResponse' {} a -> s {jobId = a} :: CreateClassificationJobResponse)++-- | The response's http status code.+createClassificationJobResponse_httpStatus :: Lens.Lens' CreateClassificationJobResponse Prelude.Int+createClassificationJobResponse_httpStatus = Lens.lens (\CreateClassificationJobResponse' {httpStatus} -> httpStatus) (\s@CreateClassificationJobResponse' {} a -> s {httpStatus = a} :: CreateClassificationJobResponse)++instance+  Prelude.NFData+    CreateClassificationJobResponse+  where+  rnf CreateClassificationJobResponse' {..} =+    Prelude.rnf jobArn+      `Prelude.seq` Prelude.rnf jobId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/CreateCustomDataIdentifier.hs view
@@ -0,0 +1,420 @@+{-# 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.MacieV2.CreateCustomDataIdentifier+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates and defines the criteria and other settings for a custom data+-- identifier.+module Amazonka.MacieV2.CreateCustomDataIdentifier+  ( -- * Creating a Request+    CreateCustomDataIdentifier (..),+    newCreateCustomDataIdentifier,++    -- * Request Lenses+    createCustomDataIdentifier_clientToken,+    createCustomDataIdentifier_description,+    createCustomDataIdentifier_ignoreWords,+    createCustomDataIdentifier_keywords,+    createCustomDataIdentifier_maximumMatchDistance,+    createCustomDataIdentifier_severityLevels,+    createCustomDataIdentifier_tags,+    createCustomDataIdentifier_regex,+    createCustomDataIdentifier_name,++    -- * Destructuring the Response+    CreateCustomDataIdentifierResponse (..),+    newCreateCustomDataIdentifierResponse,++    -- * Response Lenses+    createCustomDataIdentifierResponse_customDataIdentifierId,+    createCustomDataIdentifierResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateCustomDataIdentifier' smart constructor.+data CreateCustomDataIdentifier = CreateCustomDataIdentifier'+  { -- | A unique, case-sensitive token that you provide to ensure the+    -- idempotency of the request.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | A custom description of the custom data identifier. The description can+    -- contain as many as 512 characters.+    --+    -- We strongly recommend that you avoid including any sensitive data in the+    -- description of a custom data identifier. Other users of your account+    -- might be able to see this description, depending on the actions that+    -- they\'re allowed to perform in Amazon Macie.+    description :: Prelude.Maybe Prelude.Text,+    -- | An array that lists specific character sequences (/ignore words/) to+    -- exclude from the results. If the text matched by the regular expression+    -- contains any string in this array, Amazon Macie ignores it. The array+    -- can contain as many as 10 ignore words. Each ignore word can contain+    -- 4-90 UTF-8 characters. Ignore words are case sensitive.+    ignoreWords :: Prelude.Maybe [Prelude.Text],+    -- | An array that lists specific character sequences (/keywords/), one of+    -- which must precede and be within proximity (maximumMatchDistance) of the+    -- regular expression to match. The array can contain as many as 50+    -- keywords. Each keyword can contain 3-90 UTF-8 characters. Keywords+    -- aren\'t case sensitive.+    keywords :: Prelude.Maybe [Prelude.Text],+    -- | The maximum number of characters that can exist between the end of at+    -- least one complete character sequence specified by the keywords array+    -- and the end of the text that matches the regex pattern. If a complete+    -- keyword precedes all the text that matches the pattern and the keyword+    -- is within the specified distance, Amazon Macie includes the result. The+    -- distance can be 1-300 characters. The default value is 50.+    maximumMatchDistance :: Prelude.Maybe Prelude.Int,+    -- | The severity to assign to findings that the custom data identifier+    -- produces, based on the number of occurrences of text that matches the+    -- custom data identifier\'s detection criteria. You can specify as many as+    -- three SeverityLevel objects in this array, one for each severity: LOW,+    -- MEDIUM, or HIGH. If you specify more than one, the occurrences+    -- thresholds must be in ascending order by severity, moving from LOW to+    -- HIGH. For example, 1 for LOW, 50 for MEDIUM, and 100 for HIGH. If an S3+    -- object contains fewer occurrences than the lowest specified threshold,+    -- Amazon Macie doesn\'t create a finding.+    --+    -- If you don\'t specify any values for this array, Macie creates findings+    -- for S3 objects that contain at least one occurrence of text that matches+    -- the detection criteria, and Macie assigns the MEDIUM severity to those+    -- findings.+    severityLevels :: Prelude.Maybe [SeverityLevel],+    -- | A map of key-value pairs that specifies the tags to associate with the+    -- custom data identifier.+    --+    -- A custom data identifier can have a maximum of 50 tags. Each tag+    -- consists of a tag key and an associated tag value. The maximum length of+    -- a tag key is 128 characters. The maximum length of a tag value is 256+    -- characters.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The regular expression (/regex/) that defines the pattern to match. The+    -- expression can contain as many as 512 characters.+    regex :: Prelude.Text,+    -- | A custom name for the custom data identifier. The name can contain as+    -- many as 128 characters.+    --+    -- We strongly recommend that you avoid including any sensitive data in the+    -- name of a custom data identifier. Other users of your account might be+    -- able to see this name, depending on the actions that they\'re allowed to+    -- perform in Amazon Macie.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateCustomDataIdentifier' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createCustomDataIdentifier_clientToken' - A unique, case-sensitive token that you provide to ensure the+-- idempotency of the request.+--+-- 'description', 'createCustomDataIdentifier_description' - A custom description of the custom data identifier. The description can+-- contain as many as 512 characters.+--+-- We strongly recommend that you avoid including any sensitive data in the+-- description of a custom data identifier. Other users of your account+-- might be able to see this description, depending on the actions that+-- they\'re allowed to perform in Amazon Macie.+--+-- 'ignoreWords', 'createCustomDataIdentifier_ignoreWords' - An array that lists specific character sequences (/ignore words/) to+-- exclude from the results. If the text matched by the regular expression+-- contains any string in this array, Amazon Macie ignores it. The array+-- can contain as many as 10 ignore words. Each ignore word can contain+-- 4-90 UTF-8 characters. Ignore words are case sensitive.+--+-- 'keywords', 'createCustomDataIdentifier_keywords' - An array that lists specific character sequences (/keywords/), one of+-- which must precede and be within proximity (maximumMatchDistance) of the+-- regular expression to match. The array can contain as many as 50+-- keywords. Each keyword can contain 3-90 UTF-8 characters. Keywords+-- aren\'t case sensitive.+--+-- 'maximumMatchDistance', 'createCustomDataIdentifier_maximumMatchDistance' - The maximum number of characters that can exist between the end of at+-- least one complete character sequence specified by the keywords array+-- and the end of the text that matches the regex pattern. If a complete+-- keyword precedes all the text that matches the pattern and the keyword+-- is within the specified distance, Amazon Macie includes the result. The+-- distance can be 1-300 characters. The default value is 50.+--+-- 'severityLevels', 'createCustomDataIdentifier_severityLevels' - The severity to assign to findings that the custom data identifier+-- produces, based on the number of occurrences of text that matches the+-- custom data identifier\'s detection criteria. You can specify as many as+-- three SeverityLevel objects in this array, one for each severity: LOW,+-- MEDIUM, or HIGH. If you specify more than one, the occurrences+-- thresholds must be in ascending order by severity, moving from LOW to+-- HIGH. For example, 1 for LOW, 50 for MEDIUM, and 100 for HIGH. If an S3+-- object contains fewer occurrences than the lowest specified threshold,+-- Amazon Macie doesn\'t create a finding.+--+-- If you don\'t specify any values for this array, Macie creates findings+-- for S3 objects that contain at least one occurrence of text that matches+-- the detection criteria, and Macie assigns the MEDIUM severity to those+-- findings.+--+-- 'tags', 'createCustomDataIdentifier_tags' - A map of key-value pairs that specifies the tags to associate with the+-- custom data identifier.+--+-- A custom data identifier can have a maximum of 50 tags. Each tag+-- consists of a tag key and an associated tag value. The maximum length of+-- a tag key is 128 characters. The maximum length of a tag value is 256+-- characters.+--+-- 'regex', 'createCustomDataIdentifier_regex' - The regular expression (/regex/) that defines the pattern to match. The+-- expression can contain as many as 512 characters.+--+-- 'name', 'createCustomDataIdentifier_name' - A custom name for the custom data identifier. The name can contain as+-- many as 128 characters.+--+-- We strongly recommend that you avoid including any sensitive data in the+-- name of a custom data identifier. Other users of your account might be+-- able to see this name, depending on the actions that they\'re allowed to+-- perform in Amazon Macie.+newCreateCustomDataIdentifier ::+  -- | 'regex'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  CreateCustomDataIdentifier+newCreateCustomDataIdentifier pRegex_ pName_ =+  CreateCustomDataIdentifier'+    { clientToken =+        Prelude.Nothing,+      description = Prelude.Nothing,+      ignoreWords = Prelude.Nothing,+      keywords = Prelude.Nothing,+      maximumMatchDistance = Prelude.Nothing,+      severityLevels = Prelude.Nothing,+      tags = Prelude.Nothing,+      regex = pRegex_,+      name = pName_+    }++-- | A unique, case-sensitive token that you provide to ensure the+-- idempotency of the request.+createCustomDataIdentifier_clientToken :: Lens.Lens' CreateCustomDataIdentifier (Prelude.Maybe Prelude.Text)+createCustomDataIdentifier_clientToken = Lens.lens (\CreateCustomDataIdentifier' {clientToken} -> clientToken) (\s@CreateCustomDataIdentifier' {} a -> s {clientToken = a} :: CreateCustomDataIdentifier)++-- | A custom description of the custom data identifier. The description can+-- contain as many as 512 characters.+--+-- We strongly recommend that you avoid including any sensitive data in the+-- description of a custom data identifier. Other users of your account+-- might be able to see this description, depending on the actions that+-- they\'re allowed to perform in Amazon Macie.+createCustomDataIdentifier_description :: Lens.Lens' CreateCustomDataIdentifier (Prelude.Maybe Prelude.Text)+createCustomDataIdentifier_description = Lens.lens (\CreateCustomDataIdentifier' {description} -> description) (\s@CreateCustomDataIdentifier' {} a -> s {description = a} :: CreateCustomDataIdentifier)++-- | An array that lists specific character sequences (/ignore words/) to+-- exclude from the results. If the text matched by the regular expression+-- contains any string in this array, Amazon Macie ignores it. The array+-- can contain as many as 10 ignore words. Each ignore word can contain+-- 4-90 UTF-8 characters. Ignore words are case sensitive.+createCustomDataIdentifier_ignoreWords :: Lens.Lens' CreateCustomDataIdentifier (Prelude.Maybe [Prelude.Text])+createCustomDataIdentifier_ignoreWords = Lens.lens (\CreateCustomDataIdentifier' {ignoreWords} -> ignoreWords) (\s@CreateCustomDataIdentifier' {} a -> s {ignoreWords = a} :: CreateCustomDataIdentifier) Prelude.. Lens.mapping Lens.coerced++-- | An array that lists specific character sequences (/keywords/), one of+-- which must precede and be within proximity (maximumMatchDistance) of the+-- regular expression to match. The array can contain as many as 50+-- keywords. Each keyword can contain 3-90 UTF-8 characters. Keywords+-- aren\'t case sensitive.+createCustomDataIdentifier_keywords :: Lens.Lens' CreateCustomDataIdentifier (Prelude.Maybe [Prelude.Text])+createCustomDataIdentifier_keywords = Lens.lens (\CreateCustomDataIdentifier' {keywords} -> keywords) (\s@CreateCustomDataIdentifier' {} a -> s {keywords = a} :: CreateCustomDataIdentifier) Prelude.. Lens.mapping Lens.coerced++-- | The maximum number of characters that can exist between the end of at+-- least one complete character sequence specified by the keywords array+-- and the end of the text that matches the regex pattern. If a complete+-- keyword precedes all the text that matches the pattern and the keyword+-- is within the specified distance, Amazon Macie includes the result. The+-- distance can be 1-300 characters. The default value is 50.+createCustomDataIdentifier_maximumMatchDistance :: Lens.Lens' CreateCustomDataIdentifier (Prelude.Maybe Prelude.Int)+createCustomDataIdentifier_maximumMatchDistance = Lens.lens (\CreateCustomDataIdentifier' {maximumMatchDistance} -> maximumMatchDistance) (\s@CreateCustomDataIdentifier' {} a -> s {maximumMatchDistance = a} :: CreateCustomDataIdentifier)++-- | The severity to assign to findings that the custom data identifier+-- produces, based on the number of occurrences of text that matches the+-- custom data identifier\'s detection criteria. You can specify as many as+-- three SeverityLevel objects in this array, one for each severity: LOW,+-- MEDIUM, or HIGH. If you specify more than one, the occurrences+-- thresholds must be in ascending order by severity, moving from LOW to+-- HIGH. For example, 1 for LOW, 50 for MEDIUM, and 100 for HIGH. If an S3+-- object contains fewer occurrences than the lowest specified threshold,+-- Amazon Macie doesn\'t create a finding.+--+-- If you don\'t specify any values for this array, Macie creates findings+-- for S3 objects that contain at least one occurrence of text that matches+-- the detection criteria, and Macie assigns the MEDIUM severity to those+-- findings.+createCustomDataIdentifier_severityLevels :: Lens.Lens' CreateCustomDataIdentifier (Prelude.Maybe [SeverityLevel])+createCustomDataIdentifier_severityLevels = Lens.lens (\CreateCustomDataIdentifier' {severityLevels} -> severityLevels) (\s@CreateCustomDataIdentifier' {} a -> s {severityLevels = a} :: CreateCustomDataIdentifier) Prelude.. Lens.mapping Lens.coerced++-- | A map of key-value pairs that specifies the tags to associate with the+-- custom data identifier.+--+-- A custom data identifier can have a maximum of 50 tags. Each tag+-- consists of a tag key and an associated tag value. The maximum length of+-- a tag key is 128 characters. The maximum length of a tag value is 256+-- characters.+createCustomDataIdentifier_tags :: Lens.Lens' CreateCustomDataIdentifier (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createCustomDataIdentifier_tags = Lens.lens (\CreateCustomDataIdentifier' {tags} -> tags) (\s@CreateCustomDataIdentifier' {} a -> s {tags = a} :: CreateCustomDataIdentifier) Prelude.. Lens.mapping Lens.coerced++-- | The regular expression (/regex/) that defines the pattern to match. The+-- expression can contain as many as 512 characters.+createCustomDataIdentifier_regex :: Lens.Lens' CreateCustomDataIdentifier Prelude.Text+createCustomDataIdentifier_regex = Lens.lens (\CreateCustomDataIdentifier' {regex} -> regex) (\s@CreateCustomDataIdentifier' {} a -> s {regex = a} :: CreateCustomDataIdentifier)++-- | A custom name for the custom data identifier. The name can contain as+-- many as 128 characters.+--+-- We strongly recommend that you avoid including any sensitive data in the+-- name of a custom data identifier. Other users of your account might be+-- able to see this name, depending on the actions that they\'re allowed to+-- perform in Amazon Macie.+createCustomDataIdentifier_name :: Lens.Lens' CreateCustomDataIdentifier Prelude.Text+createCustomDataIdentifier_name = Lens.lens (\CreateCustomDataIdentifier' {name} -> name) (\s@CreateCustomDataIdentifier' {} a -> s {name = a} :: CreateCustomDataIdentifier)++instance Core.AWSRequest CreateCustomDataIdentifier where+  type+    AWSResponse CreateCustomDataIdentifier =+      CreateCustomDataIdentifierResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateCustomDataIdentifierResponse'+            Prelude.<$> (x Data..?> "customDataIdentifierId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateCustomDataIdentifier where+  hashWithSalt _salt CreateCustomDataIdentifier' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` ignoreWords+      `Prelude.hashWithSalt` keywords+      `Prelude.hashWithSalt` maximumMatchDistance+      `Prelude.hashWithSalt` severityLevels+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` regex+      `Prelude.hashWithSalt` name++instance Prelude.NFData CreateCustomDataIdentifier where+  rnf CreateCustomDataIdentifier' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf ignoreWords+      `Prelude.seq` Prelude.rnf keywords+      `Prelude.seq` Prelude.rnf maximumMatchDistance+      `Prelude.seq` Prelude.rnf severityLevels+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf regex+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders CreateCustomDataIdentifier where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateCustomDataIdentifier where+  toJSON CreateCustomDataIdentifier' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("clientToken" Data..=) Prelude.<$> clientToken,+            ("description" Data..=) Prelude.<$> description,+            ("ignoreWords" Data..=) Prelude.<$> ignoreWords,+            ("keywords" Data..=) Prelude.<$> keywords,+            ("maximumMatchDistance" Data..=)+              Prelude.<$> maximumMatchDistance,+            ("severityLevels" Data..=)+              Prelude.<$> severityLevels,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("regex" Data..= regex),+            Prelude.Just ("name" Data..= name)+          ]+      )++instance Data.ToPath CreateCustomDataIdentifier where+  toPath = Prelude.const "/custom-data-identifiers"++instance Data.ToQuery CreateCustomDataIdentifier where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateCustomDataIdentifierResponse' smart constructor.+data CreateCustomDataIdentifierResponse = CreateCustomDataIdentifierResponse'+  { -- | The unique identifier for the custom data identifier that was created.+    customDataIdentifierId :: 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 'CreateCustomDataIdentifierResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'customDataIdentifierId', 'createCustomDataIdentifierResponse_customDataIdentifierId' - The unique identifier for the custom data identifier that was created.+--+-- 'httpStatus', 'createCustomDataIdentifierResponse_httpStatus' - The response's http status code.+newCreateCustomDataIdentifierResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateCustomDataIdentifierResponse+newCreateCustomDataIdentifierResponse pHttpStatus_ =+  CreateCustomDataIdentifierResponse'+    { customDataIdentifierId =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier for the custom data identifier that was created.+createCustomDataIdentifierResponse_customDataIdentifierId :: Lens.Lens' CreateCustomDataIdentifierResponse (Prelude.Maybe Prelude.Text)+createCustomDataIdentifierResponse_customDataIdentifierId = Lens.lens (\CreateCustomDataIdentifierResponse' {customDataIdentifierId} -> customDataIdentifierId) (\s@CreateCustomDataIdentifierResponse' {} a -> s {customDataIdentifierId = a} :: CreateCustomDataIdentifierResponse)++-- | The response's http status code.+createCustomDataIdentifierResponse_httpStatus :: Lens.Lens' CreateCustomDataIdentifierResponse Prelude.Int+createCustomDataIdentifierResponse_httpStatus = Lens.lens (\CreateCustomDataIdentifierResponse' {httpStatus} -> httpStatus) (\s@CreateCustomDataIdentifierResponse' {} a -> s {httpStatus = a} :: CreateCustomDataIdentifierResponse)++instance+  Prelude.NFData+    CreateCustomDataIdentifierResponse+  where+  rnf CreateCustomDataIdentifierResponse' {..} =+    Prelude.rnf customDataIdentifierId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/CreateFindingsFilter.hs view
@@ -0,0 +1,341 @@+{-# 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.MacieV2.CreateFindingsFilter+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates and defines the criteria and other settings for a findings+-- filter.+module Amazonka.MacieV2.CreateFindingsFilter+  ( -- * Creating a Request+    CreateFindingsFilter (..),+    newCreateFindingsFilter,++    -- * Request Lenses+    createFindingsFilter_clientToken,+    createFindingsFilter_description,+    createFindingsFilter_position,+    createFindingsFilter_tags,+    createFindingsFilter_action,+    createFindingsFilter_findingCriteria,+    createFindingsFilter_name,++    -- * Destructuring the Response+    CreateFindingsFilterResponse (..),+    newCreateFindingsFilterResponse,++    -- * Response Lenses+    createFindingsFilterResponse_arn,+    createFindingsFilterResponse_id,+    createFindingsFilterResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateFindingsFilter' smart constructor.+data CreateFindingsFilter = CreateFindingsFilter'+  { -- | A unique, case-sensitive token that you provide to ensure the+    -- idempotency of the request.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | A custom description of the filter. The description can contain as many+    -- as 512 characters.+    --+    -- We strongly recommend that you avoid including any sensitive data in the+    -- description of a filter. Other users of your account might be able to+    -- see this description, depending on the actions that they\'re allowed to+    -- perform in Amazon Macie.+    description :: Prelude.Maybe Prelude.Text,+    -- | The position of the filter in the list of saved filters on the Amazon+    -- Macie console. This value also determines the order in which the filter+    -- is applied to findings, relative to other filters that are also applied+    -- to the findings.+    position :: Prelude.Maybe Prelude.Int,+    -- | A map of key-value pairs that specifies the tags to associate with the+    -- filter.+    --+    -- A findings filter can have a maximum of 50 tags. Each tag consists of a+    -- tag key and an associated tag value. The maximum length of a tag key is+    -- 128 characters. The maximum length of a tag value is 256 characters.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The action to perform on findings that match the filter criteria+    -- (findingCriteria). Valid values are: ARCHIVE, suppress (automatically+    -- archive) the findings; and, NOOP, don\'t perform any action on the+    -- findings.+    action :: FindingsFilterAction,+    -- | The criteria to use to filter findings.+    findingCriteria :: FindingCriteria,+    -- | A custom name for the filter. The name must contain at least 3+    -- characters and can contain as many as 64 characters.+    --+    -- We strongly recommend that you avoid including any sensitive data in the+    -- name of a filter. Other users of your account might be able to see this+    -- name, depending on the actions that they\'re allowed to perform in+    -- Amazon Macie.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateFindingsFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createFindingsFilter_clientToken' - A unique, case-sensitive token that you provide to ensure the+-- idempotency of the request.+--+-- 'description', 'createFindingsFilter_description' - A custom description of the filter. The description can contain as many+-- as 512 characters.+--+-- We strongly recommend that you avoid including any sensitive data in the+-- description of a filter. Other users of your account might be able to+-- see this description, depending on the actions that they\'re allowed to+-- perform in Amazon Macie.+--+-- 'position', 'createFindingsFilter_position' - The position of the filter in the list of saved filters on the Amazon+-- Macie console. This value also determines the order in which the filter+-- is applied to findings, relative to other filters that are also applied+-- to the findings.+--+-- 'tags', 'createFindingsFilter_tags' - A map of key-value pairs that specifies the tags to associate with the+-- filter.+--+-- A findings filter can have a maximum of 50 tags. Each tag consists of a+-- tag key and an associated tag value. The maximum length of a tag key is+-- 128 characters. The maximum length of a tag value is 256 characters.+--+-- 'action', 'createFindingsFilter_action' - The action to perform on findings that match the filter criteria+-- (findingCriteria). Valid values are: ARCHIVE, suppress (automatically+-- archive) the findings; and, NOOP, don\'t perform any action on the+-- findings.+--+-- 'findingCriteria', 'createFindingsFilter_findingCriteria' - The criteria to use to filter findings.+--+-- 'name', 'createFindingsFilter_name' - A custom name for the filter. The name must contain at least 3+-- characters and can contain as many as 64 characters.+--+-- We strongly recommend that you avoid including any sensitive data in the+-- name of a filter. Other users of your account might be able to see this+-- name, depending on the actions that they\'re allowed to perform in+-- Amazon Macie.+newCreateFindingsFilter ::+  -- | 'action'+  FindingsFilterAction ->+  -- | 'findingCriteria'+  FindingCriteria ->+  -- | 'name'+  Prelude.Text ->+  CreateFindingsFilter+newCreateFindingsFilter+  pAction_+  pFindingCriteria_+  pName_ =+    CreateFindingsFilter'+      { clientToken =+          Prelude.Nothing,+        description = Prelude.Nothing,+        position = Prelude.Nothing,+        tags = Prelude.Nothing,+        action = pAction_,+        findingCriteria = pFindingCriteria_,+        name = pName_+      }++-- | A unique, case-sensitive token that you provide to ensure the+-- idempotency of the request.+createFindingsFilter_clientToken :: Lens.Lens' CreateFindingsFilter (Prelude.Maybe Prelude.Text)+createFindingsFilter_clientToken = Lens.lens (\CreateFindingsFilter' {clientToken} -> clientToken) (\s@CreateFindingsFilter' {} a -> s {clientToken = a} :: CreateFindingsFilter)++-- | A custom description of the filter. The description can contain as many+-- as 512 characters.+--+-- We strongly recommend that you avoid including any sensitive data in the+-- description of a filter. Other users of your account might be able to+-- see this description, depending on the actions that they\'re allowed to+-- perform in Amazon Macie.+createFindingsFilter_description :: Lens.Lens' CreateFindingsFilter (Prelude.Maybe Prelude.Text)+createFindingsFilter_description = Lens.lens (\CreateFindingsFilter' {description} -> description) (\s@CreateFindingsFilter' {} a -> s {description = a} :: CreateFindingsFilter)++-- | The position of the filter in the list of saved filters on the Amazon+-- Macie console. This value also determines the order in which the filter+-- is applied to findings, relative to other filters that are also applied+-- to the findings.+createFindingsFilter_position :: Lens.Lens' CreateFindingsFilter (Prelude.Maybe Prelude.Int)+createFindingsFilter_position = Lens.lens (\CreateFindingsFilter' {position} -> position) (\s@CreateFindingsFilter' {} a -> s {position = a} :: CreateFindingsFilter)++-- | A map of key-value pairs that specifies the tags to associate with the+-- filter.+--+-- A findings filter can have a maximum of 50 tags. Each tag consists of a+-- tag key and an associated tag value. The maximum length of a tag key is+-- 128 characters. The maximum length of a tag value is 256 characters.+createFindingsFilter_tags :: Lens.Lens' CreateFindingsFilter (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createFindingsFilter_tags = Lens.lens (\CreateFindingsFilter' {tags} -> tags) (\s@CreateFindingsFilter' {} a -> s {tags = a} :: CreateFindingsFilter) Prelude.. Lens.mapping Lens.coerced++-- | The action to perform on findings that match the filter criteria+-- (findingCriteria). Valid values are: ARCHIVE, suppress (automatically+-- archive) the findings; and, NOOP, don\'t perform any action on the+-- findings.+createFindingsFilter_action :: Lens.Lens' CreateFindingsFilter FindingsFilterAction+createFindingsFilter_action = Lens.lens (\CreateFindingsFilter' {action} -> action) (\s@CreateFindingsFilter' {} a -> s {action = a} :: CreateFindingsFilter)++-- | The criteria to use to filter findings.+createFindingsFilter_findingCriteria :: Lens.Lens' CreateFindingsFilter FindingCriteria+createFindingsFilter_findingCriteria = Lens.lens (\CreateFindingsFilter' {findingCriteria} -> findingCriteria) (\s@CreateFindingsFilter' {} a -> s {findingCriteria = a} :: CreateFindingsFilter)++-- | A custom name for the filter. The name must contain at least 3+-- characters and can contain as many as 64 characters.+--+-- We strongly recommend that you avoid including any sensitive data in the+-- name of a filter. Other users of your account might be able to see this+-- name, depending on the actions that they\'re allowed to perform in+-- Amazon Macie.+createFindingsFilter_name :: Lens.Lens' CreateFindingsFilter Prelude.Text+createFindingsFilter_name = Lens.lens (\CreateFindingsFilter' {name} -> name) (\s@CreateFindingsFilter' {} a -> s {name = a} :: CreateFindingsFilter)++instance Core.AWSRequest CreateFindingsFilter where+  type+    AWSResponse CreateFindingsFilter =+      CreateFindingsFilterResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateFindingsFilterResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "id")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateFindingsFilter where+  hashWithSalt _salt CreateFindingsFilter' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` position+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` action+      `Prelude.hashWithSalt` findingCriteria+      `Prelude.hashWithSalt` name++instance Prelude.NFData CreateFindingsFilter where+  rnf CreateFindingsFilter' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf position+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf action+      `Prelude.seq` Prelude.rnf findingCriteria+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders CreateFindingsFilter where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateFindingsFilter where+  toJSON CreateFindingsFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("clientToken" Data..=) Prelude.<$> clientToken,+            ("description" Data..=) Prelude.<$> description,+            ("position" Data..=) Prelude.<$> position,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("action" Data..= action),+            Prelude.Just+              ("findingCriteria" Data..= findingCriteria),+            Prelude.Just ("name" Data..= name)+          ]+      )++instance Data.ToPath CreateFindingsFilter where+  toPath = Prelude.const "/findingsfilters"++instance Data.ToQuery CreateFindingsFilter where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateFindingsFilterResponse' smart constructor.+data CreateFindingsFilterResponse = CreateFindingsFilterResponse'+  { -- | The Amazon Resource Name (ARN) of the filter that was created.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the filter that was created.+    id :: 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 'CreateFindingsFilterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createFindingsFilterResponse_arn' - The Amazon Resource Name (ARN) of the filter that was created.+--+-- 'id', 'createFindingsFilterResponse_id' - The unique identifier for the filter that was created.+--+-- 'httpStatus', 'createFindingsFilterResponse_httpStatus' - The response's http status code.+newCreateFindingsFilterResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateFindingsFilterResponse+newCreateFindingsFilterResponse pHttpStatus_ =+  CreateFindingsFilterResponse'+    { arn =+        Prelude.Nothing,+      id = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the filter that was created.+createFindingsFilterResponse_arn :: Lens.Lens' CreateFindingsFilterResponse (Prelude.Maybe Prelude.Text)+createFindingsFilterResponse_arn = Lens.lens (\CreateFindingsFilterResponse' {arn} -> arn) (\s@CreateFindingsFilterResponse' {} a -> s {arn = a} :: CreateFindingsFilterResponse)++-- | The unique identifier for the filter that was created.+createFindingsFilterResponse_id :: Lens.Lens' CreateFindingsFilterResponse (Prelude.Maybe Prelude.Text)+createFindingsFilterResponse_id = Lens.lens (\CreateFindingsFilterResponse' {id} -> id) (\s@CreateFindingsFilterResponse' {} a -> s {id = a} :: CreateFindingsFilterResponse)++-- | The response's http status code.+createFindingsFilterResponse_httpStatus :: Lens.Lens' CreateFindingsFilterResponse Prelude.Int+createFindingsFilterResponse_httpStatus = Lens.lens (\CreateFindingsFilterResponse' {httpStatus} -> httpStatus) (\s@CreateFindingsFilterResponse' {} a -> s {httpStatus = a} :: CreateFindingsFilterResponse)++instance Prelude.NFData CreateFindingsFilterResponse where+  rnf CreateFindingsFilterResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/CreateInvitations.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.MacieV2.CreateInvitations+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Sends an Amazon Macie membership invitation to one or more accounts.+module Amazonka.MacieV2.CreateInvitations+  ( -- * Creating a Request+    CreateInvitations (..),+    newCreateInvitations,++    -- * Request Lenses+    createInvitations_disableEmailNotification,+    createInvitations_message,+    createInvitations_accountIds,++    -- * Destructuring the Response+    CreateInvitationsResponse (..),+    newCreateInvitationsResponse,++    -- * Response Lenses+    createInvitationsResponse_unprocessedAccounts,+    createInvitationsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateInvitations' smart constructor.+data CreateInvitations = CreateInvitations'+  { -- | Specifies whether to send the invitation as an email message. If this+    -- value is false, Amazon Macie sends the invitation (as an email message)+    -- to the email address that you specified for the recipient\'s account+    -- when you associated the account with your account. The default value is+    -- false.+    disableEmailNotification :: Prelude.Maybe Prelude.Bool,+    -- | Custom text to include in the email message that contains the+    -- invitation. The text can contain as many as 80 alphanumeric characters.+    message :: Prelude.Maybe Prelude.Text,+    -- | An array that lists Amazon Web Services account IDs, one for each+    -- account to send the invitation to.+    accountIds :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateInvitations' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'disableEmailNotification', 'createInvitations_disableEmailNotification' - Specifies whether to send the invitation as an email message. If this+-- value is false, Amazon Macie sends the invitation (as an email message)+-- to the email address that you specified for the recipient\'s account+-- when you associated the account with your account. The default value is+-- false.+--+-- 'message', 'createInvitations_message' - Custom text to include in the email message that contains the+-- invitation. The text can contain as many as 80 alphanumeric characters.+--+-- 'accountIds', 'createInvitations_accountIds' - An array that lists Amazon Web Services account IDs, one for each+-- account to send the invitation to.+newCreateInvitations ::+  CreateInvitations+newCreateInvitations =+  CreateInvitations'+    { disableEmailNotification =+        Prelude.Nothing,+      message = Prelude.Nothing,+      accountIds = Prelude.mempty+    }++-- | Specifies whether to send the invitation as an email message. If this+-- value is false, Amazon Macie sends the invitation (as an email message)+-- to the email address that you specified for the recipient\'s account+-- when you associated the account with your account. The default value is+-- false.+createInvitations_disableEmailNotification :: Lens.Lens' CreateInvitations (Prelude.Maybe Prelude.Bool)+createInvitations_disableEmailNotification = Lens.lens (\CreateInvitations' {disableEmailNotification} -> disableEmailNotification) (\s@CreateInvitations' {} a -> s {disableEmailNotification = a} :: CreateInvitations)++-- | Custom text to include in the email message that contains the+-- invitation. The text can contain as many as 80 alphanumeric characters.+createInvitations_message :: Lens.Lens' CreateInvitations (Prelude.Maybe Prelude.Text)+createInvitations_message = Lens.lens (\CreateInvitations' {message} -> message) (\s@CreateInvitations' {} a -> s {message = a} :: CreateInvitations)++-- | An array that lists Amazon Web Services account IDs, one for each+-- account to send the invitation to.+createInvitations_accountIds :: Lens.Lens' CreateInvitations [Prelude.Text]+createInvitations_accountIds = Lens.lens (\CreateInvitations' {accountIds} -> accountIds) (\s@CreateInvitations' {} a -> s {accountIds = a} :: CreateInvitations) Prelude.. Lens.coerced++instance Core.AWSRequest CreateInvitations where+  type+    AWSResponse CreateInvitations =+      CreateInvitationsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateInvitationsResponse'+            Prelude.<$> ( x+                            Data..?> "unprocessedAccounts"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateInvitations where+  hashWithSalt _salt CreateInvitations' {..} =+    _salt+      `Prelude.hashWithSalt` disableEmailNotification+      `Prelude.hashWithSalt` message+      `Prelude.hashWithSalt` accountIds++instance Prelude.NFData CreateInvitations where+  rnf CreateInvitations' {..} =+    Prelude.rnf disableEmailNotification+      `Prelude.seq` Prelude.rnf message+      `Prelude.seq` Prelude.rnf accountIds++instance Data.ToHeaders CreateInvitations where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateInvitations where+  toJSON CreateInvitations' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("disableEmailNotification" Data..=)+              Prelude.<$> disableEmailNotification,+            ("message" Data..=) Prelude.<$> message,+            Prelude.Just ("accountIds" Data..= accountIds)+          ]+      )++instance Data.ToPath CreateInvitations where+  toPath = Prelude.const "/invitations"++instance Data.ToQuery CreateInvitations where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateInvitationsResponse' smart constructor.+data CreateInvitationsResponse = CreateInvitationsResponse'+  { -- | An array of objects, one for each account whose invitation hasn\'t been+    -- processed. Each object identifies the account and explains why the+    -- invitation hasn\'t been processed for the account.+    unprocessedAccounts :: Prelude.Maybe [UnprocessedAccount],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateInvitationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'unprocessedAccounts', 'createInvitationsResponse_unprocessedAccounts' - An array of objects, one for each account whose invitation hasn\'t been+-- processed. Each object identifies the account and explains why the+-- invitation hasn\'t been processed for the account.+--+-- 'httpStatus', 'createInvitationsResponse_httpStatus' - The response's http status code.+newCreateInvitationsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateInvitationsResponse+newCreateInvitationsResponse pHttpStatus_ =+  CreateInvitationsResponse'+    { unprocessedAccounts =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array of objects, one for each account whose invitation hasn\'t been+-- processed. Each object identifies the account and explains why the+-- invitation hasn\'t been processed for the account.+createInvitationsResponse_unprocessedAccounts :: Lens.Lens' CreateInvitationsResponse (Prelude.Maybe [UnprocessedAccount])+createInvitationsResponse_unprocessedAccounts = Lens.lens (\CreateInvitationsResponse' {unprocessedAccounts} -> unprocessedAccounts) (\s@CreateInvitationsResponse' {} a -> s {unprocessedAccounts = a} :: CreateInvitationsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+createInvitationsResponse_httpStatus :: Lens.Lens' CreateInvitationsResponse Prelude.Int+createInvitationsResponse_httpStatus = Lens.lens (\CreateInvitationsResponse' {httpStatus} -> httpStatus) (\s@CreateInvitationsResponse' {} a -> s {httpStatus = a} :: CreateInvitationsResponse)++instance Prelude.NFData CreateInvitationsResponse where+  rnf CreateInvitationsResponse' {..} =+    Prelude.rnf unprocessedAccounts+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/CreateMember.hs view
@@ -0,0 +1,196 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.CreateMember+-- 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 account with an Amazon Macie administrator account.+module Amazonka.MacieV2.CreateMember+  ( -- * Creating a Request+    CreateMember (..),+    newCreateMember,++    -- * Request Lenses+    createMember_tags,+    createMember_account,++    -- * Destructuring the Response+    CreateMemberResponse (..),+    newCreateMemberResponse,++    -- * Response Lenses+    createMemberResponse_arn,+    createMemberResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateMember' smart constructor.+data CreateMember = CreateMember'+  { -- | A map of key-value pairs that specifies the tags to associate with the+    -- account in Amazon Macie.+    --+    -- An account can have a maximum of 50 tags. Each tag consists of a tag key+    -- and an associated tag value. The maximum length of a tag key is 128+    -- characters. The maximum length of a tag value is 256 characters.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The details of the account to associate with the administrator account.+    account :: AccountDetail+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateMember' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createMember_tags' - A map of key-value pairs that specifies the tags to associate with the+-- account in Amazon Macie.+--+-- An account can have a maximum of 50 tags. Each tag consists of a tag key+-- and an associated tag value. The maximum length of a tag key is 128+-- characters. The maximum length of a tag value is 256 characters.+--+-- 'account', 'createMember_account' - The details of the account to associate with the administrator account.+newCreateMember ::+  -- | 'account'+  AccountDetail ->+  CreateMember+newCreateMember pAccount_ =+  CreateMember'+    { tags = Prelude.Nothing,+      account = pAccount_+    }++-- | A map of key-value pairs that specifies the tags to associate with the+-- account in Amazon Macie.+--+-- An account can have a maximum of 50 tags. Each tag consists of a tag key+-- and an associated tag value. The maximum length of a tag key is 128+-- characters. The maximum length of a tag value is 256 characters.+createMember_tags :: Lens.Lens' CreateMember (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createMember_tags = Lens.lens (\CreateMember' {tags} -> tags) (\s@CreateMember' {} a -> s {tags = a} :: CreateMember) Prelude.. Lens.mapping Lens.coerced++-- | The details of the account to associate with the administrator account.+createMember_account :: Lens.Lens' CreateMember AccountDetail+createMember_account = Lens.lens (\CreateMember' {account} -> account) (\s@CreateMember' {} a -> s {account = a} :: CreateMember)++instance Core.AWSRequest CreateMember where+  type AWSResponse CreateMember = CreateMemberResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateMemberResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateMember where+  hashWithSalt _salt CreateMember' {..} =+    _salt+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` account++instance Prelude.NFData CreateMember where+  rnf CreateMember' {..} =+    Prelude.rnf tags `Prelude.seq` Prelude.rnf account++instance Data.ToHeaders CreateMember where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateMember where+  toJSON CreateMember' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("account" Data..= account)+          ]+      )++instance Data.ToPath CreateMember where+  toPath = Prelude.const "/members"++instance Data.ToQuery CreateMember where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateMemberResponse' smart constructor.+data CreateMemberResponse = CreateMemberResponse'+  { -- | The Amazon Resource Name (ARN) of the account that was associated with+    -- the administrator account.+    arn :: 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 'CreateMemberResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createMemberResponse_arn' - The Amazon Resource Name (ARN) of the account that was associated with+-- the administrator account.+--+-- 'httpStatus', 'createMemberResponse_httpStatus' - The response's http status code.+newCreateMemberResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateMemberResponse+newCreateMemberResponse pHttpStatus_ =+  CreateMemberResponse'+    { arn = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the account that was associated with+-- the administrator account.+createMemberResponse_arn :: Lens.Lens' CreateMemberResponse (Prelude.Maybe Prelude.Text)+createMemberResponse_arn = Lens.lens (\CreateMemberResponse' {arn} -> arn) (\s@CreateMemberResponse' {} a -> s {arn = a} :: CreateMemberResponse)++-- | The response's http status code.+createMemberResponse_httpStatus :: Lens.Lens' CreateMemberResponse Prelude.Int+createMemberResponse_httpStatus = Lens.lens (\CreateMemberResponse' {httpStatus} -> httpStatus) (\s@CreateMemberResponse' {} a -> s {httpStatus = a} :: CreateMemberResponse)++instance Prelude.NFData CreateMemberResponse where+  rnf CreateMemberResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/CreateSampleFindings.hs view
@@ -0,0 +1,160 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.CreateSampleFindings+-- 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 sample findings.+module Amazonka.MacieV2.CreateSampleFindings+  ( -- * Creating a Request+    CreateSampleFindings (..),+    newCreateSampleFindings,++    -- * Request Lenses+    createSampleFindings_findingTypes,++    -- * Destructuring the Response+    CreateSampleFindingsResponse (..),+    newCreateSampleFindingsResponse,++    -- * Response Lenses+    createSampleFindingsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateSampleFindings' smart constructor.+data CreateSampleFindings = CreateSampleFindings'+  { -- | An array of finding types, one for each type of sample finding to+    -- create. To create a sample of every type of finding that Amazon Macie+    -- supports, don\'t include this array in your request.+    findingTypes :: Prelude.Maybe [FindingType]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateSampleFindings' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'findingTypes', 'createSampleFindings_findingTypes' - An array of finding types, one for each type of sample finding to+-- create. To create a sample of every type of finding that Amazon Macie+-- supports, don\'t include this array in your request.+newCreateSampleFindings ::+  CreateSampleFindings+newCreateSampleFindings =+  CreateSampleFindings'+    { findingTypes =+        Prelude.Nothing+    }++-- | An array of finding types, one for each type of sample finding to+-- create. To create a sample of every type of finding that Amazon Macie+-- supports, don\'t include this array in your request.+createSampleFindings_findingTypes :: Lens.Lens' CreateSampleFindings (Prelude.Maybe [FindingType])+createSampleFindings_findingTypes = Lens.lens (\CreateSampleFindings' {findingTypes} -> findingTypes) (\s@CreateSampleFindings' {} a -> s {findingTypes = a} :: CreateSampleFindings) Prelude.. Lens.mapping Lens.coerced++instance Core.AWSRequest CreateSampleFindings where+  type+    AWSResponse CreateSampleFindings =+      CreateSampleFindingsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          CreateSampleFindingsResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateSampleFindings where+  hashWithSalt _salt CreateSampleFindings' {..} =+    _salt `Prelude.hashWithSalt` findingTypes++instance Prelude.NFData CreateSampleFindings where+  rnf CreateSampleFindings' {..} =+    Prelude.rnf findingTypes++instance Data.ToHeaders CreateSampleFindings where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateSampleFindings where+  toJSON CreateSampleFindings' {..} =+    Data.object+      ( Prelude.catMaybes+          [("findingTypes" Data..=) Prelude.<$> findingTypes]+      )++instance Data.ToPath CreateSampleFindings where+  toPath = Prelude.const "/findings/sample"++instance Data.ToQuery CreateSampleFindings where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateSampleFindingsResponse' smart constructor.+data CreateSampleFindingsResponse = CreateSampleFindingsResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateSampleFindingsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createSampleFindingsResponse_httpStatus' - The response's http status code.+newCreateSampleFindingsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateSampleFindingsResponse+newCreateSampleFindingsResponse pHttpStatus_ =+  CreateSampleFindingsResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+createSampleFindingsResponse_httpStatus :: Lens.Lens' CreateSampleFindingsResponse Prelude.Int+createSampleFindingsResponse_httpStatus = Lens.lens (\CreateSampleFindingsResponse' {httpStatus} -> httpStatus) (\s@CreateSampleFindingsResponse' {} a -> s {httpStatus = a} :: CreateSampleFindingsResponse)++instance Prelude.NFData CreateSampleFindingsResponse where+  rnf CreateSampleFindingsResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/DeclineInvitations.hs view
@@ -0,0 +1,175 @@+{-# 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.MacieV2.DeclineInvitations+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Declines Amazon Macie membership invitations that were received from+-- specific accounts.+module Amazonka.MacieV2.DeclineInvitations+  ( -- * Creating a Request+    DeclineInvitations (..),+    newDeclineInvitations,++    -- * Request Lenses+    declineInvitations_accountIds,++    -- * Destructuring the Response+    DeclineInvitationsResponse (..),+    newDeclineInvitationsResponse,++    -- * Response Lenses+    declineInvitationsResponse_unprocessedAccounts,+    declineInvitationsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeclineInvitations' smart constructor.+data DeclineInvitations = DeclineInvitations'+  { -- | An array that lists Amazon Web Services account IDs, one for each+    -- account that sent an invitation to decline.+    accountIds :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeclineInvitations' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountIds', 'declineInvitations_accountIds' - An array that lists Amazon Web Services account IDs, one for each+-- account that sent an invitation to decline.+newDeclineInvitations ::+  DeclineInvitations+newDeclineInvitations =+  DeclineInvitations' {accountIds = Prelude.mempty}++-- | An array that lists Amazon Web Services account IDs, one for each+-- account that sent an invitation to decline.+declineInvitations_accountIds :: Lens.Lens' DeclineInvitations [Prelude.Text]+declineInvitations_accountIds = Lens.lens (\DeclineInvitations' {accountIds} -> accountIds) (\s@DeclineInvitations' {} a -> s {accountIds = a} :: DeclineInvitations) Prelude.. Lens.coerced++instance Core.AWSRequest DeclineInvitations where+  type+    AWSResponse DeclineInvitations =+      DeclineInvitationsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeclineInvitationsResponse'+            Prelude.<$> ( x+                            Data..?> "unprocessedAccounts"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeclineInvitations where+  hashWithSalt _salt DeclineInvitations' {..} =+    _salt `Prelude.hashWithSalt` accountIds++instance Prelude.NFData DeclineInvitations where+  rnf DeclineInvitations' {..} = Prelude.rnf accountIds++instance Data.ToHeaders DeclineInvitations where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeclineInvitations where+  toJSON DeclineInvitations' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("accountIds" Data..= accountIds)]+      )++instance Data.ToPath DeclineInvitations where+  toPath = Prelude.const "/invitations/decline"++instance Data.ToQuery DeclineInvitations where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeclineInvitationsResponse' smart constructor.+data DeclineInvitationsResponse = DeclineInvitationsResponse'+  { -- | An array of objects, one for each account whose invitation hasn\'t been+    -- declined. Each object identifies the account and explains why the+    -- request hasn\'t been processed for that account.+    unprocessedAccounts :: Prelude.Maybe [UnprocessedAccount],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeclineInvitationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'unprocessedAccounts', 'declineInvitationsResponse_unprocessedAccounts' - An array of objects, one for each account whose invitation hasn\'t been+-- declined. Each object identifies the account and explains why the+-- request hasn\'t been processed for that account.+--+-- 'httpStatus', 'declineInvitationsResponse_httpStatus' - The response's http status code.+newDeclineInvitationsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeclineInvitationsResponse+newDeclineInvitationsResponse pHttpStatus_ =+  DeclineInvitationsResponse'+    { unprocessedAccounts =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array of objects, one for each account whose invitation hasn\'t been+-- declined. Each object identifies the account and explains why the+-- request hasn\'t been processed for that account.+declineInvitationsResponse_unprocessedAccounts :: Lens.Lens' DeclineInvitationsResponse (Prelude.Maybe [UnprocessedAccount])+declineInvitationsResponse_unprocessedAccounts = Lens.lens (\DeclineInvitationsResponse' {unprocessedAccounts} -> unprocessedAccounts) (\s@DeclineInvitationsResponse' {} a -> s {unprocessedAccounts = a} :: DeclineInvitationsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+declineInvitationsResponse_httpStatus :: Lens.Lens' DeclineInvitationsResponse Prelude.Int+declineInvitationsResponse_httpStatus = Lens.lens (\DeclineInvitationsResponse' {httpStatus} -> httpStatus) (\s@DeclineInvitationsResponse' {} a -> s {httpStatus = a} :: DeclineInvitationsResponse)++instance Prelude.NFData DeclineInvitationsResponse where+  rnf DeclineInvitationsResponse' {..} =+    Prelude.rnf unprocessedAccounts+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/DeleteAllowList.hs view
@@ -0,0 +1,188 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.DeleteAllowList+-- 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 allow list.+module Amazonka.MacieV2.DeleteAllowList+  ( -- * Creating a Request+    DeleteAllowList (..),+    newDeleteAllowList,++    -- * Request Lenses+    deleteAllowList_ignoreJobChecks,+    deleteAllowList_id,++    -- * Destructuring the Response+    DeleteAllowListResponse (..),+    newDeleteAllowListResponse,++    -- * Response Lenses+    deleteAllowListResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteAllowList' smart constructor.+data DeleteAllowList = DeleteAllowList'+  { -- | Specifies whether to force deletion of the allow list, even if active+    -- classification jobs are configured to use the list.+    --+    -- When you try to delete an allow list, Amazon Macie checks for+    -- classification jobs that use the list and have a status other than+    -- COMPLETE or CANCELLED. By default, Macie rejects your request if any+    -- jobs meet these criteria. To skip these checks and delete the list, set+    -- this value to true. To delete the list only if no active jobs are+    -- configured to use it, set this value to false.+    ignoreJobChecks :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the Amazon Macie resource that the request+    -- applies to.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAllowList' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'ignoreJobChecks', 'deleteAllowList_ignoreJobChecks' - Specifies whether to force deletion of the allow list, even if active+-- classification jobs are configured to use the list.+--+-- When you try to delete an allow list, Amazon Macie checks for+-- classification jobs that use the list and have a status other than+-- COMPLETE or CANCELLED. By default, Macie rejects your request if any+-- jobs meet these criteria. To skip these checks and delete the list, set+-- this value to true. To delete the list only if no active jobs are+-- configured to use it, set this value to false.+--+-- 'id', 'deleteAllowList_id' - The unique identifier for the Amazon Macie resource that the request+-- applies to.+newDeleteAllowList ::+  -- | 'id'+  Prelude.Text ->+  DeleteAllowList+newDeleteAllowList pId_ =+  DeleteAllowList'+    { ignoreJobChecks = Prelude.Nothing,+      id = pId_+    }++-- | Specifies whether to force deletion of the allow list, even if active+-- classification jobs are configured to use the list.+--+-- When you try to delete an allow list, Amazon Macie checks for+-- classification jobs that use the list and have a status other than+-- COMPLETE or CANCELLED. By default, Macie rejects your request if any+-- jobs meet these criteria. To skip these checks and delete the list, set+-- this value to true. To delete the list only if no active jobs are+-- configured to use it, set this value to false.+deleteAllowList_ignoreJobChecks :: Lens.Lens' DeleteAllowList (Prelude.Maybe Prelude.Text)+deleteAllowList_ignoreJobChecks = Lens.lens (\DeleteAllowList' {ignoreJobChecks} -> ignoreJobChecks) (\s@DeleteAllowList' {} a -> s {ignoreJobChecks = a} :: DeleteAllowList)++-- | The unique identifier for the Amazon Macie resource that the request+-- applies to.+deleteAllowList_id :: Lens.Lens' DeleteAllowList Prelude.Text+deleteAllowList_id = Lens.lens (\DeleteAllowList' {id} -> id) (\s@DeleteAllowList' {} a -> s {id = a} :: DeleteAllowList)++instance Core.AWSRequest DeleteAllowList where+  type+    AWSResponse DeleteAllowList =+      DeleteAllowListResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteAllowListResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteAllowList where+  hashWithSalt _salt DeleteAllowList' {..} =+    _salt+      `Prelude.hashWithSalt` ignoreJobChecks+      `Prelude.hashWithSalt` id++instance Prelude.NFData DeleteAllowList where+  rnf DeleteAllowList' {..} =+    Prelude.rnf ignoreJobChecks+      `Prelude.seq` Prelude.rnf id++instance Data.ToHeaders DeleteAllowList where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteAllowList where+  toPath DeleteAllowList' {..} =+    Prelude.mconcat ["/allow-lists/", Data.toBS id]++instance Data.ToQuery DeleteAllowList where+  toQuery DeleteAllowList' {..} =+    Prelude.mconcat+      ["ignoreJobChecks" Data.=: ignoreJobChecks]++-- | /See:/ 'newDeleteAllowListResponse' smart constructor.+data DeleteAllowListResponse = DeleteAllowListResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAllowListResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteAllowListResponse_httpStatus' - The response's http status code.+newDeleteAllowListResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteAllowListResponse+newDeleteAllowListResponse pHttpStatus_ =+  DeleteAllowListResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+deleteAllowListResponse_httpStatus :: Lens.Lens' DeleteAllowListResponse Prelude.Int+deleteAllowListResponse_httpStatus = Lens.lens (\DeleteAllowListResponse' {httpStatus} -> httpStatus) (\s@DeleteAllowListResponse' {} a -> s {httpStatus = a} :: DeleteAllowListResponse)++instance Prelude.NFData DeleteAllowListResponse where+  rnf DeleteAllowListResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/DeleteCustomDataIdentifier.hs view
@@ -0,0 +1,153 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.DeleteCustomDataIdentifier+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Soft deletes a custom data identifier.+module Amazonka.MacieV2.DeleteCustomDataIdentifier+  ( -- * Creating a Request+    DeleteCustomDataIdentifier (..),+    newDeleteCustomDataIdentifier,++    -- * Request Lenses+    deleteCustomDataIdentifier_id,++    -- * Destructuring the Response+    DeleteCustomDataIdentifierResponse (..),+    newDeleteCustomDataIdentifierResponse,++    -- * Response Lenses+    deleteCustomDataIdentifierResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteCustomDataIdentifier' smart constructor.+data DeleteCustomDataIdentifier = DeleteCustomDataIdentifier'+  { -- | The unique identifier for the Amazon Macie resource that the request+    -- applies to.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteCustomDataIdentifier' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteCustomDataIdentifier_id' - The unique identifier for the Amazon Macie resource that the request+-- applies to.+newDeleteCustomDataIdentifier ::+  -- | 'id'+  Prelude.Text ->+  DeleteCustomDataIdentifier+newDeleteCustomDataIdentifier pId_ =+  DeleteCustomDataIdentifier' {id = pId_}++-- | The unique identifier for the Amazon Macie resource that the request+-- applies to.+deleteCustomDataIdentifier_id :: Lens.Lens' DeleteCustomDataIdentifier Prelude.Text+deleteCustomDataIdentifier_id = Lens.lens (\DeleteCustomDataIdentifier' {id} -> id) (\s@DeleteCustomDataIdentifier' {} a -> s {id = a} :: DeleteCustomDataIdentifier)++instance Core.AWSRequest DeleteCustomDataIdentifier where+  type+    AWSResponse DeleteCustomDataIdentifier =+      DeleteCustomDataIdentifierResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteCustomDataIdentifierResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteCustomDataIdentifier where+  hashWithSalt _salt DeleteCustomDataIdentifier' {..} =+    _salt `Prelude.hashWithSalt` id++instance Prelude.NFData DeleteCustomDataIdentifier where+  rnf DeleteCustomDataIdentifier' {..} = Prelude.rnf id++instance Data.ToHeaders DeleteCustomDataIdentifier where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteCustomDataIdentifier where+  toPath DeleteCustomDataIdentifier' {..} =+    Prelude.mconcat+      ["/custom-data-identifiers/", Data.toBS id]++instance Data.ToQuery DeleteCustomDataIdentifier where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteCustomDataIdentifierResponse' smart constructor.+data DeleteCustomDataIdentifierResponse = DeleteCustomDataIdentifierResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteCustomDataIdentifierResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteCustomDataIdentifierResponse_httpStatus' - The response's http status code.+newDeleteCustomDataIdentifierResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteCustomDataIdentifierResponse+newDeleteCustomDataIdentifierResponse pHttpStatus_ =+  DeleteCustomDataIdentifierResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deleteCustomDataIdentifierResponse_httpStatus :: Lens.Lens' DeleteCustomDataIdentifierResponse Prelude.Int+deleteCustomDataIdentifierResponse_httpStatus = Lens.lens (\DeleteCustomDataIdentifierResponse' {httpStatus} -> httpStatus) (\s@DeleteCustomDataIdentifierResponse' {} a -> s {httpStatus = a} :: DeleteCustomDataIdentifierResponse)++instance+  Prelude.NFData+    DeleteCustomDataIdentifierResponse+  where+  rnf DeleteCustomDataIdentifierResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/DeleteFindingsFilter.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.MacieV2.DeleteFindingsFilter+-- 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 findings filter.+module Amazonka.MacieV2.DeleteFindingsFilter+  ( -- * Creating a Request+    DeleteFindingsFilter (..),+    newDeleteFindingsFilter,++    -- * Request Lenses+    deleteFindingsFilter_id,++    -- * Destructuring the Response+    DeleteFindingsFilterResponse (..),+    newDeleteFindingsFilterResponse,++    -- * Response Lenses+    deleteFindingsFilterResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteFindingsFilter' smart constructor.+data DeleteFindingsFilter = DeleteFindingsFilter'+  { -- | The unique identifier for the Amazon Macie resource that the request+    -- applies to.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteFindingsFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteFindingsFilter_id' - The unique identifier for the Amazon Macie resource that the request+-- applies to.+newDeleteFindingsFilter ::+  -- | 'id'+  Prelude.Text ->+  DeleteFindingsFilter+newDeleteFindingsFilter pId_ =+  DeleteFindingsFilter' {id = pId_}++-- | The unique identifier for the Amazon Macie resource that the request+-- applies to.+deleteFindingsFilter_id :: Lens.Lens' DeleteFindingsFilter Prelude.Text+deleteFindingsFilter_id = Lens.lens (\DeleteFindingsFilter' {id} -> id) (\s@DeleteFindingsFilter' {} a -> s {id = a} :: DeleteFindingsFilter)++instance Core.AWSRequest DeleteFindingsFilter where+  type+    AWSResponse DeleteFindingsFilter =+      DeleteFindingsFilterResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteFindingsFilterResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteFindingsFilter where+  hashWithSalt _salt DeleteFindingsFilter' {..} =+    _salt `Prelude.hashWithSalt` id++instance Prelude.NFData DeleteFindingsFilter where+  rnf DeleteFindingsFilter' {..} = Prelude.rnf id++instance Data.ToHeaders DeleteFindingsFilter where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteFindingsFilter where+  toPath DeleteFindingsFilter' {..} =+    Prelude.mconcat ["/findingsfilters/", Data.toBS id]++instance Data.ToQuery DeleteFindingsFilter where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteFindingsFilterResponse' smart constructor.+data DeleteFindingsFilterResponse = DeleteFindingsFilterResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteFindingsFilterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteFindingsFilterResponse_httpStatus' - The response's http status code.+newDeleteFindingsFilterResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteFindingsFilterResponse+newDeleteFindingsFilterResponse pHttpStatus_ =+  DeleteFindingsFilterResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deleteFindingsFilterResponse_httpStatus :: Lens.Lens' DeleteFindingsFilterResponse Prelude.Int+deleteFindingsFilterResponse_httpStatus = Lens.lens (\DeleteFindingsFilterResponse' {httpStatus} -> httpStatus) (\s@DeleteFindingsFilterResponse' {} a -> s {httpStatus = a} :: DeleteFindingsFilterResponse)++instance Prelude.NFData DeleteFindingsFilterResponse where+  rnf DeleteFindingsFilterResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/DeleteInvitations.hs view
@@ -0,0 +1,175 @@+{-# 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.MacieV2.DeleteInvitations+-- 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 Amazon Macie membership invitations that were received from+-- specific accounts.+module Amazonka.MacieV2.DeleteInvitations+  ( -- * Creating a Request+    DeleteInvitations (..),+    newDeleteInvitations,++    -- * Request Lenses+    deleteInvitations_accountIds,++    -- * Destructuring the Response+    DeleteInvitationsResponse (..),+    newDeleteInvitationsResponse,++    -- * Response Lenses+    deleteInvitationsResponse_unprocessedAccounts,+    deleteInvitationsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteInvitations' smart constructor.+data DeleteInvitations = DeleteInvitations'+  { -- | An array that lists Amazon Web Services account IDs, one for each+    -- account that sent an invitation to delete.+    accountIds :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteInvitations' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountIds', 'deleteInvitations_accountIds' - An array that lists Amazon Web Services account IDs, one for each+-- account that sent an invitation to delete.+newDeleteInvitations ::+  DeleteInvitations+newDeleteInvitations =+  DeleteInvitations' {accountIds = Prelude.mempty}++-- | An array that lists Amazon Web Services account IDs, one for each+-- account that sent an invitation to delete.+deleteInvitations_accountIds :: Lens.Lens' DeleteInvitations [Prelude.Text]+deleteInvitations_accountIds = Lens.lens (\DeleteInvitations' {accountIds} -> accountIds) (\s@DeleteInvitations' {} a -> s {accountIds = a} :: DeleteInvitations) Prelude.. Lens.coerced++instance Core.AWSRequest DeleteInvitations where+  type+    AWSResponse DeleteInvitations =+      DeleteInvitationsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteInvitationsResponse'+            Prelude.<$> ( x+                            Data..?> "unprocessedAccounts"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteInvitations where+  hashWithSalt _salt DeleteInvitations' {..} =+    _salt `Prelude.hashWithSalt` accountIds++instance Prelude.NFData DeleteInvitations where+  rnf DeleteInvitations' {..} = Prelude.rnf accountIds++instance Data.ToHeaders DeleteInvitations where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteInvitations where+  toJSON DeleteInvitations' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("accountIds" Data..= accountIds)]+      )++instance Data.ToPath DeleteInvitations where+  toPath = Prelude.const "/invitations/delete"++instance Data.ToQuery DeleteInvitations where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteInvitationsResponse' smart constructor.+data DeleteInvitationsResponse = DeleteInvitationsResponse'+  { -- | An array of objects, one for each account whose invitation hasn\'t been+    -- deleted. Each object identifies the account and explains why the request+    -- hasn\'t been processed for that account.+    unprocessedAccounts :: Prelude.Maybe [UnprocessedAccount],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteInvitationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'unprocessedAccounts', 'deleteInvitationsResponse_unprocessedAccounts' - An array of objects, one for each account whose invitation hasn\'t been+-- deleted. Each object identifies the account and explains why the request+-- hasn\'t been processed for that account.+--+-- 'httpStatus', 'deleteInvitationsResponse_httpStatus' - The response's http status code.+newDeleteInvitationsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteInvitationsResponse+newDeleteInvitationsResponse pHttpStatus_ =+  DeleteInvitationsResponse'+    { unprocessedAccounts =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array of objects, one for each account whose invitation hasn\'t been+-- deleted. Each object identifies the account and explains why the request+-- hasn\'t been processed for that account.+deleteInvitationsResponse_unprocessedAccounts :: Lens.Lens' DeleteInvitationsResponse (Prelude.Maybe [UnprocessedAccount])+deleteInvitationsResponse_unprocessedAccounts = Lens.lens (\DeleteInvitationsResponse' {unprocessedAccounts} -> unprocessedAccounts) (\s@DeleteInvitationsResponse' {} a -> s {unprocessedAccounts = a} :: DeleteInvitationsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+deleteInvitationsResponse_httpStatus :: Lens.Lens' DeleteInvitationsResponse Prelude.Int+deleteInvitationsResponse_httpStatus = Lens.lens (\DeleteInvitationsResponse' {httpStatus} -> httpStatus) (\s@DeleteInvitationsResponse' {} a -> s {httpStatus = a} :: DeleteInvitationsResponse)++instance Prelude.NFData DeleteInvitationsResponse where+  rnf DeleteInvitationsResponse' {..} =+    Prelude.rnf unprocessedAccounts+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/DeleteMember.hs view
@@ -0,0 +1,144 @@+{-# 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.MacieV2.DeleteMember+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the association between an Amazon Macie administrator account+-- and an account.+module Amazonka.MacieV2.DeleteMember+  ( -- * Creating a Request+    DeleteMember (..),+    newDeleteMember,++    -- * Request Lenses+    deleteMember_id,++    -- * Destructuring the Response+    DeleteMemberResponse (..),+    newDeleteMemberResponse,++    -- * Response Lenses+    deleteMemberResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteMember' smart constructor.+data DeleteMember = DeleteMember'+  { -- | The unique identifier for the Amazon Macie resource that the request+    -- applies to.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteMember' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteMember_id' - The unique identifier for the Amazon Macie resource that the request+-- applies to.+newDeleteMember ::+  -- | 'id'+  Prelude.Text ->+  DeleteMember+newDeleteMember pId_ = DeleteMember' {id = pId_}++-- | The unique identifier for the Amazon Macie resource that the request+-- applies to.+deleteMember_id :: Lens.Lens' DeleteMember Prelude.Text+deleteMember_id = Lens.lens (\DeleteMember' {id} -> id) (\s@DeleteMember' {} a -> s {id = a} :: DeleteMember)++instance Core.AWSRequest DeleteMember where+  type AWSResponse DeleteMember = DeleteMemberResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteMemberResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteMember where+  hashWithSalt _salt DeleteMember' {..} =+    _salt `Prelude.hashWithSalt` id++instance Prelude.NFData DeleteMember where+  rnf DeleteMember' {..} = Prelude.rnf id++instance Data.ToHeaders DeleteMember where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteMember where+  toPath DeleteMember' {..} =+    Prelude.mconcat ["/members/", Data.toBS id]++instance Data.ToQuery DeleteMember where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteMemberResponse' smart constructor.+data DeleteMemberResponse = DeleteMemberResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteMemberResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteMemberResponse_httpStatus' - The response's http status code.+newDeleteMemberResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteMemberResponse+newDeleteMemberResponse pHttpStatus_ =+  DeleteMemberResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+deleteMemberResponse_httpStatus :: Lens.Lens' DeleteMemberResponse Prelude.Int+deleteMemberResponse_httpStatus = Lens.lens (\DeleteMemberResponse' {httpStatus} -> httpStatus) (\s@DeleteMemberResponse' {} a -> s {httpStatus = a} :: DeleteMemberResponse)++instance Prelude.NFData DeleteMemberResponse where+  rnf DeleteMemberResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/DescribeBuckets.hs view
@@ -0,0 +1,257 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.DescribeBuckets+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves (queries) statistical data and other information about one or+-- more S3 buckets that Amazon Macie monitors and analyzes for an account.+--+-- This operation returns paginated results.+module Amazonka.MacieV2.DescribeBuckets+  ( -- * Creating a Request+    DescribeBuckets (..),+    newDescribeBuckets,++    -- * Request Lenses+    describeBuckets_criteria,+    describeBuckets_maxResults,+    describeBuckets_nextToken,+    describeBuckets_sortCriteria,++    -- * Destructuring the Response+    DescribeBucketsResponse (..),+    newDescribeBucketsResponse,++    -- * Response Lenses+    describeBucketsResponse_buckets,+    describeBucketsResponse_nextToken,+    describeBucketsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeBuckets' smart constructor.+data DescribeBuckets = DescribeBuckets'+  { -- | The criteria to use to filter the query results.+    criteria :: Prelude.Maybe (Prelude.HashMap Prelude.Text BucketCriteriaAdditionalProperties),+    -- | The maximum number of items to include in each page of the response. The+    -- default value is 50.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | The nextToken string that specifies which page of results to return in a+    -- paginated response.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The criteria to use to sort the query results.+    sortCriteria :: Prelude.Maybe BucketSortCriteria+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeBuckets' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'criteria', 'describeBuckets_criteria' - The criteria to use to filter the query results.+--+-- 'maxResults', 'describeBuckets_maxResults' - The maximum number of items to include in each page of the response. The+-- default value is 50.+--+-- 'nextToken', 'describeBuckets_nextToken' - The nextToken string that specifies which page of results to return in a+-- paginated response.+--+-- 'sortCriteria', 'describeBuckets_sortCriteria' - The criteria to use to sort the query results.+newDescribeBuckets ::+  DescribeBuckets+newDescribeBuckets =+  DescribeBuckets'+    { criteria = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      sortCriteria = Prelude.Nothing+    }++-- | The criteria to use to filter the query results.+describeBuckets_criteria :: Lens.Lens' DescribeBuckets (Prelude.Maybe (Prelude.HashMap Prelude.Text BucketCriteriaAdditionalProperties))+describeBuckets_criteria = Lens.lens (\DescribeBuckets' {criteria} -> criteria) (\s@DescribeBuckets' {} a -> s {criteria = a} :: DescribeBuckets) Prelude.. Lens.mapping Lens.coerced++-- | The maximum number of items to include in each page of the response. The+-- default value is 50.+describeBuckets_maxResults :: Lens.Lens' DescribeBuckets (Prelude.Maybe Prelude.Int)+describeBuckets_maxResults = Lens.lens (\DescribeBuckets' {maxResults} -> maxResults) (\s@DescribeBuckets' {} a -> s {maxResults = a} :: DescribeBuckets)++-- | The nextToken string that specifies which page of results to return in a+-- paginated response.+describeBuckets_nextToken :: Lens.Lens' DescribeBuckets (Prelude.Maybe Prelude.Text)+describeBuckets_nextToken = Lens.lens (\DescribeBuckets' {nextToken} -> nextToken) (\s@DescribeBuckets' {} a -> s {nextToken = a} :: DescribeBuckets)++-- | The criteria to use to sort the query results.+describeBuckets_sortCriteria :: Lens.Lens' DescribeBuckets (Prelude.Maybe BucketSortCriteria)+describeBuckets_sortCriteria = Lens.lens (\DescribeBuckets' {sortCriteria} -> sortCriteria) (\s@DescribeBuckets' {} a -> s {sortCriteria = a} :: DescribeBuckets)++instance Core.AWSPager DescribeBuckets where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? describeBucketsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? describeBucketsResponse_buckets+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& describeBuckets_nextToken+          Lens..~ rs+          Lens.^? describeBucketsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest DescribeBuckets where+  type+    AWSResponse DescribeBuckets =+      DescribeBucketsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeBucketsResponse'+            Prelude.<$> (x Data..?> "buckets" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeBuckets where+  hashWithSalt _salt DescribeBuckets' {..} =+    _salt+      `Prelude.hashWithSalt` criteria+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` sortCriteria++instance Prelude.NFData DescribeBuckets where+  rnf DescribeBuckets' {..} =+    Prelude.rnf criteria+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf sortCriteria++instance Data.ToHeaders DescribeBuckets where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeBuckets where+  toJSON DescribeBuckets' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("criteria" Data..=) Prelude.<$> criteria,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("sortCriteria" Data..=) Prelude.<$> sortCriteria+          ]+      )++instance Data.ToPath DescribeBuckets where+  toPath = Prelude.const "/datasources/s3"++instance Data.ToQuery DescribeBuckets where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeBucketsResponse' smart constructor.+data DescribeBucketsResponse = DescribeBucketsResponse'+  { -- | An array of objects, one for each bucket that matches the filter+    -- criteria specified in the request.+    buckets :: Prelude.Maybe [BucketMetadata],+    -- | The string to use in a subsequent request to get the next page of+    -- results in a paginated response. This value is null if there are no+    -- additional pages.+    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 'DescribeBucketsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'buckets', 'describeBucketsResponse_buckets' - An array of objects, one for each bucket that matches the filter+-- criteria specified in the request.+--+-- 'nextToken', 'describeBucketsResponse_nextToken' - The string to use in a subsequent request to get the next page of+-- results in a paginated response. This value is null if there are no+-- additional pages.+--+-- 'httpStatus', 'describeBucketsResponse_httpStatus' - The response's http status code.+newDescribeBucketsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeBucketsResponse+newDescribeBucketsResponse pHttpStatus_ =+  DescribeBucketsResponse'+    { buckets = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array of objects, one for each bucket that matches the filter+-- criteria specified in the request.+describeBucketsResponse_buckets :: Lens.Lens' DescribeBucketsResponse (Prelude.Maybe [BucketMetadata])+describeBucketsResponse_buckets = Lens.lens (\DescribeBucketsResponse' {buckets} -> buckets) (\s@DescribeBucketsResponse' {} a -> s {buckets = a} :: DescribeBucketsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The string to use in a subsequent request to get the next page of+-- results in a paginated response. This value is null if there are no+-- additional pages.+describeBucketsResponse_nextToken :: Lens.Lens' DescribeBucketsResponse (Prelude.Maybe Prelude.Text)+describeBucketsResponse_nextToken = Lens.lens (\DescribeBucketsResponse' {nextToken} -> nextToken) (\s@DescribeBucketsResponse' {} a -> s {nextToken = a} :: DescribeBucketsResponse)++-- | The response's http status code.+describeBucketsResponse_httpStatus :: Lens.Lens' DescribeBucketsResponse Prelude.Int+describeBucketsResponse_httpStatus = Lens.lens (\DescribeBucketsResponse' {httpStatus} -> httpStatus) (\s@DescribeBucketsResponse' {} a -> s {httpStatus = a} :: DescribeBucketsResponse)++instance Prelude.NFData DescribeBucketsResponse where+  rnf DescribeBucketsResponse' {..} =+    Prelude.rnf buckets+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/DescribeClassificationJob.hs view
@@ -0,0 +1,643 @@+{-# 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.MacieV2.DescribeClassificationJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the status and settings for a classification job.+module Amazonka.MacieV2.DescribeClassificationJob+  ( -- * Creating a Request+    DescribeClassificationJob (..),+    newDescribeClassificationJob,++    -- * Request Lenses+    describeClassificationJob_jobId,++    -- * Destructuring the Response+    DescribeClassificationJobResponse (..),+    newDescribeClassificationJobResponse,++    -- * Response Lenses+    describeClassificationJobResponse_allowListIds,+    describeClassificationJobResponse_clientToken,+    describeClassificationJobResponse_createdAt,+    describeClassificationJobResponse_customDataIdentifierIds,+    describeClassificationJobResponse_description,+    describeClassificationJobResponse_initialRun,+    describeClassificationJobResponse_jobArn,+    describeClassificationJobResponse_jobId,+    describeClassificationJobResponse_jobStatus,+    describeClassificationJobResponse_jobType,+    describeClassificationJobResponse_lastRunErrorStatus,+    describeClassificationJobResponse_lastRunTime,+    describeClassificationJobResponse_managedDataIdentifierIds,+    describeClassificationJobResponse_managedDataIdentifierSelector,+    describeClassificationJobResponse_name,+    describeClassificationJobResponse_s3JobDefinition,+    describeClassificationJobResponse_samplingPercentage,+    describeClassificationJobResponse_scheduleFrequency,+    describeClassificationJobResponse_statistics,+    describeClassificationJobResponse_tags,+    describeClassificationJobResponse_userPausedDetails,+    describeClassificationJobResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeClassificationJob' smart constructor.+data DescribeClassificationJob = DescribeClassificationJob'+  { -- | The unique identifier for the classification job.+    jobId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeClassificationJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'jobId', 'describeClassificationJob_jobId' - The unique identifier for the classification job.+newDescribeClassificationJob ::+  -- | 'jobId'+  Prelude.Text ->+  DescribeClassificationJob+newDescribeClassificationJob pJobId_ =+  DescribeClassificationJob' {jobId = pJobId_}++-- | The unique identifier for the classification job.+describeClassificationJob_jobId :: Lens.Lens' DescribeClassificationJob Prelude.Text+describeClassificationJob_jobId = Lens.lens (\DescribeClassificationJob' {jobId} -> jobId) (\s@DescribeClassificationJob' {} a -> s {jobId = a} :: DescribeClassificationJob)++instance Core.AWSRequest DescribeClassificationJob where+  type+    AWSResponse DescribeClassificationJob =+      DescribeClassificationJobResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeClassificationJobResponse'+            Prelude.<$> (x Data..?> "allowListIds" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "clientToken")+            Prelude.<*> (x Data..?> "createdAt")+            Prelude.<*> ( x+                            Data..?> "customDataIdentifierIds"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "initialRun")+            Prelude.<*> (x Data..?> "jobArn")+            Prelude.<*> (x Data..?> "jobId")+            Prelude.<*> (x Data..?> "jobStatus")+            Prelude.<*> (x Data..?> "jobType")+            Prelude.<*> (x Data..?> "lastRunErrorStatus")+            Prelude.<*> (x Data..?> "lastRunTime")+            Prelude.<*> ( x+                            Data..?> "managedDataIdentifierIds"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "managedDataIdentifierSelector")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (x Data..?> "s3JobDefinition")+            Prelude.<*> (x Data..?> "samplingPercentage")+            Prelude.<*> (x Data..?> "scheduleFrequency")+            Prelude.<*> (x Data..?> "statistics")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "userPausedDetails")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeClassificationJob where+  hashWithSalt _salt DescribeClassificationJob' {..} =+    _salt `Prelude.hashWithSalt` jobId++instance Prelude.NFData DescribeClassificationJob where+  rnf DescribeClassificationJob' {..} =+    Prelude.rnf jobId++instance Data.ToHeaders DescribeClassificationJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeClassificationJob where+  toPath DescribeClassificationJob' {..} =+    Prelude.mconcat ["/jobs/", Data.toBS jobId]++instance Data.ToQuery DescribeClassificationJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeClassificationJobResponse' smart constructor.+data DescribeClassificationJobResponse = DescribeClassificationJobResponse'+  { -- | An array of unique identifiers, one for each allow list that the job+    -- uses when it analyzes data.+    allowListIds :: Prelude.Maybe [Prelude.Text],+    -- | The token that was provided to ensure the idempotency of the request to+    -- create the job.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The date and time, in UTC and extended ISO 8601 format, when the job was+    -- created.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | An array of unique identifiers, one for each custom data identifier that+    -- the job uses when it analyzes data. This value is null if the job uses+    -- only managed data identifiers to analyze data.+    customDataIdentifierIds :: Prelude.Maybe [Prelude.Text],+    -- | The custom description of the job.+    description :: Prelude.Maybe Prelude.Text,+    -- | For a recurring job, specifies whether you configured the job to analyze+    -- all existing, eligible objects immediately after the job was created+    -- (true). If you configured the job to analyze only those objects that+    -- were created or changed after the job was created and before the job\'s+    -- first scheduled run, this value is false. This value is also false for a+    -- one-time job.+    initialRun :: Prelude.Maybe Prelude.Bool,+    -- | The Amazon Resource Name (ARN) of the job.+    jobArn :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the job.+    jobId :: Prelude.Maybe Prelude.Text,+    -- | The current status of the job. Possible values are:+    --+    -- -   CANCELLED - You cancelled the job or, if it\'s a one-time job, you+    --     paused the job and didn\'t resume it within 30 days.+    --+    -- -   COMPLETE - For a one-time job, Amazon Macie finished processing the+    --     data specified for the job. This value doesn\'t apply to recurring+    --     jobs.+    --+    -- -   IDLE - For a recurring job, the previous scheduled run is complete+    --     and the next scheduled run is pending. This value doesn\'t apply to+    --     one-time jobs.+    --+    -- -   PAUSED - Macie started running the job but additional processing+    --     would exceed the monthly sensitive data discovery quota for your+    --     account or one or more member accounts that the job analyzes data+    --     for.+    --+    -- -   RUNNING - For a one-time job, the job is in progress. For a+    --     recurring job, a scheduled run is in progress.+    --+    -- -   USER_PAUSED - You paused the job. If you paused the job while it had+    --     a status of RUNNING and you don\'t resume it within 30 days of+    --     pausing it, the job or job run will expire and be cancelled,+    --     depending on the job\'s type. To check the expiration date, refer to+    --     the UserPausedDetails.jobExpiresAt property.+    jobStatus :: Prelude.Maybe JobStatus,+    -- | The schedule for running the job. Possible values are:+    --+    -- -   ONE_TIME - The job runs only once.+    --+    -- -   SCHEDULED - The job runs on a daily, weekly, or monthly basis. The+    --     scheduleFrequency property indicates the recurrence pattern for the+    --     job.+    jobType :: Prelude.Maybe JobType,+    -- | Specifies whether any account- or bucket-level access errors occurred+    -- when the job ran. For a recurring job, this value indicates the error+    -- status of the job\'s most recent run.+    lastRunErrorStatus :: Prelude.Maybe LastRunErrorStatus,+    -- | The date and time, in UTC and extended ISO 8601 format, when the job+    -- started. If the job is a recurring job, this value indicates when the+    -- most recent run started or, if the job hasn\'t run yet, when the job was+    -- created.+    lastRunTime :: Prelude.Maybe Data.ISO8601,+    -- | An array of unique identifiers, one for each managed data identifier+    -- that the job is explicitly configured to include (use) or exclude (not+    -- use) when it analyzes data. Inclusion or exclusion depends on the+    -- managed data identifier selection type specified for the job+    -- (managedDataIdentifierSelector). This value is null if the job\'s+    -- managed data identifier selection type is ALL or the job uses only+    -- custom data identifiers (customDataIdentifierIds) to analyze data.+    managedDataIdentifierIds :: Prelude.Maybe [Prelude.Text],+    -- | The selection type that determines which managed data identifiers the+    -- job uses to analyze data. Possible values are:+    --+    -- -   ALL - Use all the managed data identifiers that Amazon Macie+    --     provides.+    --+    -- -   EXCLUDE - Use all the managed data identifiers that Macie provides+    --     except the managed data identifiers specified by the+    --     managedDataIdentifierIds property.+    --+    -- -   INCLUDE - Use only the managed data identifiers specified by the+    --     managedDataIdentifierIds property.+    --+    -- -   NONE - Don\'t use any managed data identifiers.+    --+    -- If this value is null, the job uses all managed data identifiers. If+    -- this value is null, ALL, or EXCLUDE for a recurring job, the job also+    -- uses new managed data identifiers as they are released.+    managedDataIdentifierSelector :: Prelude.Maybe ManagedDataIdentifierSelector,+    -- | The custom name of the job.+    name :: Prelude.Maybe Prelude.Text,+    -- | The S3 buckets that contain the objects to analyze, and the scope of+    -- that analysis.+    s3JobDefinition :: Prelude.Maybe S3JobDefinition,+    -- | The sampling depth, as a percentage, that determines the percentage of+    -- eligible objects that the job analyzes.+    samplingPercentage :: Prelude.Maybe Prelude.Int,+    -- | The recurrence pattern for running the job. This value is null if the+    -- job is configured to run only once.+    scheduleFrequency :: Prelude.Maybe JobScheduleFrequency,+    -- | The number of times that the job has run and processing statistics for+    -- the job\'s current run.+    statistics :: Prelude.Maybe Statistics,+    -- | A map of key-value pairs that specifies which tags (keys and values) are+    -- associated with the classification job.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | If the current status of the job is USER_PAUSED, specifies when the job+    -- was paused and when the job or job run will expire and be cancelled if+    -- it isn\'t resumed. This value is present only if the value for jobStatus+    -- is USER_PAUSED.+    userPausedDetails :: Prelude.Maybe UserPausedDetails,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeClassificationJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'allowListIds', 'describeClassificationJobResponse_allowListIds' - An array of unique identifiers, one for each allow list that the job+-- uses when it analyzes data.+--+-- 'clientToken', 'describeClassificationJobResponse_clientToken' - The token that was provided to ensure the idempotency of the request to+-- create the job.+--+-- 'createdAt', 'describeClassificationJobResponse_createdAt' - The date and time, in UTC and extended ISO 8601 format, when the job was+-- created.+--+-- 'customDataIdentifierIds', 'describeClassificationJobResponse_customDataIdentifierIds' - An array of unique identifiers, one for each custom data identifier that+-- the job uses when it analyzes data. This value is null if the job uses+-- only managed data identifiers to analyze data.+--+-- 'description', 'describeClassificationJobResponse_description' - The custom description of the job.+--+-- 'initialRun', 'describeClassificationJobResponse_initialRun' - For a recurring job, specifies whether you configured the job to analyze+-- all existing, eligible objects immediately after the job was created+-- (true). If you configured the job to analyze only those objects that+-- were created or changed after the job was created and before the job\'s+-- first scheduled run, this value is false. This value is also false for a+-- one-time job.+--+-- 'jobArn', 'describeClassificationJobResponse_jobArn' - The Amazon Resource Name (ARN) of the job.+--+-- 'jobId', 'describeClassificationJobResponse_jobId' - The unique identifier for the job.+--+-- 'jobStatus', 'describeClassificationJobResponse_jobStatus' - The current status of the job. Possible values are:+--+-- -   CANCELLED - You cancelled the job or, if it\'s a one-time job, you+--     paused the job and didn\'t resume it within 30 days.+--+-- -   COMPLETE - For a one-time job, Amazon Macie finished processing the+--     data specified for the job. This value doesn\'t apply to recurring+--     jobs.+--+-- -   IDLE - For a recurring job, the previous scheduled run is complete+--     and the next scheduled run is pending. This value doesn\'t apply to+--     one-time jobs.+--+-- -   PAUSED - Macie started running the job but additional processing+--     would exceed the monthly sensitive data discovery quota for your+--     account or one or more member accounts that the job analyzes data+--     for.+--+-- -   RUNNING - For a one-time job, the job is in progress. For a+--     recurring job, a scheduled run is in progress.+--+-- -   USER_PAUSED - You paused the job. If you paused the job while it had+--     a status of RUNNING and you don\'t resume it within 30 days of+--     pausing it, the job or job run will expire and be cancelled,+--     depending on the job\'s type. To check the expiration date, refer to+--     the UserPausedDetails.jobExpiresAt property.+--+-- 'jobType', 'describeClassificationJobResponse_jobType' - The schedule for running the job. Possible values are:+--+-- -   ONE_TIME - The job runs only once.+--+-- -   SCHEDULED - The job runs on a daily, weekly, or monthly basis. The+--     scheduleFrequency property indicates the recurrence pattern for the+--     job.+--+-- 'lastRunErrorStatus', 'describeClassificationJobResponse_lastRunErrorStatus' - Specifies whether any account- or bucket-level access errors occurred+-- when the job ran. For a recurring job, this value indicates the error+-- status of the job\'s most recent run.+--+-- 'lastRunTime', 'describeClassificationJobResponse_lastRunTime' - The date and time, in UTC and extended ISO 8601 format, when the job+-- started. If the job is a recurring job, this value indicates when the+-- most recent run started or, if the job hasn\'t run yet, when the job was+-- created.+--+-- 'managedDataIdentifierIds', 'describeClassificationJobResponse_managedDataIdentifierIds' - An array of unique identifiers, one for each managed data identifier+-- that the job is explicitly configured to include (use) or exclude (not+-- use) when it analyzes data. Inclusion or exclusion depends on the+-- managed data identifier selection type specified for the job+-- (managedDataIdentifierSelector). This value is null if the job\'s+-- managed data identifier selection type is ALL or the job uses only+-- custom data identifiers (customDataIdentifierIds) to analyze data.+--+-- 'managedDataIdentifierSelector', 'describeClassificationJobResponse_managedDataIdentifierSelector' - The selection type that determines which managed data identifiers the+-- job uses to analyze data. Possible values are:+--+-- -   ALL - Use all the managed data identifiers that Amazon Macie+--     provides.+--+-- -   EXCLUDE - Use all the managed data identifiers that Macie provides+--     except the managed data identifiers specified by the+--     managedDataIdentifierIds property.+--+-- -   INCLUDE - Use only the managed data identifiers specified by the+--     managedDataIdentifierIds property.+--+-- -   NONE - Don\'t use any managed data identifiers.+--+-- If this value is null, the job uses all managed data identifiers. If+-- this value is null, ALL, or EXCLUDE for a recurring job, the job also+-- uses new managed data identifiers as they are released.+--+-- 'name', 'describeClassificationJobResponse_name' - The custom name of the job.+--+-- 's3JobDefinition', 'describeClassificationJobResponse_s3JobDefinition' - The S3 buckets that contain the objects to analyze, and the scope of+-- that analysis.+--+-- 'samplingPercentage', 'describeClassificationJobResponse_samplingPercentage' - The sampling depth, as a percentage, that determines the percentage of+-- eligible objects that the job analyzes.+--+-- 'scheduleFrequency', 'describeClassificationJobResponse_scheduleFrequency' - The recurrence pattern for running the job. This value is null if the+-- job is configured to run only once.+--+-- 'statistics', 'describeClassificationJobResponse_statistics' - The number of times that the job has run and processing statistics for+-- the job\'s current run.+--+-- 'tags', 'describeClassificationJobResponse_tags' - A map of key-value pairs that specifies which tags (keys and values) are+-- associated with the classification job.+--+-- 'userPausedDetails', 'describeClassificationJobResponse_userPausedDetails' - If the current status of the job is USER_PAUSED, specifies when the job+-- was paused and when the job or job run will expire and be cancelled if+-- it isn\'t resumed. This value is present only if the value for jobStatus+-- is USER_PAUSED.+--+-- 'httpStatus', 'describeClassificationJobResponse_httpStatus' - The response's http status code.+newDescribeClassificationJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeClassificationJobResponse+newDescribeClassificationJobResponse pHttpStatus_ =+  DescribeClassificationJobResponse'+    { allowListIds =+        Prelude.Nothing,+      clientToken = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      customDataIdentifierIds =+        Prelude.Nothing,+      description = Prelude.Nothing,+      initialRun = Prelude.Nothing,+      jobArn = Prelude.Nothing,+      jobId = Prelude.Nothing,+      jobStatus = Prelude.Nothing,+      jobType = Prelude.Nothing,+      lastRunErrorStatus = Prelude.Nothing,+      lastRunTime = Prelude.Nothing,+      managedDataIdentifierIds =+        Prelude.Nothing,+      managedDataIdentifierSelector =+        Prelude.Nothing,+      name = Prelude.Nothing,+      s3JobDefinition = Prelude.Nothing,+      samplingPercentage = Prelude.Nothing,+      scheduleFrequency = Prelude.Nothing,+      statistics = Prelude.Nothing,+      tags = Prelude.Nothing,+      userPausedDetails = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array of unique identifiers, one for each allow list that the job+-- uses when it analyzes data.+describeClassificationJobResponse_allowListIds :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe [Prelude.Text])+describeClassificationJobResponse_allowListIds = Lens.lens (\DescribeClassificationJobResponse' {allowListIds} -> allowListIds) (\s@DescribeClassificationJobResponse' {} a -> s {allowListIds = a} :: DescribeClassificationJobResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token that was provided to ensure the idempotency of the request to+-- create the job.+describeClassificationJobResponse_clientToken :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe Prelude.Text)+describeClassificationJobResponse_clientToken = Lens.lens (\DescribeClassificationJobResponse' {clientToken} -> clientToken) (\s@DescribeClassificationJobResponse' {} a -> s {clientToken = a} :: DescribeClassificationJobResponse)++-- | The date and time, in UTC and extended ISO 8601 format, when the job was+-- created.+describeClassificationJobResponse_createdAt :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe Prelude.UTCTime)+describeClassificationJobResponse_createdAt = Lens.lens (\DescribeClassificationJobResponse' {createdAt} -> createdAt) (\s@DescribeClassificationJobResponse' {} a -> s {createdAt = a} :: DescribeClassificationJobResponse) Prelude.. Lens.mapping Data._Time++-- | An array of unique identifiers, one for each custom data identifier that+-- the job uses when it analyzes data. This value is null if the job uses+-- only managed data identifiers to analyze data.+describeClassificationJobResponse_customDataIdentifierIds :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe [Prelude.Text])+describeClassificationJobResponse_customDataIdentifierIds = Lens.lens (\DescribeClassificationJobResponse' {customDataIdentifierIds} -> customDataIdentifierIds) (\s@DescribeClassificationJobResponse' {} a -> s {customDataIdentifierIds = a} :: DescribeClassificationJobResponse) Prelude.. Lens.mapping Lens.coerced++-- | The custom description of the job.+describeClassificationJobResponse_description :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe Prelude.Text)+describeClassificationJobResponse_description = Lens.lens (\DescribeClassificationJobResponse' {description} -> description) (\s@DescribeClassificationJobResponse' {} a -> s {description = a} :: DescribeClassificationJobResponse)++-- | For a recurring job, specifies whether you configured the job to analyze+-- all existing, eligible objects immediately after the job was created+-- (true). If you configured the job to analyze only those objects that+-- were created or changed after the job was created and before the job\'s+-- first scheduled run, this value is false. This value is also false for a+-- one-time job.+describeClassificationJobResponse_initialRun :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe Prelude.Bool)+describeClassificationJobResponse_initialRun = Lens.lens (\DescribeClassificationJobResponse' {initialRun} -> initialRun) (\s@DescribeClassificationJobResponse' {} a -> s {initialRun = a} :: DescribeClassificationJobResponse)++-- | The Amazon Resource Name (ARN) of the job.+describeClassificationJobResponse_jobArn :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe Prelude.Text)+describeClassificationJobResponse_jobArn = Lens.lens (\DescribeClassificationJobResponse' {jobArn} -> jobArn) (\s@DescribeClassificationJobResponse' {} a -> s {jobArn = a} :: DescribeClassificationJobResponse)++-- | The unique identifier for the job.+describeClassificationJobResponse_jobId :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe Prelude.Text)+describeClassificationJobResponse_jobId = Lens.lens (\DescribeClassificationJobResponse' {jobId} -> jobId) (\s@DescribeClassificationJobResponse' {} a -> s {jobId = a} :: DescribeClassificationJobResponse)++-- | The current status of the job. Possible values are:+--+-- -   CANCELLED - You cancelled the job or, if it\'s a one-time job, you+--     paused the job and didn\'t resume it within 30 days.+--+-- -   COMPLETE - For a one-time job, Amazon Macie finished processing the+--     data specified for the job. This value doesn\'t apply to recurring+--     jobs.+--+-- -   IDLE - For a recurring job, the previous scheduled run is complete+--     and the next scheduled run is pending. This value doesn\'t apply to+--     one-time jobs.+--+-- -   PAUSED - Macie started running the job but additional processing+--     would exceed the monthly sensitive data discovery quota for your+--     account or one or more member accounts that the job analyzes data+--     for.+--+-- -   RUNNING - For a one-time job, the job is in progress. For a+--     recurring job, a scheduled run is in progress.+--+-- -   USER_PAUSED - You paused the job. If you paused the job while it had+--     a status of RUNNING and you don\'t resume it within 30 days of+--     pausing it, the job or job run will expire and be cancelled,+--     depending on the job\'s type. To check the expiration date, refer to+--     the UserPausedDetails.jobExpiresAt property.+describeClassificationJobResponse_jobStatus :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe JobStatus)+describeClassificationJobResponse_jobStatus = Lens.lens (\DescribeClassificationJobResponse' {jobStatus} -> jobStatus) (\s@DescribeClassificationJobResponse' {} a -> s {jobStatus = a} :: DescribeClassificationJobResponse)++-- | The schedule for running the job. Possible values are:+--+-- -   ONE_TIME - The job runs only once.+--+-- -   SCHEDULED - The job runs on a daily, weekly, or monthly basis. The+--     scheduleFrequency property indicates the recurrence pattern for the+--     job.+describeClassificationJobResponse_jobType :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe JobType)+describeClassificationJobResponse_jobType = Lens.lens (\DescribeClassificationJobResponse' {jobType} -> jobType) (\s@DescribeClassificationJobResponse' {} a -> s {jobType = a} :: DescribeClassificationJobResponse)++-- | Specifies whether any account- or bucket-level access errors occurred+-- when the job ran. For a recurring job, this value indicates the error+-- status of the job\'s most recent run.+describeClassificationJobResponse_lastRunErrorStatus :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe LastRunErrorStatus)+describeClassificationJobResponse_lastRunErrorStatus = Lens.lens (\DescribeClassificationJobResponse' {lastRunErrorStatus} -> lastRunErrorStatus) (\s@DescribeClassificationJobResponse' {} a -> s {lastRunErrorStatus = a} :: DescribeClassificationJobResponse)++-- | The date and time, in UTC and extended ISO 8601 format, when the job+-- started. If the job is a recurring job, this value indicates when the+-- most recent run started or, if the job hasn\'t run yet, when the job was+-- created.+describeClassificationJobResponse_lastRunTime :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe Prelude.UTCTime)+describeClassificationJobResponse_lastRunTime = Lens.lens (\DescribeClassificationJobResponse' {lastRunTime} -> lastRunTime) (\s@DescribeClassificationJobResponse' {} a -> s {lastRunTime = a} :: DescribeClassificationJobResponse) Prelude.. Lens.mapping Data._Time++-- | An array of unique identifiers, one for each managed data identifier+-- that the job is explicitly configured to include (use) or exclude (not+-- use) when it analyzes data. Inclusion or exclusion depends on the+-- managed data identifier selection type specified for the job+-- (managedDataIdentifierSelector). This value is null if the job\'s+-- managed data identifier selection type is ALL or the job uses only+-- custom data identifiers (customDataIdentifierIds) to analyze data.+describeClassificationJobResponse_managedDataIdentifierIds :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe [Prelude.Text])+describeClassificationJobResponse_managedDataIdentifierIds = Lens.lens (\DescribeClassificationJobResponse' {managedDataIdentifierIds} -> managedDataIdentifierIds) (\s@DescribeClassificationJobResponse' {} a -> s {managedDataIdentifierIds = a} :: DescribeClassificationJobResponse) Prelude.. Lens.mapping Lens.coerced++-- | The selection type that determines which managed data identifiers the+-- job uses to analyze data. Possible values are:+--+-- -   ALL - Use all the managed data identifiers that Amazon Macie+--     provides.+--+-- -   EXCLUDE - Use all the managed data identifiers that Macie provides+--     except the managed data identifiers specified by the+--     managedDataIdentifierIds property.+--+-- -   INCLUDE - Use only the managed data identifiers specified by the+--     managedDataIdentifierIds property.+--+-- -   NONE - Don\'t use any managed data identifiers.+--+-- If this value is null, the job uses all managed data identifiers. If+-- this value is null, ALL, or EXCLUDE for a recurring job, the job also+-- uses new managed data identifiers as they are released.+describeClassificationJobResponse_managedDataIdentifierSelector :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe ManagedDataIdentifierSelector)+describeClassificationJobResponse_managedDataIdentifierSelector = Lens.lens (\DescribeClassificationJobResponse' {managedDataIdentifierSelector} -> managedDataIdentifierSelector) (\s@DescribeClassificationJobResponse' {} a -> s {managedDataIdentifierSelector = a} :: DescribeClassificationJobResponse)++-- | The custom name of the job.+describeClassificationJobResponse_name :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe Prelude.Text)+describeClassificationJobResponse_name = Lens.lens (\DescribeClassificationJobResponse' {name} -> name) (\s@DescribeClassificationJobResponse' {} a -> s {name = a} :: DescribeClassificationJobResponse)++-- | The S3 buckets that contain the objects to analyze, and the scope of+-- that analysis.+describeClassificationJobResponse_s3JobDefinition :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe S3JobDefinition)+describeClassificationJobResponse_s3JobDefinition = Lens.lens (\DescribeClassificationJobResponse' {s3JobDefinition} -> s3JobDefinition) (\s@DescribeClassificationJobResponse' {} a -> s {s3JobDefinition = a} :: DescribeClassificationJobResponse)++-- | The sampling depth, as a percentage, that determines the percentage of+-- eligible objects that the job analyzes.+describeClassificationJobResponse_samplingPercentage :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe Prelude.Int)+describeClassificationJobResponse_samplingPercentage = Lens.lens (\DescribeClassificationJobResponse' {samplingPercentage} -> samplingPercentage) (\s@DescribeClassificationJobResponse' {} a -> s {samplingPercentage = a} :: DescribeClassificationJobResponse)++-- | The recurrence pattern for running the job. This value is null if the+-- job is configured to run only once.+describeClassificationJobResponse_scheduleFrequency :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe JobScheduleFrequency)+describeClassificationJobResponse_scheduleFrequency = Lens.lens (\DescribeClassificationJobResponse' {scheduleFrequency} -> scheduleFrequency) (\s@DescribeClassificationJobResponse' {} a -> s {scheduleFrequency = a} :: DescribeClassificationJobResponse)++-- | The number of times that the job has run and processing statistics for+-- the job\'s current run.+describeClassificationJobResponse_statistics :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe Statistics)+describeClassificationJobResponse_statistics = Lens.lens (\DescribeClassificationJobResponse' {statistics} -> statistics) (\s@DescribeClassificationJobResponse' {} a -> s {statistics = a} :: DescribeClassificationJobResponse)++-- | A map of key-value pairs that specifies which tags (keys and values) are+-- associated with the classification job.+describeClassificationJobResponse_tags :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+describeClassificationJobResponse_tags = Lens.lens (\DescribeClassificationJobResponse' {tags} -> tags) (\s@DescribeClassificationJobResponse' {} a -> s {tags = a} :: DescribeClassificationJobResponse) Prelude.. Lens.mapping Lens.coerced++-- | If the current status of the job is USER_PAUSED, specifies when the job+-- was paused and when the job or job run will expire and be cancelled if+-- it isn\'t resumed. This value is present only if the value for jobStatus+-- is USER_PAUSED.+describeClassificationJobResponse_userPausedDetails :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe UserPausedDetails)+describeClassificationJobResponse_userPausedDetails = Lens.lens (\DescribeClassificationJobResponse' {userPausedDetails} -> userPausedDetails) (\s@DescribeClassificationJobResponse' {} a -> s {userPausedDetails = a} :: DescribeClassificationJobResponse)++-- | The response's http status code.+describeClassificationJobResponse_httpStatus :: Lens.Lens' DescribeClassificationJobResponse Prelude.Int+describeClassificationJobResponse_httpStatus = Lens.lens (\DescribeClassificationJobResponse' {httpStatus} -> httpStatus) (\s@DescribeClassificationJobResponse' {} a -> s {httpStatus = a} :: DescribeClassificationJobResponse)++instance+  Prelude.NFData+    DescribeClassificationJobResponse+  where+  rnf DescribeClassificationJobResponse' {..} =+    Prelude.rnf allowListIds+      `Prelude.seq` Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf customDataIdentifierIds+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf initialRun+      `Prelude.seq` Prelude.rnf jobArn+      `Prelude.seq` Prelude.rnf jobId+      `Prelude.seq` Prelude.rnf jobStatus+      `Prelude.seq` Prelude.rnf jobType+      `Prelude.seq` Prelude.rnf lastRunErrorStatus+      `Prelude.seq` Prelude.rnf lastRunTime+      `Prelude.seq` Prelude.rnf managedDataIdentifierIds+      `Prelude.seq` Prelude.rnf managedDataIdentifierSelector+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf s3JobDefinition+      `Prelude.seq` Prelude.rnf samplingPercentage+      `Prelude.seq` Prelude.rnf scheduleFrequency+      `Prelude.seq` Prelude.rnf statistics+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf+        userPausedDetails+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/DescribeOrganizationConfiguration.hs view
@@ -0,0 +1,184 @@+{-# 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.MacieV2.DescribeOrganizationConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the Amazon Macie configuration settings for an organization in+-- Organizations.+module Amazonka.MacieV2.DescribeOrganizationConfiguration+  ( -- * Creating a Request+    DescribeOrganizationConfiguration (..),+    newDescribeOrganizationConfiguration,++    -- * Destructuring the Response+    DescribeOrganizationConfigurationResponse (..),+    newDescribeOrganizationConfigurationResponse,++    -- * Response Lenses+    describeOrganizationConfigurationResponse_autoEnable,+    describeOrganizationConfigurationResponse_maxAccountLimitReached,+    describeOrganizationConfigurationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeOrganizationConfiguration' smart constructor.+data DescribeOrganizationConfiguration = DescribeOrganizationConfiguration'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeOrganizationConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDescribeOrganizationConfiguration ::+  DescribeOrganizationConfiguration+newDescribeOrganizationConfiguration =+  DescribeOrganizationConfiguration'++instance+  Core.AWSRequest+    DescribeOrganizationConfiguration+  where+  type+    AWSResponse DescribeOrganizationConfiguration =+      DescribeOrganizationConfigurationResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeOrganizationConfigurationResponse'+            Prelude.<$> (x Data..?> "autoEnable")+            Prelude.<*> (x Data..?> "maxAccountLimitReached")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DescribeOrganizationConfiguration+  where+  hashWithSalt _salt _ =+    _salt `Prelude.hashWithSalt` ()++instance+  Prelude.NFData+    DescribeOrganizationConfiguration+  where+  rnf _ = ()++instance+  Data.ToHeaders+    DescribeOrganizationConfiguration+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToPath+    DescribeOrganizationConfiguration+  where+  toPath = Prelude.const "/admin/configuration"++instance+  Data.ToQuery+    DescribeOrganizationConfiguration+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeOrganizationConfigurationResponse' smart constructor.+data DescribeOrganizationConfigurationResponse = DescribeOrganizationConfigurationResponse'+  { -- | Specifies whether Amazon Macie is enabled automatically for accounts+    -- that are added to the organization.+    autoEnable :: Prelude.Maybe Prelude.Bool,+    -- | Specifies whether the maximum number of Amazon Macie member accounts are+    -- part of the organization.+    maxAccountLimitReached :: Prelude.Maybe Prelude.Bool,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeOrganizationConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'autoEnable', 'describeOrganizationConfigurationResponse_autoEnable' - Specifies whether Amazon Macie is enabled automatically for accounts+-- that are added to the organization.+--+-- 'maxAccountLimitReached', 'describeOrganizationConfigurationResponse_maxAccountLimitReached' - Specifies whether the maximum number of Amazon Macie member accounts are+-- part of the organization.+--+-- 'httpStatus', 'describeOrganizationConfigurationResponse_httpStatus' - The response's http status code.+newDescribeOrganizationConfigurationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeOrganizationConfigurationResponse+newDescribeOrganizationConfigurationResponse+  pHttpStatus_ =+    DescribeOrganizationConfigurationResponse'+      { autoEnable =+          Prelude.Nothing,+        maxAccountLimitReached =+          Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | Specifies whether Amazon Macie is enabled automatically for accounts+-- that are added to the organization.+describeOrganizationConfigurationResponse_autoEnable :: Lens.Lens' DescribeOrganizationConfigurationResponse (Prelude.Maybe Prelude.Bool)+describeOrganizationConfigurationResponse_autoEnable = Lens.lens (\DescribeOrganizationConfigurationResponse' {autoEnable} -> autoEnable) (\s@DescribeOrganizationConfigurationResponse' {} a -> s {autoEnable = a} :: DescribeOrganizationConfigurationResponse)++-- | Specifies whether the maximum number of Amazon Macie member accounts are+-- part of the organization.+describeOrganizationConfigurationResponse_maxAccountLimitReached :: Lens.Lens' DescribeOrganizationConfigurationResponse (Prelude.Maybe Prelude.Bool)+describeOrganizationConfigurationResponse_maxAccountLimitReached = Lens.lens (\DescribeOrganizationConfigurationResponse' {maxAccountLimitReached} -> maxAccountLimitReached) (\s@DescribeOrganizationConfigurationResponse' {} a -> s {maxAccountLimitReached = a} :: DescribeOrganizationConfigurationResponse)++-- | The response's http status code.+describeOrganizationConfigurationResponse_httpStatus :: Lens.Lens' DescribeOrganizationConfigurationResponse Prelude.Int+describeOrganizationConfigurationResponse_httpStatus = Lens.lens (\DescribeOrganizationConfigurationResponse' {httpStatus} -> httpStatus) (\s@DescribeOrganizationConfigurationResponse' {} a -> s {httpStatus = a} :: DescribeOrganizationConfigurationResponse)++instance+  Prelude.NFData+    DescribeOrganizationConfigurationResponse+  where+  rnf DescribeOrganizationConfigurationResponse' {..} =+    Prelude.rnf autoEnable+      `Prelude.seq` Prelude.rnf maxAccountLimitReached+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/DisableMacie.hs view
@@ -0,0 +1,125 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.DisableMacie+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Disables Amazon Macie and deletes all settings and resources for a Macie+-- account.+module Amazonka.MacieV2.DisableMacie+  ( -- * Creating a Request+    DisableMacie (..),+    newDisableMacie,++    -- * Destructuring the Response+    DisableMacieResponse (..),+    newDisableMacieResponse,++    -- * Response Lenses+    disableMacieResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDisableMacie' smart constructor.+data DisableMacie = DisableMacie'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisableMacie' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDisableMacie ::+  DisableMacie+newDisableMacie = DisableMacie'++instance Core.AWSRequest DisableMacie where+  type AWSResponse DisableMacie = DisableMacieResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DisableMacieResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DisableMacie where+  hashWithSalt _salt _ =+    _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData DisableMacie where+  rnf _ = ()++instance Data.ToHeaders DisableMacie where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DisableMacie where+  toPath = Prelude.const "/macie"++instance Data.ToQuery DisableMacie where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDisableMacieResponse' smart constructor.+data DisableMacieResponse = DisableMacieResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisableMacieResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'disableMacieResponse_httpStatus' - The response's http status code.+newDisableMacieResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DisableMacieResponse+newDisableMacieResponse pHttpStatus_ =+  DisableMacieResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+disableMacieResponse_httpStatus :: Lens.Lens' DisableMacieResponse Prelude.Int+disableMacieResponse_httpStatus = Lens.lens (\DisableMacieResponse' {httpStatus} -> httpStatus) (\s@DisableMacieResponse' {} a -> s {httpStatus = a} :: DisableMacieResponse)++instance Prelude.NFData DisableMacieResponse where+  rnf DisableMacieResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/DisableOrganizationAdminAccount.hs view
@@ -0,0 +1,173 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.DisableOrganizationAdminAccount+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Disables an account as the delegated Amazon Macie administrator account+-- for an organization in Organizations.+module Amazonka.MacieV2.DisableOrganizationAdminAccount+  ( -- * Creating a Request+    DisableOrganizationAdminAccount (..),+    newDisableOrganizationAdminAccount,++    -- * Request Lenses+    disableOrganizationAdminAccount_adminAccountId,++    -- * Destructuring the Response+    DisableOrganizationAdminAccountResponse (..),+    newDisableOrganizationAdminAccountResponse,++    -- * Response Lenses+    disableOrganizationAdminAccountResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDisableOrganizationAdminAccount' smart constructor.+data DisableOrganizationAdminAccount = DisableOrganizationAdminAccount'+  { -- | The Amazon Web Services account ID of the delegated Amazon Macie+    -- administrator account.+    adminAccountId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisableOrganizationAdminAccount' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'disableOrganizationAdminAccount_adminAccountId' - The Amazon Web Services account ID of the delegated Amazon Macie+-- administrator account.+newDisableOrganizationAdminAccount ::+  -- | 'adminAccountId'+  Prelude.Text ->+  DisableOrganizationAdminAccount+newDisableOrganizationAdminAccount pAdminAccountId_ =+  DisableOrganizationAdminAccount'+    { adminAccountId =+        pAdminAccountId_+    }++-- | The Amazon Web Services account ID of the delegated Amazon Macie+-- administrator account.+disableOrganizationAdminAccount_adminAccountId :: Lens.Lens' DisableOrganizationAdminAccount Prelude.Text+disableOrganizationAdminAccount_adminAccountId = Lens.lens (\DisableOrganizationAdminAccount' {adminAccountId} -> adminAccountId) (\s@DisableOrganizationAdminAccount' {} a -> s {adminAccountId = a} :: DisableOrganizationAdminAccount)++instance+  Core.AWSRequest+    DisableOrganizationAdminAccount+  where+  type+    AWSResponse DisableOrganizationAdminAccount =+      DisableOrganizationAdminAccountResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DisableOrganizationAdminAccountResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DisableOrganizationAdminAccount+  where+  hashWithSalt+    _salt+    DisableOrganizationAdminAccount' {..} =+      _salt `Prelude.hashWithSalt` adminAccountId++instance+  Prelude.NFData+    DisableOrganizationAdminAccount+  where+  rnf DisableOrganizationAdminAccount' {..} =+    Prelude.rnf adminAccountId++instance+  Data.ToHeaders+    DisableOrganizationAdminAccount+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DisableOrganizationAdminAccount where+  toPath = Prelude.const "/admin"++instance Data.ToQuery DisableOrganizationAdminAccount where+  toQuery DisableOrganizationAdminAccount' {..} =+    Prelude.mconcat+      ["adminAccountId" Data.=: adminAccountId]++-- | /See:/ 'newDisableOrganizationAdminAccountResponse' smart constructor.+data DisableOrganizationAdminAccountResponse = DisableOrganizationAdminAccountResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisableOrganizationAdminAccountResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'disableOrganizationAdminAccountResponse_httpStatus' - The response's http status code.+newDisableOrganizationAdminAccountResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DisableOrganizationAdminAccountResponse+newDisableOrganizationAdminAccountResponse+  pHttpStatus_ =+    DisableOrganizationAdminAccountResponse'+      { httpStatus =+          pHttpStatus_+      }++-- | The response's http status code.+disableOrganizationAdminAccountResponse_httpStatus :: Lens.Lens' DisableOrganizationAdminAccountResponse Prelude.Int+disableOrganizationAdminAccountResponse_httpStatus = Lens.lens (\DisableOrganizationAdminAccountResponse' {httpStatus} -> httpStatus) (\s@DisableOrganizationAdminAccountResponse' {} a -> s {httpStatus = a} :: DisableOrganizationAdminAccountResponse)++instance+  Prelude.NFData+    DisableOrganizationAdminAccountResponse+  where+  rnf DisableOrganizationAdminAccountResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/DisassociateFromAdministratorAccount.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.MacieV2.DisassociateFromAdministratorAccount+-- 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 member account from its Amazon Macie administrator+-- account.+module Amazonka.MacieV2.DisassociateFromAdministratorAccount+  ( -- * Creating a Request+    DisassociateFromAdministratorAccount (..),+    newDisassociateFromAdministratorAccount,++    -- * Destructuring the Response+    DisassociateFromAdministratorAccountResponse (..),+    newDisassociateFromAdministratorAccountResponse,++    -- * Response Lenses+    disassociateFromAdministratorAccountResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDisassociateFromAdministratorAccount' smart constructor.+data DisassociateFromAdministratorAccount = DisassociateFromAdministratorAccount'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociateFromAdministratorAccount' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDisassociateFromAdministratorAccount ::+  DisassociateFromAdministratorAccount+newDisassociateFromAdministratorAccount =+  DisassociateFromAdministratorAccount'++instance+  Core.AWSRequest+    DisassociateFromAdministratorAccount+  where+  type+    AWSResponse DisassociateFromAdministratorAccount =+      DisassociateFromAdministratorAccountResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DisassociateFromAdministratorAccountResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DisassociateFromAdministratorAccount+  where+  hashWithSalt _salt _ =+    _salt `Prelude.hashWithSalt` ()++instance+  Prelude.NFData+    DisassociateFromAdministratorAccount+  where+  rnf _ = ()++instance+  Data.ToHeaders+    DisassociateFromAdministratorAccount+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    DisassociateFromAdministratorAccount+  where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance+  Data.ToPath+    DisassociateFromAdministratorAccount+  where+  toPath = Prelude.const "/administrator/disassociate"++instance+  Data.ToQuery+    DisassociateFromAdministratorAccount+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDisassociateFromAdministratorAccountResponse' smart constructor.+data DisassociateFromAdministratorAccountResponse = DisassociateFromAdministratorAccountResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociateFromAdministratorAccountResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'disassociateFromAdministratorAccountResponse_httpStatus' - The response's http status code.+newDisassociateFromAdministratorAccountResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DisassociateFromAdministratorAccountResponse+newDisassociateFromAdministratorAccountResponse+  pHttpStatus_ =+    DisassociateFromAdministratorAccountResponse'+      { httpStatus =+          pHttpStatus_+      }++-- | The response's http status code.+disassociateFromAdministratorAccountResponse_httpStatus :: Lens.Lens' DisassociateFromAdministratorAccountResponse Prelude.Int+disassociateFromAdministratorAccountResponse_httpStatus = Lens.lens (\DisassociateFromAdministratorAccountResponse' {httpStatus} -> httpStatus) (\s@DisassociateFromAdministratorAccountResponse' {} a -> s {httpStatus = a} :: DisassociateFromAdministratorAccountResponse)++instance+  Prelude.NFData+    DisassociateFromAdministratorAccountResponse+  where+  rnf DisassociateFromAdministratorAccountResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/DisassociateFromMasterAccount.hs view
@@ -0,0 +1,144 @@+{-# 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.MacieV2.DisassociateFromMasterAccount+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- (Deprecated) Disassociates a member account from its Amazon Macie+-- administrator account. This operation has been replaced by the+-- DisassociateFromAdministratorAccount operation.+module Amazonka.MacieV2.DisassociateFromMasterAccount+  ( -- * Creating a Request+    DisassociateFromMasterAccount (..),+    newDisassociateFromMasterAccount,++    -- * Destructuring the Response+    DisassociateFromMasterAccountResponse (..),+    newDisassociateFromMasterAccountResponse,++    -- * Response Lenses+    disassociateFromMasterAccountResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDisassociateFromMasterAccount' smart constructor.+data DisassociateFromMasterAccount = DisassociateFromMasterAccount'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociateFromMasterAccount' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDisassociateFromMasterAccount ::+  DisassociateFromMasterAccount+newDisassociateFromMasterAccount =+  DisassociateFromMasterAccount'++instance+  Core.AWSRequest+    DisassociateFromMasterAccount+  where+  type+    AWSResponse DisassociateFromMasterAccount =+      DisassociateFromMasterAccountResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DisassociateFromMasterAccountResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DisassociateFromMasterAccount+  where+  hashWithSalt _salt _ =+    _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData DisassociateFromMasterAccount where+  rnf _ = ()++instance Data.ToHeaders DisassociateFromMasterAccount where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DisassociateFromMasterAccount where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath DisassociateFromMasterAccount where+  toPath = Prelude.const "/master/disassociate"++instance Data.ToQuery DisassociateFromMasterAccount where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDisassociateFromMasterAccountResponse' smart constructor.+data DisassociateFromMasterAccountResponse = DisassociateFromMasterAccountResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociateFromMasterAccountResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'disassociateFromMasterAccountResponse_httpStatus' - The response's http status code.+newDisassociateFromMasterAccountResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DisassociateFromMasterAccountResponse+newDisassociateFromMasterAccountResponse pHttpStatus_ =+  DisassociateFromMasterAccountResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+disassociateFromMasterAccountResponse_httpStatus :: Lens.Lens' DisassociateFromMasterAccountResponse Prelude.Int+disassociateFromMasterAccountResponse_httpStatus = Lens.lens (\DisassociateFromMasterAccountResponse' {httpStatus} -> httpStatus) (\s@DisassociateFromMasterAccountResponse' {} a -> s {httpStatus = a} :: DisassociateFromMasterAccountResponse)++instance+  Prelude.NFData+    DisassociateFromMasterAccountResponse+  where+  rnf DisassociateFromMasterAccountResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/DisassociateMember.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.MacieV2.DisassociateMember+-- 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 Amazon Macie administrator account from a member+-- account.+module Amazonka.MacieV2.DisassociateMember+  ( -- * Creating a Request+    DisassociateMember (..),+    newDisassociateMember,++    -- * Request Lenses+    disassociateMember_id,++    -- * Destructuring the Response+    DisassociateMemberResponse (..),+    newDisassociateMemberResponse,++    -- * Response Lenses+    disassociateMemberResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDisassociateMember' smart constructor.+data DisassociateMember = DisassociateMember'+  { -- | The unique identifier for the Amazon Macie resource that the request+    -- applies to.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociateMember' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'disassociateMember_id' - The unique identifier for the Amazon Macie resource that the request+-- applies to.+newDisassociateMember ::+  -- | 'id'+  Prelude.Text ->+  DisassociateMember+newDisassociateMember pId_ =+  DisassociateMember' {id = pId_}++-- | The unique identifier for the Amazon Macie resource that the request+-- applies to.+disassociateMember_id :: Lens.Lens' DisassociateMember Prelude.Text+disassociateMember_id = Lens.lens (\DisassociateMember' {id} -> id) (\s@DisassociateMember' {} a -> s {id = a} :: DisassociateMember)++instance Core.AWSRequest DisassociateMember where+  type+    AWSResponse DisassociateMember =+      DisassociateMemberResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DisassociateMemberResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DisassociateMember where+  hashWithSalt _salt DisassociateMember' {..} =+    _salt `Prelude.hashWithSalt` id++instance Prelude.NFData DisassociateMember where+  rnf DisassociateMember' {..} = Prelude.rnf id++instance Data.ToHeaders DisassociateMember where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DisassociateMember where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath DisassociateMember where+  toPath DisassociateMember' {..} =+    Prelude.mconcat+      ["/members/disassociate/", Data.toBS id]++instance Data.ToQuery DisassociateMember where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDisassociateMemberResponse' smart constructor.+data DisassociateMemberResponse = DisassociateMemberResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociateMemberResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'disassociateMemberResponse_httpStatus' - The response's http status code.+newDisassociateMemberResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DisassociateMemberResponse+newDisassociateMemberResponse pHttpStatus_ =+  DisassociateMemberResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+disassociateMemberResponse_httpStatus :: Lens.Lens' DisassociateMemberResponse Prelude.Int+disassociateMemberResponse_httpStatus = Lens.lens (\DisassociateMemberResponse' {httpStatus} -> httpStatus) (\s@DisassociateMemberResponse' {} a -> s {httpStatus = a} :: DisassociateMemberResponse)++instance Prelude.NFData DisassociateMemberResponse where+  rnf DisassociateMemberResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/EnableMacie.hs view
@@ -0,0 +1,189 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.EnableMacie+-- 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 Amazon Macie and specifies the configuration settings for a+-- Macie account.+module Amazonka.MacieV2.EnableMacie+  ( -- * Creating a Request+    EnableMacie (..),+    newEnableMacie,++    -- * Request Lenses+    enableMacie_clientToken,+    enableMacie_findingPublishingFrequency,+    enableMacie_status,++    -- * Destructuring the Response+    EnableMacieResponse (..),+    newEnableMacieResponse,++    -- * Response Lenses+    enableMacieResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newEnableMacie' smart constructor.+data EnableMacie = EnableMacie'+  { -- | A unique, case-sensitive token that you provide to ensure the+    -- idempotency of the request.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | Specifies how often to publish updates to policy findings for the+    -- account. This includes publishing updates to Security Hub and Amazon+    -- EventBridge (formerly Amazon CloudWatch Events).+    findingPublishingFrequency :: Prelude.Maybe FindingPublishingFrequency,+    -- | Specifies the new status for the account. To enable Amazon Macie and+    -- start all Macie activities for the account, set this value to ENABLED.+    status :: Prelude.Maybe MacieStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EnableMacie' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'enableMacie_clientToken' - A unique, case-sensitive token that you provide to ensure the+-- idempotency of the request.+--+-- 'findingPublishingFrequency', 'enableMacie_findingPublishingFrequency' - Specifies how often to publish updates to policy findings for the+-- account. This includes publishing updates to Security Hub and Amazon+-- EventBridge (formerly Amazon CloudWatch Events).+--+-- 'status', 'enableMacie_status' - Specifies the new status for the account. To enable Amazon Macie and+-- start all Macie activities for the account, set this value to ENABLED.+newEnableMacie ::+  EnableMacie+newEnableMacie =+  EnableMacie'+    { clientToken = Prelude.Nothing,+      findingPublishingFrequency = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | A unique, case-sensitive token that you provide to ensure the+-- idempotency of the request.+enableMacie_clientToken :: Lens.Lens' EnableMacie (Prelude.Maybe Prelude.Text)+enableMacie_clientToken = Lens.lens (\EnableMacie' {clientToken} -> clientToken) (\s@EnableMacie' {} a -> s {clientToken = a} :: EnableMacie)++-- | Specifies how often to publish updates to policy findings for the+-- account. This includes publishing updates to Security Hub and Amazon+-- EventBridge (formerly Amazon CloudWatch Events).+enableMacie_findingPublishingFrequency :: Lens.Lens' EnableMacie (Prelude.Maybe FindingPublishingFrequency)+enableMacie_findingPublishingFrequency = Lens.lens (\EnableMacie' {findingPublishingFrequency} -> findingPublishingFrequency) (\s@EnableMacie' {} a -> s {findingPublishingFrequency = a} :: EnableMacie)++-- | Specifies the new status for the account. To enable Amazon Macie and+-- start all Macie activities for the account, set this value to ENABLED.+enableMacie_status :: Lens.Lens' EnableMacie (Prelude.Maybe MacieStatus)+enableMacie_status = Lens.lens (\EnableMacie' {status} -> status) (\s@EnableMacie' {} a -> s {status = a} :: EnableMacie)++instance Core.AWSRequest EnableMacie where+  type AWSResponse EnableMacie = EnableMacieResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          EnableMacieResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable EnableMacie where+  hashWithSalt _salt EnableMacie' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` findingPublishingFrequency+      `Prelude.hashWithSalt` status++instance Prelude.NFData EnableMacie where+  rnf EnableMacie' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf findingPublishingFrequency+      `Prelude.seq` Prelude.rnf status++instance Data.ToHeaders EnableMacie where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON EnableMacie where+  toJSON EnableMacie' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("clientToken" Data..=) Prelude.<$> clientToken,+            ("findingPublishingFrequency" Data..=)+              Prelude.<$> findingPublishingFrequency,+            ("status" Data..=) Prelude.<$> status+          ]+      )++instance Data.ToPath EnableMacie where+  toPath = Prelude.const "/macie"++instance Data.ToQuery EnableMacie where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newEnableMacieResponse' smart constructor.+data EnableMacieResponse = EnableMacieResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EnableMacieResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'enableMacieResponse_httpStatus' - The response's http status code.+newEnableMacieResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  EnableMacieResponse+newEnableMacieResponse pHttpStatus_ =+  EnableMacieResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+enableMacieResponse_httpStatus :: Lens.Lens' EnableMacieResponse Prelude.Int+enableMacieResponse_httpStatus = Lens.lens (\EnableMacieResponse' {httpStatus} -> httpStatus) (\s@EnableMacieResponse' {} a -> s {httpStatus = a} :: EnableMacieResponse)++instance Prelude.NFData EnableMacieResponse where+  rnf EnableMacieResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/EnableOrganizationAdminAccount.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.MacieV2.EnableOrganizationAdminAccount+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Designates an account as the delegated Amazon Macie administrator+-- account for an organization in Organizations.+module Amazonka.MacieV2.EnableOrganizationAdminAccount+  ( -- * Creating a Request+    EnableOrganizationAdminAccount (..),+    newEnableOrganizationAdminAccount,++    -- * Request Lenses+    enableOrganizationAdminAccount_clientToken,+    enableOrganizationAdminAccount_adminAccountId,++    -- * Destructuring the Response+    EnableOrganizationAdminAccountResponse (..),+    newEnableOrganizationAdminAccountResponse,++    -- * Response Lenses+    enableOrganizationAdminAccountResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newEnableOrganizationAdminAccount' smart constructor.+data EnableOrganizationAdminAccount = EnableOrganizationAdminAccount'+  { -- | A unique, case-sensitive token that you provide to ensure the+    -- idempotency of the request.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Web Services account ID for the account to designate as the+    -- delegated Amazon Macie administrator account for the organization.+    adminAccountId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EnableOrganizationAdminAccount' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'enableOrganizationAdminAccount_clientToken' - A unique, case-sensitive token that you provide to ensure the+-- idempotency of the request.+--+-- 'adminAccountId', 'enableOrganizationAdminAccount_adminAccountId' - The Amazon Web Services account ID for the account to designate as the+-- delegated Amazon Macie administrator account for the organization.+newEnableOrganizationAdminAccount ::+  -- | 'adminAccountId'+  Prelude.Text ->+  EnableOrganizationAdminAccount+newEnableOrganizationAdminAccount pAdminAccountId_ =+  EnableOrganizationAdminAccount'+    { clientToken =+        Prelude.Nothing,+      adminAccountId = pAdminAccountId_+    }++-- | A unique, case-sensitive token that you provide to ensure the+-- idempotency of the request.+enableOrganizationAdminAccount_clientToken :: Lens.Lens' EnableOrganizationAdminAccount (Prelude.Maybe Prelude.Text)+enableOrganizationAdminAccount_clientToken = Lens.lens (\EnableOrganizationAdminAccount' {clientToken} -> clientToken) (\s@EnableOrganizationAdminAccount' {} a -> s {clientToken = a} :: EnableOrganizationAdminAccount)++-- | The Amazon Web Services account ID for the account to designate as the+-- delegated Amazon Macie administrator account for the organization.+enableOrganizationAdminAccount_adminAccountId :: Lens.Lens' EnableOrganizationAdminAccount Prelude.Text+enableOrganizationAdminAccount_adminAccountId = Lens.lens (\EnableOrganizationAdminAccount' {adminAccountId} -> adminAccountId) (\s@EnableOrganizationAdminAccount' {} a -> s {adminAccountId = a} :: EnableOrganizationAdminAccount)++instance+  Core.AWSRequest+    EnableOrganizationAdminAccount+  where+  type+    AWSResponse EnableOrganizationAdminAccount =+      EnableOrganizationAdminAccountResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          EnableOrganizationAdminAccountResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    EnableOrganizationAdminAccount+  where+  hashWithSalt+    _salt+    EnableOrganizationAdminAccount' {..} =+      _salt+        `Prelude.hashWithSalt` clientToken+        `Prelude.hashWithSalt` adminAccountId++instance+  Prelude.NFData+    EnableOrganizationAdminAccount+  where+  rnf EnableOrganizationAdminAccount' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf adminAccountId++instance+  Data.ToHeaders+    EnableOrganizationAdminAccount+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON EnableOrganizationAdminAccount where+  toJSON EnableOrganizationAdminAccount' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("clientToken" Data..=) Prelude.<$> clientToken,+            Prelude.Just+              ("adminAccountId" Data..= adminAccountId)+          ]+      )++instance Data.ToPath EnableOrganizationAdminAccount where+  toPath = Prelude.const "/admin"++instance Data.ToQuery EnableOrganizationAdminAccount where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newEnableOrganizationAdminAccountResponse' smart constructor.+data EnableOrganizationAdminAccountResponse = EnableOrganizationAdminAccountResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EnableOrganizationAdminAccountResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'enableOrganizationAdminAccountResponse_httpStatus' - The response's http status code.+newEnableOrganizationAdminAccountResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  EnableOrganizationAdminAccountResponse+newEnableOrganizationAdminAccountResponse+  pHttpStatus_ =+    EnableOrganizationAdminAccountResponse'+      { httpStatus =+          pHttpStatus_+      }++-- | The response's http status code.+enableOrganizationAdminAccountResponse_httpStatus :: Lens.Lens' EnableOrganizationAdminAccountResponse Prelude.Int+enableOrganizationAdminAccountResponse_httpStatus = Lens.lens (\EnableOrganizationAdminAccountResponse' {httpStatus} -> httpStatus) (\s@EnableOrganizationAdminAccountResponse' {} a -> s {httpStatus = a} :: EnableOrganizationAdminAccountResponse)++instance+  Prelude.NFData+    EnableOrganizationAdminAccountResponse+  where+  rnf EnableOrganizationAdminAccountResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/GetAdministratorAccount.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.MacieV2.GetAdministratorAccount+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves information about the Amazon Macie administrator account for+-- an account.+module Amazonka.MacieV2.GetAdministratorAccount+  ( -- * Creating a Request+    GetAdministratorAccount (..),+    newGetAdministratorAccount,++    -- * Destructuring the Response+    GetAdministratorAccountResponse (..),+    newGetAdministratorAccountResponse,++    -- * Response Lenses+    getAdministratorAccountResponse_administrator,+    getAdministratorAccountResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetAdministratorAccount' smart constructor.+data GetAdministratorAccount = GetAdministratorAccount'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAdministratorAccount' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newGetAdministratorAccount ::+  GetAdministratorAccount+newGetAdministratorAccount = GetAdministratorAccount'++instance Core.AWSRequest GetAdministratorAccount where+  type+    AWSResponse GetAdministratorAccount =+      GetAdministratorAccountResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetAdministratorAccountResponse'+            Prelude.<$> (x Data..?> "administrator")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetAdministratorAccount where+  hashWithSalt _salt _ =+    _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData GetAdministratorAccount where+  rnf _ = ()++instance Data.ToHeaders GetAdministratorAccount where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetAdministratorAccount where+  toPath = Prelude.const "/administrator"++instance Data.ToQuery GetAdministratorAccount where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetAdministratorAccountResponse' smart constructor.+data GetAdministratorAccountResponse = GetAdministratorAccountResponse'+  { -- | The Amazon Web Services account ID for the administrator account. If the+    -- accounts are associated by an Amazon Macie membership invitation, this+    -- object also provides details about the invitation that was sent to+    -- establish the relationship between the accounts.+    administrator :: Prelude.Maybe Invitation,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAdministratorAccountResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'administrator', 'getAdministratorAccountResponse_administrator' - The Amazon Web Services account ID for the administrator account. If the+-- accounts are associated by an Amazon Macie membership invitation, this+-- object also provides details about the invitation that was sent to+-- establish the relationship between the accounts.+--+-- 'httpStatus', 'getAdministratorAccountResponse_httpStatus' - The response's http status code.+newGetAdministratorAccountResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetAdministratorAccountResponse+newGetAdministratorAccountResponse pHttpStatus_ =+  GetAdministratorAccountResponse'+    { administrator =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Web Services account ID for the administrator account. If the+-- accounts are associated by an Amazon Macie membership invitation, this+-- object also provides details about the invitation that was sent to+-- establish the relationship between the accounts.+getAdministratorAccountResponse_administrator :: Lens.Lens' GetAdministratorAccountResponse (Prelude.Maybe Invitation)+getAdministratorAccountResponse_administrator = Lens.lens (\GetAdministratorAccountResponse' {administrator} -> administrator) (\s@GetAdministratorAccountResponse' {} a -> s {administrator = a} :: GetAdministratorAccountResponse)++-- | The response's http status code.+getAdministratorAccountResponse_httpStatus :: Lens.Lens' GetAdministratorAccountResponse Prelude.Int+getAdministratorAccountResponse_httpStatus = Lens.lens (\GetAdministratorAccountResponse' {httpStatus} -> httpStatus) (\s@GetAdministratorAccountResponse' {} a -> s {httpStatus = a} :: GetAdministratorAccountResponse)++instance+  Prelude.NFData+    GetAdministratorAccountResponse+  where+  rnf GetAdministratorAccountResponse' {..} =+    Prelude.rnf administrator+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/GetAllowList.hs view
@@ -0,0 +1,274 @@+{-# 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.MacieV2.GetAllowList+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the settings and status of an allow list.+module Amazonka.MacieV2.GetAllowList+  ( -- * Creating a Request+    GetAllowList (..),+    newGetAllowList,++    -- * Request Lenses+    getAllowList_id,++    -- * Destructuring the Response+    GetAllowListResponse (..),+    newGetAllowListResponse,++    -- * Response Lenses+    getAllowListResponse_arn,+    getAllowListResponse_createdAt,+    getAllowListResponse_criteria,+    getAllowListResponse_description,+    getAllowListResponse_id,+    getAllowListResponse_name,+    getAllowListResponse_status,+    getAllowListResponse_tags,+    getAllowListResponse_updatedAt,+    getAllowListResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetAllowList' smart constructor.+data GetAllowList = GetAllowList'+  { -- | The unique identifier for the Amazon Macie resource that the request+    -- applies to.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAllowList' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getAllowList_id' - The unique identifier for the Amazon Macie resource that the request+-- applies to.+newGetAllowList ::+  -- | 'id'+  Prelude.Text ->+  GetAllowList+newGetAllowList pId_ = GetAllowList' {id = pId_}++-- | The unique identifier for the Amazon Macie resource that the request+-- applies to.+getAllowList_id :: Lens.Lens' GetAllowList Prelude.Text+getAllowList_id = Lens.lens (\GetAllowList' {id} -> id) (\s@GetAllowList' {} a -> s {id = a} :: GetAllowList)++instance Core.AWSRequest GetAllowList where+  type AWSResponse GetAllowList = GetAllowListResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetAllowListResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "createdAt")+            Prelude.<*> (x Data..?> "criteria")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "id")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (x Data..?> "status")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "updatedAt")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetAllowList where+  hashWithSalt _salt GetAllowList' {..} =+    _salt `Prelude.hashWithSalt` id++instance Prelude.NFData GetAllowList where+  rnf GetAllowList' {..} = Prelude.rnf id++instance Data.ToHeaders GetAllowList where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetAllowList where+  toPath GetAllowList' {..} =+    Prelude.mconcat ["/allow-lists/", Data.toBS id]++instance Data.ToQuery GetAllowList where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetAllowListResponse' smart constructor.+data GetAllowListResponse = GetAllowListResponse'+  { -- | The Amazon Resource Name (ARN) of the allow list.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The date and time, in UTC and extended ISO 8601 format, when the allow+    -- list was created in Amazon Macie.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | The criteria that specify the text or text pattern to ignore. The+    -- criteria can be the location and name of an S3 object that lists+    -- specific text to ignore (s3WordsList), or a regular expression (regex)+    -- that defines a text pattern to ignore.+    criteria :: Prelude.Maybe AllowListCriteria,+    -- | The custom description of the allow list.+    description :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the allow list.+    id :: Prelude.Maybe Prelude.Text,+    -- | The custom name of the allow list.+    name :: Prelude.Maybe Prelude.Text,+    -- | The current status of the allow list, which indicates whether Amazon+    -- Macie can access and use the list\'s criteria.+    status :: Prelude.Maybe AllowListStatus,+    -- | A map of key-value pairs that specifies which tags (keys and values) are+    -- associated with the allow list.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The date and time, in UTC and extended ISO 8601 format, when the allow+    -- list\'s settings were most recently changed in Amazon Macie.+    updatedAt :: Prelude.Maybe Data.ISO8601,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAllowListResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getAllowListResponse_arn' - The Amazon Resource Name (ARN) of the allow list.+--+-- 'createdAt', 'getAllowListResponse_createdAt' - The date and time, in UTC and extended ISO 8601 format, when the allow+-- list was created in Amazon Macie.+--+-- 'criteria', 'getAllowListResponse_criteria' - The criteria that specify the text or text pattern to ignore. The+-- criteria can be the location and name of an S3 object that lists+-- specific text to ignore (s3WordsList), or a regular expression (regex)+-- that defines a text pattern to ignore.+--+-- 'description', 'getAllowListResponse_description' - The custom description of the allow list.+--+-- 'id', 'getAllowListResponse_id' - The unique identifier for the allow list.+--+-- 'name', 'getAllowListResponse_name' - The custom name of the allow list.+--+-- 'status', 'getAllowListResponse_status' - The current status of the allow list, which indicates whether Amazon+-- Macie can access and use the list\'s criteria.+--+-- 'tags', 'getAllowListResponse_tags' - A map of key-value pairs that specifies which tags (keys and values) are+-- associated with the allow list.+--+-- 'updatedAt', 'getAllowListResponse_updatedAt' - The date and time, in UTC and extended ISO 8601 format, when the allow+-- list\'s settings were most recently changed in Amazon Macie.+--+-- 'httpStatus', 'getAllowListResponse_httpStatus' - The response's http status code.+newGetAllowListResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetAllowListResponse+newGetAllowListResponse pHttpStatus_ =+  GetAllowListResponse'+    { arn = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      criteria = Prelude.Nothing,+      description = Prelude.Nothing,+      id = Prelude.Nothing,+      name = Prelude.Nothing,+      status = Prelude.Nothing,+      tags = Prelude.Nothing,+      updatedAt = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the allow list.+getAllowListResponse_arn :: Lens.Lens' GetAllowListResponse (Prelude.Maybe Prelude.Text)+getAllowListResponse_arn = Lens.lens (\GetAllowListResponse' {arn} -> arn) (\s@GetAllowListResponse' {} a -> s {arn = a} :: GetAllowListResponse)++-- | The date and time, in UTC and extended ISO 8601 format, when the allow+-- list was created in Amazon Macie.+getAllowListResponse_createdAt :: Lens.Lens' GetAllowListResponse (Prelude.Maybe Prelude.UTCTime)+getAllowListResponse_createdAt = Lens.lens (\GetAllowListResponse' {createdAt} -> createdAt) (\s@GetAllowListResponse' {} a -> s {createdAt = a} :: GetAllowListResponse) Prelude.. Lens.mapping Data._Time++-- | The criteria that specify the text or text pattern to ignore. The+-- criteria can be the location and name of an S3 object that lists+-- specific text to ignore (s3WordsList), or a regular expression (regex)+-- that defines a text pattern to ignore.+getAllowListResponse_criteria :: Lens.Lens' GetAllowListResponse (Prelude.Maybe AllowListCriteria)+getAllowListResponse_criteria = Lens.lens (\GetAllowListResponse' {criteria} -> criteria) (\s@GetAllowListResponse' {} a -> s {criteria = a} :: GetAllowListResponse)++-- | The custom description of the allow list.+getAllowListResponse_description :: Lens.Lens' GetAllowListResponse (Prelude.Maybe Prelude.Text)+getAllowListResponse_description = Lens.lens (\GetAllowListResponse' {description} -> description) (\s@GetAllowListResponse' {} a -> s {description = a} :: GetAllowListResponse)++-- | The unique identifier for the allow list.+getAllowListResponse_id :: Lens.Lens' GetAllowListResponse (Prelude.Maybe Prelude.Text)+getAllowListResponse_id = Lens.lens (\GetAllowListResponse' {id} -> id) (\s@GetAllowListResponse' {} a -> s {id = a} :: GetAllowListResponse)++-- | The custom name of the allow list.+getAllowListResponse_name :: Lens.Lens' GetAllowListResponse (Prelude.Maybe Prelude.Text)+getAllowListResponse_name = Lens.lens (\GetAllowListResponse' {name} -> name) (\s@GetAllowListResponse' {} a -> s {name = a} :: GetAllowListResponse)++-- | The current status of the allow list, which indicates whether Amazon+-- Macie can access and use the list\'s criteria.+getAllowListResponse_status :: Lens.Lens' GetAllowListResponse (Prelude.Maybe AllowListStatus)+getAllowListResponse_status = Lens.lens (\GetAllowListResponse' {status} -> status) (\s@GetAllowListResponse' {} a -> s {status = a} :: GetAllowListResponse)++-- | A map of key-value pairs that specifies which tags (keys and values) are+-- associated with the allow list.+getAllowListResponse_tags :: Lens.Lens' GetAllowListResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getAllowListResponse_tags = Lens.lens (\GetAllowListResponse' {tags} -> tags) (\s@GetAllowListResponse' {} a -> s {tags = a} :: GetAllowListResponse) Prelude.. Lens.mapping Lens.coerced++-- | The date and time, in UTC and extended ISO 8601 format, when the allow+-- list\'s settings were most recently changed in Amazon Macie.+getAllowListResponse_updatedAt :: Lens.Lens' GetAllowListResponse (Prelude.Maybe Prelude.UTCTime)+getAllowListResponse_updatedAt = Lens.lens (\GetAllowListResponse' {updatedAt} -> updatedAt) (\s@GetAllowListResponse' {} a -> s {updatedAt = a} :: GetAllowListResponse) Prelude.. Lens.mapping Data._Time++-- | The response's http status code.+getAllowListResponse_httpStatus :: Lens.Lens' GetAllowListResponse Prelude.Int+getAllowListResponse_httpStatus = Lens.lens (\GetAllowListResponse' {httpStatus} -> httpStatus) (\s@GetAllowListResponse' {} a -> s {httpStatus = a} :: GetAllowListResponse)++instance Prelude.NFData GetAllowListResponse where+  rnf GetAllowListResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf criteria+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf updatedAt+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/GetAutomatedDiscoveryConfiguration.hs view
@@ -0,0 +1,282 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.GetAutomatedDiscoveryConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the configuration settings and status of automated sensitive+-- data discovery for an account.+module Amazonka.MacieV2.GetAutomatedDiscoveryConfiguration+  ( -- * Creating a Request+    GetAutomatedDiscoveryConfiguration (..),+    newGetAutomatedDiscoveryConfiguration,++    -- * Destructuring the Response+    GetAutomatedDiscoveryConfigurationResponse (..),+    newGetAutomatedDiscoveryConfigurationResponse,++    -- * Response Lenses+    getAutomatedDiscoveryConfigurationResponse_classificationScopeId,+    getAutomatedDiscoveryConfigurationResponse_disabledAt,+    getAutomatedDiscoveryConfigurationResponse_firstEnabledAt,+    getAutomatedDiscoveryConfigurationResponse_lastUpdatedAt,+    getAutomatedDiscoveryConfigurationResponse_sensitivityInspectionTemplateId,+    getAutomatedDiscoveryConfigurationResponse_status,+    getAutomatedDiscoveryConfigurationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetAutomatedDiscoveryConfiguration' smart constructor.+data GetAutomatedDiscoveryConfiguration = GetAutomatedDiscoveryConfiguration'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAutomatedDiscoveryConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newGetAutomatedDiscoveryConfiguration ::+  GetAutomatedDiscoveryConfiguration+newGetAutomatedDiscoveryConfiguration =+  GetAutomatedDiscoveryConfiguration'++instance+  Core.AWSRequest+    GetAutomatedDiscoveryConfiguration+  where+  type+    AWSResponse GetAutomatedDiscoveryConfiguration =+      GetAutomatedDiscoveryConfigurationResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetAutomatedDiscoveryConfigurationResponse'+            Prelude.<$> (x Data..?> "classificationScopeId")+            Prelude.<*> (x Data..?> "disabledAt")+            Prelude.<*> (x Data..?> "firstEnabledAt")+            Prelude.<*> (x Data..?> "lastUpdatedAt")+            Prelude.<*> (x Data..?> "sensitivityInspectionTemplateId")+            Prelude.<*> (x Data..?> "status")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    GetAutomatedDiscoveryConfiguration+  where+  hashWithSalt _salt _ =+    _salt `Prelude.hashWithSalt` ()++instance+  Prelude.NFData+    GetAutomatedDiscoveryConfiguration+  where+  rnf _ = ()++instance+  Data.ToHeaders+    GetAutomatedDiscoveryConfiguration+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToPath+    GetAutomatedDiscoveryConfiguration+  where+  toPath =+    Prelude.const "/automated-discovery/configuration"++instance+  Data.ToQuery+    GetAutomatedDiscoveryConfiguration+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetAutomatedDiscoveryConfigurationResponse' smart constructor.+data GetAutomatedDiscoveryConfigurationResponse = GetAutomatedDiscoveryConfigurationResponse'+  { -- | The unique identifier for the classification scope that\'s used when+    -- performing automated sensitive data discovery for the account. The+    -- classification scope specifies S3 buckets to exclude from automated+    -- sensitive data discovery.+    classificationScopeId :: Prelude.Maybe Prelude.Text,+    -- | The date and time, in UTC and extended ISO 8601 format, when automated+    -- sensitive data discovery was most recently disabled for the account.+    -- This value is null if automated sensitive data discovery wasn\'t enabled+    -- and subsequently disabled for the account.+    disabledAt :: Prelude.Maybe Data.ISO8601,+    -- | The date and time, in UTC and extended ISO 8601 format, when automated+    -- sensitive data discovery was initially enabled for the account. This+    -- value is null if automated sensitive data discovery has never been+    -- enabled for the account.+    firstEnabledAt :: Prelude.Maybe Data.ISO8601,+    -- | The date and time, in UTC and extended ISO 8601 format, when automated+    -- sensitive data discovery was most recently enabled or disabled for the+    -- account.+    lastUpdatedAt :: Prelude.Maybe Data.ISO8601,+    -- | The unique identifier for the sensitivity inspection template that\'s+    -- used when performing automated sensitive data discovery for the account.+    -- The template specifies which allow lists, custom data identifiers, and+    -- managed data identifiers to use when analyzing data.+    sensitivityInspectionTemplateId :: Prelude.Maybe Prelude.Text,+    -- | The current status of the automated sensitive data discovery+    -- configuration for the account. Possible values are: ENABLED, use the+    -- specified settings to perform automated sensitive data discovery+    -- activities for the account; and, DISABLED, don\'t perform automated+    -- sensitive data discovery activities for the account.+    status :: Prelude.Maybe AutomatedDiscoveryStatus,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAutomatedDiscoveryConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'classificationScopeId', 'getAutomatedDiscoveryConfigurationResponse_classificationScopeId' - The unique identifier for the classification scope that\'s used when+-- performing automated sensitive data discovery for the account. The+-- classification scope specifies S3 buckets to exclude from automated+-- sensitive data discovery.+--+-- 'disabledAt', 'getAutomatedDiscoveryConfigurationResponse_disabledAt' - The date and time, in UTC and extended ISO 8601 format, when automated+-- sensitive data discovery was most recently disabled for the account.+-- This value is null if automated sensitive data discovery wasn\'t enabled+-- and subsequently disabled for the account.+--+-- 'firstEnabledAt', 'getAutomatedDiscoveryConfigurationResponse_firstEnabledAt' - The date and time, in UTC and extended ISO 8601 format, when automated+-- sensitive data discovery was initially enabled for the account. This+-- value is null if automated sensitive data discovery has never been+-- enabled for the account.+--+-- 'lastUpdatedAt', 'getAutomatedDiscoveryConfigurationResponse_lastUpdatedAt' - The date and time, in UTC and extended ISO 8601 format, when automated+-- sensitive data discovery was most recently enabled or disabled for the+-- account.+--+-- 'sensitivityInspectionTemplateId', 'getAutomatedDiscoveryConfigurationResponse_sensitivityInspectionTemplateId' - The unique identifier for the sensitivity inspection template that\'s+-- used when performing automated sensitive data discovery for the account.+-- The template specifies which allow lists, custom data identifiers, and+-- managed data identifiers to use when analyzing data.+--+-- 'status', 'getAutomatedDiscoveryConfigurationResponse_status' - The current status of the automated sensitive data discovery+-- configuration for the account. Possible values are: ENABLED, use the+-- specified settings to perform automated sensitive data discovery+-- activities for the account; and, DISABLED, don\'t perform automated+-- sensitive data discovery activities for the account.+--+-- 'httpStatus', 'getAutomatedDiscoveryConfigurationResponse_httpStatus' - The response's http status code.+newGetAutomatedDiscoveryConfigurationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetAutomatedDiscoveryConfigurationResponse+newGetAutomatedDiscoveryConfigurationResponse+  pHttpStatus_ =+    GetAutomatedDiscoveryConfigurationResponse'+      { classificationScopeId =+          Prelude.Nothing,+        disabledAt = Prelude.Nothing,+        firstEnabledAt =+          Prelude.Nothing,+        lastUpdatedAt = Prelude.Nothing,+        sensitivityInspectionTemplateId =+          Prelude.Nothing,+        status = Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | The unique identifier for the classification scope that\'s used when+-- performing automated sensitive data discovery for the account. The+-- classification scope specifies S3 buckets to exclude from automated+-- sensitive data discovery.+getAutomatedDiscoveryConfigurationResponse_classificationScopeId :: Lens.Lens' GetAutomatedDiscoveryConfigurationResponse (Prelude.Maybe Prelude.Text)+getAutomatedDiscoveryConfigurationResponse_classificationScopeId = Lens.lens (\GetAutomatedDiscoveryConfigurationResponse' {classificationScopeId} -> classificationScopeId) (\s@GetAutomatedDiscoveryConfigurationResponse' {} a -> s {classificationScopeId = a} :: GetAutomatedDiscoveryConfigurationResponse)++-- | The date and time, in UTC and extended ISO 8601 format, when automated+-- sensitive data discovery was most recently disabled for the account.+-- This value is null if automated sensitive data discovery wasn\'t enabled+-- and subsequently disabled for the account.+getAutomatedDiscoveryConfigurationResponse_disabledAt :: Lens.Lens' GetAutomatedDiscoveryConfigurationResponse (Prelude.Maybe Prelude.UTCTime)+getAutomatedDiscoveryConfigurationResponse_disabledAt = Lens.lens (\GetAutomatedDiscoveryConfigurationResponse' {disabledAt} -> disabledAt) (\s@GetAutomatedDiscoveryConfigurationResponse' {} a -> s {disabledAt = a} :: GetAutomatedDiscoveryConfigurationResponse) Prelude.. Lens.mapping Data._Time++-- | The date and time, in UTC and extended ISO 8601 format, when automated+-- sensitive data discovery was initially enabled for the account. This+-- value is null if automated sensitive data discovery has never been+-- enabled for the account.+getAutomatedDiscoveryConfigurationResponse_firstEnabledAt :: Lens.Lens' GetAutomatedDiscoveryConfigurationResponse (Prelude.Maybe Prelude.UTCTime)+getAutomatedDiscoveryConfigurationResponse_firstEnabledAt = Lens.lens (\GetAutomatedDiscoveryConfigurationResponse' {firstEnabledAt} -> firstEnabledAt) (\s@GetAutomatedDiscoveryConfigurationResponse' {} a -> s {firstEnabledAt = a} :: GetAutomatedDiscoveryConfigurationResponse) Prelude.. Lens.mapping Data._Time++-- | The date and time, in UTC and extended ISO 8601 format, when automated+-- sensitive data discovery was most recently enabled or disabled for the+-- account.+getAutomatedDiscoveryConfigurationResponse_lastUpdatedAt :: Lens.Lens' GetAutomatedDiscoveryConfigurationResponse (Prelude.Maybe Prelude.UTCTime)+getAutomatedDiscoveryConfigurationResponse_lastUpdatedAt = Lens.lens (\GetAutomatedDiscoveryConfigurationResponse' {lastUpdatedAt} -> lastUpdatedAt) (\s@GetAutomatedDiscoveryConfigurationResponse' {} a -> s {lastUpdatedAt = a} :: GetAutomatedDiscoveryConfigurationResponse) Prelude.. Lens.mapping Data._Time++-- | The unique identifier for the sensitivity inspection template that\'s+-- used when performing automated sensitive data discovery for the account.+-- The template specifies which allow lists, custom data identifiers, and+-- managed data identifiers to use when analyzing data.+getAutomatedDiscoveryConfigurationResponse_sensitivityInspectionTemplateId :: Lens.Lens' GetAutomatedDiscoveryConfigurationResponse (Prelude.Maybe Prelude.Text)+getAutomatedDiscoveryConfigurationResponse_sensitivityInspectionTemplateId = Lens.lens (\GetAutomatedDiscoveryConfigurationResponse' {sensitivityInspectionTemplateId} -> sensitivityInspectionTemplateId) (\s@GetAutomatedDiscoveryConfigurationResponse' {} a -> s {sensitivityInspectionTemplateId = a} :: GetAutomatedDiscoveryConfigurationResponse)++-- | The current status of the automated sensitive data discovery+-- configuration for the account. Possible values are: ENABLED, use the+-- specified settings to perform automated sensitive data discovery+-- activities for the account; and, DISABLED, don\'t perform automated+-- sensitive data discovery activities for the account.+getAutomatedDiscoveryConfigurationResponse_status :: Lens.Lens' GetAutomatedDiscoveryConfigurationResponse (Prelude.Maybe AutomatedDiscoveryStatus)+getAutomatedDiscoveryConfigurationResponse_status = Lens.lens (\GetAutomatedDiscoveryConfigurationResponse' {status} -> status) (\s@GetAutomatedDiscoveryConfigurationResponse' {} a -> s {status = a} :: GetAutomatedDiscoveryConfigurationResponse)++-- | The response's http status code.+getAutomatedDiscoveryConfigurationResponse_httpStatus :: Lens.Lens' GetAutomatedDiscoveryConfigurationResponse Prelude.Int+getAutomatedDiscoveryConfigurationResponse_httpStatus = Lens.lens (\GetAutomatedDiscoveryConfigurationResponse' {httpStatus} -> httpStatus) (\s@GetAutomatedDiscoveryConfigurationResponse' {} a -> s {httpStatus = a} :: GetAutomatedDiscoveryConfigurationResponse)++instance+  Prelude.NFData+    GetAutomatedDiscoveryConfigurationResponse+  where+  rnf GetAutomatedDiscoveryConfigurationResponse' {..} =+    Prelude.rnf classificationScopeId+      `Prelude.seq` Prelude.rnf disabledAt+      `Prelude.seq` Prelude.rnf firstEnabledAt+      `Prelude.seq` Prelude.rnf lastUpdatedAt+      `Prelude.seq` Prelude.rnf sensitivityInspectionTemplateId+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/GetBucketStatistics.hs view
@@ -0,0 +1,432 @@+{-# 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.MacieV2.GetBucketStatistics+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves (queries) aggregated statistical data about all the S3 buckets+-- that Amazon Macie monitors and analyzes for an account.+module Amazonka.MacieV2.GetBucketStatistics+  ( -- * Creating a Request+    GetBucketStatistics (..),+    newGetBucketStatistics,++    -- * Request Lenses+    getBucketStatistics_accountId,++    -- * Destructuring the Response+    GetBucketStatisticsResponse (..),+    newGetBucketStatisticsResponse,++    -- * Response Lenses+    getBucketStatisticsResponse_bucketCount,+    getBucketStatisticsResponse_bucketCountByEffectivePermission,+    getBucketStatisticsResponse_bucketCountByEncryptionType,+    getBucketStatisticsResponse_bucketCountByObjectEncryptionRequirement,+    getBucketStatisticsResponse_bucketCountBySharedAccessType,+    getBucketStatisticsResponse_bucketStatisticsBySensitivity,+    getBucketStatisticsResponse_classifiableObjectCount,+    getBucketStatisticsResponse_classifiableSizeInBytes,+    getBucketStatisticsResponse_lastUpdated,+    getBucketStatisticsResponse_objectCount,+    getBucketStatisticsResponse_sizeInBytes,+    getBucketStatisticsResponse_sizeInBytesCompressed,+    getBucketStatisticsResponse_unclassifiableObjectCount,+    getBucketStatisticsResponse_unclassifiableObjectSizeInBytes,+    getBucketStatisticsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetBucketStatistics' smart constructor.+data GetBucketStatistics = GetBucketStatistics'+  { -- | The unique identifier for the Amazon Web Services account.+    accountId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetBucketStatistics' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'getBucketStatistics_accountId' - The unique identifier for the Amazon Web Services account.+newGetBucketStatistics ::+  GetBucketStatistics+newGetBucketStatistics =+  GetBucketStatistics' {accountId = Prelude.Nothing}++-- | The unique identifier for the Amazon Web Services account.+getBucketStatistics_accountId :: Lens.Lens' GetBucketStatistics (Prelude.Maybe Prelude.Text)+getBucketStatistics_accountId = Lens.lens (\GetBucketStatistics' {accountId} -> accountId) (\s@GetBucketStatistics' {} a -> s {accountId = a} :: GetBucketStatistics)++instance Core.AWSRequest GetBucketStatistics where+  type+    AWSResponse GetBucketStatistics =+      GetBucketStatisticsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetBucketStatisticsResponse'+            Prelude.<$> (x Data..?> "bucketCount")+            Prelude.<*> (x Data..?> "bucketCountByEffectivePermission")+            Prelude.<*> (x Data..?> "bucketCountByEncryptionType")+            Prelude.<*> ( x+                            Data..?> "bucketCountByObjectEncryptionRequirement"+                        )+            Prelude.<*> (x Data..?> "bucketCountBySharedAccessType")+            Prelude.<*> (x Data..?> "bucketStatisticsBySensitivity")+            Prelude.<*> (x Data..?> "classifiableObjectCount")+            Prelude.<*> (x Data..?> "classifiableSizeInBytes")+            Prelude.<*> (x Data..?> "lastUpdated")+            Prelude.<*> (x Data..?> "objectCount")+            Prelude.<*> (x Data..?> "sizeInBytes")+            Prelude.<*> (x Data..?> "sizeInBytesCompressed")+            Prelude.<*> (x Data..?> "unclassifiableObjectCount")+            Prelude.<*> (x Data..?> "unclassifiableObjectSizeInBytes")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetBucketStatistics where+  hashWithSalt _salt GetBucketStatistics' {..} =+    _salt `Prelude.hashWithSalt` accountId++instance Prelude.NFData GetBucketStatistics where+  rnf GetBucketStatistics' {..} = Prelude.rnf accountId++instance Data.ToHeaders GetBucketStatistics where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetBucketStatistics where+  toJSON GetBucketStatistics' {..} =+    Data.object+      ( Prelude.catMaybes+          [("accountId" Data..=) Prelude.<$> accountId]+      )++instance Data.ToPath GetBucketStatistics where+  toPath = Prelude.const "/datasources/s3/statistics"++instance Data.ToQuery GetBucketStatistics where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetBucketStatisticsResponse' smart constructor.+data GetBucketStatisticsResponse = GetBucketStatisticsResponse'+  { -- | The total number of buckets.+    bucketCount :: Prelude.Maybe Prelude.Integer,+    -- | The total number of buckets that are publicly accessible based on a+    -- combination of permissions settings for each bucket.+    bucketCountByEffectivePermission :: Prelude.Maybe BucketCountByEffectivePermission,+    -- | The total number of buckets that use certain types of server-side+    -- encryption to encrypt new objects by default. This object also reports+    -- the total number of buckets that don\'t encrypt new objects by default.+    bucketCountByEncryptionType :: Prelude.Maybe BucketCountByEncryptionType,+    -- | The total number of buckets whose bucket policies do or don\'t require+    -- server-side encryption of objects when objects are uploaded to the+    -- buckets.+    bucketCountByObjectEncryptionRequirement :: Prelude.Maybe BucketCountPolicyAllowsUnencryptedObjectUploads,+    -- | The total number of buckets that are or aren\'t shared with another+    -- Amazon Web Services account.+    bucketCountBySharedAccessType :: Prelude.Maybe BucketCountBySharedAccessType,+    -- | The aggregated sensitive data discovery statistics for the buckets. If+    -- automated sensitive data discovery is currently disabled for your+    -- account, the value for each statistic is 0.+    bucketStatisticsBySensitivity :: Prelude.Maybe BucketStatisticsBySensitivity,+    -- | The total number of objects that Amazon Macie can analyze in the+    -- buckets. These objects use a supported storage class and have a file+    -- name extension for a supported file or storage format.+    classifiableObjectCount :: Prelude.Maybe Prelude.Integer,+    -- | The total storage size, in bytes, of all the objects that Amazon Macie+    -- can analyze in the buckets. These objects use a supported storage class+    -- and have a file name extension for a supported file or storage format.+    --+    -- If versioning is enabled for any of the buckets, this value is based on+    -- the size of the latest version of each applicable object in the buckets.+    -- This value doesn\'t reflect the storage size of all versions of all+    -- applicable objects in the buckets.+    classifiableSizeInBytes :: Prelude.Maybe Prelude.Integer,+    -- | The date and time, in UTC and extended ISO 8601 format, when Amazon+    -- Macie most recently retrieved both bucket and object metadata from+    -- Amazon S3 for the buckets.+    lastUpdated :: Prelude.Maybe Data.ISO8601,+    -- | The total number of objects in the buckets.+    objectCount :: Prelude.Maybe Prelude.Integer,+    -- | The total storage size, in bytes, of the buckets.+    --+    -- If versioning is enabled for any of the buckets, this value is based on+    -- the size of the latest version of each object in the buckets. This value+    -- doesn\'t reflect the storage size of all versions of the objects in the+    -- buckets.+    sizeInBytes :: Prelude.Maybe Prelude.Integer,+    -- | The total storage size, in bytes, of the objects that are compressed+    -- (.gz, .gzip, .zip) files in the buckets.+    --+    -- If versioning is enabled for any of the buckets, this value is based on+    -- the size of the latest version of each applicable object in the buckets.+    -- This value doesn\'t reflect the storage size of all versions of the+    -- applicable objects in the buckets.+    sizeInBytesCompressed :: Prelude.Maybe Prelude.Integer,+    -- | The total number of objects that Amazon Macie can\'t analyze in the+    -- buckets. These objects don\'t use a supported storage class or don\'t+    -- have a file name extension for a supported file or storage format.+    unclassifiableObjectCount :: Prelude.Maybe ObjectLevelStatistics,+    -- | The total storage size, in bytes, of the objects that Amazon Macie+    -- can\'t analyze in the buckets. These objects don\'t use a supported+    -- storage class or don\'t have a file name extension for a supported file+    -- or storage format.+    unclassifiableObjectSizeInBytes :: Prelude.Maybe ObjectLevelStatistics,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetBucketStatisticsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'bucketCount', 'getBucketStatisticsResponse_bucketCount' - The total number of buckets.+--+-- 'bucketCountByEffectivePermission', 'getBucketStatisticsResponse_bucketCountByEffectivePermission' - The total number of buckets that are publicly accessible based on a+-- combination of permissions settings for each bucket.+--+-- 'bucketCountByEncryptionType', 'getBucketStatisticsResponse_bucketCountByEncryptionType' - The total number of buckets that use certain types of server-side+-- encryption to encrypt new objects by default. This object also reports+-- the total number of buckets that don\'t encrypt new objects by default.+--+-- 'bucketCountByObjectEncryptionRequirement', 'getBucketStatisticsResponse_bucketCountByObjectEncryptionRequirement' - The total number of buckets whose bucket policies do or don\'t require+-- server-side encryption of objects when objects are uploaded to the+-- buckets.+--+-- 'bucketCountBySharedAccessType', 'getBucketStatisticsResponse_bucketCountBySharedAccessType' - The total number of buckets that are or aren\'t shared with another+-- Amazon Web Services account.+--+-- 'bucketStatisticsBySensitivity', 'getBucketStatisticsResponse_bucketStatisticsBySensitivity' - The aggregated sensitive data discovery statistics for the buckets. If+-- automated sensitive data discovery is currently disabled for your+-- account, the value for each statistic is 0.+--+-- 'classifiableObjectCount', 'getBucketStatisticsResponse_classifiableObjectCount' - The total number of objects that Amazon Macie can analyze in the+-- buckets. These objects use a supported storage class and have a file+-- name extension for a supported file or storage format.+--+-- 'classifiableSizeInBytes', 'getBucketStatisticsResponse_classifiableSizeInBytes' - The total storage size, in bytes, of all the objects that Amazon Macie+-- can analyze in the buckets. These objects use a supported storage class+-- and have a file name extension for a supported file or storage format.+--+-- If versioning is enabled for any of the buckets, this value is based on+-- the size of the latest version of each applicable object in the buckets.+-- This value doesn\'t reflect the storage size of all versions of all+-- applicable objects in the buckets.+--+-- 'lastUpdated', 'getBucketStatisticsResponse_lastUpdated' - The date and time, in UTC and extended ISO 8601 format, when Amazon+-- Macie most recently retrieved both bucket and object metadata from+-- Amazon S3 for the buckets.+--+-- 'objectCount', 'getBucketStatisticsResponse_objectCount' - The total number of objects in the buckets.+--+-- 'sizeInBytes', 'getBucketStatisticsResponse_sizeInBytes' - The total storage size, in bytes, of the buckets.+--+-- If versioning is enabled for any of the buckets, this value is based on+-- the size of the latest version of each object in the buckets. This value+-- doesn\'t reflect the storage size of all versions of the objects in the+-- buckets.+--+-- 'sizeInBytesCompressed', 'getBucketStatisticsResponse_sizeInBytesCompressed' - The total storage size, in bytes, of the objects that are compressed+-- (.gz, .gzip, .zip) files in the buckets.+--+-- If versioning is enabled for any of the buckets, this value is based on+-- the size of the latest version of each applicable object in the buckets.+-- This value doesn\'t reflect the storage size of all versions of the+-- applicable objects in the buckets.+--+-- 'unclassifiableObjectCount', 'getBucketStatisticsResponse_unclassifiableObjectCount' - The total number of objects that Amazon Macie can\'t analyze in the+-- buckets. These objects don\'t use a supported storage class or don\'t+-- have a file name extension for a supported file or storage format.+--+-- 'unclassifiableObjectSizeInBytes', 'getBucketStatisticsResponse_unclassifiableObjectSizeInBytes' - The total storage size, in bytes, of the objects that Amazon Macie+-- can\'t analyze in the buckets. These objects don\'t use a supported+-- storage class or don\'t have a file name extension for a supported file+-- or storage format.+--+-- 'httpStatus', 'getBucketStatisticsResponse_httpStatus' - The response's http status code.+newGetBucketStatisticsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetBucketStatisticsResponse+newGetBucketStatisticsResponse pHttpStatus_ =+  GetBucketStatisticsResponse'+    { bucketCount =+        Prelude.Nothing,+      bucketCountByEffectivePermission =+        Prelude.Nothing,+      bucketCountByEncryptionType = Prelude.Nothing,+      bucketCountByObjectEncryptionRequirement =+        Prelude.Nothing,+      bucketCountBySharedAccessType =+        Prelude.Nothing,+      bucketStatisticsBySensitivity =+        Prelude.Nothing,+      classifiableObjectCount = Prelude.Nothing,+      classifiableSizeInBytes = Prelude.Nothing,+      lastUpdated = Prelude.Nothing,+      objectCount = Prelude.Nothing,+      sizeInBytes = Prelude.Nothing,+      sizeInBytesCompressed = Prelude.Nothing,+      unclassifiableObjectCount = Prelude.Nothing,+      unclassifiableObjectSizeInBytes =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The total number of buckets.+getBucketStatisticsResponse_bucketCount :: Lens.Lens' GetBucketStatisticsResponse (Prelude.Maybe Prelude.Integer)+getBucketStatisticsResponse_bucketCount = Lens.lens (\GetBucketStatisticsResponse' {bucketCount} -> bucketCount) (\s@GetBucketStatisticsResponse' {} a -> s {bucketCount = a} :: GetBucketStatisticsResponse)++-- | The total number of buckets that are publicly accessible based on a+-- combination of permissions settings for each bucket.+getBucketStatisticsResponse_bucketCountByEffectivePermission :: Lens.Lens' GetBucketStatisticsResponse (Prelude.Maybe BucketCountByEffectivePermission)+getBucketStatisticsResponse_bucketCountByEffectivePermission = Lens.lens (\GetBucketStatisticsResponse' {bucketCountByEffectivePermission} -> bucketCountByEffectivePermission) (\s@GetBucketStatisticsResponse' {} a -> s {bucketCountByEffectivePermission = a} :: GetBucketStatisticsResponse)++-- | The total number of buckets that use certain types of server-side+-- encryption to encrypt new objects by default. This object also reports+-- the total number of buckets that don\'t encrypt new objects by default.+getBucketStatisticsResponse_bucketCountByEncryptionType :: Lens.Lens' GetBucketStatisticsResponse (Prelude.Maybe BucketCountByEncryptionType)+getBucketStatisticsResponse_bucketCountByEncryptionType = Lens.lens (\GetBucketStatisticsResponse' {bucketCountByEncryptionType} -> bucketCountByEncryptionType) (\s@GetBucketStatisticsResponse' {} a -> s {bucketCountByEncryptionType = a} :: GetBucketStatisticsResponse)++-- | The total number of buckets whose bucket policies do or don\'t require+-- server-side encryption of objects when objects are uploaded to the+-- buckets.+getBucketStatisticsResponse_bucketCountByObjectEncryptionRequirement :: Lens.Lens' GetBucketStatisticsResponse (Prelude.Maybe BucketCountPolicyAllowsUnencryptedObjectUploads)+getBucketStatisticsResponse_bucketCountByObjectEncryptionRequirement = Lens.lens (\GetBucketStatisticsResponse' {bucketCountByObjectEncryptionRequirement} -> bucketCountByObjectEncryptionRequirement) (\s@GetBucketStatisticsResponse' {} a -> s {bucketCountByObjectEncryptionRequirement = a} :: GetBucketStatisticsResponse)++-- | The total number of buckets that are or aren\'t shared with another+-- Amazon Web Services account.+getBucketStatisticsResponse_bucketCountBySharedAccessType :: Lens.Lens' GetBucketStatisticsResponse (Prelude.Maybe BucketCountBySharedAccessType)+getBucketStatisticsResponse_bucketCountBySharedAccessType = Lens.lens (\GetBucketStatisticsResponse' {bucketCountBySharedAccessType} -> bucketCountBySharedAccessType) (\s@GetBucketStatisticsResponse' {} a -> s {bucketCountBySharedAccessType = a} :: GetBucketStatisticsResponse)++-- | The aggregated sensitive data discovery statistics for the buckets. If+-- automated sensitive data discovery is currently disabled for your+-- account, the value for each statistic is 0.+getBucketStatisticsResponse_bucketStatisticsBySensitivity :: Lens.Lens' GetBucketStatisticsResponse (Prelude.Maybe BucketStatisticsBySensitivity)+getBucketStatisticsResponse_bucketStatisticsBySensitivity = Lens.lens (\GetBucketStatisticsResponse' {bucketStatisticsBySensitivity} -> bucketStatisticsBySensitivity) (\s@GetBucketStatisticsResponse' {} a -> s {bucketStatisticsBySensitivity = a} :: GetBucketStatisticsResponse)++-- | The total number of objects that Amazon Macie can analyze in the+-- buckets. These objects use a supported storage class and have a file+-- name extension for a supported file or storage format.+getBucketStatisticsResponse_classifiableObjectCount :: Lens.Lens' GetBucketStatisticsResponse (Prelude.Maybe Prelude.Integer)+getBucketStatisticsResponse_classifiableObjectCount = Lens.lens (\GetBucketStatisticsResponse' {classifiableObjectCount} -> classifiableObjectCount) (\s@GetBucketStatisticsResponse' {} a -> s {classifiableObjectCount = a} :: GetBucketStatisticsResponse)++-- | The total storage size, in bytes, of all the objects that Amazon Macie+-- can analyze in the buckets. These objects use a supported storage class+-- and have a file name extension for a supported file or storage format.+--+-- If versioning is enabled for any of the buckets, this value is based on+-- the size of the latest version of each applicable object in the buckets.+-- This value doesn\'t reflect the storage size of all versions of all+-- applicable objects in the buckets.+getBucketStatisticsResponse_classifiableSizeInBytes :: Lens.Lens' GetBucketStatisticsResponse (Prelude.Maybe Prelude.Integer)+getBucketStatisticsResponse_classifiableSizeInBytes = Lens.lens (\GetBucketStatisticsResponse' {classifiableSizeInBytes} -> classifiableSizeInBytes) (\s@GetBucketStatisticsResponse' {} a -> s {classifiableSizeInBytes = a} :: GetBucketStatisticsResponse)++-- | The date and time, in UTC and extended ISO 8601 format, when Amazon+-- Macie most recently retrieved both bucket and object metadata from+-- Amazon S3 for the buckets.+getBucketStatisticsResponse_lastUpdated :: Lens.Lens' GetBucketStatisticsResponse (Prelude.Maybe Prelude.UTCTime)+getBucketStatisticsResponse_lastUpdated = Lens.lens (\GetBucketStatisticsResponse' {lastUpdated} -> lastUpdated) (\s@GetBucketStatisticsResponse' {} a -> s {lastUpdated = a} :: GetBucketStatisticsResponse) Prelude.. Lens.mapping Data._Time++-- | The total number of objects in the buckets.+getBucketStatisticsResponse_objectCount :: Lens.Lens' GetBucketStatisticsResponse (Prelude.Maybe Prelude.Integer)+getBucketStatisticsResponse_objectCount = Lens.lens (\GetBucketStatisticsResponse' {objectCount} -> objectCount) (\s@GetBucketStatisticsResponse' {} a -> s {objectCount = a} :: GetBucketStatisticsResponse)++-- | The total storage size, in bytes, of the buckets.+--+-- If versioning is enabled for any of the buckets, this value is based on+-- the size of the latest version of each object in the buckets. This value+-- doesn\'t reflect the storage size of all versions of the objects in the+-- buckets.+getBucketStatisticsResponse_sizeInBytes :: Lens.Lens' GetBucketStatisticsResponse (Prelude.Maybe Prelude.Integer)+getBucketStatisticsResponse_sizeInBytes = Lens.lens (\GetBucketStatisticsResponse' {sizeInBytes} -> sizeInBytes) (\s@GetBucketStatisticsResponse' {} a -> s {sizeInBytes = a} :: GetBucketStatisticsResponse)++-- | The total storage size, in bytes, of the objects that are compressed+-- (.gz, .gzip, .zip) files in the buckets.+--+-- If versioning is enabled for any of the buckets, this value is based on+-- the size of the latest version of each applicable object in the buckets.+-- This value doesn\'t reflect the storage size of all versions of the+-- applicable objects in the buckets.+getBucketStatisticsResponse_sizeInBytesCompressed :: Lens.Lens' GetBucketStatisticsResponse (Prelude.Maybe Prelude.Integer)+getBucketStatisticsResponse_sizeInBytesCompressed = Lens.lens (\GetBucketStatisticsResponse' {sizeInBytesCompressed} -> sizeInBytesCompressed) (\s@GetBucketStatisticsResponse' {} a -> s {sizeInBytesCompressed = a} :: GetBucketStatisticsResponse)++-- | The total number of objects that Amazon Macie can\'t analyze in the+-- buckets. These objects don\'t use a supported storage class or don\'t+-- have a file name extension for a supported file or storage format.+getBucketStatisticsResponse_unclassifiableObjectCount :: Lens.Lens' GetBucketStatisticsResponse (Prelude.Maybe ObjectLevelStatistics)+getBucketStatisticsResponse_unclassifiableObjectCount = Lens.lens (\GetBucketStatisticsResponse' {unclassifiableObjectCount} -> unclassifiableObjectCount) (\s@GetBucketStatisticsResponse' {} a -> s {unclassifiableObjectCount = a} :: GetBucketStatisticsResponse)++-- | The total storage size, in bytes, of the objects that Amazon Macie+-- can\'t analyze in the buckets. These objects don\'t use a supported+-- storage class or don\'t have a file name extension for a supported file+-- or storage format.+getBucketStatisticsResponse_unclassifiableObjectSizeInBytes :: Lens.Lens' GetBucketStatisticsResponse (Prelude.Maybe ObjectLevelStatistics)+getBucketStatisticsResponse_unclassifiableObjectSizeInBytes = Lens.lens (\GetBucketStatisticsResponse' {unclassifiableObjectSizeInBytes} -> unclassifiableObjectSizeInBytes) (\s@GetBucketStatisticsResponse' {} a -> s {unclassifiableObjectSizeInBytes = a} :: GetBucketStatisticsResponse)++-- | The response's http status code.+getBucketStatisticsResponse_httpStatus :: Lens.Lens' GetBucketStatisticsResponse Prelude.Int+getBucketStatisticsResponse_httpStatus = Lens.lens (\GetBucketStatisticsResponse' {httpStatus} -> httpStatus) (\s@GetBucketStatisticsResponse' {} a -> s {httpStatus = a} :: GetBucketStatisticsResponse)++instance Prelude.NFData GetBucketStatisticsResponse where+  rnf GetBucketStatisticsResponse' {..} =+    Prelude.rnf bucketCount+      `Prelude.seq` Prelude.rnf bucketCountByEffectivePermission+      `Prelude.seq` Prelude.rnf bucketCountByEncryptionType+      `Prelude.seq` Prelude.rnf bucketCountByObjectEncryptionRequirement+      `Prelude.seq` Prelude.rnf bucketCountBySharedAccessType+      `Prelude.seq` Prelude.rnf bucketStatisticsBySensitivity+      `Prelude.seq` Prelude.rnf classifiableObjectCount+      `Prelude.seq` Prelude.rnf classifiableSizeInBytes+      `Prelude.seq` Prelude.rnf lastUpdated+      `Prelude.seq` Prelude.rnf objectCount+      `Prelude.seq` Prelude.rnf sizeInBytes+      `Prelude.seq` Prelude.rnf sizeInBytesCompressed+      `Prelude.seq` Prelude.rnf unclassifiableObjectCount+      `Prelude.seq` Prelude.rnf+        unclassifiableObjectSizeInBytes+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/GetClassificationExportConfiguration.hs view
@@ -0,0 +1,170 @@+{-# 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.MacieV2.GetClassificationExportConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the configuration settings for storing data classification+-- results.+module Amazonka.MacieV2.GetClassificationExportConfiguration+  ( -- * Creating a Request+    GetClassificationExportConfiguration (..),+    newGetClassificationExportConfiguration,++    -- * Destructuring the Response+    GetClassificationExportConfigurationResponse (..),+    newGetClassificationExportConfigurationResponse,++    -- * Response Lenses+    getClassificationExportConfigurationResponse_configuration,+    getClassificationExportConfigurationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetClassificationExportConfiguration' smart constructor.+data GetClassificationExportConfiguration = GetClassificationExportConfiguration'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetClassificationExportConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newGetClassificationExportConfiguration ::+  GetClassificationExportConfiguration+newGetClassificationExportConfiguration =+  GetClassificationExportConfiguration'++instance+  Core.AWSRequest+    GetClassificationExportConfiguration+  where+  type+    AWSResponse GetClassificationExportConfiguration =+      GetClassificationExportConfigurationResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetClassificationExportConfigurationResponse'+            Prelude.<$> (x Data..?> "configuration")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    GetClassificationExportConfiguration+  where+  hashWithSalt _salt _ =+    _salt `Prelude.hashWithSalt` ()++instance+  Prelude.NFData+    GetClassificationExportConfiguration+  where+  rnf _ = ()++instance+  Data.ToHeaders+    GetClassificationExportConfiguration+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToPath+    GetClassificationExportConfiguration+  where+  toPath =+    Prelude.const+      "/classification-export-configuration"++instance+  Data.ToQuery+    GetClassificationExportConfiguration+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetClassificationExportConfigurationResponse' smart constructor.+data GetClassificationExportConfigurationResponse = GetClassificationExportConfigurationResponse'+  { -- | The location where data classification results are stored, and the+    -- encryption settings that are used when storing results in that location.+    configuration :: Prelude.Maybe ClassificationExportConfiguration,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetClassificationExportConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configuration', 'getClassificationExportConfigurationResponse_configuration' - The location where data classification results are stored, and the+-- encryption settings that are used when storing results in that location.+--+-- 'httpStatus', 'getClassificationExportConfigurationResponse_httpStatus' - The response's http status code.+newGetClassificationExportConfigurationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetClassificationExportConfigurationResponse+newGetClassificationExportConfigurationResponse+  pHttpStatus_ =+    GetClassificationExportConfigurationResponse'+      { configuration =+          Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | The location where data classification results are stored, and the+-- encryption settings that are used when storing results in that location.+getClassificationExportConfigurationResponse_configuration :: Lens.Lens' GetClassificationExportConfigurationResponse (Prelude.Maybe ClassificationExportConfiguration)+getClassificationExportConfigurationResponse_configuration = Lens.lens (\GetClassificationExportConfigurationResponse' {configuration} -> configuration) (\s@GetClassificationExportConfigurationResponse' {} a -> s {configuration = a} :: GetClassificationExportConfigurationResponse)++-- | The response's http status code.+getClassificationExportConfigurationResponse_httpStatus :: Lens.Lens' GetClassificationExportConfigurationResponse Prelude.Int+getClassificationExportConfigurationResponse_httpStatus = Lens.lens (\GetClassificationExportConfigurationResponse' {httpStatus} -> httpStatus) (\s@GetClassificationExportConfigurationResponse' {} a -> s {httpStatus = a} :: GetClassificationExportConfigurationResponse)++instance+  Prelude.NFData+    GetClassificationExportConfigurationResponse+  where+  rnf GetClassificationExportConfigurationResponse' {..} =+    Prelude.rnf configuration+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/GetClassificationScope.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.MacieV2.GetClassificationScope+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the classification scope settings for an account.+module Amazonka.MacieV2.GetClassificationScope+  ( -- * Creating a Request+    GetClassificationScope (..),+    newGetClassificationScope,++    -- * Request Lenses+    getClassificationScope_id,++    -- * Destructuring the Response+    GetClassificationScopeResponse (..),+    newGetClassificationScopeResponse,++    -- * Response Lenses+    getClassificationScopeResponse_id,+    getClassificationScopeResponse_name,+    getClassificationScopeResponse_s3,+    getClassificationScopeResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetClassificationScope' smart constructor.+data GetClassificationScope = GetClassificationScope'+  { -- | The unique identifier for the Amazon Macie resource that the request+    -- applies to.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetClassificationScope' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getClassificationScope_id' - The unique identifier for the Amazon Macie resource that the request+-- applies to.+newGetClassificationScope ::+  -- | 'id'+  Prelude.Text ->+  GetClassificationScope+newGetClassificationScope pId_ =+  GetClassificationScope' {id = pId_}++-- | The unique identifier for the Amazon Macie resource that the request+-- applies to.+getClassificationScope_id :: Lens.Lens' GetClassificationScope Prelude.Text+getClassificationScope_id = Lens.lens (\GetClassificationScope' {id} -> id) (\s@GetClassificationScope' {} a -> s {id = a} :: GetClassificationScope)++instance Core.AWSRequest GetClassificationScope where+  type+    AWSResponse GetClassificationScope =+      GetClassificationScopeResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetClassificationScopeResponse'+            Prelude.<$> (x Data..?> "id")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (x Data..?> "s3")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetClassificationScope where+  hashWithSalt _salt GetClassificationScope' {..} =+    _salt `Prelude.hashWithSalt` id++instance Prelude.NFData GetClassificationScope where+  rnf GetClassificationScope' {..} = Prelude.rnf id++instance Data.ToHeaders GetClassificationScope where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetClassificationScope where+  toPath GetClassificationScope' {..} =+    Prelude.mconcat+      ["/classification-scopes/", Data.toBS id]++instance Data.ToQuery GetClassificationScope where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetClassificationScopeResponse' smart constructor.+data GetClassificationScopeResponse = GetClassificationScopeResponse'+  { -- | The unique identifier for the classification scope.+    id :: Prelude.Maybe Prelude.Text,+    -- | The name of the classification scope.+    name :: Prelude.Maybe Prelude.Text,+    -- | The S3 buckets that are excluded from automated sensitive data+    -- discovery.+    s3 :: Prelude.Maybe S3ClassificationScope,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetClassificationScopeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getClassificationScopeResponse_id' - The unique identifier for the classification scope.+--+-- 'name', 'getClassificationScopeResponse_name' - The name of the classification scope.+--+-- 's3', 'getClassificationScopeResponse_s3' - The S3 buckets that are excluded from automated sensitive data+-- discovery.+--+-- 'httpStatus', 'getClassificationScopeResponse_httpStatus' - The response's http status code.+newGetClassificationScopeResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetClassificationScopeResponse+newGetClassificationScopeResponse pHttpStatus_ =+  GetClassificationScopeResponse'+    { id =+        Prelude.Nothing,+      name = Prelude.Nothing,+      s3 = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier for the classification scope.+getClassificationScopeResponse_id :: Lens.Lens' GetClassificationScopeResponse (Prelude.Maybe Prelude.Text)+getClassificationScopeResponse_id = Lens.lens (\GetClassificationScopeResponse' {id} -> id) (\s@GetClassificationScopeResponse' {} a -> s {id = a} :: GetClassificationScopeResponse)++-- | The name of the classification scope.+getClassificationScopeResponse_name :: Lens.Lens' GetClassificationScopeResponse (Prelude.Maybe Prelude.Text)+getClassificationScopeResponse_name = Lens.lens (\GetClassificationScopeResponse' {name} -> name) (\s@GetClassificationScopeResponse' {} a -> s {name = a} :: GetClassificationScopeResponse)++-- | The S3 buckets that are excluded from automated sensitive data+-- discovery.+getClassificationScopeResponse_s3 :: Lens.Lens' GetClassificationScopeResponse (Prelude.Maybe S3ClassificationScope)+getClassificationScopeResponse_s3 = Lens.lens (\GetClassificationScopeResponse' {s3} -> s3) (\s@GetClassificationScopeResponse' {} a -> s {s3 = a} :: GetClassificationScopeResponse)++-- | The response's http status code.+getClassificationScopeResponse_httpStatus :: Lens.Lens' GetClassificationScopeResponse Prelude.Int+getClassificationScopeResponse_httpStatus = Lens.lens (\GetClassificationScopeResponse' {httpStatus} -> httpStatus) (\s@GetClassificationScopeResponse' {} a -> s {httpStatus = a} :: GetClassificationScopeResponse)++instance+  Prelude.NFData+    GetClassificationScopeResponse+  where+  rnf GetClassificationScopeResponse' {..} =+    Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf s3+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/GetCustomDataIdentifier.hs view
@@ -0,0 +1,354 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.GetCustomDataIdentifier+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the criteria and other settings for a custom data identifier.+module Amazonka.MacieV2.GetCustomDataIdentifier+  ( -- * Creating a Request+    GetCustomDataIdentifier (..),+    newGetCustomDataIdentifier,++    -- * Request Lenses+    getCustomDataIdentifier_id,++    -- * Destructuring the Response+    GetCustomDataIdentifierResponse (..),+    newGetCustomDataIdentifierResponse,++    -- * Response Lenses+    getCustomDataIdentifierResponse_arn,+    getCustomDataIdentifierResponse_createdAt,+    getCustomDataIdentifierResponse_deleted,+    getCustomDataIdentifierResponse_description,+    getCustomDataIdentifierResponse_id,+    getCustomDataIdentifierResponse_ignoreWords,+    getCustomDataIdentifierResponse_keywords,+    getCustomDataIdentifierResponse_maximumMatchDistance,+    getCustomDataIdentifierResponse_name,+    getCustomDataIdentifierResponse_regex,+    getCustomDataIdentifierResponse_severityLevels,+    getCustomDataIdentifierResponse_tags,+    getCustomDataIdentifierResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetCustomDataIdentifier' smart constructor.+data GetCustomDataIdentifier = GetCustomDataIdentifier'+  { -- | The unique identifier for the Amazon Macie resource that the request+    -- applies to.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetCustomDataIdentifier' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getCustomDataIdentifier_id' - The unique identifier for the Amazon Macie resource that the request+-- applies to.+newGetCustomDataIdentifier ::+  -- | 'id'+  Prelude.Text ->+  GetCustomDataIdentifier+newGetCustomDataIdentifier pId_ =+  GetCustomDataIdentifier' {id = pId_}++-- | The unique identifier for the Amazon Macie resource that the request+-- applies to.+getCustomDataIdentifier_id :: Lens.Lens' GetCustomDataIdentifier Prelude.Text+getCustomDataIdentifier_id = Lens.lens (\GetCustomDataIdentifier' {id} -> id) (\s@GetCustomDataIdentifier' {} a -> s {id = a} :: GetCustomDataIdentifier)++instance Core.AWSRequest GetCustomDataIdentifier where+  type+    AWSResponse GetCustomDataIdentifier =+      GetCustomDataIdentifierResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetCustomDataIdentifierResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "createdAt")+            Prelude.<*> (x Data..?> "deleted")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "id")+            Prelude.<*> (x Data..?> "ignoreWords" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "keywords" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "maximumMatchDistance")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (x Data..?> "regex")+            Prelude.<*> (x Data..?> "severityLevels" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetCustomDataIdentifier where+  hashWithSalt _salt GetCustomDataIdentifier' {..} =+    _salt `Prelude.hashWithSalt` id++instance Prelude.NFData GetCustomDataIdentifier where+  rnf GetCustomDataIdentifier' {..} = Prelude.rnf id++instance Data.ToHeaders GetCustomDataIdentifier where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetCustomDataIdentifier where+  toPath GetCustomDataIdentifier' {..} =+    Prelude.mconcat+      ["/custom-data-identifiers/", Data.toBS id]++instance Data.ToQuery GetCustomDataIdentifier where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetCustomDataIdentifierResponse' smart constructor.+data GetCustomDataIdentifierResponse = GetCustomDataIdentifierResponse'+  { -- | The Amazon Resource Name (ARN) of the custom data identifier.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The date and time, in UTC and extended ISO 8601 format, when the custom+    -- data identifier was created.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | Specifies whether the custom data identifier was deleted. If you delete+    -- a custom data identifier, Amazon Macie doesn\'t delete it permanently.+    -- Instead, it soft deletes the identifier.+    deleted :: Prelude.Maybe Prelude.Bool,+    -- | The custom description of the custom data identifier.+    description :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the custom data identifier.+    id :: Prelude.Maybe Prelude.Text,+    -- | An array that lists specific character sequences (/ignore words/) to+    -- exclude from the results. If the text matched by the regular expression+    -- contains any string in this array, Amazon Macie ignores it. Ignore words+    -- are case sensitive.+    ignoreWords :: Prelude.Maybe [Prelude.Text],+    -- | An array that lists specific character sequences (/keywords/), one of+    -- which must precede and be within proximity (maximumMatchDistance) of the+    -- regular expression to match. Keywords aren\'t case sensitive.+    keywords :: Prelude.Maybe [Prelude.Text],+    -- | The maximum number of characters that can exist between the end of at+    -- least one complete character sequence specified by the keywords array+    -- and the end of the text that matches the regex pattern. If a complete+    -- keyword precedes all the text that matches the pattern and the keyword+    -- is within the specified distance, Amazon Macie includes the result.+    -- Otherwise, Macie excludes the result.+    maximumMatchDistance :: Prelude.Maybe Prelude.Int,+    -- | The custom name of the custom data identifier.+    name :: Prelude.Maybe Prelude.Text,+    -- | The regular expression (/regex/) that defines the pattern to match.+    regex :: Prelude.Maybe Prelude.Text,+    -- | Specifies the severity that\'s assigned to findings that the custom data+    -- identifier produces, based on the number of occurrences of text that+    -- matches the custom data identifier\'s detection criteria. By default,+    -- Amazon Macie creates findings for S3 objects that contain at least one+    -- occurrence of text that matches the detection criteria, and Macie+    -- assigns the MEDIUM severity to those findings.+    severityLevels :: Prelude.Maybe [SeverityLevel],+    -- | A map of key-value pairs that identifies the tags (keys and values) that+    -- are associated with the custom data identifier.+    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 'GetCustomDataIdentifierResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getCustomDataIdentifierResponse_arn' - The Amazon Resource Name (ARN) of the custom data identifier.+--+-- 'createdAt', 'getCustomDataIdentifierResponse_createdAt' - The date and time, in UTC and extended ISO 8601 format, when the custom+-- data identifier was created.+--+-- 'deleted', 'getCustomDataIdentifierResponse_deleted' - Specifies whether the custom data identifier was deleted. If you delete+-- a custom data identifier, Amazon Macie doesn\'t delete it permanently.+-- Instead, it soft deletes the identifier.+--+-- 'description', 'getCustomDataIdentifierResponse_description' - The custom description of the custom data identifier.+--+-- 'id', 'getCustomDataIdentifierResponse_id' - The unique identifier for the custom data identifier.+--+-- 'ignoreWords', 'getCustomDataIdentifierResponse_ignoreWords' - An array that lists specific character sequences (/ignore words/) to+-- exclude from the results. If the text matched by the regular expression+-- contains any string in this array, Amazon Macie ignores it. Ignore words+-- are case sensitive.+--+-- 'keywords', 'getCustomDataIdentifierResponse_keywords' - An array that lists specific character sequences (/keywords/), one of+-- which must precede and be within proximity (maximumMatchDistance) of the+-- regular expression to match. Keywords aren\'t case sensitive.+--+-- 'maximumMatchDistance', 'getCustomDataIdentifierResponse_maximumMatchDistance' - The maximum number of characters that can exist between the end of at+-- least one complete character sequence specified by the keywords array+-- and the end of the text that matches the regex pattern. If a complete+-- keyword precedes all the text that matches the pattern and the keyword+-- is within the specified distance, Amazon Macie includes the result.+-- Otherwise, Macie excludes the result.+--+-- 'name', 'getCustomDataIdentifierResponse_name' - The custom name of the custom data identifier.+--+-- 'regex', 'getCustomDataIdentifierResponse_regex' - The regular expression (/regex/) that defines the pattern to match.+--+-- 'severityLevels', 'getCustomDataIdentifierResponse_severityLevels' - Specifies the severity that\'s assigned to findings that the custom data+-- identifier produces, based on the number of occurrences of text that+-- matches the custom data identifier\'s detection criteria. By default,+-- Amazon Macie creates findings for S3 objects that contain at least one+-- occurrence of text that matches the detection criteria, and Macie+-- assigns the MEDIUM severity to those findings.+--+-- 'tags', 'getCustomDataIdentifierResponse_tags' - A map of key-value pairs that identifies the tags (keys and values) that+-- are associated with the custom data identifier.+--+-- 'httpStatus', 'getCustomDataIdentifierResponse_httpStatus' - The response's http status code.+newGetCustomDataIdentifierResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetCustomDataIdentifierResponse+newGetCustomDataIdentifierResponse pHttpStatus_ =+  GetCustomDataIdentifierResponse'+    { arn =+        Prelude.Nothing,+      createdAt = Prelude.Nothing,+      deleted = Prelude.Nothing,+      description = Prelude.Nothing,+      id = Prelude.Nothing,+      ignoreWords = Prelude.Nothing,+      keywords = Prelude.Nothing,+      maximumMatchDistance = Prelude.Nothing,+      name = Prelude.Nothing,+      regex = Prelude.Nothing,+      severityLevels = Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the custom data identifier.+getCustomDataIdentifierResponse_arn :: Lens.Lens' GetCustomDataIdentifierResponse (Prelude.Maybe Prelude.Text)+getCustomDataIdentifierResponse_arn = Lens.lens (\GetCustomDataIdentifierResponse' {arn} -> arn) (\s@GetCustomDataIdentifierResponse' {} a -> s {arn = a} :: GetCustomDataIdentifierResponse)++-- | The date and time, in UTC and extended ISO 8601 format, when the custom+-- data identifier was created.+getCustomDataIdentifierResponse_createdAt :: Lens.Lens' GetCustomDataIdentifierResponse (Prelude.Maybe Prelude.UTCTime)+getCustomDataIdentifierResponse_createdAt = Lens.lens (\GetCustomDataIdentifierResponse' {createdAt} -> createdAt) (\s@GetCustomDataIdentifierResponse' {} a -> s {createdAt = a} :: GetCustomDataIdentifierResponse) Prelude.. Lens.mapping Data._Time++-- | Specifies whether the custom data identifier was deleted. If you delete+-- a custom data identifier, Amazon Macie doesn\'t delete it permanently.+-- Instead, it soft deletes the identifier.+getCustomDataIdentifierResponse_deleted :: Lens.Lens' GetCustomDataIdentifierResponse (Prelude.Maybe Prelude.Bool)+getCustomDataIdentifierResponse_deleted = Lens.lens (\GetCustomDataIdentifierResponse' {deleted} -> deleted) (\s@GetCustomDataIdentifierResponse' {} a -> s {deleted = a} :: GetCustomDataIdentifierResponse)++-- | The custom description of the custom data identifier.+getCustomDataIdentifierResponse_description :: Lens.Lens' GetCustomDataIdentifierResponse (Prelude.Maybe Prelude.Text)+getCustomDataIdentifierResponse_description = Lens.lens (\GetCustomDataIdentifierResponse' {description} -> description) (\s@GetCustomDataIdentifierResponse' {} a -> s {description = a} :: GetCustomDataIdentifierResponse)++-- | The unique identifier for the custom data identifier.+getCustomDataIdentifierResponse_id :: Lens.Lens' GetCustomDataIdentifierResponse (Prelude.Maybe Prelude.Text)+getCustomDataIdentifierResponse_id = Lens.lens (\GetCustomDataIdentifierResponse' {id} -> id) (\s@GetCustomDataIdentifierResponse' {} a -> s {id = a} :: GetCustomDataIdentifierResponse)++-- | An array that lists specific character sequences (/ignore words/) to+-- exclude from the results. If the text matched by the regular expression+-- contains any string in this array, Amazon Macie ignores it. Ignore words+-- are case sensitive.+getCustomDataIdentifierResponse_ignoreWords :: Lens.Lens' GetCustomDataIdentifierResponse (Prelude.Maybe [Prelude.Text])+getCustomDataIdentifierResponse_ignoreWords = Lens.lens (\GetCustomDataIdentifierResponse' {ignoreWords} -> ignoreWords) (\s@GetCustomDataIdentifierResponse' {} a -> s {ignoreWords = a} :: GetCustomDataIdentifierResponse) Prelude.. Lens.mapping Lens.coerced++-- | An array that lists specific character sequences (/keywords/), one of+-- which must precede and be within proximity (maximumMatchDistance) of the+-- regular expression to match. Keywords aren\'t case sensitive.+getCustomDataIdentifierResponse_keywords :: Lens.Lens' GetCustomDataIdentifierResponse (Prelude.Maybe [Prelude.Text])+getCustomDataIdentifierResponse_keywords = Lens.lens (\GetCustomDataIdentifierResponse' {keywords} -> keywords) (\s@GetCustomDataIdentifierResponse' {} a -> s {keywords = a} :: GetCustomDataIdentifierResponse) Prelude.. Lens.mapping Lens.coerced++-- | The maximum number of characters that can exist between the end of at+-- least one complete character sequence specified by the keywords array+-- and the end of the text that matches the regex pattern. If a complete+-- keyword precedes all the text that matches the pattern and the keyword+-- is within the specified distance, Amazon Macie includes the result.+-- Otherwise, Macie excludes the result.+getCustomDataIdentifierResponse_maximumMatchDistance :: Lens.Lens' GetCustomDataIdentifierResponse (Prelude.Maybe Prelude.Int)+getCustomDataIdentifierResponse_maximumMatchDistance = Lens.lens (\GetCustomDataIdentifierResponse' {maximumMatchDistance} -> maximumMatchDistance) (\s@GetCustomDataIdentifierResponse' {} a -> s {maximumMatchDistance = a} :: GetCustomDataIdentifierResponse)++-- | The custom name of the custom data identifier.+getCustomDataIdentifierResponse_name :: Lens.Lens' GetCustomDataIdentifierResponse (Prelude.Maybe Prelude.Text)+getCustomDataIdentifierResponse_name = Lens.lens (\GetCustomDataIdentifierResponse' {name} -> name) (\s@GetCustomDataIdentifierResponse' {} a -> s {name = a} :: GetCustomDataIdentifierResponse)++-- | The regular expression (/regex/) that defines the pattern to match.+getCustomDataIdentifierResponse_regex :: Lens.Lens' GetCustomDataIdentifierResponse (Prelude.Maybe Prelude.Text)+getCustomDataIdentifierResponse_regex = Lens.lens (\GetCustomDataIdentifierResponse' {regex} -> regex) (\s@GetCustomDataIdentifierResponse' {} a -> s {regex = a} :: GetCustomDataIdentifierResponse)++-- | Specifies the severity that\'s assigned to findings that the custom data+-- identifier produces, based on the number of occurrences of text that+-- matches the custom data identifier\'s detection criteria. By default,+-- Amazon Macie creates findings for S3 objects that contain at least one+-- occurrence of text that matches the detection criteria, and Macie+-- assigns the MEDIUM severity to those findings.+getCustomDataIdentifierResponse_severityLevels :: Lens.Lens' GetCustomDataIdentifierResponse (Prelude.Maybe [SeverityLevel])+getCustomDataIdentifierResponse_severityLevels = Lens.lens (\GetCustomDataIdentifierResponse' {severityLevels} -> severityLevels) (\s@GetCustomDataIdentifierResponse' {} a -> s {severityLevels = a} :: GetCustomDataIdentifierResponse) Prelude.. Lens.mapping Lens.coerced++-- | A map of key-value pairs that identifies the tags (keys and values) that+-- are associated with the custom data identifier.+getCustomDataIdentifierResponse_tags :: Lens.Lens' GetCustomDataIdentifierResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getCustomDataIdentifierResponse_tags = Lens.lens (\GetCustomDataIdentifierResponse' {tags} -> tags) (\s@GetCustomDataIdentifierResponse' {} a -> s {tags = a} :: GetCustomDataIdentifierResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getCustomDataIdentifierResponse_httpStatus :: Lens.Lens' GetCustomDataIdentifierResponse Prelude.Int+getCustomDataIdentifierResponse_httpStatus = Lens.lens (\GetCustomDataIdentifierResponse' {httpStatus} -> httpStatus) (\s@GetCustomDataIdentifierResponse' {} a -> s {httpStatus = a} :: GetCustomDataIdentifierResponse)++instance+  Prelude.NFData+    GetCustomDataIdentifierResponse+  where+  rnf GetCustomDataIdentifierResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf deleted+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf ignoreWords+      `Prelude.seq` Prelude.rnf keywords+      `Prelude.seq` Prelude.rnf maximumMatchDistance+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf regex+      `Prelude.seq` Prelude.rnf severityLevels+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/GetFindingStatistics.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.MacieV2.GetFindingStatistics+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves (queries) aggregated statistical data about findings.+module Amazonka.MacieV2.GetFindingStatistics+  ( -- * Creating a Request+    GetFindingStatistics (..),+    newGetFindingStatistics,++    -- * Request Lenses+    getFindingStatistics_findingCriteria,+    getFindingStatistics_size,+    getFindingStatistics_sortCriteria,+    getFindingStatistics_groupBy,++    -- * Destructuring the Response+    GetFindingStatisticsResponse (..),+    newGetFindingStatisticsResponse,++    -- * Response Lenses+    getFindingStatisticsResponse_countsByGroup,+    getFindingStatisticsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetFindingStatistics' smart constructor.+data GetFindingStatistics = GetFindingStatistics'+  { -- | The criteria to use to filter the query results.+    findingCriteria :: Prelude.Maybe FindingCriteria,+    -- | The maximum number of items to include in each page of the response.+    size :: Prelude.Maybe Prelude.Int,+    -- | The criteria to use to sort the query results.+    sortCriteria :: Prelude.Maybe FindingStatisticsSortCriteria,+    -- | The finding property to use to group the query results. Valid values+    -- are:+    --+    -- -   classificationDetails.jobId - The unique identifier for the+    --     classification job that produced the finding.+    --+    -- -   resourcesAffected.s3Bucket.name - The name of the S3 bucket that the+    --     finding applies to.+    --+    -- -   severity.description - The severity level of the finding, such as+    --     High or Medium.+    --+    -- -   type - The type of finding, such as Policy:IAMUser\/S3BucketPublic+    --     and SensitiveData:S3Object\/Personal.+    groupBy :: GroupBy+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetFindingStatistics' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'findingCriteria', 'getFindingStatistics_findingCriteria' - The criteria to use to filter the query results.+--+-- 'size', 'getFindingStatistics_size' - The maximum number of items to include in each page of the response.+--+-- 'sortCriteria', 'getFindingStatistics_sortCriteria' - The criteria to use to sort the query results.+--+-- 'groupBy', 'getFindingStatistics_groupBy' - The finding property to use to group the query results. Valid values+-- are:+--+-- -   classificationDetails.jobId - The unique identifier for the+--     classification job that produced the finding.+--+-- -   resourcesAffected.s3Bucket.name - The name of the S3 bucket that the+--     finding applies to.+--+-- -   severity.description - The severity level of the finding, such as+--     High or Medium.+--+-- -   type - The type of finding, such as Policy:IAMUser\/S3BucketPublic+--     and SensitiveData:S3Object\/Personal.+newGetFindingStatistics ::+  -- | 'groupBy'+  GroupBy ->+  GetFindingStatistics+newGetFindingStatistics pGroupBy_ =+  GetFindingStatistics'+    { findingCriteria =+        Prelude.Nothing,+      size = Prelude.Nothing,+      sortCriteria = Prelude.Nothing,+      groupBy = pGroupBy_+    }++-- | The criteria to use to filter the query results.+getFindingStatistics_findingCriteria :: Lens.Lens' GetFindingStatistics (Prelude.Maybe FindingCriteria)+getFindingStatistics_findingCriteria = Lens.lens (\GetFindingStatistics' {findingCriteria} -> findingCriteria) (\s@GetFindingStatistics' {} a -> s {findingCriteria = a} :: GetFindingStatistics)++-- | The maximum number of items to include in each page of the response.+getFindingStatistics_size :: Lens.Lens' GetFindingStatistics (Prelude.Maybe Prelude.Int)+getFindingStatistics_size = Lens.lens (\GetFindingStatistics' {size} -> size) (\s@GetFindingStatistics' {} a -> s {size = a} :: GetFindingStatistics)++-- | The criteria to use to sort the query results.+getFindingStatistics_sortCriteria :: Lens.Lens' GetFindingStatistics (Prelude.Maybe FindingStatisticsSortCriteria)+getFindingStatistics_sortCriteria = Lens.lens (\GetFindingStatistics' {sortCriteria} -> sortCriteria) (\s@GetFindingStatistics' {} a -> s {sortCriteria = a} :: GetFindingStatistics)++-- | The finding property to use to group the query results. Valid values+-- are:+--+-- -   classificationDetails.jobId - The unique identifier for the+--     classification job that produced the finding.+--+-- -   resourcesAffected.s3Bucket.name - The name of the S3 bucket that the+--     finding applies to.+--+-- -   severity.description - The severity level of the finding, such as+--     High or Medium.+--+-- -   type - The type of finding, such as Policy:IAMUser\/S3BucketPublic+--     and SensitiveData:S3Object\/Personal.+getFindingStatistics_groupBy :: Lens.Lens' GetFindingStatistics GroupBy+getFindingStatistics_groupBy = Lens.lens (\GetFindingStatistics' {groupBy} -> groupBy) (\s@GetFindingStatistics' {} a -> s {groupBy = a} :: GetFindingStatistics)++instance Core.AWSRequest GetFindingStatistics where+  type+    AWSResponse GetFindingStatistics =+      GetFindingStatisticsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetFindingStatisticsResponse'+            Prelude.<$> (x Data..?> "countsByGroup" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetFindingStatistics where+  hashWithSalt _salt GetFindingStatistics' {..} =+    _salt+      `Prelude.hashWithSalt` findingCriteria+      `Prelude.hashWithSalt` size+      `Prelude.hashWithSalt` sortCriteria+      `Prelude.hashWithSalt` groupBy++instance Prelude.NFData GetFindingStatistics where+  rnf GetFindingStatistics' {..} =+    Prelude.rnf findingCriteria+      `Prelude.seq` Prelude.rnf size+      `Prelude.seq` Prelude.rnf sortCriteria+      `Prelude.seq` Prelude.rnf groupBy++instance Data.ToHeaders GetFindingStatistics where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetFindingStatistics where+  toJSON GetFindingStatistics' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("findingCriteria" Data..=)+              Prelude.<$> findingCriteria,+            ("size" Data..=) Prelude.<$> size,+            ("sortCriteria" Data..=) Prelude.<$> sortCriteria,+            Prelude.Just ("groupBy" Data..= groupBy)+          ]+      )++instance Data.ToPath GetFindingStatistics where+  toPath = Prelude.const "/findings/statistics"++instance Data.ToQuery GetFindingStatistics where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetFindingStatisticsResponse' smart constructor.+data GetFindingStatisticsResponse = GetFindingStatisticsResponse'+  { -- | An array of objects, one for each group of findings that matches the+    -- filter criteria specified in the request.+    countsByGroup :: Prelude.Maybe [GroupCount],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetFindingStatisticsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'countsByGroup', 'getFindingStatisticsResponse_countsByGroup' - An array of objects, one for each group of findings that matches the+-- filter criteria specified in the request.+--+-- 'httpStatus', 'getFindingStatisticsResponse_httpStatus' - The response's http status code.+newGetFindingStatisticsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetFindingStatisticsResponse+newGetFindingStatisticsResponse pHttpStatus_ =+  GetFindingStatisticsResponse'+    { countsByGroup =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array of objects, one for each group of findings that matches the+-- filter criteria specified in the request.+getFindingStatisticsResponse_countsByGroup :: Lens.Lens' GetFindingStatisticsResponse (Prelude.Maybe [GroupCount])+getFindingStatisticsResponse_countsByGroup = Lens.lens (\GetFindingStatisticsResponse' {countsByGroup} -> countsByGroup) (\s@GetFindingStatisticsResponse' {} a -> s {countsByGroup = a} :: GetFindingStatisticsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getFindingStatisticsResponse_httpStatus :: Lens.Lens' GetFindingStatisticsResponse Prelude.Int+getFindingStatisticsResponse_httpStatus = Lens.lens (\GetFindingStatisticsResponse' {httpStatus} -> httpStatus) (\s@GetFindingStatisticsResponse' {} a -> s {httpStatus = a} :: GetFindingStatisticsResponse)++instance Prelude.NFData GetFindingStatisticsResponse where+  rnf GetFindingStatisticsResponse' {..} =+    Prelude.rnf countsByGroup+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/GetFindings.hs view
@@ -0,0 +1,186 @@+{-# 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.MacieV2.GetFindings+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the details of one or more findings.+module Amazonka.MacieV2.GetFindings+  ( -- * Creating a Request+    GetFindings (..),+    newGetFindings,++    -- * Request Lenses+    getFindings_sortCriteria,+    getFindings_findingIds,++    -- * Destructuring the Response+    GetFindingsResponse (..),+    newGetFindingsResponse,++    -- * Response Lenses+    getFindingsResponse_findings,+    getFindingsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetFindings' smart constructor.+data GetFindings = GetFindings'+  { -- | The criteria for sorting the results of the request.+    sortCriteria :: Prelude.Maybe SortCriteria,+    -- | An array of strings that lists the unique identifiers for the findings+    -- to retrieve. You can specify as many as 50 unique identifiers in this+    -- array.+    findingIds :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetFindings' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'sortCriteria', 'getFindings_sortCriteria' - The criteria for sorting the results of the request.+--+-- 'findingIds', 'getFindings_findingIds' - An array of strings that lists the unique identifiers for the findings+-- to retrieve. You can specify as many as 50 unique identifiers in this+-- array.+newGetFindings ::+  GetFindings+newGetFindings =+  GetFindings'+    { sortCriteria = Prelude.Nothing,+      findingIds = Prelude.mempty+    }++-- | The criteria for sorting the results of the request.+getFindings_sortCriteria :: Lens.Lens' GetFindings (Prelude.Maybe SortCriteria)+getFindings_sortCriteria = Lens.lens (\GetFindings' {sortCriteria} -> sortCriteria) (\s@GetFindings' {} a -> s {sortCriteria = a} :: GetFindings)++-- | An array of strings that lists the unique identifiers for the findings+-- to retrieve. You can specify as many as 50 unique identifiers in this+-- array.+getFindings_findingIds :: Lens.Lens' GetFindings [Prelude.Text]+getFindings_findingIds = Lens.lens (\GetFindings' {findingIds} -> findingIds) (\s@GetFindings' {} a -> s {findingIds = a} :: GetFindings) Prelude.. Lens.coerced++instance Core.AWSRequest GetFindings where+  type AWSResponse GetFindings = GetFindingsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetFindingsResponse'+            Prelude.<$> (x Data..?> "findings" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetFindings where+  hashWithSalt _salt GetFindings' {..} =+    _salt+      `Prelude.hashWithSalt` sortCriteria+      `Prelude.hashWithSalt` findingIds++instance Prelude.NFData GetFindings where+  rnf GetFindings' {..} =+    Prelude.rnf sortCriteria+      `Prelude.seq` Prelude.rnf findingIds++instance Data.ToHeaders GetFindings where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetFindings where+  toJSON GetFindings' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("sortCriteria" Data..=) Prelude.<$> sortCriteria,+            Prelude.Just ("findingIds" Data..= findingIds)+          ]+      )++instance Data.ToPath GetFindings where+  toPath = Prelude.const "/findings/describe"++instance Data.ToQuery GetFindings where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetFindingsResponse' smart constructor.+data GetFindingsResponse = GetFindingsResponse'+  { -- | An array of objects, one for each finding that matches the criteria+    -- specified in the request.+    findings :: Prelude.Maybe [Finding],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetFindingsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'findings', 'getFindingsResponse_findings' - An array of objects, one for each finding that matches the criteria+-- specified in the request.+--+-- 'httpStatus', 'getFindingsResponse_httpStatus' - The response's http status code.+newGetFindingsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetFindingsResponse+newGetFindingsResponse pHttpStatus_ =+  GetFindingsResponse'+    { findings = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array of objects, one for each finding that matches the criteria+-- specified in the request.+getFindingsResponse_findings :: Lens.Lens' GetFindingsResponse (Prelude.Maybe [Finding])+getFindingsResponse_findings = Lens.lens (\GetFindingsResponse' {findings} -> findings) (\s@GetFindingsResponse' {} a -> s {findings = a} :: GetFindingsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getFindingsResponse_httpStatus :: Lens.Lens' GetFindingsResponse Prelude.Int+getFindingsResponse_httpStatus = Lens.lens (\GetFindingsResponse' {httpStatus} -> httpStatus) (\s@GetFindingsResponse' {} a -> s {httpStatus = a} :: GetFindingsResponse)++instance Prelude.NFData GetFindingsResponse where+  rnf GetFindingsResponse' {..} =+    Prelude.rnf findings+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/GetFindingsFilter.hs view
@@ -0,0 +1,266 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.GetFindingsFilter+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the criteria and other settings for a findings filter.+module Amazonka.MacieV2.GetFindingsFilter+  ( -- * Creating a Request+    GetFindingsFilter (..),+    newGetFindingsFilter,++    -- * Request Lenses+    getFindingsFilter_id,++    -- * Destructuring the Response+    GetFindingsFilterResponse (..),+    newGetFindingsFilterResponse,++    -- * Response Lenses+    getFindingsFilterResponse_action,+    getFindingsFilterResponse_arn,+    getFindingsFilterResponse_description,+    getFindingsFilterResponse_findingCriteria,+    getFindingsFilterResponse_id,+    getFindingsFilterResponse_name,+    getFindingsFilterResponse_position,+    getFindingsFilterResponse_tags,+    getFindingsFilterResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetFindingsFilter' smart constructor.+data GetFindingsFilter = GetFindingsFilter'+  { -- | The unique identifier for the Amazon Macie resource that the request+    -- applies to.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetFindingsFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getFindingsFilter_id' - The unique identifier for the Amazon Macie resource that the request+-- applies to.+newGetFindingsFilter ::+  -- | 'id'+  Prelude.Text ->+  GetFindingsFilter+newGetFindingsFilter pId_ =+  GetFindingsFilter' {id = pId_}++-- | The unique identifier for the Amazon Macie resource that the request+-- applies to.+getFindingsFilter_id :: Lens.Lens' GetFindingsFilter Prelude.Text+getFindingsFilter_id = Lens.lens (\GetFindingsFilter' {id} -> id) (\s@GetFindingsFilter' {} a -> s {id = a} :: GetFindingsFilter)++instance Core.AWSRequest GetFindingsFilter where+  type+    AWSResponse GetFindingsFilter =+      GetFindingsFilterResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetFindingsFilterResponse'+            Prelude.<$> (x Data..?> "action")+            Prelude.<*> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "findingCriteria")+            Prelude.<*> (x Data..?> "id")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (x Data..?> "position")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetFindingsFilter where+  hashWithSalt _salt GetFindingsFilter' {..} =+    _salt `Prelude.hashWithSalt` id++instance Prelude.NFData GetFindingsFilter where+  rnf GetFindingsFilter' {..} = Prelude.rnf id++instance Data.ToHeaders GetFindingsFilter where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetFindingsFilter where+  toPath GetFindingsFilter' {..} =+    Prelude.mconcat ["/findingsfilters/", Data.toBS id]++instance Data.ToQuery GetFindingsFilter where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetFindingsFilterResponse' smart constructor.+data GetFindingsFilterResponse = GetFindingsFilterResponse'+  { -- | The action that\'s performed on findings that match the filter criteria+    -- (findingCriteria). Possible values are: ARCHIVE, suppress (automatically+    -- archive) the findings; and, NOOP, don\'t perform any action on the+    -- findings.+    action :: Prelude.Maybe FindingsFilterAction,+    -- | The Amazon Resource Name (ARN) of the filter.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The custom description of the filter.+    description :: Prelude.Maybe Prelude.Text,+    -- | The criteria that\'s used to filter findings.+    findingCriteria :: Prelude.Maybe FindingCriteria,+    -- | The unique identifier for the filter.+    id :: Prelude.Maybe Prelude.Text,+    -- | The custom name of the filter.+    name :: Prelude.Maybe Prelude.Text,+    -- | The position of the filter in the list of saved filters on the Amazon+    -- Macie console. This value also determines the order in which the filter+    -- is applied to findings, relative to other filters that are also applied+    -- to the findings.+    position :: Prelude.Maybe Prelude.Int,+    -- | A map of key-value pairs that specifies which tags (keys and values) are+    -- associated with the filter.+    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 'GetFindingsFilterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getFindingsFilterResponse_action' - The action that\'s performed on findings that match the filter criteria+-- (findingCriteria). Possible values are: ARCHIVE, suppress (automatically+-- archive) the findings; and, NOOP, don\'t perform any action on the+-- findings.+--+-- 'arn', 'getFindingsFilterResponse_arn' - The Amazon Resource Name (ARN) of the filter.+--+-- 'description', 'getFindingsFilterResponse_description' - The custom description of the filter.+--+-- 'findingCriteria', 'getFindingsFilterResponse_findingCriteria' - The criteria that\'s used to filter findings.+--+-- 'id', 'getFindingsFilterResponse_id' - The unique identifier for the filter.+--+-- 'name', 'getFindingsFilterResponse_name' - The custom name of the filter.+--+-- 'position', 'getFindingsFilterResponse_position' - The position of the filter in the list of saved filters on the Amazon+-- Macie console. This value also determines the order in which the filter+-- is applied to findings, relative to other filters that are also applied+-- to the findings.+--+-- 'tags', 'getFindingsFilterResponse_tags' - A map of key-value pairs that specifies which tags (keys and values) are+-- associated with the filter.+--+-- 'httpStatus', 'getFindingsFilterResponse_httpStatus' - The response's http status code.+newGetFindingsFilterResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetFindingsFilterResponse+newGetFindingsFilterResponse pHttpStatus_ =+  GetFindingsFilterResponse'+    { action =+        Prelude.Nothing,+      arn = Prelude.Nothing,+      description = Prelude.Nothing,+      findingCriteria = Prelude.Nothing,+      id = Prelude.Nothing,+      name = Prelude.Nothing,+      position = Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The action that\'s performed on findings that match the filter criteria+-- (findingCriteria). Possible values are: ARCHIVE, suppress (automatically+-- archive) the findings; and, NOOP, don\'t perform any action on the+-- findings.+getFindingsFilterResponse_action :: Lens.Lens' GetFindingsFilterResponse (Prelude.Maybe FindingsFilterAction)+getFindingsFilterResponse_action = Lens.lens (\GetFindingsFilterResponse' {action} -> action) (\s@GetFindingsFilterResponse' {} a -> s {action = a} :: GetFindingsFilterResponse)++-- | The Amazon Resource Name (ARN) of the filter.+getFindingsFilterResponse_arn :: Lens.Lens' GetFindingsFilterResponse (Prelude.Maybe Prelude.Text)+getFindingsFilterResponse_arn = Lens.lens (\GetFindingsFilterResponse' {arn} -> arn) (\s@GetFindingsFilterResponse' {} a -> s {arn = a} :: GetFindingsFilterResponse)++-- | The custom description of the filter.+getFindingsFilterResponse_description :: Lens.Lens' GetFindingsFilterResponse (Prelude.Maybe Prelude.Text)+getFindingsFilterResponse_description = Lens.lens (\GetFindingsFilterResponse' {description} -> description) (\s@GetFindingsFilterResponse' {} a -> s {description = a} :: GetFindingsFilterResponse)++-- | The criteria that\'s used to filter findings.+getFindingsFilterResponse_findingCriteria :: Lens.Lens' GetFindingsFilterResponse (Prelude.Maybe FindingCriteria)+getFindingsFilterResponse_findingCriteria = Lens.lens (\GetFindingsFilterResponse' {findingCriteria} -> findingCriteria) (\s@GetFindingsFilterResponse' {} a -> s {findingCriteria = a} :: GetFindingsFilterResponse)++-- | The unique identifier for the filter.+getFindingsFilterResponse_id :: Lens.Lens' GetFindingsFilterResponse (Prelude.Maybe Prelude.Text)+getFindingsFilterResponse_id = Lens.lens (\GetFindingsFilterResponse' {id} -> id) (\s@GetFindingsFilterResponse' {} a -> s {id = a} :: GetFindingsFilterResponse)++-- | The custom name of the filter.+getFindingsFilterResponse_name :: Lens.Lens' GetFindingsFilterResponse (Prelude.Maybe Prelude.Text)+getFindingsFilterResponse_name = Lens.lens (\GetFindingsFilterResponse' {name} -> name) (\s@GetFindingsFilterResponse' {} a -> s {name = a} :: GetFindingsFilterResponse)++-- | The position of the filter in the list of saved filters on the Amazon+-- Macie console. This value also determines the order in which the filter+-- is applied to findings, relative to other filters that are also applied+-- to the findings.+getFindingsFilterResponse_position :: Lens.Lens' GetFindingsFilterResponse (Prelude.Maybe Prelude.Int)+getFindingsFilterResponse_position = Lens.lens (\GetFindingsFilterResponse' {position} -> position) (\s@GetFindingsFilterResponse' {} a -> s {position = a} :: GetFindingsFilterResponse)++-- | A map of key-value pairs that specifies which tags (keys and values) are+-- associated with the filter.+getFindingsFilterResponse_tags :: Lens.Lens' GetFindingsFilterResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getFindingsFilterResponse_tags = Lens.lens (\GetFindingsFilterResponse' {tags} -> tags) (\s@GetFindingsFilterResponse' {} a -> s {tags = a} :: GetFindingsFilterResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getFindingsFilterResponse_httpStatus :: Lens.Lens' GetFindingsFilterResponse Prelude.Int+getFindingsFilterResponse_httpStatus = Lens.lens (\GetFindingsFilterResponse' {httpStatus} -> httpStatus) (\s@GetFindingsFilterResponse' {} a -> s {httpStatus = a} :: GetFindingsFilterResponse)++instance Prelude.NFData GetFindingsFilterResponse where+  rnf GetFindingsFilterResponse' {..} =+    Prelude.rnf action+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf findingCriteria+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf position+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/GetFindingsPublicationConfiguration.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.MacieV2.GetFindingsPublicationConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the configuration settings for publishing findings to Security+-- Hub.+module Amazonka.MacieV2.GetFindingsPublicationConfiguration+  ( -- * Creating a Request+    GetFindingsPublicationConfiguration (..),+    newGetFindingsPublicationConfiguration,++    -- * Destructuring the Response+    GetFindingsPublicationConfigurationResponse (..),+    newGetFindingsPublicationConfigurationResponse,++    -- * Response Lenses+    getFindingsPublicationConfigurationResponse_securityHubConfiguration,+    getFindingsPublicationConfigurationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetFindingsPublicationConfiguration' smart constructor.+data GetFindingsPublicationConfiguration = GetFindingsPublicationConfiguration'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetFindingsPublicationConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newGetFindingsPublicationConfiguration ::+  GetFindingsPublicationConfiguration+newGetFindingsPublicationConfiguration =+  GetFindingsPublicationConfiguration'++instance+  Core.AWSRequest+    GetFindingsPublicationConfiguration+  where+  type+    AWSResponse GetFindingsPublicationConfiguration =+      GetFindingsPublicationConfigurationResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetFindingsPublicationConfigurationResponse'+            Prelude.<$> (x Data..?> "securityHubConfiguration")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    GetFindingsPublicationConfiguration+  where+  hashWithSalt _salt _ =+    _salt `Prelude.hashWithSalt` ()++instance+  Prelude.NFData+    GetFindingsPublicationConfiguration+  where+  rnf _ = ()++instance+  Data.ToHeaders+    GetFindingsPublicationConfiguration+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToPath+    GetFindingsPublicationConfiguration+  where+  toPath =+    Prelude.const "/findings-publication-configuration"++instance+  Data.ToQuery+    GetFindingsPublicationConfiguration+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetFindingsPublicationConfigurationResponse' smart constructor.+data GetFindingsPublicationConfigurationResponse = GetFindingsPublicationConfigurationResponse'+  { -- | The configuration settings that determine which findings are published+    -- to Security Hub.+    securityHubConfiguration :: Prelude.Maybe SecurityHubConfiguration,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetFindingsPublicationConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'securityHubConfiguration', 'getFindingsPublicationConfigurationResponse_securityHubConfiguration' - The configuration settings that determine which findings are published+-- to Security Hub.+--+-- 'httpStatus', 'getFindingsPublicationConfigurationResponse_httpStatus' - The response's http status code.+newGetFindingsPublicationConfigurationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetFindingsPublicationConfigurationResponse+newGetFindingsPublicationConfigurationResponse+  pHttpStatus_ =+    GetFindingsPublicationConfigurationResponse'+      { securityHubConfiguration =+          Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | The configuration settings that determine which findings are published+-- to Security Hub.+getFindingsPublicationConfigurationResponse_securityHubConfiguration :: Lens.Lens' GetFindingsPublicationConfigurationResponse (Prelude.Maybe SecurityHubConfiguration)+getFindingsPublicationConfigurationResponse_securityHubConfiguration = Lens.lens (\GetFindingsPublicationConfigurationResponse' {securityHubConfiguration} -> securityHubConfiguration) (\s@GetFindingsPublicationConfigurationResponse' {} a -> s {securityHubConfiguration = a} :: GetFindingsPublicationConfigurationResponse)++-- | The response's http status code.+getFindingsPublicationConfigurationResponse_httpStatus :: Lens.Lens' GetFindingsPublicationConfigurationResponse Prelude.Int+getFindingsPublicationConfigurationResponse_httpStatus = Lens.lens (\GetFindingsPublicationConfigurationResponse' {httpStatus} -> httpStatus) (\s@GetFindingsPublicationConfigurationResponse' {} a -> s {httpStatus = a} :: GetFindingsPublicationConfigurationResponse)++instance+  Prelude.NFData+    GetFindingsPublicationConfigurationResponse+  where+  rnf GetFindingsPublicationConfigurationResponse' {..} =+    Prelude.rnf securityHubConfiguration+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/GetInvitationsCount.hs view
@@ -0,0 +1,145 @@+{-# 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.MacieV2.GetInvitationsCount+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the count of Amazon Macie membership invitations that were+-- received by an account.+module Amazonka.MacieV2.GetInvitationsCount+  ( -- * Creating a Request+    GetInvitationsCount (..),+    newGetInvitationsCount,++    -- * Destructuring the Response+    GetInvitationsCountResponse (..),+    newGetInvitationsCountResponse,++    -- * Response Lenses+    getInvitationsCountResponse_invitationsCount,+    getInvitationsCountResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetInvitationsCount' smart constructor.+data GetInvitationsCount = GetInvitationsCount'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetInvitationsCount' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newGetInvitationsCount ::+  GetInvitationsCount+newGetInvitationsCount = GetInvitationsCount'++instance Core.AWSRequest GetInvitationsCount where+  type+    AWSResponse GetInvitationsCount =+      GetInvitationsCountResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetInvitationsCountResponse'+            Prelude.<$> (x Data..?> "invitationsCount")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetInvitationsCount where+  hashWithSalt _salt _ =+    _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData GetInvitationsCount where+  rnf _ = ()++instance Data.ToHeaders GetInvitationsCount where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetInvitationsCount where+  toPath = Prelude.const "/invitations/count"++instance Data.ToQuery GetInvitationsCount where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetInvitationsCountResponse' smart constructor.+data GetInvitationsCountResponse = GetInvitationsCountResponse'+  { -- | The total number of invitations that were received by the account, not+    -- including the currently accepted invitation.+    invitationsCount :: Prelude.Maybe Prelude.Integer,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetInvitationsCountResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'invitationsCount', 'getInvitationsCountResponse_invitationsCount' - The total number of invitations that were received by the account, not+-- including the currently accepted invitation.+--+-- 'httpStatus', 'getInvitationsCountResponse_httpStatus' - The response's http status code.+newGetInvitationsCountResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetInvitationsCountResponse+newGetInvitationsCountResponse pHttpStatus_ =+  GetInvitationsCountResponse'+    { invitationsCount =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The total number of invitations that were received by the account, not+-- including the currently accepted invitation.+getInvitationsCountResponse_invitationsCount :: Lens.Lens' GetInvitationsCountResponse (Prelude.Maybe Prelude.Integer)+getInvitationsCountResponse_invitationsCount = Lens.lens (\GetInvitationsCountResponse' {invitationsCount} -> invitationsCount) (\s@GetInvitationsCountResponse' {} a -> s {invitationsCount = a} :: GetInvitationsCountResponse)++-- | The response's http status code.+getInvitationsCountResponse_httpStatus :: Lens.Lens' GetInvitationsCountResponse Prelude.Int+getInvitationsCountResponse_httpStatus = Lens.lens (\GetInvitationsCountResponse' {httpStatus} -> httpStatus) (\s@GetInvitationsCountResponse' {} a -> s {httpStatus = a} :: GetInvitationsCountResponse)++instance Prelude.NFData GetInvitationsCountResponse where+  rnf GetInvitationsCountResponse' {..} =+    Prelude.rnf invitationsCount+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/GetMacieSession.hs view
@@ -0,0 +1,217 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.GetMacieSession+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the status and configuration settings for an Amazon Macie+-- account.+module Amazonka.MacieV2.GetMacieSession+  ( -- * Creating a Request+    GetMacieSession (..),+    newGetMacieSession,++    -- * Destructuring the Response+    GetMacieSessionResponse (..),+    newGetMacieSessionResponse,++    -- * Response Lenses+    getMacieSessionResponse_createdAt,+    getMacieSessionResponse_findingPublishingFrequency,+    getMacieSessionResponse_serviceRole,+    getMacieSessionResponse_status,+    getMacieSessionResponse_updatedAt,+    getMacieSessionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetMacieSession' smart constructor.+data GetMacieSession = GetMacieSession'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetMacieSession' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newGetMacieSession ::+  GetMacieSession+newGetMacieSession = GetMacieSession'++instance Core.AWSRequest GetMacieSession where+  type+    AWSResponse GetMacieSession =+      GetMacieSessionResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetMacieSessionResponse'+            Prelude.<$> (x Data..?> "createdAt")+            Prelude.<*> (x Data..?> "findingPublishingFrequency")+            Prelude.<*> (x Data..?> "serviceRole")+            Prelude.<*> (x Data..?> "status")+            Prelude.<*> (x Data..?> "updatedAt")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetMacieSession where+  hashWithSalt _salt _ =+    _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData GetMacieSession where+  rnf _ = ()++instance Data.ToHeaders GetMacieSession where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetMacieSession where+  toPath = Prelude.const "/macie"++instance Data.ToQuery GetMacieSession where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetMacieSessionResponse' smart constructor.+data GetMacieSessionResponse = GetMacieSessionResponse'+  { -- | The date and time, in UTC and extended ISO 8601 format, when the Amazon+    -- Macie account was created.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | The frequency with which Amazon Macie publishes updates to policy+    -- findings for the account. This includes publishing updates to Security+    -- Hub and Amazon EventBridge (formerly Amazon CloudWatch Events).+    findingPublishingFrequency :: Prelude.Maybe FindingPublishingFrequency,+    -- | The Amazon Resource Name (ARN) of the service-linked role that allows+    -- Amazon Macie to monitor and analyze data in Amazon Web Services+    -- resources for the account.+    serviceRole :: Prelude.Maybe Prelude.Text,+    -- | The current status of the Amazon Macie account. Possible values are:+    -- PAUSED, the account is enabled but all Macie activities are suspended+    -- (paused) for the account; and, ENABLED, the account is enabled and all+    -- Macie activities are enabled for the account.+    status :: Prelude.Maybe MacieStatus,+    -- | The date and time, in UTC and extended ISO 8601 format, of the most+    -- recent change to the status of the Amazon Macie account.+    updatedAt :: Prelude.Maybe Data.ISO8601,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetMacieSessionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createdAt', 'getMacieSessionResponse_createdAt' - The date and time, in UTC and extended ISO 8601 format, when the Amazon+-- Macie account was created.+--+-- 'findingPublishingFrequency', 'getMacieSessionResponse_findingPublishingFrequency' - The frequency with which Amazon Macie publishes updates to policy+-- findings for the account. This includes publishing updates to Security+-- Hub and Amazon EventBridge (formerly Amazon CloudWatch Events).+--+-- 'serviceRole', 'getMacieSessionResponse_serviceRole' - The Amazon Resource Name (ARN) of the service-linked role that allows+-- Amazon Macie to monitor and analyze data in Amazon Web Services+-- resources for the account.+--+-- 'status', 'getMacieSessionResponse_status' - The current status of the Amazon Macie account. Possible values are:+-- PAUSED, the account is enabled but all Macie activities are suspended+-- (paused) for the account; and, ENABLED, the account is enabled and all+-- Macie activities are enabled for the account.+--+-- 'updatedAt', 'getMacieSessionResponse_updatedAt' - The date and time, in UTC and extended ISO 8601 format, of the most+-- recent change to the status of the Amazon Macie account.+--+-- 'httpStatus', 'getMacieSessionResponse_httpStatus' - The response's http status code.+newGetMacieSessionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetMacieSessionResponse+newGetMacieSessionResponse pHttpStatus_ =+  GetMacieSessionResponse'+    { createdAt =+        Prelude.Nothing,+      findingPublishingFrequency = Prelude.Nothing,+      serviceRole = Prelude.Nothing,+      status = Prelude.Nothing,+      updatedAt = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The date and time, in UTC and extended ISO 8601 format, when the Amazon+-- Macie account was created.+getMacieSessionResponse_createdAt :: Lens.Lens' GetMacieSessionResponse (Prelude.Maybe Prelude.UTCTime)+getMacieSessionResponse_createdAt = Lens.lens (\GetMacieSessionResponse' {createdAt} -> createdAt) (\s@GetMacieSessionResponse' {} a -> s {createdAt = a} :: GetMacieSessionResponse) Prelude.. Lens.mapping Data._Time++-- | The frequency with which Amazon Macie publishes updates to policy+-- findings for the account. This includes publishing updates to Security+-- Hub and Amazon EventBridge (formerly Amazon CloudWatch Events).+getMacieSessionResponse_findingPublishingFrequency :: Lens.Lens' GetMacieSessionResponse (Prelude.Maybe FindingPublishingFrequency)+getMacieSessionResponse_findingPublishingFrequency = Lens.lens (\GetMacieSessionResponse' {findingPublishingFrequency} -> findingPublishingFrequency) (\s@GetMacieSessionResponse' {} a -> s {findingPublishingFrequency = a} :: GetMacieSessionResponse)++-- | The Amazon Resource Name (ARN) of the service-linked role that allows+-- Amazon Macie to monitor and analyze data in Amazon Web Services+-- resources for the account.+getMacieSessionResponse_serviceRole :: Lens.Lens' GetMacieSessionResponse (Prelude.Maybe Prelude.Text)+getMacieSessionResponse_serviceRole = Lens.lens (\GetMacieSessionResponse' {serviceRole} -> serviceRole) (\s@GetMacieSessionResponse' {} a -> s {serviceRole = a} :: GetMacieSessionResponse)++-- | The current status of the Amazon Macie account. Possible values are:+-- PAUSED, the account is enabled but all Macie activities are suspended+-- (paused) for the account; and, ENABLED, the account is enabled and all+-- Macie activities are enabled for the account.+getMacieSessionResponse_status :: Lens.Lens' GetMacieSessionResponse (Prelude.Maybe MacieStatus)+getMacieSessionResponse_status = Lens.lens (\GetMacieSessionResponse' {status} -> status) (\s@GetMacieSessionResponse' {} a -> s {status = a} :: GetMacieSessionResponse)++-- | The date and time, in UTC and extended ISO 8601 format, of the most+-- recent change to the status of the Amazon Macie account.+getMacieSessionResponse_updatedAt :: Lens.Lens' GetMacieSessionResponse (Prelude.Maybe Prelude.UTCTime)+getMacieSessionResponse_updatedAt = Lens.lens (\GetMacieSessionResponse' {updatedAt} -> updatedAt) (\s@GetMacieSessionResponse' {} a -> s {updatedAt = a} :: GetMacieSessionResponse) Prelude.. Lens.mapping Data._Time++-- | The response's http status code.+getMacieSessionResponse_httpStatus :: Lens.Lens' GetMacieSessionResponse Prelude.Int+getMacieSessionResponse_httpStatus = Lens.lens (\GetMacieSessionResponse' {httpStatus} -> httpStatus) (\s@GetMacieSessionResponse' {} a -> s {httpStatus = a} :: GetMacieSessionResponse)++instance Prelude.NFData GetMacieSessionResponse where+  rnf GetMacieSessionResponse' {..} =+    Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf findingPublishingFrequency+      `Prelude.seq` Prelude.rnf serviceRole+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf updatedAt+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/GetMasterAccount.hs view
@@ -0,0 +1,151 @@+{-# 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.MacieV2.GetMasterAccount+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- (Deprecated) Retrieves information about the Amazon Macie administrator+-- account for an account. This operation has been replaced by the+-- GetAdministratorAccount operation.+module Amazonka.MacieV2.GetMasterAccount+  ( -- * Creating a Request+    GetMasterAccount (..),+    newGetMasterAccount,++    -- * Destructuring the Response+    GetMasterAccountResponse (..),+    newGetMasterAccountResponse,++    -- * Response Lenses+    getMasterAccountResponse_master,+    getMasterAccountResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetMasterAccount' smart constructor.+data GetMasterAccount = GetMasterAccount'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetMasterAccount' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newGetMasterAccount ::+  GetMasterAccount+newGetMasterAccount = GetMasterAccount'++instance Core.AWSRequest GetMasterAccount where+  type+    AWSResponse GetMasterAccount =+      GetMasterAccountResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetMasterAccountResponse'+            Prelude.<$> (x Data..?> "master")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetMasterAccount where+  hashWithSalt _salt _ =+    _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData GetMasterAccount where+  rnf _ = ()++instance Data.ToHeaders GetMasterAccount where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetMasterAccount where+  toPath = Prelude.const "/master"++instance Data.ToQuery GetMasterAccount where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetMasterAccountResponse' smart constructor.+data GetMasterAccountResponse = GetMasterAccountResponse'+  { -- | (Deprecated) The Amazon Web Services account ID for the administrator+    -- account. If the accounts are associated by a Macie membership+    -- invitation, this object also provides details about the invitation that+    -- was sent to establish the relationship between the accounts.+    master :: Prelude.Maybe Invitation,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetMasterAccountResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'master', 'getMasterAccountResponse_master' - (Deprecated) The Amazon Web Services account ID for the administrator+-- account. If the accounts are associated by a Macie membership+-- invitation, this object also provides details about the invitation that+-- was sent to establish the relationship between the accounts.+--+-- 'httpStatus', 'getMasterAccountResponse_httpStatus' - The response's http status code.+newGetMasterAccountResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetMasterAccountResponse+newGetMasterAccountResponse pHttpStatus_ =+  GetMasterAccountResponse'+    { master = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | (Deprecated) The Amazon Web Services account ID for the administrator+-- account. If the accounts are associated by a Macie membership+-- invitation, this object also provides details about the invitation that+-- was sent to establish the relationship between the accounts.+getMasterAccountResponse_master :: Lens.Lens' GetMasterAccountResponse (Prelude.Maybe Invitation)+getMasterAccountResponse_master = Lens.lens (\GetMasterAccountResponse' {master} -> master) (\s@GetMasterAccountResponse' {} a -> s {master = a} :: GetMasterAccountResponse)++-- | The response's http status code.+getMasterAccountResponse_httpStatus :: Lens.Lens' GetMasterAccountResponse Prelude.Int+getMasterAccountResponse_httpStatus = Lens.lens (\GetMasterAccountResponse' {httpStatus} -> httpStatus) (\s@GetMasterAccountResponse' {} a -> s {httpStatus = a} :: GetMasterAccountResponse)++instance Prelude.NFData GetMasterAccountResponse where+  rnf GetMasterAccountResponse' {..} =+    Prelude.rnf master+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/GetMember.hs view
@@ -0,0 +1,278 @@+{-# 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.MacieV2.GetMember+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves information about an account that\'s associated with an Amazon+-- Macie administrator account.+module Amazonka.MacieV2.GetMember+  ( -- * Creating a Request+    GetMember (..),+    newGetMember,++    -- * Request Lenses+    getMember_id,++    -- * Destructuring the Response+    GetMemberResponse (..),+    newGetMemberResponse,++    -- * Response Lenses+    getMemberResponse_accountId,+    getMemberResponse_administratorAccountId,+    getMemberResponse_arn,+    getMemberResponse_email,+    getMemberResponse_invitedAt,+    getMemberResponse_masterAccountId,+    getMemberResponse_relationshipStatus,+    getMemberResponse_tags,+    getMemberResponse_updatedAt,+    getMemberResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetMember' smart constructor.+data GetMember = GetMember'+  { -- | The unique identifier for the Amazon Macie resource that the request+    -- applies to.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetMember' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getMember_id' - The unique identifier for the Amazon Macie resource that the request+-- applies to.+newGetMember ::+  -- | 'id'+  Prelude.Text ->+  GetMember+newGetMember pId_ = GetMember' {id = pId_}++-- | The unique identifier for the Amazon Macie resource that the request+-- applies to.+getMember_id :: Lens.Lens' GetMember Prelude.Text+getMember_id = Lens.lens (\GetMember' {id} -> id) (\s@GetMember' {} a -> s {id = a} :: GetMember)++instance Core.AWSRequest GetMember where+  type AWSResponse GetMember = GetMemberResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetMemberResponse'+            Prelude.<$> (x Data..?> "accountId")+            Prelude.<*> (x Data..?> "administratorAccountId")+            Prelude.<*> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "email")+            Prelude.<*> (x Data..?> "invitedAt")+            Prelude.<*> (x Data..?> "masterAccountId")+            Prelude.<*> (x Data..?> "relationshipStatus")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "updatedAt")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetMember where+  hashWithSalt _salt GetMember' {..} =+    _salt `Prelude.hashWithSalt` id++instance Prelude.NFData GetMember where+  rnf GetMember' {..} = Prelude.rnf id++instance Data.ToHeaders GetMember where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetMember where+  toPath GetMember' {..} =+    Prelude.mconcat ["/members/", Data.toBS id]++instance Data.ToQuery GetMember where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetMemberResponse' smart constructor.+data GetMemberResponse = GetMemberResponse'+  { -- | The Amazon Web Services account ID for the account.+    accountId :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Web Services account ID for the administrator account.+    administratorAccountId :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the account.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The email address for the account.+    email :: Prelude.Maybe Prelude.Text,+    -- | The date and time, in UTC and extended ISO 8601 format, when an Amazon+    -- Macie membership invitation was last sent to the account. This value is+    -- null if an invitation hasn\'t been sent to the account.+    invitedAt :: Prelude.Maybe Data.ISO8601,+    -- | (Deprecated) The Amazon Web Services account ID for the administrator+    -- account. This property has been replaced by the administratorAccountId+    -- property and is retained only for backward compatibility.+    masterAccountId :: Prelude.Maybe Prelude.Text,+    -- | The current status of the relationship between the account and the+    -- administrator account.+    relationshipStatus :: Prelude.Maybe RelationshipStatus,+    -- | A map of key-value pairs that specifies which tags (keys and values) are+    -- associated with the account in Amazon Macie.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The date and time, in UTC and extended ISO 8601 format, of the most+    -- recent change to the status of the relationship between the account and+    -- the administrator account.+    updatedAt :: Prelude.Maybe Data.ISO8601,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetMemberResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'getMemberResponse_accountId' - The Amazon Web Services account ID for the account.+--+-- 'administratorAccountId', 'getMemberResponse_administratorAccountId' - The Amazon Web Services account ID for the administrator account.+--+-- 'arn', 'getMemberResponse_arn' - The Amazon Resource Name (ARN) of the account.+--+-- 'email', 'getMemberResponse_email' - The email address for the account.+--+-- 'invitedAt', 'getMemberResponse_invitedAt' - The date and time, in UTC and extended ISO 8601 format, when an Amazon+-- Macie membership invitation was last sent to the account. This value is+-- null if an invitation hasn\'t been sent to the account.+--+-- 'masterAccountId', 'getMemberResponse_masterAccountId' - (Deprecated) The Amazon Web Services account ID for the administrator+-- account. This property has been replaced by the administratorAccountId+-- property and is retained only for backward compatibility.+--+-- 'relationshipStatus', 'getMemberResponse_relationshipStatus' - The current status of the relationship between the account and the+-- administrator account.+--+-- 'tags', 'getMemberResponse_tags' - A map of key-value pairs that specifies which tags (keys and values) are+-- associated with the account in Amazon Macie.+--+-- 'updatedAt', 'getMemberResponse_updatedAt' - The date and time, in UTC and extended ISO 8601 format, of the most+-- recent change to the status of the relationship between the account and+-- the administrator account.+--+-- 'httpStatus', 'getMemberResponse_httpStatus' - The response's http status code.+newGetMemberResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetMemberResponse+newGetMemberResponse pHttpStatus_ =+  GetMemberResponse'+    { accountId = Prelude.Nothing,+      administratorAccountId = Prelude.Nothing,+      arn = Prelude.Nothing,+      email = Prelude.Nothing,+      invitedAt = Prelude.Nothing,+      masterAccountId = Prelude.Nothing,+      relationshipStatus = Prelude.Nothing,+      tags = Prelude.Nothing,+      updatedAt = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Web Services account ID for the account.+getMemberResponse_accountId :: Lens.Lens' GetMemberResponse (Prelude.Maybe Prelude.Text)+getMemberResponse_accountId = Lens.lens (\GetMemberResponse' {accountId} -> accountId) (\s@GetMemberResponse' {} a -> s {accountId = a} :: GetMemberResponse)++-- | The Amazon Web Services account ID for the administrator account.+getMemberResponse_administratorAccountId :: Lens.Lens' GetMemberResponse (Prelude.Maybe Prelude.Text)+getMemberResponse_administratorAccountId = Lens.lens (\GetMemberResponse' {administratorAccountId} -> administratorAccountId) (\s@GetMemberResponse' {} a -> s {administratorAccountId = a} :: GetMemberResponse)++-- | The Amazon Resource Name (ARN) of the account.+getMemberResponse_arn :: Lens.Lens' GetMemberResponse (Prelude.Maybe Prelude.Text)+getMemberResponse_arn = Lens.lens (\GetMemberResponse' {arn} -> arn) (\s@GetMemberResponse' {} a -> s {arn = a} :: GetMemberResponse)++-- | The email address for the account.+getMemberResponse_email :: Lens.Lens' GetMemberResponse (Prelude.Maybe Prelude.Text)+getMemberResponse_email = Lens.lens (\GetMemberResponse' {email} -> email) (\s@GetMemberResponse' {} a -> s {email = a} :: GetMemberResponse)++-- | The date and time, in UTC and extended ISO 8601 format, when an Amazon+-- Macie membership invitation was last sent to the account. This value is+-- null if an invitation hasn\'t been sent to the account.+getMemberResponse_invitedAt :: Lens.Lens' GetMemberResponse (Prelude.Maybe Prelude.UTCTime)+getMemberResponse_invitedAt = Lens.lens (\GetMemberResponse' {invitedAt} -> invitedAt) (\s@GetMemberResponse' {} a -> s {invitedAt = a} :: GetMemberResponse) Prelude.. Lens.mapping Data._Time++-- | (Deprecated) The Amazon Web Services account ID for the administrator+-- account. This property has been replaced by the administratorAccountId+-- property and is retained only for backward compatibility.+getMemberResponse_masterAccountId :: Lens.Lens' GetMemberResponse (Prelude.Maybe Prelude.Text)+getMemberResponse_masterAccountId = Lens.lens (\GetMemberResponse' {masterAccountId} -> masterAccountId) (\s@GetMemberResponse' {} a -> s {masterAccountId = a} :: GetMemberResponse)++-- | The current status of the relationship between the account and the+-- administrator account.+getMemberResponse_relationshipStatus :: Lens.Lens' GetMemberResponse (Prelude.Maybe RelationshipStatus)+getMemberResponse_relationshipStatus = Lens.lens (\GetMemberResponse' {relationshipStatus} -> relationshipStatus) (\s@GetMemberResponse' {} a -> s {relationshipStatus = a} :: GetMemberResponse)++-- | A map of key-value pairs that specifies which tags (keys and values) are+-- associated with the account in Amazon Macie.+getMemberResponse_tags :: Lens.Lens' GetMemberResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getMemberResponse_tags = Lens.lens (\GetMemberResponse' {tags} -> tags) (\s@GetMemberResponse' {} a -> s {tags = a} :: GetMemberResponse) Prelude.. Lens.mapping Lens.coerced++-- | The date and time, in UTC and extended ISO 8601 format, of the most+-- recent change to the status of the relationship between the account and+-- the administrator account.+getMemberResponse_updatedAt :: Lens.Lens' GetMemberResponse (Prelude.Maybe Prelude.UTCTime)+getMemberResponse_updatedAt = Lens.lens (\GetMemberResponse' {updatedAt} -> updatedAt) (\s@GetMemberResponse' {} a -> s {updatedAt = a} :: GetMemberResponse) Prelude.. Lens.mapping Data._Time++-- | The response's http status code.+getMemberResponse_httpStatus :: Lens.Lens' GetMemberResponse Prelude.Int+getMemberResponse_httpStatus = Lens.lens (\GetMemberResponse' {httpStatus} -> httpStatus) (\s@GetMemberResponse' {} a -> s {httpStatus = a} :: GetMemberResponse)++instance Prelude.NFData GetMemberResponse where+  rnf GetMemberResponse' {..} =+    Prelude.rnf accountId+      `Prelude.seq` Prelude.rnf administratorAccountId+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf email+      `Prelude.seq` Prelude.rnf invitedAt+      `Prelude.seq` Prelude.rnf masterAccountId+      `Prelude.seq` Prelude.rnf relationshipStatus+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf updatedAt+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/GetResourceProfile.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.MacieV2.GetResourceProfile+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves (queries) sensitive data discovery statistics and the+-- sensitivity score for an S3 bucket.+module Amazonka.MacieV2.GetResourceProfile+  ( -- * Creating a Request+    GetResourceProfile (..),+    newGetResourceProfile,++    -- * Request Lenses+    getResourceProfile_resourceArn,++    -- * Destructuring the Response+    GetResourceProfileResponse (..),+    newGetResourceProfileResponse,++    -- * Response Lenses+    getResourceProfileResponse_profileUpdatedAt,+    getResourceProfileResponse_sensitivityScore,+    getResourceProfileResponse_sensitivityScoreOverridden,+    getResourceProfileResponse_statistics,+    getResourceProfileResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetResourceProfile' smart constructor.+data GetResourceProfile = GetResourceProfile'+  { -- | The Amazon Resource Name (ARN) of the S3 bucket that the request applies+    -- to.+    resourceArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetResourceProfile' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getResourceProfile_resourceArn' - The Amazon Resource Name (ARN) of the S3 bucket that the request applies+-- to.+newGetResourceProfile ::+  -- | 'resourceArn'+  Prelude.Text ->+  GetResourceProfile+newGetResourceProfile pResourceArn_ =+  GetResourceProfile' {resourceArn = pResourceArn_}++-- | The Amazon Resource Name (ARN) of the S3 bucket that the request applies+-- to.+getResourceProfile_resourceArn :: Lens.Lens' GetResourceProfile Prelude.Text+getResourceProfile_resourceArn = Lens.lens (\GetResourceProfile' {resourceArn} -> resourceArn) (\s@GetResourceProfile' {} a -> s {resourceArn = a} :: GetResourceProfile)++instance Core.AWSRequest GetResourceProfile where+  type+    AWSResponse GetResourceProfile =+      GetResourceProfileResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetResourceProfileResponse'+            Prelude.<$> (x Data..?> "profileUpdatedAt")+            Prelude.<*> (x Data..?> "sensitivityScore")+            Prelude.<*> (x Data..?> "sensitivityScoreOverridden")+            Prelude.<*> (x Data..?> "statistics")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetResourceProfile where+  hashWithSalt _salt GetResourceProfile' {..} =+    _salt `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData GetResourceProfile where+  rnf GetResourceProfile' {..} = Prelude.rnf resourceArn++instance Data.ToHeaders GetResourceProfile where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetResourceProfile where+  toPath = Prelude.const "/resource-profiles"++instance Data.ToQuery GetResourceProfile where+  toQuery GetResourceProfile' {..} =+    Prelude.mconcat ["resourceArn" Data.=: resourceArn]++-- | /See:/ 'newGetResourceProfileResponse' smart constructor.+data GetResourceProfileResponse = GetResourceProfileResponse'+  { -- | The date and time, in UTC and extended ISO 8601 format, when Amazon+    -- Macie most recently recalculated sensitive data discovery statistics and+    -- details for the bucket. If the bucket\'s sensitivity score is calculated+    -- automatically, this includes the score.+    profileUpdatedAt :: Prelude.Maybe Data.ISO8601,+    -- | The current sensitivity score for the bucket, ranging from -1 (no+    -- analysis due to an error) to 100 (sensitive). By default, this score is+    -- calculated automatically based on the amount of data that Amazon Macie+    -- has analyzed in the bucket and the amount of sensitive data that Macie+    -- has found in the bucket.+    sensitivityScore :: Prelude.Maybe Prelude.Int,+    -- | Specifies whether the bucket\'s current sensitivity score was set+    -- manually. If this value is true, the score was manually changed to 100.+    -- If this value is false, the score was calculated automatically by Amazon+    -- Macie.+    sensitivityScoreOverridden :: Prelude.Maybe Prelude.Bool,+    -- | The sensitive data discovery statistics for the bucket. The statistics+    -- capture the results of automated sensitive data discovery activities+    -- that Amazon Macie has performed for the bucket.+    statistics :: Prelude.Maybe ResourceStatistics,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetResourceProfileResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'profileUpdatedAt', 'getResourceProfileResponse_profileUpdatedAt' - The date and time, in UTC and extended ISO 8601 format, when Amazon+-- Macie most recently recalculated sensitive data discovery statistics and+-- details for the bucket. If the bucket\'s sensitivity score is calculated+-- automatically, this includes the score.+--+-- 'sensitivityScore', 'getResourceProfileResponse_sensitivityScore' - The current sensitivity score for the bucket, ranging from -1 (no+-- analysis due to an error) to 100 (sensitive). By default, this score is+-- calculated automatically based on the amount of data that Amazon Macie+-- has analyzed in the bucket and the amount of sensitive data that Macie+-- has found in the bucket.+--+-- 'sensitivityScoreOverridden', 'getResourceProfileResponse_sensitivityScoreOverridden' - Specifies whether the bucket\'s current sensitivity score was set+-- manually. If this value is true, the score was manually changed to 100.+-- If this value is false, the score was calculated automatically by Amazon+-- Macie.+--+-- 'statistics', 'getResourceProfileResponse_statistics' - The sensitive data discovery statistics for the bucket. The statistics+-- capture the results of automated sensitive data discovery activities+-- that Amazon Macie has performed for the bucket.+--+-- 'httpStatus', 'getResourceProfileResponse_httpStatus' - The response's http status code.+newGetResourceProfileResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetResourceProfileResponse+newGetResourceProfileResponse pHttpStatus_ =+  GetResourceProfileResponse'+    { profileUpdatedAt =+        Prelude.Nothing,+      sensitivityScore = Prelude.Nothing,+      sensitivityScoreOverridden = Prelude.Nothing,+      statistics = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The date and time, in UTC and extended ISO 8601 format, when Amazon+-- Macie most recently recalculated sensitive data discovery statistics and+-- details for the bucket. If the bucket\'s sensitivity score is calculated+-- automatically, this includes the score.+getResourceProfileResponse_profileUpdatedAt :: Lens.Lens' GetResourceProfileResponse (Prelude.Maybe Prelude.UTCTime)+getResourceProfileResponse_profileUpdatedAt = Lens.lens (\GetResourceProfileResponse' {profileUpdatedAt} -> profileUpdatedAt) (\s@GetResourceProfileResponse' {} a -> s {profileUpdatedAt = a} :: GetResourceProfileResponse) Prelude.. Lens.mapping Data._Time++-- | The current sensitivity score for the bucket, ranging from -1 (no+-- analysis due to an error) to 100 (sensitive). By default, this score is+-- calculated automatically based on the amount of data that Amazon Macie+-- has analyzed in the bucket and the amount of sensitive data that Macie+-- has found in the bucket.+getResourceProfileResponse_sensitivityScore :: Lens.Lens' GetResourceProfileResponse (Prelude.Maybe Prelude.Int)+getResourceProfileResponse_sensitivityScore = Lens.lens (\GetResourceProfileResponse' {sensitivityScore} -> sensitivityScore) (\s@GetResourceProfileResponse' {} a -> s {sensitivityScore = a} :: GetResourceProfileResponse)++-- | Specifies whether the bucket\'s current sensitivity score was set+-- manually. If this value is true, the score was manually changed to 100.+-- If this value is false, the score was calculated automatically by Amazon+-- Macie.+getResourceProfileResponse_sensitivityScoreOverridden :: Lens.Lens' GetResourceProfileResponse (Prelude.Maybe Prelude.Bool)+getResourceProfileResponse_sensitivityScoreOverridden = Lens.lens (\GetResourceProfileResponse' {sensitivityScoreOverridden} -> sensitivityScoreOverridden) (\s@GetResourceProfileResponse' {} a -> s {sensitivityScoreOverridden = a} :: GetResourceProfileResponse)++-- | The sensitive data discovery statistics for the bucket. The statistics+-- capture the results of automated sensitive data discovery activities+-- that Amazon Macie has performed for the bucket.+getResourceProfileResponse_statistics :: Lens.Lens' GetResourceProfileResponse (Prelude.Maybe ResourceStatistics)+getResourceProfileResponse_statistics = Lens.lens (\GetResourceProfileResponse' {statistics} -> statistics) (\s@GetResourceProfileResponse' {} a -> s {statistics = a} :: GetResourceProfileResponse)++-- | The response's http status code.+getResourceProfileResponse_httpStatus :: Lens.Lens' GetResourceProfileResponse Prelude.Int+getResourceProfileResponse_httpStatus = Lens.lens (\GetResourceProfileResponse' {httpStatus} -> httpStatus) (\s@GetResourceProfileResponse' {} a -> s {httpStatus = a} :: GetResourceProfileResponse)++instance Prelude.NFData GetResourceProfileResponse where+  rnf GetResourceProfileResponse' {..} =+    Prelude.rnf profileUpdatedAt+      `Prelude.seq` Prelude.rnf sensitivityScore+      `Prelude.seq` Prelude.rnf sensitivityScoreOverridden+      `Prelude.seq` Prelude.rnf statistics+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/GetRevealConfiguration.hs view
@@ -0,0 +1,148 @@+{-# 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.MacieV2.GetRevealConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the status and configuration settings for retrieving+-- occurrences of sensitive data reported by findings.+module Amazonka.MacieV2.GetRevealConfiguration+  ( -- * Creating a Request+    GetRevealConfiguration (..),+    newGetRevealConfiguration,++    -- * Destructuring the Response+    GetRevealConfigurationResponse (..),+    newGetRevealConfigurationResponse,++    -- * Response Lenses+    getRevealConfigurationResponse_configuration,+    getRevealConfigurationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetRevealConfiguration' smart constructor.+data GetRevealConfiguration = GetRevealConfiguration'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetRevealConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newGetRevealConfiguration ::+  GetRevealConfiguration+newGetRevealConfiguration = GetRevealConfiguration'++instance Core.AWSRequest GetRevealConfiguration where+  type+    AWSResponse GetRevealConfiguration =+      GetRevealConfigurationResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetRevealConfigurationResponse'+            Prelude.<$> (x Data..?> "configuration")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetRevealConfiguration where+  hashWithSalt _salt _ =+    _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData GetRevealConfiguration where+  rnf _ = ()++instance Data.ToHeaders GetRevealConfiguration where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetRevealConfiguration where+  toPath = Prelude.const "/reveal-configuration"++instance Data.ToQuery GetRevealConfiguration where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetRevealConfigurationResponse' smart constructor.+data GetRevealConfigurationResponse = GetRevealConfigurationResponse'+  { -- | The current configuration settings and the status of the configuration+    -- for the account.+    configuration :: Prelude.Maybe RevealConfiguration,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetRevealConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configuration', 'getRevealConfigurationResponse_configuration' - The current configuration settings and the status of the configuration+-- for the account.+--+-- 'httpStatus', 'getRevealConfigurationResponse_httpStatus' - The response's http status code.+newGetRevealConfigurationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetRevealConfigurationResponse+newGetRevealConfigurationResponse pHttpStatus_ =+  GetRevealConfigurationResponse'+    { configuration =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The current configuration settings and the status of the configuration+-- for the account.+getRevealConfigurationResponse_configuration :: Lens.Lens' GetRevealConfigurationResponse (Prelude.Maybe RevealConfiguration)+getRevealConfigurationResponse_configuration = Lens.lens (\GetRevealConfigurationResponse' {configuration} -> configuration) (\s@GetRevealConfigurationResponse' {} a -> s {configuration = a} :: GetRevealConfigurationResponse)++-- | The response's http status code.+getRevealConfigurationResponse_httpStatus :: Lens.Lens' GetRevealConfigurationResponse Prelude.Int+getRevealConfigurationResponse_httpStatus = Lens.lens (\GetRevealConfigurationResponse' {httpStatus} -> httpStatus) (\s@GetRevealConfigurationResponse' {} a -> s {httpStatus = a} :: GetRevealConfigurationResponse)++instance+  Prelude.NFData+    GetRevealConfigurationResponse+  where+  rnf GetRevealConfigurationResponse' {..} =+    Prelude.rnf configuration+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/GetSensitiveDataOccurrences.hs view
@@ -0,0 +1,236 @@+{-# 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.MacieV2.GetSensitiveDataOccurrences+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves occurrences of sensitive data reported by a finding.+module Amazonka.MacieV2.GetSensitiveDataOccurrences+  ( -- * Creating a Request+    GetSensitiveDataOccurrences (..),+    newGetSensitiveDataOccurrences,++    -- * Request Lenses+    getSensitiveDataOccurrences_findingId,++    -- * Destructuring the Response+    GetSensitiveDataOccurrencesResponse (..),+    newGetSensitiveDataOccurrencesResponse,++    -- * Response Lenses+    getSensitiveDataOccurrencesResponse_error,+    getSensitiveDataOccurrencesResponse_sensitiveDataOccurrences,+    getSensitiveDataOccurrencesResponse_status,+    getSensitiveDataOccurrencesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetSensitiveDataOccurrences' smart constructor.+data GetSensitiveDataOccurrences = GetSensitiveDataOccurrences'+  { -- | The unique identifier for the finding.+    findingId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetSensitiveDataOccurrences' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'findingId', 'getSensitiveDataOccurrences_findingId' - The unique identifier for the finding.+newGetSensitiveDataOccurrences ::+  -- | 'findingId'+  Prelude.Text ->+  GetSensitiveDataOccurrences+newGetSensitiveDataOccurrences pFindingId_ =+  GetSensitiveDataOccurrences'+    { findingId =+        pFindingId_+    }++-- | The unique identifier for the finding.+getSensitiveDataOccurrences_findingId :: Lens.Lens' GetSensitiveDataOccurrences Prelude.Text+getSensitiveDataOccurrences_findingId = Lens.lens (\GetSensitiveDataOccurrences' {findingId} -> findingId) (\s@GetSensitiveDataOccurrences' {} a -> s {findingId = a} :: GetSensitiveDataOccurrences)++instance Core.AWSRequest GetSensitiveDataOccurrences where+  type+    AWSResponse GetSensitiveDataOccurrences =+      GetSensitiveDataOccurrencesResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetSensitiveDataOccurrencesResponse'+            Prelude.<$> (x Data..?> "error")+            Prelude.<*> ( x+                            Data..?> "sensitiveDataOccurrences"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "status")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetSensitiveDataOccurrences where+  hashWithSalt _salt GetSensitiveDataOccurrences' {..} =+    _salt `Prelude.hashWithSalt` findingId++instance Prelude.NFData GetSensitiveDataOccurrences where+  rnf GetSensitiveDataOccurrences' {..} =+    Prelude.rnf findingId++instance Data.ToHeaders GetSensitiveDataOccurrences where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetSensitiveDataOccurrences where+  toPath GetSensitiveDataOccurrences' {..} =+    Prelude.mconcat+      ["/findings/", Data.toBS findingId, "/reveal"]++instance Data.ToQuery GetSensitiveDataOccurrences where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetSensitiveDataOccurrencesResponse' smart constructor.+data GetSensitiveDataOccurrencesResponse = GetSensitiveDataOccurrencesResponse'+  { -- | If an error occurred when Amazon Macie attempted to retrieve occurrences+    -- of sensitive data reported by the finding, a description of the error+    -- that occurred. This value is null if the status (status) of the request+    -- is PROCESSING or SUCCESS.+    error :: Prelude.Maybe Prelude.Text,+    -- | A map that specifies 1-100 types of sensitive data reported by the+    -- finding and, for each type, 1-10 occurrences of sensitive data.+    sensitiveDataOccurrences :: Prelude.Maybe (Prelude.HashMap Prelude.Text [DetectedDataDetails]),+    -- | The status of the request to retrieve occurrences of sensitive data+    -- reported by the finding. Possible values are:+    --+    -- -   ERROR - An error occurred when Amazon Macie attempted to locate,+    --     retrieve, or encrypt the sensitive data. The error value indicates+    --     the nature of the error that occurred.+    --+    -- -   PROCESSING - Macie is processing the request.+    --+    -- -   SUCCESS - Macie successfully located, retrieved, and encrypted the+    --     sensitive data.+    status :: Prelude.Maybe RevealRequestStatus,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetSensitiveDataOccurrencesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'error', 'getSensitiveDataOccurrencesResponse_error' - If an error occurred when Amazon Macie attempted to retrieve occurrences+-- of sensitive data reported by the finding, a description of the error+-- that occurred. This value is null if the status (status) of the request+-- is PROCESSING or SUCCESS.+--+-- 'sensitiveDataOccurrences', 'getSensitiveDataOccurrencesResponse_sensitiveDataOccurrences' - A map that specifies 1-100 types of sensitive data reported by the+-- finding and, for each type, 1-10 occurrences of sensitive data.+--+-- 'status', 'getSensitiveDataOccurrencesResponse_status' - The status of the request to retrieve occurrences of sensitive data+-- reported by the finding. Possible values are:+--+-- -   ERROR - An error occurred when Amazon Macie attempted to locate,+--     retrieve, or encrypt the sensitive data. The error value indicates+--     the nature of the error that occurred.+--+-- -   PROCESSING - Macie is processing the request.+--+-- -   SUCCESS - Macie successfully located, retrieved, and encrypted the+--     sensitive data.+--+-- 'httpStatus', 'getSensitiveDataOccurrencesResponse_httpStatus' - The response's http status code.+newGetSensitiveDataOccurrencesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetSensitiveDataOccurrencesResponse+newGetSensitiveDataOccurrencesResponse pHttpStatus_ =+  GetSensitiveDataOccurrencesResponse'+    { error =+        Prelude.Nothing,+      sensitiveDataOccurrences =+        Prelude.Nothing,+      status = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | If an error occurred when Amazon Macie attempted to retrieve occurrences+-- of sensitive data reported by the finding, a description of the error+-- that occurred. This value is null if the status (status) of the request+-- is PROCESSING or SUCCESS.+getSensitiveDataOccurrencesResponse_error :: Lens.Lens' GetSensitiveDataOccurrencesResponse (Prelude.Maybe Prelude.Text)+getSensitiveDataOccurrencesResponse_error = Lens.lens (\GetSensitiveDataOccurrencesResponse' {error} -> error) (\s@GetSensitiveDataOccurrencesResponse' {} a -> s {error = a} :: GetSensitiveDataOccurrencesResponse)++-- | A map that specifies 1-100 types of sensitive data reported by the+-- finding and, for each type, 1-10 occurrences of sensitive data.+getSensitiveDataOccurrencesResponse_sensitiveDataOccurrences :: Lens.Lens' GetSensitiveDataOccurrencesResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text [DetectedDataDetails]))+getSensitiveDataOccurrencesResponse_sensitiveDataOccurrences = Lens.lens (\GetSensitiveDataOccurrencesResponse' {sensitiveDataOccurrences} -> sensitiveDataOccurrences) (\s@GetSensitiveDataOccurrencesResponse' {} a -> s {sensitiveDataOccurrences = a} :: GetSensitiveDataOccurrencesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The status of the request to retrieve occurrences of sensitive data+-- reported by the finding. Possible values are:+--+-- -   ERROR - An error occurred when Amazon Macie attempted to locate,+--     retrieve, or encrypt the sensitive data. The error value indicates+--     the nature of the error that occurred.+--+-- -   PROCESSING - Macie is processing the request.+--+-- -   SUCCESS - Macie successfully located, retrieved, and encrypted the+--     sensitive data.+getSensitiveDataOccurrencesResponse_status :: Lens.Lens' GetSensitiveDataOccurrencesResponse (Prelude.Maybe RevealRequestStatus)+getSensitiveDataOccurrencesResponse_status = Lens.lens (\GetSensitiveDataOccurrencesResponse' {status} -> status) (\s@GetSensitiveDataOccurrencesResponse' {} a -> s {status = a} :: GetSensitiveDataOccurrencesResponse)++-- | The response's http status code.+getSensitiveDataOccurrencesResponse_httpStatus :: Lens.Lens' GetSensitiveDataOccurrencesResponse Prelude.Int+getSensitiveDataOccurrencesResponse_httpStatus = Lens.lens (\GetSensitiveDataOccurrencesResponse' {httpStatus} -> httpStatus) (\s@GetSensitiveDataOccurrencesResponse' {} a -> s {httpStatus = a} :: GetSensitiveDataOccurrencesResponse)++instance+  Prelude.NFData+    GetSensitiveDataOccurrencesResponse+  where+  rnf GetSensitiveDataOccurrencesResponse' {..} =+    Prelude.rnf error+      `Prelude.seq` Prelude.rnf sensitiveDataOccurrences+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/GetSensitiveDataOccurrencesAvailability.hs view
@@ -0,0 +1,296 @@+{-# 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.MacieV2.GetSensitiveDataOccurrencesAvailability+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Checks whether occurrences of sensitive data can be retrieved for a+-- finding.+module Amazonka.MacieV2.GetSensitiveDataOccurrencesAvailability+  ( -- * Creating a Request+    GetSensitiveDataOccurrencesAvailability (..),+    newGetSensitiveDataOccurrencesAvailability,++    -- * Request Lenses+    getSensitiveDataOccurrencesAvailability_findingId,++    -- * Destructuring the Response+    GetSensitiveDataOccurrencesAvailabilityResponse (..),+    newGetSensitiveDataOccurrencesAvailabilityResponse,++    -- * Response Lenses+    getSensitiveDataOccurrencesAvailabilityResponse_code,+    getSensitiveDataOccurrencesAvailabilityResponse_reasons,+    getSensitiveDataOccurrencesAvailabilityResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetSensitiveDataOccurrencesAvailability' smart constructor.+data GetSensitiveDataOccurrencesAvailability = GetSensitiveDataOccurrencesAvailability'+  { -- | The unique identifier for the finding.+    findingId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetSensitiveDataOccurrencesAvailability' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'findingId', 'getSensitiveDataOccurrencesAvailability_findingId' - The unique identifier for the finding.+newGetSensitiveDataOccurrencesAvailability ::+  -- | 'findingId'+  Prelude.Text ->+  GetSensitiveDataOccurrencesAvailability+newGetSensitiveDataOccurrencesAvailability+  pFindingId_ =+    GetSensitiveDataOccurrencesAvailability'+      { findingId =+          pFindingId_+      }++-- | The unique identifier for the finding.+getSensitiveDataOccurrencesAvailability_findingId :: Lens.Lens' GetSensitiveDataOccurrencesAvailability Prelude.Text+getSensitiveDataOccurrencesAvailability_findingId = Lens.lens (\GetSensitiveDataOccurrencesAvailability' {findingId} -> findingId) (\s@GetSensitiveDataOccurrencesAvailability' {} a -> s {findingId = a} :: GetSensitiveDataOccurrencesAvailability)++instance+  Core.AWSRequest+    GetSensitiveDataOccurrencesAvailability+  where+  type+    AWSResponse+      GetSensitiveDataOccurrencesAvailability =+      GetSensitiveDataOccurrencesAvailabilityResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetSensitiveDataOccurrencesAvailabilityResponse'+            Prelude.<$> (x Data..?> "code")+            Prelude.<*> (x Data..?> "reasons" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    GetSensitiveDataOccurrencesAvailability+  where+  hashWithSalt+    _salt+    GetSensitiveDataOccurrencesAvailability' {..} =+      _salt `Prelude.hashWithSalt` findingId++instance+  Prelude.NFData+    GetSensitiveDataOccurrencesAvailability+  where+  rnf GetSensitiveDataOccurrencesAvailability' {..} =+    Prelude.rnf findingId++instance+  Data.ToHeaders+    GetSensitiveDataOccurrencesAvailability+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToPath+    GetSensitiveDataOccurrencesAvailability+  where+  toPath GetSensitiveDataOccurrencesAvailability' {..} =+    Prelude.mconcat+      [ "/findings/",+        Data.toBS findingId,+        "/reveal/availability"+      ]++instance+  Data.ToQuery+    GetSensitiveDataOccurrencesAvailability+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetSensitiveDataOccurrencesAvailabilityResponse' smart constructor.+data GetSensitiveDataOccurrencesAvailabilityResponse = GetSensitiveDataOccurrencesAvailabilityResponse'+  { -- | Specifies whether occurrences of sensitive data can be retrieved for the+    -- finding. Possible values are: AVAILABLE, the sensitive data can be+    -- retrieved; and, UNAVAILABLE, the sensitive data can\'t be retrieved. If+    -- this value is UNAVAILABLE, the reasons array indicates why the data+    -- can\'t be retrieved.+    code :: Prelude.Maybe AvailabilityCode,+    -- | Specifies why occurrences of sensitive data can\'t be retrieved for the+    -- finding. Possible values are:+    --+    -- -   INVALID_CLASSIFICATION_RESULT - Amazon Macie can\'t verify the+    --     location of the sensitive data to retrieve. There isn\'t a+    --     corresponding sensitive data discovery result for the finding. Or+    --     the sensitive data discovery result specified by the+    --     ClassificationDetails.detailedResultsLocation field of the finding+    --     isn\'t available, is malformed or corrupted, or uses an unsupported+    --     storage format.+    --+    -- -   OBJECT_EXCEEDS_SIZE_QUOTA - The storage size of the affected S3+    --     object exceeds the size quota for retrieving occurrences of+    --     sensitive data.+    --+    -- -   OBJECT_UNAVAILABLE - The affected S3 object isn\'t available. The+    --     object might have been renamed, moved, or deleted. Or the object was+    --     changed after Macie created the finding.+    --+    -- -   UNSUPPORTED_FINDING_TYPE - The specified finding isn\'t a sensitive+    --     data finding.+    --+    -- -   UNSUPPORTED_OBJECT_TYPE - The affected S3 object uses a file or+    --     storage format that Macie doesn\'t support for retrieving+    --     occurrences of sensitive data.+    --+    -- This value is null if sensitive data can be retrieved for the finding.+    reasons :: Prelude.Maybe [UnavailabilityReasonCode],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetSensitiveDataOccurrencesAvailabilityResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'code', 'getSensitiveDataOccurrencesAvailabilityResponse_code' - Specifies whether occurrences of sensitive data can be retrieved for the+-- finding. Possible values are: AVAILABLE, the sensitive data can be+-- retrieved; and, UNAVAILABLE, the sensitive data can\'t be retrieved. If+-- this value is UNAVAILABLE, the reasons array indicates why the data+-- can\'t be retrieved.+--+-- 'reasons', 'getSensitiveDataOccurrencesAvailabilityResponse_reasons' - Specifies why occurrences of sensitive data can\'t be retrieved for the+-- finding. Possible values are:+--+-- -   INVALID_CLASSIFICATION_RESULT - Amazon Macie can\'t verify the+--     location of the sensitive data to retrieve. There isn\'t a+--     corresponding sensitive data discovery result for the finding. Or+--     the sensitive data discovery result specified by the+--     ClassificationDetails.detailedResultsLocation field of the finding+--     isn\'t available, is malformed or corrupted, or uses an unsupported+--     storage format.+--+-- -   OBJECT_EXCEEDS_SIZE_QUOTA - The storage size of the affected S3+--     object exceeds the size quota for retrieving occurrences of+--     sensitive data.+--+-- -   OBJECT_UNAVAILABLE - The affected S3 object isn\'t available. The+--     object might have been renamed, moved, or deleted. Or the object was+--     changed after Macie created the finding.+--+-- -   UNSUPPORTED_FINDING_TYPE - The specified finding isn\'t a sensitive+--     data finding.+--+-- -   UNSUPPORTED_OBJECT_TYPE - The affected S3 object uses a file or+--     storage format that Macie doesn\'t support for retrieving+--     occurrences of sensitive data.+--+-- This value is null if sensitive data can be retrieved for the finding.+--+-- 'httpStatus', 'getSensitiveDataOccurrencesAvailabilityResponse_httpStatus' - The response's http status code.+newGetSensitiveDataOccurrencesAvailabilityResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetSensitiveDataOccurrencesAvailabilityResponse+newGetSensitiveDataOccurrencesAvailabilityResponse+  pHttpStatus_ =+    GetSensitiveDataOccurrencesAvailabilityResponse'+      { code =+          Prelude.Nothing,+        reasons = Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | Specifies whether occurrences of sensitive data can be retrieved for the+-- finding. Possible values are: AVAILABLE, the sensitive data can be+-- retrieved; and, UNAVAILABLE, the sensitive data can\'t be retrieved. If+-- this value is UNAVAILABLE, the reasons array indicates why the data+-- can\'t be retrieved.+getSensitiveDataOccurrencesAvailabilityResponse_code :: Lens.Lens' GetSensitiveDataOccurrencesAvailabilityResponse (Prelude.Maybe AvailabilityCode)+getSensitiveDataOccurrencesAvailabilityResponse_code = Lens.lens (\GetSensitiveDataOccurrencesAvailabilityResponse' {code} -> code) (\s@GetSensitiveDataOccurrencesAvailabilityResponse' {} a -> s {code = a} :: GetSensitiveDataOccurrencesAvailabilityResponse)++-- | Specifies why occurrences of sensitive data can\'t be retrieved for the+-- finding. Possible values are:+--+-- -   INVALID_CLASSIFICATION_RESULT - Amazon Macie can\'t verify the+--     location of the sensitive data to retrieve. There isn\'t a+--     corresponding sensitive data discovery result for the finding. Or+--     the sensitive data discovery result specified by the+--     ClassificationDetails.detailedResultsLocation field of the finding+--     isn\'t available, is malformed or corrupted, or uses an unsupported+--     storage format.+--+-- -   OBJECT_EXCEEDS_SIZE_QUOTA - The storage size of the affected S3+--     object exceeds the size quota for retrieving occurrences of+--     sensitive data.+--+-- -   OBJECT_UNAVAILABLE - The affected S3 object isn\'t available. The+--     object might have been renamed, moved, or deleted. Or the object was+--     changed after Macie created the finding.+--+-- -   UNSUPPORTED_FINDING_TYPE - The specified finding isn\'t a sensitive+--     data finding.+--+-- -   UNSUPPORTED_OBJECT_TYPE - The affected S3 object uses a file or+--     storage format that Macie doesn\'t support for retrieving+--     occurrences of sensitive data.+--+-- This value is null if sensitive data can be retrieved for the finding.+getSensitiveDataOccurrencesAvailabilityResponse_reasons :: Lens.Lens' GetSensitiveDataOccurrencesAvailabilityResponse (Prelude.Maybe [UnavailabilityReasonCode])+getSensitiveDataOccurrencesAvailabilityResponse_reasons = Lens.lens (\GetSensitiveDataOccurrencesAvailabilityResponse' {reasons} -> reasons) (\s@GetSensitiveDataOccurrencesAvailabilityResponse' {} a -> s {reasons = a} :: GetSensitiveDataOccurrencesAvailabilityResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getSensitiveDataOccurrencesAvailabilityResponse_httpStatus :: Lens.Lens' GetSensitiveDataOccurrencesAvailabilityResponse Prelude.Int+getSensitiveDataOccurrencesAvailabilityResponse_httpStatus = Lens.lens (\GetSensitiveDataOccurrencesAvailabilityResponse' {httpStatus} -> httpStatus) (\s@GetSensitiveDataOccurrencesAvailabilityResponse' {} a -> s {httpStatus = a} :: GetSensitiveDataOccurrencesAvailabilityResponse)++instance+  Prelude.NFData+    GetSensitiveDataOccurrencesAvailabilityResponse+  where+  rnf+    GetSensitiveDataOccurrencesAvailabilityResponse' {..} =+      Prelude.rnf code+        `Prelude.seq` Prelude.rnf reasons+        `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/GetSensitivityInspectionTemplate.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.MacieV2.GetSensitivityInspectionTemplate+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the settings for the sensitivity inspection template for an+-- account.+module Amazonka.MacieV2.GetSensitivityInspectionTemplate+  ( -- * Creating a Request+    GetSensitivityInspectionTemplate (..),+    newGetSensitivityInspectionTemplate,++    -- * Request Lenses+    getSensitivityInspectionTemplate_id,++    -- * Destructuring the Response+    GetSensitivityInspectionTemplateResponse (..),+    newGetSensitivityInspectionTemplateResponse,++    -- * Response Lenses+    getSensitivityInspectionTemplateResponse_description,+    getSensitivityInspectionTemplateResponse_excludes,+    getSensitivityInspectionTemplateResponse_includes,+    getSensitivityInspectionTemplateResponse_name,+    getSensitivityInspectionTemplateResponse_sensitivityInspectionTemplateId,+    getSensitivityInspectionTemplateResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetSensitivityInspectionTemplate' smart constructor.+data GetSensitivityInspectionTemplate = GetSensitivityInspectionTemplate'+  { -- | The unique identifier for the Amazon Macie resource that the request+    -- applies to.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetSensitivityInspectionTemplate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getSensitivityInspectionTemplate_id' - The unique identifier for the Amazon Macie resource that the request+-- applies to.+newGetSensitivityInspectionTemplate ::+  -- | 'id'+  Prelude.Text ->+  GetSensitivityInspectionTemplate+newGetSensitivityInspectionTemplate pId_ =+  GetSensitivityInspectionTemplate' {id = pId_}++-- | The unique identifier for the Amazon Macie resource that the request+-- applies to.+getSensitivityInspectionTemplate_id :: Lens.Lens' GetSensitivityInspectionTemplate Prelude.Text+getSensitivityInspectionTemplate_id = Lens.lens (\GetSensitivityInspectionTemplate' {id} -> id) (\s@GetSensitivityInspectionTemplate' {} a -> s {id = a} :: GetSensitivityInspectionTemplate)++instance+  Core.AWSRequest+    GetSensitivityInspectionTemplate+  where+  type+    AWSResponse GetSensitivityInspectionTemplate =+      GetSensitivityInspectionTemplateResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetSensitivityInspectionTemplateResponse'+            Prelude.<$> (x Data..?> "description")+            Prelude.<*> (x Data..?> "excludes")+            Prelude.<*> (x Data..?> "includes")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (x Data..?> "sensitivityInspectionTemplateId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    GetSensitivityInspectionTemplate+  where+  hashWithSalt+    _salt+    GetSensitivityInspectionTemplate' {..} =+      _salt `Prelude.hashWithSalt` id++instance+  Prelude.NFData+    GetSensitivityInspectionTemplate+  where+  rnf GetSensitivityInspectionTemplate' {..} =+    Prelude.rnf id++instance+  Data.ToHeaders+    GetSensitivityInspectionTemplate+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetSensitivityInspectionTemplate where+  toPath GetSensitivityInspectionTemplate' {..} =+    Prelude.mconcat+      ["/templates/sensitivity-inspections/", Data.toBS id]++instance+  Data.ToQuery+    GetSensitivityInspectionTemplate+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetSensitivityInspectionTemplateResponse' smart constructor.+data GetSensitivityInspectionTemplateResponse = GetSensitivityInspectionTemplateResponse'+  { -- | The custom description of the template.+    description :: Prelude.Maybe Prelude.Text,+    -- | The managed data identifiers that are explicitly excluded (not used)+    -- when analyzing data.+    excludes :: Prelude.Maybe SensitivityInspectionTemplateExcludes,+    -- | The allow lists, custom data identifiers, and managed data identifiers+    -- that are included (used) when analyzing data.+    includes :: Prelude.Maybe SensitivityInspectionTemplateIncludes,+    -- | The name of the template.+    name :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the template.+    sensitivityInspectionTemplateId :: 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 'GetSensitivityInspectionTemplateResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getSensitivityInspectionTemplateResponse_description' - The custom description of the template.+--+-- 'excludes', 'getSensitivityInspectionTemplateResponse_excludes' - The managed data identifiers that are explicitly excluded (not used)+-- when analyzing data.+--+-- 'includes', 'getSensitivityInspectionTemplateResponse_includes' - The allow lists, custom data identifiers, and managed data identifiers+-- that are included (used) when analyzing data.+--+-- 'name', 'getSensitivityInspectionTemplateResponse_name' - The name of the template.+--+-- 'sensitivityInspectionTemplateId', 'getSensitivityInspectionTemplateResponse_sensitivityInspectionTemplateId' - The unique identifier for the template.+--+-- 'httpStatus', 'getSensitivityInspectionTemplateResponse_httpStatus' - The response's http status code.+newGetSensitivityInspectionTemplateResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetSensitivityInspectionTemplateResponse+newGetSensitivityInspectionTemplateResponse+  pHttpStatus_ =+    GetSensitivityInspectionTemplateResponse'+      { description =+          Prelude.Nothing,+        excludes = Prelude.Nothing,+        includes = Prelude.Nothing,+        name = Prelude.Nothing,+        sensitivityInspectionTemplateId =+          Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | The custom description of the template.+getSensitivityInspectionTemplateResponse_description :: Lens.Lens' GetSensitivityInspectionTemplateResponse (Prelude.Maybe Prelude.Text)+getSensitivityInspectionTemplateResponse_description = Lens.lens (\GetSensitivityInspectionTemplateResponse' {description} -> description) (\s@GetSensitivityInspectionTemplateResponse' {} a -> s {description = a} :: GetSensitivityInspectionTemplateResponse)++-- | The managed data identifiers that are explicitly excluded (not used)+-- when analyzing data.+getSensitivityInspectionTemplateResponse_excludes :: Lens.Lens' GetSensitivityInspectionTemplateResponse (Prelude.Maybe SensitivityInspectionTemplateExcludes)+getSensitivityInspectionTemplateResponse_excludes = Lens.lens (\GetSensitivityInspectionTemplateResponse' {excludes} -> excludes) (\s@GetSensitivityInspectionTemplateResponse' {} a -> s {excludes = a} :: GetSensitivityInspectionTemplateResponse)++-- | The allow lists, custom data identifiers, and managed data identifiers+-- that are included (used) when analyzing data.+getSensitivityInspectionTemplateResponse_includes :: Lens.Lens' GetSensitivityInspectionTemplateResponse (Prelude.Maybe SensitivityInspectionTemplateIncludes)+getSensitivityInspectionTemplateResponse_includes = Lens.lens (\GetSensitivityInspectionTemplateResponse' {includes} -> includes) (\s@GetSensitivityInspectionTemplateResponse' {} a -> s {includes = a} :: GetSensitivityInspectionTemplateResponse)++-- | The name of the template.+getSensitivityInspectionTemplateResponse_name :: Lens.Lens' GetSensitivityInspectionTemplateResponse (Prelude.Maybe Prelude.Text)+getSensitivityInspectionTemplateResponse_name = Lens.lens (\GetSensitivityInspectionTemplateResponse' {name} -> name) (\s@GetSensitivityInspectionTemplateResponse' {} a -> s {name = a} :: GetSensitivityInspectionTemplateResponse)++-- | The unique identifier for the template.+getSensitivityInspectionTemplateResponse_sensitivityInspectionTemplateId :: Lens.Lens' GetSensitivityInspectionTemplateResponse (Prelude.Maybe Prelude.Text)+getSensitivityInspectionTemplateResponse_sensitivityInspectionTemplateId = Lens.lens (\GetSensitivityInspectionTemplateResponse' {sensitivityInspectionTemplateId} -> sensitivityInspectionTemplateId) (\s@GetSensitivityInspectionTemplateResponse' {} a -> s {sensitivityInspectionTemplateId = a} :: GetSensitivityInspectionTemplateResponse)++-- | The response's http status code.+getSensitivityInspectionTemplateResponse_httpStatus :: Lens.Lens' GetSensitivityInspectionTemplateResponse Prelude.Int+getSensitivityInspectionTemplateResponse_httpStatus = Lens.lens (\GetSensitivityInspectionTemplateResponse' {httpStatus} -> httpStatus) (\s@GetSensitivityInspectionTemplateResponse' {} a -> s {httpStatus = a} :: GetSensitivityInspectionTemplateResponse)++instance+  Prelude.NFData+    GetSensitivityInspectionTemplateResponse+  where+  rnf GetSensitivityInspectionTemplateResponse' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf excludes+      `Prelude.seq` Prelude.rnf includes+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf sensitivityInspectionTemplateId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/GetUsageStatistics.hs view
@@ -0,0 +1,304 @@+{-# 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.MacieV2.GetUsageStatistics+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves (queries) quotas and aggregated usage data for one or more+-- accounts.+--+-- This operation returns paginated results.+module Amazonka.MacieV2.GetUsageStatistics+  ( -- * Creating a Request+    GetUsageStatistics (..),+    newGetUsageStatistics,++    -- * Request Lenses+    getUsageStatistics_filterBy,+    getUsageStatistics_maxResults,+    getUsageStatistics_nextToken,+    getUsageStatistics_sortBy,+    getUsageStatistics_timeRange,++    -- * Destructuring the Response+    GetUsageStatisticsResponse (..),+    newGetUsageStatisticsResponse,++    -- * Response Lenses+    getUsageStatisticsResponse_nextToken,+    getUsageStatisticsResponse_records,+    getUsageStatisticsResponse_timeRange,+    getUsageStatisticsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetUsageStatistics' smart constructor.+data GetUsageStatistics = GetUsageStatistics'+  { -- | An array of objects, one for each condition to use to filter the query+    -- results. If you specify more than one condition, Amazon Macie uses an+    -- AND operator to join the conditions.+    filterBy :: Prelude.Maybe [UsageStatisticsFilter],+    -- | The maximum number of items to include in each page of the response.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | The nextToken string that specifies which page of results to return in a+    -- paginated response.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The criteria to use to sort the query results.+    sortBy :: Prelude.Maybe UsageStatisticsSortBy,+    -- | The inclusive time period to query usage data for. Valid values are:+    -- MONTH_TO_DATE, for the current calendar month to date; and,+    -- PAST_30_DAYS, for the preceding 30 days. If you don\'t specify a value,+    -- Amazon Macie provides usage data for the preceding 30 days.+    timeRange :: Prelude.Maybe TimeRange+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetUsageStatistics' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filterBy', 'getUsageStatistics_filterBy' - An array of objects, one for each condition to use to filter the query+-- results. If you specify more than one condition, Amazon Macie uses an+-- AND operator to join the conditions.+--+-- 'maxResults', 'getUsageStatistics_maxResults' - The maximum number of items to include in each page of the response.+--+-- 'nextToken', 'getUsageStatistics_nextToken' - The nextToken string that specifies which page of results to return in a+-- paginated response.+--+-- 'sortBy', 'getUsageStatistics_sortBy' - The criteria to use to sort the query results.+--+-- 'timeRange', 'getUsageStatistics_timeRange' - The inclusive time period to query usage data for. Valid values are:+-- MONTH_TO_DATE, for the current calendar month to date; and,+-- PAST_30_DAYS, for the preceding 30 days. If you don\'t specify a value,+-- Amazon Macie provides usage data for the preceding 30 days.+newGetUsageStatistics ::+  GetUsageStatistics+newGetUsageStatistics =+  GetUsageStatistics'+    { filterBy = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      sortBy = Prelude.Nothing,+      timeRange = Prelude.Nothing+    }++-- | An array of objects, one for each condition to use to filter the query+-- results. If you specify more than one condition, Amazon Macie uses an+-- AND operator to join the conditions.+getUsageStatistics_filterBy :: Lens.Lens' GetUsageStatistics (Prelude.Maybe [UsageStatisticsFilter])+getUsageStatistics_filterBy = Lens.lens (\GetUsageStatistics' {filterBy} -> filterBy) (\s@GetUsageStatistics' {} a -> s {filterBy = a} :: GetUsageStatistics) Prelude.. Lens.mapping Lens.coerced++-- | The maximum number of items to include in each page of the response.+getUsageStatistics_maxResults :: Lens.Lens' GetUsageStatistics (Prelude.Maybe Prelude.Int)+getUsageStatistics_maxResults = Lens.lens (\GetUsageStatistics' {maxResults} -> maxResults) (\s@GetUsageStatistics' {} a -> s {maxResults = a} :: GetUsageStatistics)++-- | The nextToken string that specifies which page of results to return in a+-- paginated response.+getUsageStatistics_nextToken :: Lens.Lens' GetUsageStatistics (Prelude.Maybe Prelude.Text)+getUsageStatistics_nextToken = Lens.lens (\GetUsageStatistics' {nextToken} -> nextToken) (\s@GetUsageStatistics' {} a -> s {nextToken = a} :: GetUsageStatistics)++-- | The criteria to use to sort the query results.+getUsageStatistics_sortBy :: Lens.Lens' GetUsageStatistics (Prelude.Maybe UsageStatisticsSortBy)+getUsageStatistics_sortBy = Lens.lens (\GetUsageStatistics' {sortBy} -> sortBy) (\s@GetUsageStatistics' {} a -> s {sortBy = a} :: GetUsageStatistics)++-- | The inclusive time period to query usage data for. Valid values are:+-- MONTH_TO_DATE, for the current calendar month to date; and,+-- PAST_30_DAYS, for the preceding 30 days. If you don\'t specify a value,+-- Amazon Macie provides usage data for the preceding 30 days.+getUsageStatistics_timeRange :: Lens.Lens' GetUsageStatistics (Prelude.Maybe TimeRange)+getUsageStatistics_timeRange = Lens.lens (\GetUsageStatistics' {timeRange} -> timeRange) (\s@GetUsageStatistics' {} a -> s {timeRange = a} :: GetUsageStatistics)++instance Core.AWSPager GetUsageStatistics where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? getUsageStatisticsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? getUsageStatisticsResponse_records+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& getUsageStatistics_nextToken+          Lens..~ rs+          Lens.^? getUsageStatisticsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest GetUsageStatistics where+  type+    AWSResponse GetUsageStatistics =+      GetUsageStatisticsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetUsageStatisticsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (x Data..?> "records" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "timeRange")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetUsageStatistics where+  hashWithSalt _salt GetUsageStatistics' {..} =+    _salt+      `Prelude.hashWithSalt` filterBy+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` sortBy+      `Prelude.hashWithSalt` timeRange++instance Prelude.NFData GetUsageStatistics where+  rnf GetUsageStatistics' {..} =+    Prelude.rnf filterBy+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf sortBy+      `Prelude.seq` Prelude.rnf timeRange++instance Data.ToHeaders GetUsageStatistics where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetUsageStatistics where+  toJSON GetUsageStatistics' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("filterBy" Data..=) Prelude.<$> filterBy,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("sortBy" Data..=) Prelude.<$> sortBy,+            ("timeRange" Data..=) Prelude.<$> timeRange+          ]+      )++instance Data.ToPath GetUsageStatistics where+  toPath = Prelude.const "/usage/statistics"++instance Data.ToQuery GetUsageStatistics where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetUsageStatisticsResponse' smart constructor.+data GetUsageStatisticsResponse = GetUsageStatisticsResponse'+  { -- | The string to use in a subsequent request to get the next page of+    -- results in a paginated response. This value is null if there are no+    -- additional pages.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | An array of objects that contains the results of the query. Each object+    -- contains the data for an account that matches the filter criteria+    -- specified in the request.+    records :: Prelude.Maybe [UsageRecord],+    -- | The inclusive time period that the usage data applies to. Possible+    -- values are: MONTH_TO_DATE, for the current calendar month to date; and,+    -- PAST_30_DAYS, for the preceding 30 days.+    timeRange :: Prelude.Maybe TimeRange,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetUsageStatisticsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getUsageStatisticsResponse_nextToken' - The string to use in a subsequent request to get the next page of+-- results in a paginated response. This value is null if there are no+-- additional pages.+--+-- 'records', 'getUsageStatisticsResponse_records' - An array of objects that contains the results of the query. Each object+-- contains the data for an account that matches the filter criteria+-- specified in the request.+--+-- 'timeRange', 'getUsageStatisticsResponse_timeRange' - The inclusive time period that the usage data applies to. Possible+-- values are: MONTH_TO_DATE, for the current calendar month to date; and,+-- PAST_30_DAYS, for the preceding 30 days.+--+-- 'httpStatus', 'getUsageStatisticsResponse_httpStatus' - The response's http status code.+newGetUsageStatisticsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetUsageStatisticsResponse+newGetUsageStatisticsResponse pHttpStatus_ =+  GetUsageStatisticsResponse'+    { nextToken =+        Prelude.Nothing,+      records = Prelude.Nothing,+      timeRange = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The string to use in a subsequent request to get the next page of+-- results in a paginated response. This value is null if there are no+-- additional pages.+getUsageStatisticsResponse_nextToken :: Lens.Lens' GetUsageStatisticsResponse (Prelude.Maybe Prelude.Text)+getUsageStatisticsResponse_nextToken = Lens.lens (\GetUsageStatisticsResponse' {nextToken} -> nextToken) (\s@GetUsageStatisticsResponse' {} a -> s {nextToken = a} :: GetUsageStatisticsResponse)++-- | An array of objects that contains the results of the query. Each object+-- contains the data for an account that matches the filter criteria+-- specified in the request.+getUsageStatisticsResponse_records :: Lens.Lens' GetUsageStatisticsResponse (Prelude.Maybe [UsageRecord])+getUsageStatisticsResponse_records = Lens.lens (\GetUsageStatisticsResponse' {records} -> records) (\s@GetUsageStatisticsResponse' {} a -> s {records = a} :: GetUsageStatisticsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The inclusive time period that the usage data applies to. Possible+-- values are: MONTH_TO_DATE, for the current calendar month to date; and,+-- PAST_30_DAYS, for the preceding 30 days.+getUsageStatisticsResponse_timeRange :: Lens.Lens' GetUsageStatisticsResponse (Prelude.Maybe TimeRange)+getUsageStatisticsResponse_timeRange = Lens.lens (\GetUsageStatisticsResponse' {timeRange} -> timeRange) (\s@GetUsageStatisticsResponse' {} a -> s {timeRange = a} :: GetUsageStatisticsResponse)++-- | The response's http status code.+getUsageStatisticsResponse_httpStatus :: Lens.Lens' GetUsageStatisticsResponse Prelude.Int+getUsageStatisticsResponse_httpStatus = Lens.lens (\GetUsageStatisticsResponse' {httpStatus} -> httpStatus) (\s@GetUsageStatisticsResponse' {} a -> s {httpStatus = a} :: GetUsageStatisticsResponse)++instance Prelude.NFData GetUsageStatisticsResponse where+  rnf GetUsageStatisticsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf records+      `Prelude.seq` Prelude.rnf timeRange+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/GetUsageTotals.hs view
@@ -0,0 +1,189 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.GetUsageTotals+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves (queries) aggregated usage data for an account.+module Amazonka.MacieV2.GetUsageTotals+  ( -- * Creating a Request+    GetUsageTotals (..),+    newGetUsageTotals,++    -- * Request Lenses+    getUsageTotals_timeRange,++    -- * Destructuring the Response+    GetUsageTotalsResponse (..),+    newGetUsageTotalsResponse,++    -- * Response Lenses+    getUsageTotalsResponse_timeRange,+    getUsageTotalsResponse_usageTotals,+    getUsageTotalsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetUsageTotals' smart constructor.+data GetUsageTotals = GetUsageTotals'+  { -- | The inclusive time period to retrieve the data for. Valid values are:+    -- MONTH_TO_DATE, for the current calendar month to date; and,+    -- PAST_30_DAYS, for the preceding 30 days. If you don\'t specify a value+    -- for this parameter, Amazon Macie provides aggregated usage data for the+    -- preceding 30 days.+    timeRange :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetUsageTotals' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'timeRange', 'getUsageTotals_timeRange' - The inclusive time period to retrieve the data for. Valid values are:+-- MONTH_TO_DATE, for the current calendar month to date; and,+-- PAST_30_DAYS, for the preceding 30 days. If you don\'t specify a value+-- for this parameter, Amazon Macie provides aggregated usage data for the+-- preceding 30 days.+newGetUsageTotals ::+  GetUsageTotals+newGetUsageTotals =+  GetUsageTotals' {timeRange = Prelude.Nothing}++-- | The inclusive time period to retrieve the data for. Valid values are:+-- MONTH_TO_DATE, for the current calendar month to date; and,+-- PAST_30_DAYS, for the preceding 30 days. If you don\'t specify a value+-- for this parameter, Amazon Macie provides aggregated usage data for the+-- preceding 30 days.+getUsageTotals_timeRange :: Lens.Lens' GetUsageTotals (Prelude.Maybe Prelude.Text)+getUsageTotals_timeRange = Lens.lens (\GetUsageTotals' {timeRange} -> timeRange) (\s@GetUsageTotals' {} a -> s {timeRange = a} :: GetUsageTotals)++instance Core.AWSRequest GetUsageTotals where+  type+    AWSResponse GetUsageTotals =+      GetUsageTotalsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetUsageTotalsResponse'+            Prelude.<$> (x Data..?> "timeRange")+            Prelude.<*> (x Data..?> "usageTotals" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetUsageTotals where+  hashWithSalt _salt GetUsageTotals' {..} =+    _salt `Prelude.hashWithSalt` timeRange++instance Prelude.NFData GetUsageTotals where+  rnf GetUsageTotals' {..} = Prelude.rnf timeRange++instance Data.ToHeaders GetUsageTotals where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetUsageTotals where+  toPath = Prelude.const "/usage"++instance Data.ToQuery GetUsageTotals where+  toQuery GetUsageTotals' {..} =+    Prelude.mconcat ["timeRange" Data.=: timeRange]++-- | /See:/ 'newGetUsageTotalsResponse' smart constructor.+data GetUsageTotalsResponse = GetUsageTotalsResponse'+  { -- | The inclusive time period that the usage data applies to. Possible+    -- values are: MONTH_TO_DATE, for the current calendar month to date; and,+    -- PAST_30_DAYS, for the preceding 30 days.+    timeRange :: Prelude.Maybe TimeRange,+    -- | An array of objects that contains the results of the query. Each object+    -- contains the data for a specific usage metric.+    usageTotals :: Prelude.Maybe [UsageTotal],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetUsageTotalsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'timeRange', 'getUsageTotalsResponse_timeRange' - The inclusive time period that the usage data applies to. Possible+-- values are: MONTH_TO_DATE, for the current calendar month to date; and,+-- PAST_30_DAYS, for the preceding 30 days.+--+-- 'usageTotals', 'getUsageTotalsResponse_usageTotals' - An array of objects that contains the results of the query. Each object+-- contains the data for a specific usage metric.+--+-- 'httpStatus', 'getUsageTotalsResponse_httpStatus' - The response's http status code.+newGetUsageTotalsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetUsageTotalsResponse+newGetUsageTotalsResponse pHttpStatus_ =+  GetUsageTotalsResponse'+    { timeRange =+        Prelude.Nothing,+      usageTotals = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The inclusive time period that the usage data applies to. Possible+-- values are: MONTH_TO_DATE, for the current calendar month to date; and,+-- PAST_30_DAYS, for the preceding 30 days.+getUsageTotalsResponse_timeRange :: Lens.Lens' GetUsageTotalsResponse (Prelude.Maybe TimeRange)+getUsageTotalsResponse_timeRange = Lens.lens (\GetUsageTotalsResponse' {timeRange} -> timeRange) (\s@GetUsageTotalsResponse' {} a -> s {timeRange = a} :: GetUsageTotalsResponse)++-- | An array of objects that contains the results of the query. Each object+-- contains the data for a specific usage metric.+getUsageTotalsResponse_usageTotals :: Lens.Lens' GetUsageTotalsResponse (Prelude.Maybe [UsageTotal])+getUsageTotalsResponse_usageTotals = Lens.lens (\GetUsageTotalsResponse' {usageTotals} -> usageTotals) (\s@GetUsageTotalsResponse' {} a -> s {usageTotals = a} :: GetUsageTotalsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getUsageTotalsResponse_httpStatus :: Lens.Lens' GetUsageTotalsResponse Prelude.Int+getUsageTotalsResponse_httpStatus = Lens.lens (\GetUsageTotalsResponse' {httpStatus} -> httpStatus) (\s@GetUsageTotalsResponse' {} a -> s {httpStatus = a} :: GetUsageTotalsResponse)++instance Prelude.NFData GetUsageTotalsResponse where+  rnf GetUsageTotalsResponse' {..} =+    Prelude.rnf timeRange+      `Prelude.seq` Prelude.rnf usageTotals+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/Lens.hs view
@@ -0,0 +1,1535 @@+{-# 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.MacieV2.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.MacieV2.Lens+  ( -- * Operations++    -- ** AcceptInvitation+    acceptInvitation_administratorAccountId,+    acceptInvitation_masterAccount,+    acceptInvitation_invitationId,+    acceptInvitationResponse_httpStatus,++    -- ** BatchGetCustomDataIdentifiers+    batchGetCustomDataIdentifiers_ids,+    batchGetCustomDataIdentifiersResponse_customDataIdentifiers,+    batchGetCustomDataIdentifiersResponse_notFoundIdentifierIds,+    batchGetCustomDataIdentifiersResponse_httpStatus,++    -- ** CreateAllowList+    createAllowList_description,+    createAllowList_tags,+    createAllowList_criteria,+    createAllowList_clientToken,+    createAllowList_name,+    createAllowListResponse_arn,+    createAllowListResponse_id,+    createAllowListResponse_httpStatus,++    -- ** CreateClassificationJob+    createClassificationJob_allowListIds,+    createClassificationJob_customDataIdentifierIds,+    createClassificationJob_description,+    createClassificationJob_initialRun,+    createClassificationJob_managedDataIdentifierIds,+    createClassificationJob_managedDataIdentifierSelector,+    createClassificationJob_samplingPercentage,+    createClassificationJob_scheduleFrequency,+    createClassificationJob_tags,+    createClassificationJob_s3JobDefinition,+    createClassificationJob_jobType,+    createClassificationJob_clientToken,+    createClassificationJob_name,+    createClassificationJobResponse_jobArn,+    createClassificationJobResponse_jobId,+    createClassificationJobResponse_httpStatus,++    -- ** CreateCustomDataIdentifier+    createCustomDataIdentifier_clientToken,+    createCustomDataIdentifier_description,+    createCustomDataIdentifier_ignoreWords,+    createCustomDataIdentifier_keywords,+    createCustomDataIdentifier_maximumMatchDistance,+    createCustomDataIdentifier_severityLevels,+    createCustomDataIdentifier_tags,+    createCustomDataIdentifier_regex,+    createCustomDataIdentifier_name,+    createCustomDataIdentifierResponse_customDataIdentifierId,+    createCustomDataIdentifierResponse_httpStatus,++    -- ** CreateFindingsFilter+    createFindingsFilter_clientToken,+    createFindingsFilter_description,+    createFindingsFilter_position,+    createFindingsFilter_tags,+    createFindingsFilter_action,+    createFindingsFilter_findingCriteria,+    createFindingsFilter_name,+    createFindingsFilterResponse_arn,+    createFindingsFilterResponse_id,+    createFindingsFilterResponse_httpStatus,++    -- ** CreateInvitations+    createInvitations_disableEmailNotification,+    createInvitations_message,+    createInvitations_accountIds,+    createInvitationsResponse_unprocessedAccounts,+    createInvitationsResponse_httpStatus,++    -- ** CreateMember+    createMember_tags,+    createMember_account,+    createMemberResponse_arn,+    createMemberResponse_httpStatus,++    -- ** CreateSampleFindings+    createSampleFindings_findingTypes,+    createSampleFindingsResponse_httpStatus,++    -- ** DeclineInvitations+    declineInvitations_accountIds,+    declineInvitationsResponse_unprocessedAccounts,+    declineInvitationsResponse_httpStatus,++    -- ** DeleteAllowList+    deleteAllowList_ignoreJobChecks,+    deleteAllowList_id,+    deleteAllowListResponse_httpStatus,++    -- ** DeleteCustomDataIdentifier+    deleteCustomDataIdentifier_id,+    deleteCustomDataIdentifierResponse_httpStatus,++    -- ** DeleteFindingsFilter+    deleteFindingsFilter_id,+    deleteFindingsFilterResponse_httpStatus,++    -- ** DeleteInvitations+    deleteInvitations_accountIds,+    deleteInvitationsResponse_unprocessedAccounts,+    deleteInvitationsResponse_httpStatus,++    -- ** DeleteMember+    deleteMember_id,+    deleteMemberResponse_httpStatus,++    -- ** DescribeBuckets+    describeBuckets_criteria,+    describeBuckets_maxResults,+    describeBuckets_nextToken,+    describeBuckets_sortCriteria,+    describeBucketsResponse_buckets,+    describeBucketsResponse_nextToken,+    describeBucketsResponse_httpStatus,++    -- ** DescribeClassificationJob+    describeClassificationJob_jobId,+    describeClassificationJobResponse_allowListIds,+    describeClassificationJobResponse_clientToken,+    describeClassificationJobResponse_createdAt,+    describeClassificationJobResponse_customDataIdentifierIds,+    describeClassificationJobResponse_description,+    describeClassificationJobResponse_initialRun,+    describeClassificationJobResponse_jobArn,+    describeClassificationJobResponse_jobId,+    describeClassificationJobResponse_jobStatus,+    describeClassificationJobResponse_jobType,+    describeClassificationJobResponse_lastRunErrorStatus,+    describeClassificationJobResponse_lastRunTime,+    describeClassificationJobResponse_managedDataIdentifierIds,+    describeClassificationJobResponse_managedDataIdentifierSelector,+    describeClassificationJobResponse_name,+    describeClassificationJobResponse_s3JobDefinition,+    describeClassificationJobResponse_samplingPercentage,+    describeClassificationJobResponse_scheduleFrequency,+    describeClassificationJobResponse_statistics,+    describeClassificationJobResponse_tags,+    describeClassificationJobResponse_userPausedDetails,+    describeClassificationJobResponse_httpStatus,++    -- ** DescribeOrganizationConfiguration+    describeOrganizationConfigurationResponse_autoEnable,+    describeOrganizationConfigurationResponse_maxAccountLimitReached,+    describeOrganizationConfigurationResponse_httpStatus,++    -- ** DisableMacie+    disableMacieResponse_httpStatus,++    -- ** DisableOrganizationAdminAccount+    disableOrganizationAdminAccount_adminAccountId,+    disableOrganizationAdminAccountResponse_httpStatus,++    -- ** DisassociateFromAdministratorAccount+    disassociateFromAdministratorAccountResponse_httpStatus,++    -- ** DisassociateFromMasterAccount+    disassociateFromMasterAccountResponse_httpStatus,++    -- ** DisassociateMember+    disassociateMember_id,+    disassociateMemberResponse_httpStatus,++    -- ** EnableMacie+    enableMacie_clientToken,+    enableMacie_findingPublishingFrequency,+    enableMacie_status,+    enableMacieResponse_httpStatus,++    -- ** EnableOrganizationAdminAccount+    enableOrganizationAdminAccount_clientToken,+    enableOrganizationAdminAccount_adminAccountId,+    enableOrganizationAdminAccountResponse_httpStatus,++    -- ** GetAdministratorAccount+    getAdministratorAccountResponse_administrator,+    getAdministratorAccountResponse_httpStatus,++    -- ** GetAllowList+    getAllowList_id,+    getAllowListResponse_arn,+    getAllowListResponse_createdAt,+    getAllowListResponse_criteria,+    getAllowListResponse_description,+    getAllowListResponse_id,+    getAllowListResponse_name,+    getAllowListResponse_status,+    getAllowListResponse_tags,+    getAllowListResponse_updatedAt,+    getAllowListResponse_httpStatus,++    -- ** GetAutomatedDiscoveryConfiguration+    getAutomatedDiscoveryConfigurationResponse_classificationScopeId,+    getAutomatedDiscoveryConfigurationResponse_disabledAt,+    getAutomatedDiscoveryConfigurationResponse_firstEnabledAt,+    getAutomatedDiscoveryConfigurationResponse_lastUpdatedAt,+    getAutomatedDiscoveryConfigurationResponse_sensitivityInspectionTemplateId,+    getAutomatedDiscoveryConfigurationResponse_status,+    getAutomatedDiscoveryConfigurationResponse_httpStatus,++    -- ** GetBucketStatistics+    getBucketStatistics_accountId,+    getBucketStatisticsResponse_bucketCount,+    getBucketStatisticsResponse_bucketCountByEffectivePermission,+    getBucketStatisticsResponse_bucketCountByEncryptionType,+    getBucketStatisticsResponse_bucketCountByObjectEncryptionRequirement,+    getBucketStatisticsResponse_bucketCountBySharedAccessType,+    getBucketStatisticsResponse_bucketStatisticsBySensitivity,+    getBucketStatisticsResponse_classifiableObjectCount,+    getBucketStatisticsResponse_classifiableSizeInBytes,+    getBucketStatisticsResponse_lastUpdated,+    getBucketStatisticsResponse_objectCount,+    getBucketStatisticsResponse_sizeInBytes,+    getBucketStatisticsResponse_sizeInBytesCompressed,+    getBucketStatisticsResponse_unclassifiableObjectCount,+    getBucketStatisticsResponse_unclassifiableObjectSizeInBytes,+    getBucketStatisticsResponse_httpStatus,++    -- ** GetClassificationExportConfiguration+    getClassificationExportConfigurationResponse_configuration,+    getClassificationExportConfigurationResponse_httpStatus,++    -- ** GetClassificationScope+    getClassificationScope_id,+    getClassificationScopeResponse_id,+    getClassificationScopeResponse_name,+    getClassificationScopeResponse_s3,+    getClassificationScopeResponse_httpStatus,++    -- ** GetCustomDataIdentifier+    getCustomDataIdentifier_id,+    getCustomDataIdentifierResponse_arn,+    getCustomDataIdentifierResponse_createdAt,+    getCustomDataIdentifierResponse_deleted,+    getCustomDataIdentifierResponse_description,+    getCustomDataIdentifierResponse_id,+    getCustomDataIdentifierResponse_ignoreWords,+    getCustomDataIdentifierResponse_keywords,+    getCustomDataIdentifierResponse_maximumMatchDistance,+    getCustomDataIdentifierResponse_name,+    getCustomDataIdentifierResponse_regex,+    getCustomDataIdentifierResponse_severityLevels,+    getCustomDataIdentifierResponse_tags,+    getCustomDataIdentifierResponse_httpStatus,++    -- ** GetFindingStatistics+    getFindingStatistics_findingCriteria,+    getFindingStatistics_size,+    getFindingStatistics_sortCriteria,+    getFindingStatistics_groupBy,+    getFindingStatisticsResponse_countsByGroup,+    getFindingStatisticsResponse_httpStatus,++    -- ** GetFindings+    getFindings_sortCriteria,+    getFindings_findingIds,+    getFindingsResponse_findings,+    getFindingsResponse_httpStatus,++    -- ** GetFindingsFilter+    getFindingsFilter_id,+    getFindingsFilterResponse_action,+    getFindingsFilterResponse_arn,+    getFindingsFilterResponse_description,+    getFindingsFilterResponse_findingCriteria,+    getFindingsFilterResponse_id,+    getFindingsFilterResponse_name,+    getFindingsFilterResponse_position,+    getFindingsFilterResponse_tags,+    getFindingsFilterResponse_httpStatus,++    -- ** GetFindingsPublicationConfiguration+    getFindingsPublicationConfigurationResponse_securityHubConfiguration,+    getFindingsPublicationConfigurationResponse_httpStatus,++    -- ** GetInvitationsCount+    getInvitationsCountResponse_invitationsCount,+    getInvitationsCountResponse_httpStatus,++    -- ** GetMacieSession+    getMacieSessionResponse_createdAt,+    getMacieSessionResponse_findingPublishingFrequency,+    getMacieSessionResponse_serviceRole,+    getMacieSessionResponse_status,+    getMacieSessionResponse_updatedAt,+    getMacieSessionResponse_httpStatus,++    -- ** GetMasterAccount+    getMasterAccountResponse_master,+    getMasterAccountResponse_httpStatus,++    -- ** GetMember+    getMember_id,+    getMemberResponse_accountId,+    getMemberResponse_administratorAccountId,+    getMemberResponse_arn,+    getMemberResponse_email,+    getMemberResponse_invitedAt,+    getMemberResponse_masterAccountId,+    getMemberResponse_relationshipStatus,+    getMemberResponse_tags,+    getMemberResponse_updatedAt,+    getMemberResponse_httpStatus,++    -- ** GetResourceProfile+    getResourceProfile_resourceArn,+    getResourceProfileResponse_profileUpdatedAt,+    getResourceProfileResponse_sensitivityScore,+    getResourceProfileResponse_sensitivityScoreOverridden,+    getResourceProfileResponse_statistics,+    getResourceProfileResponse_httpStatus,++    -- ** GetRevealConfiguration+    getRevealConfigurationResponse_configuration,+    getRevealConfigurationResponse_httpStatus,++    -- ** GetSensitiveDataOccurrences+    getSensitiveDataOccurrences_findingId,+    getSensitiveDataOccurrencesResponse_error,+    getSensitiveDataOccurrencesResponse_sensitiveDataOccurrences,+    getSensitiveDataOccurrencesResponse_status,+    getSensitiveDataOccurrencesResponse_httpStatus,++    -- ** GetSensitiveDataOccurrencesAvailability+    getSensitiveDataOccurrencesAvailability_findingId,+    getSensitiveDataOccurrencesAvailabilityResponse_code,+    getSensitiveDataOccurrencesAvailabilityResponse_reasons,+    getSensitiveDataOccurrencesAvailabilityResponse_httpStatus,++    -- ** GetSensitivityInspectionTemplate+    getSensitivityInspectionTemplate_id,+    getSensitivityInspectionTemplateResponse_description,+    getSensitivityInspectionTemplateResponse_excludes,+    getSensitivityInspectionTemplateResponse_includes,+    getSensitivityInspectionTemplateResponse_name,+    getSensitivityInspectionTemplateResponse_sensitivityInspectionTemplateId,+    getSensitivityInspectionTemplateResponse_httpStatus,++    -- ** GetUsageStatistics+    getUsageStatistics_filterBy,+    getUsageStatistics_maxResults,+    getUsageStatistics_nextToken,+    getUsageStatistics_sortBy,+    getUsageStatistics_timeRange,+    getUsageStatisticsResponse_nextToken,+    getUsageStatisticsResponse_records,+    getUsageStatisticsResponse_timeRange,+    getUsageStatisticsResponse_httpStatus,++    -- ** GetUsageTotals+    getUsageTotals_timeRange,+    getUsageTotalsResponse_timeRange,+    getUsageTotalsResponse_usageTotals,+    getUsageTotalsResponse_httpStatus,++    -- ** ListAllowLists+    listAllowLists_maxResults,+    listAllowLists_nextToken,+    listAllowListsResponse_allowLists,+    listAllowListsResponse_nextToken,+    listAllowListsResponse_httpStatus,++    -- ** ListClassificationJobs+    listClassificationJobs_filterCriteria,+    listClassificationJobs_maxResults,+    listClassificationJobs_nextToken,+    listClassificationJobs_sortCriteria,+    listClassificationJobsResponse_items,+    listClassificationJobsResponse_nextToken,+    listClassificationJobsResponse_httpStatus,++    -- ** ListClassificationScopes+    listClassificationScopes_name,+    listClassificationScopes_nextToken,+    listClassificationScopesResponse_classificationScopes,+    listClassificationScopesResponse_nextToken,+    listClassificationScopesResponse_httpStatus,++    -- ** ListCustomDataIdentifiers+    listCustomDataIdentifiers_maxResults,+    listCustomDataIdentifiers_nextToken,+    listCustomDataIdentifiersResponse_items,+    listCustomDataIdentifiersResponse_nextToken,+    listCustomDataIdentifiersResponse_httpStatus,++    -- ** ListFindings+    listFindings_findingCriteria,+    listFindings_maxResults,+    listFindings_nextToken,+    listFindings_sortCriteria,+    listFindingsResponse_findingIds,+    listFindingsResponse_nextToken,+    listFindingsResponse_httpStatus,++    -- ** ListFindingsFilters+    listFindingsFilters_maxResults,+    listFindingsFilters_nextToken,+    listFindingsFiltersResponse_findingsFilterListItems,+    listFindingsFiltersResponse_nextToken,+    listFindingsFiltersResponse_httpStatus,++    -- ** ListInvitations+    listInvitations_maxResults,+    listInvitations_nextToken,+    listInvitationsResponse_invitations,+    listInvitationsResponse_nextToken,+    listInvitationsResponse_httpStatus,++    -- ** ListManagedDataIdentifiers+    listManagedDataIdentifiers_nextToken,+    listManagedDataIdentifiersResponse_items,+    listManagedDataIdentifiersResponse_nextToken,+    listManagedDataIdentifiersResponse_httpStatus,++    -- ** ListMembers+    listMembers_maxResults,+    listMembers_nextToken,+    listMembers_onlyAssociated,+    listMembersResponse_members,+    listMembersResponse_nextToken,+    listMembersResponse_httpStatus,++    -- ** ListOrganizationAdminAccounts+    listOrganizationAdminAccounts_maxResults,+    listOrganizationAdminAccounts_nextToken,+    listOrganizationAdminAccountsResponse_adminAccounts,+    listOrganizationAdminAccountsResponse_nextToken,+    listOrganizationAdminAccountsResponse_httpStatus,++    -- ** ListResourceProfileArtifacts+    listResourceProfileArtifacts_nextToken,+    listResourceProfileArtifacts_resourceArn,+    listResourceProfileArtifactsResponse_artifacts,+    listResourceProfileArtifactsResponse_nextToken,+    listResourceProfileArtifactsResponse_httpStatus,++    -- ** ListResourceProfileDetections+    listResourceProfileDetections_maxResults,+    listResourceProfileDetections_nextToken,+    listResourceProfileDetections_resourceArn,+    listResourceProfileDetectionsResponse_detections,+    listResourceProfileDetectionsResponse_nextToken,+    listResourceProfileDetectionsResponse_httpStatus,++    -- ** ListSensitivityInspectionTemplates+    listSensitivityInspectionTemplates_maxResults,+    listSensitivityInspectionTemplates_nextToken,+    listSensitivityInspectionTemplatesResponse_nextToken,+    listSensitivityInspectionTemplatesResponse_sensitivityInspectionTemplates,+    listSensitivityInspectionTemplatesResponse_httpStatus,++    -- ** ListTagsForResource+    listTagsForResource_resourceArn,+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,++    -- ** PutClassificationExportConfiguration+    putClassificationExportConfiguration_configuration,+    putClassificationExportConfigurationResponse_configuration,+    putClassificationExportConfigurationResponse_httpStatus,++    -- ** PutFindingsPublicationConfiguration+    putFindingsPublicationConfiguration_clientToken,+    putFindingsPublicationConfiguration_securityHubConfiguration,+    putFindingsPublicationConfigurationResponse_httpStatus,++    -- ** SearchResources+    searchResources_bucketCriteria,+    searchResources_maxResults,+    searchResources_nextToken,+    searchResources_sortCriteria,+    searchResourcesResponse_matchingResources,+    searchResourcesResponse_nextToken,+    searchResourcesResponse_httpStatus,++    -- ** TagResource+    tagResource_resourceArn,+    tagResource_tags,+    tagResourceResponse_httpStatus,++    -- ** TestCustomDataIdentifier+    testCustomDataIdentifier_ignoreWords,+    testCustomDataIdentifier_keywords,+    testCustomDataIdentifier_maximumMatchDistance,+    testCustomDataIdentifier_regex,+    testCustomDataIdentifier_sampleText,+    testCustomDataIdentifierResponse_matchCount,+    testCustomDataIdentifierResponse_httpStatus,++    -- ** UntagResource+    untagResource_tagKeys,+    untagResource_resourceArn,+    untagResourceResponse_httpStatus,++    -- ** UpdateAllowList+    updateAllowList_description,+    updateAllowList_id,+    updateAllowList_criteria,+    updateAllowList_name,+    updateAllowListResponse_arn,+    updateAllowListResponse_id,+    updateAllowListResponse_httpStatus,++    -- ** UpdateAutomatedDiscoveryConfiguration+    updateAutomatedDiscoveryConfiguration_status,+    updateAutomatedDiscoveryConfigurationResponse_httpStatus,++    -- ** UpdateClassificationJob+    updateClassificationJob_jobId,+    updateClassificationJob_jobStatus,+    updateClassificationJobResponse_httpStatus,++    -- ** UpdateClassificationScope+    updateClassificationScope_s3,+    updateClassificationScope_id,+    updateClassificationScopeResponse_httpStatus,++    -- ** UpdateFindingsFilter+    updateFindingsFilter_action,+    updateFindingsFilter_clientToken,+    updateFindingsFilter_description,+    updateFindingsFilter_findingCriteria,+    updateFindingsFilter_name,+    updateFindingsFilter_position,+    updateFindingsFilter_id,+    updateFindingsFilterResponse_arn,+    updateFindingsFilterResponse_id,+    updateFindingsFilterResponse_httpStatus,++    -- ** UpdateMacieSession+    updateMacieSession_findingPublishingFrequency,+    updateMacieSession_status,+    updateMacieSessionResponse_httpStatus,++    -- ** UpdateMemberSession+    updateMemberSession_id,+    updateMemberSession_status,+    updateMemberSessionResponse_httpStatus,++    -- ** UpdateOrganizationConfiguration+    updateOrganizationConfiguration_autoEnable,+    updateOrganizationConfigurationResponse_httpStatus,++    -- ** UpdateResourceProfile+    updateResourceProfile_sensitivityScoreOverride,+    updateResourceProfile_resourceArn,+    updateResourceProfileResponse_httpStatus,++    -- ** UpdateResourceProfileDetections+    updateResourceProfileDetections_suppressDataIdentifiers,+    updateResourceProfileDetections_resourceArn,+    updateResourceProfileDetectionsResponse_httpStatus,++    -- ** UpdateRevealConfiguration+    updateRevealConfiguration_configuration,+    updateRevealConfigurationResponse_configuration,+    updateRevealConfigurationResponse_httpStatus,++    -- ** UpdateSensitivityInspectionTemplate+    updateSensitivityInspectionTemplate_description,+    updateSensitivityInspectionTemplate_excludes,+    updateSensitivityInspectionTemplate_includes,+    updateSensitivityInspectionTemplate_id,+    updateSensitivityInspectionTemplateResponse_httpStatus,++    -- * Types++    -- ** AccessControlList+    accessControlList_allowsPublicReadAccess,+    accessControlList_allowsPublicWriteAccess,++    -- ** AccountDetail+    accountDetail_email,+    accountDetail_accountId,++    -- ** AccountLevelPermissions+    accountLevelPermissions_blockPublicAccess,++    -- ** AdminAccount+    adminAccount_accountId,+    adminAccount_status,++    -- ** AllowListCriteria+    allowListCriteria_regex,+    allowListCriteria_s3WordsList,++    -- ** AllowListStatus+    allowListStatus_description,+    allowListStatus_code,++    -- ** AllowListSummary+    allowListSummary_arn,+    allowListSummary_createdAt,+    allowListSummary_description,+    allowListSummary_id,+    allowListSummary_name,+    allowListSummary_updatedAt,++    -- ** ApiCallDetails+    apiCallDetails_api,+    apiCallDetails_apiServiceName,+    apiCallDetails_firstSeen,+    apiCallDetails_lastSeen,++    -- ** AssumedRole+    assumedRole_accessKeyId,+    assumedRole_accountId,+    assumedRole_arn,+    assumedRole_principalId,+    assumedRole_sessionContext,++    -- ** AwsAccount+    awsAccount_accountId,+    awsAccount_principalId,++    -- ** AwsService+    awsService_invokedBy,++    -- ** BatchGetCustomDataIdentifierSummary+    batchGetCustomDataIdentifierSummary_arn,+    batchGetCustomDataIdentifierSummary_createdAt,+    batchGetCustomDataIdentifierSummary_deleted,+    batchGetCustomDataIdentifierSummary_description,+    batchGetCustomDataIdentifierSummary_id,+    batchGetCustomDataIdentifierSummary_name,++    -- ** BlockPublicAccess+    blockPublicAccess_blockPublicAcls,+    blockPublicAccess_blockPublicPolicy,+    blockPublicAccess_ignorePublicAcls,+    blockPublicAccess_restrictPublicBuckets,++    -- ** BucketCountByEffectivePermission+    bucketCountByEffectivePermission_publiclyAccessible,+    bucketCountByEffectivePermission_publiclyReadable,+    bucketCountByEffectivePermission_publiclyWritable,+    bucketCountByEffectivePermission_unknown,++    -- ** BucketCountByEncryptionType+    bucketCountByEncryptionType_kmsManaged,+    bucketCountByEncryptionType_s3Managed,+    bucketCountByEncryptionType_unencrypted,+    bucketCountByEncryptionType_unknown,++    -- ** BucketCountBySharedAccessType+    bucketCountBySharedAccessType_external,+    bucketCountBySharedAccessType_internal,+    bucketCountBySharedAccessType_notShared,+    bucketCountBySharedAccessType_unknown,++    -- ** BucketCountPolicyAllowsUnencryptedObjectUploads+    bucketCountPolicyAllowsUnencryptedObjectUploads_allowsUnencryptedObjectUploads,+    bucketCountPolicyAllowsUnencryptedObjectUploads_deniesUnencryptedObjectUploads,+    bucketCountPolicyAllowsUnencryptedObjectUploads_unknown,++    -- ** BucketCriteriaAdditionalProperties+    bucketCriteriaAdditionalProperties_eq,+    bucketCriteriaAdditionalProperties_gt,+    bucketCriteriaAdditionalProperties_gte,+    bucketCriteriaAdditionalProperties_lt,+    bucketCriteriaAdditionalProperties_lte,+    bucketCriteriaAdditionalProperties_neq,+    bucketCriteriaAdditionalProperties_prefix,++    -- ** BucketLevelPermissions+    bucketLevelPermissions_accessControlList,+    bucketLevelPermissions_blockPublicAccess,+    bucketLevelPermissions_bucketPolicy,++    -- ** BucketMetadata+    bucketMetadata_accountId,+    bucketMetadata_allowsUnencryptedObjectUploads,+    bucketMetadata_bucketArn,+    bucketMetadata_bucketCreatedAt,+    bucketMetadata_bucketName,+    bucketMetadata_classifiableObjectCount,+    bucketMetadata_classifiableSizeInBytes,+    bucketMetadata_errorCode,+    bucketMetadata_errorMessage,+    bucketMetadata_jobDetails,+    bucketMetadata_lastAutomatedDiscoveryTime,+    bucketMetadata_lastUpdated,+    bucketMetadata_objectCount,+    bucketMetadata_objectCountByEncryptionType,+    bucketMetadata_publicAccess,+    bucketMetadata_region,+    bucketMetadata_replicationDetails,+    bucketMetadata_sensitivityScore,+    bucketMetadata_serverSideEncryption,+    bucketMetadata_sharedAccess,+    bucketMetadata_sizeInBytes,+    bucketMetadata_sizeInBytesCompressed,+    bucketMetadata_tags,+    bucketMetadata_unclassifiableObjectCount,+    bucketMetadata_unclassifiableObjectSizeInBytes,+    bucketMetadata_versioning,++    -- ** BucketPermissionConfiguration+    bucketPermissionConfiguration_accountLevelPermissions,+    bucketPermissionConfiguration_bucketLevelPermissions,++    -- ** BucketPolicy+    bucketPolicy_allowsPublicReadAccess,+    bucketPolicy_allowsPublicWriteAccess,++    -- ** BucketPublicAccess+    bucketPublicAccess_effectivePermission,+    bucketPublicAccess_permissionConfiguration,++    -- ** BucketServerSideEncryption+    bucketServerSideEncryption_kmsMasterKeyId,+    bucketServerSideEncryption_type,++    -- ** BucketSortCriteria+    bucketSortCriteria_attributeName,+    bucketSortCriteria_orderBy,++    -- ** BucketStatisticsBySensitivity+    bucketStatisticsBySensitivity_classificationError,+    bucketStatisticsBySensitivity_notClassified,+    bucketStatisticsBySensitivity_notSensitive,+    bucketStatisticsBySensitivity_sensitive,++    -- ** Cell+    cell_cellReference,+    cell_column,+    cell_columnName,+    cell_row,++    -- ** ClassificationDetails+    classificationDetails_detailedResultsLocation,+    classificationDetails_jobArn,+    classificationDetails_jobId,+    classificationDetails_originType,+    classificationDetails_result,++    -- ** ClassificationExportConfiguration+    classificationExportConfiguration_s3Destination,++    -- ** ClassificationResult+    classificationResult_additionalOccurrences,+    classificationResult_customDataIdentifiers,+    classificationResult_mimeType,+    classificationResult_sensitiveData,+    classificationResult_sizeClassified,+    classificationResult_status,++    -- ** ClassificationResultStatus+    classificationResultStatus_code,+    classificationResultStatus_reason,++    -- ** ClassificationScopeSummary+    classificationScopeSummary_id,+    classificationScopeSummary_name,++    -- ** CriteriaBlockForJob+    criteriaBlockForJob_and,++    -- ** CriteriaForJob+    criteriaForJob_simpleCriterion,+    criteriaForJob_tagCriterion,++    -- ** CriterionAdditionalProperties+    criterionAdditionalProperties_eq,+    criterionAdditionalProperties_eqExactMatch,+    criterionAdditionalProperties_gt,+    criterionAdditionalProperties_gte,+    criterionAdditionalProperties_lt,+    criterionAdditionalProperties_lte,+    criterionAdditionalProperties_neq,++    -- ** CustomDataIdentifierSummary+    customDataIdentifierSummary_arn,+    customDataIdentifierSummary_createdAt,+    customDataIdentifierSummary_description,+    customDataIdentifierSummary_id,+    customDataIdentifierSummary_name,++    -- ** CustomDataIdentifiers+    customDataIdentifiers_detections,+    customDataIdentifiers_totalCount,++    -- ** CustomDetection+    customDetection_arn,+    customDetection_count,+    customDetection_name,+    customDetection_occurrences,++    -- ** DailySchedule++    -- ** DefaultDetection+    defaultDetection_count,+    defaultDetection_occurrences,+    defaultDetection_type,++    -- ** DetectedDataDetails+    detectedDataDetails_value,++    -- ** Detection+    detection_arn,+    detection_count,+    detection_id,+    detection_name,+    detection_suppressed,+    detection_type,++    -- ** DomainDetails+    domainDetails_domainName,++    -- ** FederatedUser+    federatedUser_accessKeyId,+    federatedUser_accountId,+    federatedUser_arn,+    federatedUser_principalId,+    federatedUser_sessionContext,++    -- ** Finding+    finding_accountId,+    finding_archived,+    finding_category,+    finding_classificationDetails,+    finding_count,+    finding_createdAt,+    finding_description,+    finding_id,+    finding_partition,+    finding_policyDetails,+    finding_region,+    finding_resourcesAffected,+    finding_sample,+    finding_schemaVersion,+    finding_severity,+    finding_title,+    finding_type,+    finding_updatedAt,++    -- ** FindingAction+    findingAction_actionType,+    findingAction_apiCallDetails,++    -- ** FindingActor+    findingActor_domainDetails,+    findingActor_ipAddressDetails,+    findingActor_userIdentity,++    -- ** FindingCriteria+    findingCriteria_criterion,++    -- ** FindingStatisticsSortCriteria+    findingStatisticsSortCriteria_attributeName,+    findingStatisticsSortCriteria_orderBy,++    -- ** FindingsFilterListItem+    findingsFilterListItem_action,+    findingsFilterListItem_arn,+    findingsFilterListItem_id,+    findingsFilterListItem_name,+    findingsFilterListItem_tags,++    -- ** GroupCount+    groupCount_count,+    groupCount_groupKey,++    -- ** IamUser+    iamUser_accountId,+    iamUser_arn,+    iamUser_principalId,+    iamUser_userName,++    -- ** Invitation+    invitation_accountId,+    invitation_invitationId,+    invitation_invitedAt,+    invitation_relationshipStatus,++    -- ** IpAddressDetails+    ipAddressDetails_ipAddressV4,+    ipAddressDetails_ipCity,+    ipAddressDetails_ipCountry,+    ipAddressDetails_ipGeoLocation,+    ipAddressDetails_ipOwner,++    -- ** IpCity+    ipCity_name,++    -- ** IpCountry+    ipCountry_code,+    ipCountry_name,++    -- ** IpGeoLocation+    ipGeoLocation_lat,+    ipGeoLocation_lon,++    -- ** IpOwner+    ipOwner_asn,+    ipOwner_asnOrg,+    ipOwner_isp,+    ipOwner_org,++    -- ** JobDetails+    jobDetails_isDefinedInJob,+    jobDetails_isMonitoredByJob,+    jobDetails_lastJobId,+    jobDetails_lastJobRunTime,++    -- ** JobScheduleFrequency+    jobScheduleFrequency_dailySchedule,+    jobScheduleFrequency_monthlySchedule,+    jobScheduleFrequency_weeklySchedule,++    -- ** JobScopeTerm+    jobScopeTerm_simpleScopeTerm,+    jobScopeTerm_tagScopeTerm,++    -- ** JobScopingBlock+    jobScopingBlock_and,++    -- ** JobSummary+    jobSummary_bucketCriteria,+    jobSummary_bucketDefinitions,+    jobSummary_createdAt,+    jobSummary_jobId,+    jobSummary_jobStatus,+    jobSummary_jobType,+    jobSummary_lastRunErrorStatus,+    jobSummary_name,+    jobSummary_userPausedDetails,++    -- ** KeyValuePair+    keyValuePair_key,+    keyValuePair_value,++    -- ** LastRunErrorStatus+    lastRunErrorStatus_code,++    -- ** ListJobsFilterCriteria+    listJobsFilterCriteria_excludes,+    listJobsFilterCriteria_includes,++    -- ** ListJobsFilterTerm+    listJobsFilterTerm_comparator,+    listJobsFilterTerm_key,+    listJobsFilterTerm_values,++    -- ** ListJobsSortCriteria+    listJobsSortCriteria_attributeName,+    listJobsSortCriteria_orderBy,++    -- ** ManagedDataIdentifierSummary+    managedDataIdentifierSummary_category,+    managedDataIdentifierSummary_id,++    -- ** MatchingBucket+    matchingBucket_accountId,+    matchingBucket_bucketName,+    matchingBucket_classifiableObjectCount,+    matchingBucket_classifiableSizeInBytes,+    matchingBucket_errorCode,+    matchingBucket_errorMessage,+    matchingBucket_jobDetails,+    matchingBucket_lastAutomatedDiscoveryTime,+    matchingBucket_objectCount,+    matchingBucket_objectCountByEncryptionType,+    matchingBucket_sensitivityScore,+    matchingBucket_sizeInBytes,+    matchingBucket_sizeInBytesCompressed,+    matchingBucket_unclassifiableObjectCount,+    matchingBucket_unclassifiableObjectSizeInBytes,++    -- ** MatchingResource+    matchingResource_matchingBucket,++    -- ** Member+    member_accountId,+    member_administratorAccountId,+    member_arn,+    member_email,+    member_invitedAt,+    member_masterAccountId,+    member_relationshipStatus,+    member_tags,+    member_updatedAt,++    -- ** MonthlySchedule+    monthlySchedule_dayOfMonth,++    -- ** ObjectCountByEncryptionType+    objectCountByEncryptionType_customerManaged,+    objectCountByEncryptionType_kmsManaged,+    objectCountByEncryptionType_s3Managed,+    objectCountByEncryptionType_unencrypted,+    objectCountByEncryptionType_unknown,++    -- ** ObjectLevelStatistics+    objectLevelStatistics_fileType,+    objectLevelStatistics_storageClass,+    objectLevelStatistics_total,++    -- ** Occurrences+    occurrences_cells,+    occurrences_lineRanges,+    occurrences_offsetRanges,+    occurrences_pages,+    occurrences_records,++    -- ** Page+    page_lineRange,+    page_offsetRange,+    page_pageNumber,++    -- ** PolicyDetails+    policyDetails_action,+    policyDetails_actor,++    -- ** Range+    range_end,+    range_start,+    range_startColumn,++    -- ** Record+    record_jsonPath,+    record_recordIndex,++    -- ** ReplicationDetails+    replicationDetails_replicated,+    replicationDetails_replicatedExternally,+    replicationDetails_replicationAccounts,++    -- ** ResourceProfileArtifact+    resourceProfileArtifact_sensitive,+    resourceProfileArtifact_classificationResultStatus,+    resourceProfileArtifact_arn,++    -- ** ResourceStatistics+    resourceStatistics_totalBytesClassified,+    resourceStatistics_totalDetections,+    resourceStatistics_totalDetectionsSuppressed,+    resourceStatistics_totalItemsClassified,+    resourceStatistics_totalItemsSensitive,+    resourceStatistics_totalItemsSkipped,+    resourceStatistics_totalItemsSkippedInvalidEncryption,+    resourceStatistics_totalItemsSkippedInvalidKms,+    resourceStatistics_totalItemsSkippedPermissionDenied,++    -- ** ResourcesAffected+    resourcesAffected_s3Bucket,+    resourcesAffected_s3Object,++    -- ** RevealConfiguration+    revealConfiguration_kmsKeyId,+    revealConfiguration_status,++    -- ** S3Bucket+    s3Bucket_allowsUnencryptedObjectUploads,+    s3Bucket_arn,+    s3Bucket_createdAt,+    s3Bucket_defaultServerSideEncryption,+    s3Bucket_name,+    s3Bucket_owner,+    s3Bucket_publicAccess,+    s3Bucket_tags,++    -- ** S3BucketCriteriaForJob+    s3BucketCriteriaForJob_excludes,+    s3BucketCriteriaForJob_includes,++    -- ** S3BucketDefinitionForJob+    s3BucketDefinitionForJob_accountId,+    s3BucketDefinitionForJob_buckets,++    -- ** S3BucketOwner+    s3BucketOwner_displayName,+    s3BucketOwner_id,++    -- ** S3ClassificationScope+    s3ClassificationScope_excludes,++    -- ** S3ClassificationScopeExclusion+    s3ClassificationScopeExclusion_bucketNames,++    -- ** S3ClassificationScopeExclusionUpdate+    s3ClassificationScopeExclusionUpdate_bucketNames,+    s3ClassificationScopeExclusionUpdate_operation,++    -- ** S3ClassificationScopeUpdate+    s3ClassificationScopeUpdate_excludes,++    -- ** S3Destination+    s3Destination_keyPrefix,+    s3Destination_bucketName,+    s3Destination_kmsKeyArn,++    -- ** S3JobDefinition+    s3JobDefinition_bucketCriteria,+    s3JobDefinition_bucketDefinitions,+    s3JobDefinition_scoping,++    -- ** S3Object+    s3Object_bucketArn,+    s3Object_eTag,+    s3Object_extension,+    s3Object_key,+    s3Object_lastModified,+    s3Object_path,+    s3Object_publicAccess,+    s3Object_serverSideEncryption,+    s3Object_size,+    s3Object_storageClass,+    s3Object_tags,+    s3Object_versionId,++    -- ** S3WordsList+    s3WordsList_bucketName,+    s3WordsList_objectKey,++    -- ** Scoping+    scoping_excludes,+    scoping_includes,++    -- ** SearchResourcesBucketCriteria+    searchResourcesBucketCriteria_excludes,+    searchResourcesBucketCriteria_includes,++    -- ** SearchResourcesCriteria+    searchResourcesCriteria_simpleCriterion,+    searchResourcesCriteria_tagCriterion,++    -- ** SearchResourcesCriteriaBlock+    searchResourcesCriteriaBlock_and,++    -- ** SearchResourcesSimpleCriterion+    searchResourcesSimpleCriterion_comparator,+    searchResourcesSimpleCriterion_key,+    searchResourcesSimpleCriterion_values,++    -- ** SearchResourcesSortCriteria+    searchResourcesSortCriteria_attributeName,+    searchResourcesSortCriteria_orderBy,++    -- ** SearchResourcesTagCriterion+    searchResourcesTagCriterion_comparator,+    searchResourcesTagCriterion_tagValues,++    -- ** SearchResourcesTagCriterionPair+    searchResourcesTagCriterionPair_key,+    searchResourcesTagCriterionPair_value,++    -- ** SecurityHubConfiguration+    securityHubConfiguration_publishPolicyFindings,+    securityHubConfiguration_publishClassificationFindings,++    -- ** SensitiveDataItem+    sensitiveDataItem_category,+    sensitiveDataItem_detections,+    sensitiveDataItem_totalCount,++    -- ** SensitivityAggregations+    sensitivityAggregations_classifiableSizeInBytes,+    sensitivityAggregations_publiclyAccessibleCount,+    sensitivityAggregations_totalCount,+    sensitivityAggregations_totalSizeInBytes,++    -- ** SensitivityInspectionTemplateExcludes+    sensitivityInspectionTemplateExcludes_managedDataIdentifierIds,++    -- ** SensitivityInspectionTemplateIncludes+    sensitivityInspectionTemplateIncludes_allowListIds,+    sensitivityInspectionTemplateIncludes_customDataIdentifierIds,+    sensitivityInspectionTemplateIncludes_managedDataIdentifierIds,++    -- ** SensitivityInspectionTemplatesEntry+    sensitivityInspectionTemplatesEntry_id,+    sensitivityInspectionTemplatesEntry_name,++    -- ** ServerSideEncryption+    serverSideEncryption_encryptionType,+    serverSideEncryption_kmsMasterKeyId,++    -- ** ServiceLimit+    serviceLimit_isServiceLimited,+    serviceLimit_unit,+    serviceLimit_value,++    -- ** SessionContext+    sessionContext_attributes,+    sessionContext_sessionIssuer,++    -- ** SessionContextAttributes+    sessionContextAttributes_creationDate,+    sessionContextAttributes_mfaAuthenticated,++    -- ** SessionIssuer+    sessionIssuer_accountId,+    sessionIssuer_arn,+    sessionIssuer_principalId,+    sessionIssuer_type,+    sessionIssuer_userName,++    -- ** Severity+    severity_description,+    severity_score,++    -- ** SeverityLevel+    severityLevel_occurrencesThreshold,+    severityLevel_severity,++    -- ** SimpleCriterionForJob+    simpleCriterionForJob_comparator,+    simpleCriterionForJob_key,+    simpleCriterionForJob_values,++    -- ** SimpleScopeTerm+    simpleScopeTerm_comparator,+    simpleScopeTerm_key,+    simpleScopeTerm_values,++    -- ** SortCriteria+    sortCriteria_attributeName,+    sortCriteria_orderBy,++    -- ** Statistics+    statistics_approximateNumberOfObjectsToProcess,+    statistics_numberOfRuns,++    -- ** SuppressDataIdentifier+    suppressDataIdentifier_id,+    suppressDataIdentifier_type,++    -- ** TagCriterionForJob+    tagCriterionForJob_comparator,+    tagCriterionForJob_tagValues,++    -- ** TagCriterionPairForJob+    tagCriterionPairForJob_key,+    tagCriterionPairForJob_value,++    -- ** TagScopeTerm+    tagScopeTerm_comparator,+    tagScopeTerm_key,+    tagScopeTerm_tagValues,+    tagScopeTerm_target,++    -- ** TagValuePair+    tagValuePair_key,+    tagValuePair_value,++    -- ** UnprocessedAccount+    unprocessedAccount_accountId,+    unprocessedAccount_errorCode,+    unprocessedAccount_errorMessage,++    -- ** UsageByAccount+    usageByAccount_currency,+    usageByAccount_estimatedCost,+    usageByAccount_serviceLimit,+    usageByAccount_type,++    -- ** UsageRecord+    usageRecord_accountId,+    usageRecord_automatedDiscoveryFreeTrialStartDate,+    usageRecord_freeTrialStartDate,+    usageRecord_usage,++    -- ** UsageStatisticsFilter+    usageStatisticsFilter_comparator,+    usageStatisticsFilter_key,+    usageStatisticsFilter_values,++    -- ** UsageStatisticsSortBy+    usageStatisticsSortBy_key,+    usageStatisticsSortBy_orderBy,++    -- ** UsageTotal+    usageTotal_currency,+    usageTotal_estimatedCost,+    usageTotal_type,++    -- ** UserIdentity+    userIdentity_assumedRole,+    userIdentity_awsAccount,+    userIdentity_awsService,+    userIdentity_federatedUser,+    userIdentity_iamUser,+    userIdentity_root,+    userIdentity_type,++    -- ** UserIdentityRoot+    userIdentityRoot_accountId,+    userIdentityRoot_arn,+    userIdentityRoot_principalId,++    -- ** UserPausedDetails+    userPausedDetails_jobExpiresAt,+    userPausedDetails_jobImminentExpirationHealthEventArn,+    userPausedDetails_jobPausedAt,++    -- ** WeeklySchedule+    weeklySchedule_dayOfWeek,+  )+where++import Amazonka.MacieV2.AcceptInvitation+import Amazonka.MacieV2.BatchGetCustomDataIdentifiers+import Amazonka.MacieV2.CreateAllowList+import Amazonka.MacieV2.CreateClassificationJob+import Amazonka.MacieV2.CreateCustomDataIdentifier+import Amazonka.MacieV2.CreateFindingsFilter+import Amazonka.MacieV2.CreateInvitations+import Amazonka.MacieV2.CreateMember+import Amazonka.MacieV2.CreateSampleFindings+import Amazonka.MacieV2.DeclineInvitations+import Amazonka.MacieV2.DeleteAllowList+import Amazonka.MacieV2.DeleteCustomDataIdentifier+import Amazonka.MacieV2.DeleteFindingsFilter+import Amazonka.MacieV2.DeleteInvitations+import Amazonka.MacieV2.DeleteMember+import Amazonka.MacieV2.DescribeBuckets+import Amazonka.MacieV2.DescribeClassificationJob+import Amazonka.MacieV2.DescribeOrganizationConfiguration+import Amazonka.MacieV2.DisableMacie+import Amazonka.MacieV2.DisableOrganizationAdminAccount+import Amazonka.MacieV2.DisassociateFromAdministratorAccount+import Amazonka.MacieV2.DisassociateFromMasterAccount+import Amazonka.MacieV2.DisassociateMember+import Amazonka.MacieV2.EnableMacie+import Amazonka.MacieV2.EnableOrganizationAdminAccount+import Amazonka.MacieV2.GetAdministratorAccount+import Amazonka.MacieV2.GetAllowList+import Amazonka.MacieV2.GetAutomatedDiscoveryConfiguration+import Amazonka.MacieV2.GetBucketStatistics+import Amazonka.MacieV2.GetClassificationExportConfiguration+import Amazonka.MacieV2.GetClassificationScope+import Amazonka.MacieV2.GetCustomDataIdentifier+import Amazonka.MacieV2.GetFindingStatistics+import Amazonka.MacieV2.GetFindings+import Amazonka.MacieV2.GetFindingsFilter+import Amazonka.MacieV2.GetFindingsPublicationConfiguration+import Amazonka.MacieV2.GetInvitationsCount+import Amazonka.MacieV2.GetMacieSession+import Amazonka.MacieV2.GetMasterAccount+import Amazonka.MacieV2.GetMember+import Amazonka.MacieV2.GetResourceProfile+import Amazonka.MacieV2.GetRevealConfiguration+import Amazonka.MacieV2.GetSensitiveDataOccurrences+import Amazonka.MacieV2.GetSensitiveDataOccurrencesAvailability+import Amazonka.MacieV2.GetSensitivityInspectionTemplate+import Amazonka.MacieV2.GetUsageStatistics+import Amazonka.MacieV2.GetUsageTotals+import Amazonka.MacieV2.ListAllowLists+import Amazonka.MacieV2.ListClassificationJobs+import Amazonka.MacieV2.ListClassificationScopes+import Amazonka.MacieV2.ListCustomDataIdentifiers+import Amazonka.MacieV2.ListFindings+import Amazonka.MacieV2.ListFindingsFilters+import Amazonka.MacieV2.ListInvitations+import Amazonka.MacieV2.ListManagedDataIdentifiers+import Amazonka.MacieV2.ListMembers+import Amazonka.MacieV2.ListOrganizationAdminAccounts+import Amazonka.MacieV2.ListResourceProfileArtifacts+import Amazonka.MacieV2.ListResourceProfileDetections+import Amazonka.MacieV2.ListSensitivityInspectionTemplates+import Amazonka.MacieV2.ListTagsForResource+import Amazonka.MacieV2.PutClassificationExportConfiguration+import Amazonka.MacieV2.PutFindingsPublicationConfiguration+import Amazonka.MacieV2.SearchResources+import Amazonka.MacieV2.TagResource+import Amazonka.MacieV2.TestCustomDataIdentifier+import Amazonka.MacieV2.Types.AccessControlList+import Amazonka.MacieV2.Types.AccountDetail+import Amazonka.MacieV2.Types.AccountLevelPermissions+import Amazonka.MacieV2.Types.AdminAccount+import Amazonka.MacieV2.Types.AllowListCriteria+import Amazonka.MacieV2.Types.AllowListStatus+import Amazonka.MacieV2.Types.AllowListSummary+import Amazonka.MacieV2.Types.ApiCallDetails+import Amazonka.MacieV2.Types.AssumedRole+import Amazonka.MacieV2.Types.AwsAccount+import Amazonka.MacieV2.Types.AwsService+import Amazonka.MacieV2.Types.BatchGetCustomDataIdentifierSummary+import Amazonka.MacieV2.Types.BlockPublicAccess+import Amazonka.MacieV2.Types.BucketCountByEffectivePermission+import Amazonka.MacieV2.Types.BucketCountByEncryptionType+import Amazonka.MacieV2.Types.BucketCountBySharedAccessType+import Amazonka.MacieV2.Types.BucketCountPolicyAllowsUnencryptedObjectUploads+import Amazonka.MacieV2.Types.BucketCriteriaAdditionalProperties+import Amazonka.MacieV2.Types.BucketLevelPermissions+import Amazonka.MacieV2.Types.BucketMetadata+import Amazonka.MacieV2.Types.BucketPermissionConfiguration+import Amazonka.MacieV2.Types.BucketPolicy+import Amazonka.MacieV2.Types.BucketPublicAccess+import Amazonka.MacieV2.Types.BucketServerSideEncryption+import Amazonka.MacieV2.Types.BucketSortCriteria+import Amazonka.MacieV2.Types.BucketStatisticsBySensitivity+import Amazonka.MacieV2.Types.Cell+import Amazonka.MacieV2.Types.ClassificationDetails+import Amazonka.MacieV2.Types.ClassificationExportConfiguration+import Amazonka.MacieV2.Types.ClassificationResult+import Amazonka.MacieV2.Types.ClassificationResultStatus+import Amazonka.MacieV2.Types.ClassificationScopeSummary+import Amazonka.MacieV2.Types.CriteriaBlockForJob+import Amazonka.MacieV2.Types.CriteriaForJob+import Amazonka.MacieV2.Types.CriterionAdditionalProperties+import Amazonka.MacieV2.Types.CustomDataIdentifierSummary+import Amazonka.MacieV2.Types.CustomDataIdentifiers+import Amazonka.MacieV2.Types.CustomDetection+import Amazonka.MacieV2.Types.DailySchedule+import Amazonka.MacieV2.Types.DefaultDetection+import Amazonka.MacieV2.Types.DetectedDataDetails+import Amazonka.MacieV2.Types.Detection+import Amazonka.MacieV2.Types.DomainDetails+import Amazonka.MacieV2.Types.FederatedUser+import Amazonka.MacieV2.Types.Finding+import Amazonka.MacieV2.Types.FindingAction+import Amazonka.MacieV2.Types.FindingActor+import Amazonka.MacieV2.Types.FindingCriteria+import Amazonka.MacieV2.Types.FindingStatisticsSortCriteria+import Amazonka.MacieV2.Types.FindingsFilterListItem+import Amazonka.MacieV2.Types.GroupCount+import Amazonka.MacieV2.Types.IamUser+import Amazonka.MacieV2.Types.Invitation+import Amazonka.MacieV2.Types.IpAddressDetails+import Amazonka.MacieV2.Types.IpCity+import Amazonka.MacieV2.Types.IpCountry+import Amazonka.MacieV2.Types.IpGeoLocation+import Amazonka.MacieV2.Types.IpOwner+import Amazonka.MacieV2.Types.JobDetails+import Amazonka.MacieV2.Types.JobScheduleFrequency+import Amazonka.MacieV2.Types.JobScopeTerm+import Amazonka.MacieV2.Types.JobScopingBlock+import Amazonka.MacieV2.Types.JobSummary+import Amazonka.MacieV2.Types.KeyValuePair+import Amazonka.MacieV2.Types.LastRunErrorStatus+import Amazonka.MacieV2.Types.ListJobsFilterCriteria+import Amazonka.MacieV2.Types.ListJobsFilterTerm+import Amazonka.MacieV2.Types.ListJobsSortCriteria+import Amazonka.MacieV2.Types.ManagedDataIdentifierSummary+import Amazonka.MacieV2.Types.MatchingBucket+import Amazonka.MacieV2.Types.MatchingResource+import Amazonka.MacieV2.Types.Member+import Amazonka.MacieV2.Types.MonthlySchedule+import Amazonka.MacieV2.Types.ObjectCountByEncryptionType+import Amazonka.MacieV2.Types.ObjectLevelStatistics+import Amazonka.MacieV2.Types.Occurrences+import Amazonka.MacieV2.Types.Page+import Amazonka.MacieV2.Types.PolicyDetails+import Amazonka.MacieV2.Types.Range+import Amazonka.MacieV2.Types.Record+import Amazonka.MacieV2.Types.ReplicationDetails+import Amazonka.MacieV2.Types.ResourceProfileArtifact+import Amazonka.MacieV2.Types.ResourceStatistics+import Amazonka.MacieV2.Types.ResourcesAffected+import Amazonka.MacieV2.Types.RevealConfiguration+import Amazonka.MacieV2.Types.S3Bucket+import Amazonka.MacieV2.Types.S3BucketCriteriaForJob+import Amazonka.MacieV2.Types.S3BucketDefinitionForJob+import Amazonka.MacieV2.Types.S3BucketOwner+import Amazonka.MacieV2.Types.S3ClassificationScope+import Amazonka.MacieV2.Types.S3ClassificationScopeExclusion+import Amazonka.MacieV2.Types.S3ClassificationScopeExclusionUpdate+import Amazonka.MacieV2.Types.S3ClassificationScopeUpdate+import Amazonka.MacieV2.Types.S3Destination+import Amazonka.MacieV2.Types.S3JobDefinition+import Amazonka.MacieV2.Types.S3Object+import Amazonka.MacieV2.Types.S3WordsList+import Amazonka.MacieV2.Types.Scoping+import Amazonka.MacieV2.Types.SearchResourcesBucketCriteria+import Amazonka.MacieV2.Types.SearchResourcesCriteria+import Amazonka.MacieV2.Types.SearchResourcesCriteriaBlock+import Amazonka.MacieV2.Types.SearchResourcesSimpleCriterion+import Amazonka.MacieV2.Types.SearchResourcesSortCriteria+import Amazonka.MacieV2.Types.SearchResourcesTagCriterion+import Amazonka.MacieV2.Types.SearchResourcesTagCriterionPair+import Amazonka.MacieV2.Types.SecurityHubConfiguration+import Amazonka.MacieV2.Types.SensitiveDataItem+import Amazonka.MacieV2.Types.SensitivityAggregations+import Amazonka.MacieV2.Types.SensitivityInspectionTemplateExcludes+import Amazonka.MacieV2.Types.SensitivityInspectionTemplateIncludes+import Amazonka.MacieV2.Types.SensitivityInspectionTemplatesEntry+import Amazonka.MacieV2.Types.ServerSideEncryption+import Amazonka.MacieV2.Types.ServiceLimit+import Amazonka.MacieV2.Types.SessionContext+import Amazonka.MacieV2.Types.SessionContextAttributes+import Amazonka.MacieV2.Types.SessionIssuer+import Amazonka.MacieV2.Types.Severity+import Amazonka.MacieV2.Types.SeverityLevel+import Amazonka.MacieV2.Types.SimpleCriterionForJob+import Amazonka.MacieV2.Types.SimpleScopeTerm+import Amazonka.MacieV2.Types.SortCriteria+import Amazonka.MacieV2.Types.Statistics+import Amazonka.MacieV2.Types.SuppressDataIdentifier+import Amazonka.MacieV2.Types.TagCriterionForJob+import Amazonka.MacieV2.Types.TagCriterionPairForJob+import Amazonka.MacieV2.Types.TagScopeTerm+import Amazonka.MacieV2.Types.TagValuePair+import Amazonka.MacieV2.Types.UnprocessedAccount+import Amazonka.MacieV2.Types.UsageByAccount+import Amazonka.MacieV2.Types.UsageRecord+import Amazonka.MacieV2.Types.UsageStatisticsFilter+import Amazonka.MacieV2.Types.UsageStatisticsSortBy+import Amazonka.MacieV2.Types.UsageTotal+import Amazonka.MacieV2.Types.UserIdentity+import Amazonka.MacieV2.Types.UserIdentityRoot+import Amazonka.MacieV2.Types.UserPausedDetails+import Amazonka.MacieV2.Types.WeeklySchedule+import Amazonka.MacieV2.UntagResource+import Amazonka.MacieV2.UpdateAllowList+import Amazonka.MacieV2.UpdateAutomatedDiscoveryConfiguration+import Amazonka.MacieV2.UpdateClassificationJob+import Amazonka.MacieV2.UpdateClassificationScope+import Amazonka.MacieV2.UpdateFindingsFilter+import Amazonka.MacieV2.UpdateMacieSession+import Amazonka.MacieV2.UpdateMemberSession+import Amazonka.MacieV2.UpdateOrganizationConfiguration+import Amazonka.MacieV2.UpdateResourceProfile+import Amazonka.MacieV2.UpdateResourceProfileDetections+import Amazonka.MacieV2.UpdateRevealConfiguration+import Amazonka.MacieV2.UpdateSensitivityInspectionTemplate
+ gen/Amazonka/MacieV2/ListAllowLists.hs view
@@ -0,0 +1,224 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.ListAllowLists+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a subset of information about all the allow lists for an+-- account.+--+-- This operation returns paginated results.+module Amazonka.MacieV2.ListAllowLists+  ( -- * Creating a Request+    ListAllowLists (..),+    newListAllowLists,++    -- * Request Lenses+    listAllowLists_maxResults,+    listAllowLists_nextToken,++    -- * Destructuring the Response+    ListAllowListsResponse (..),+    newListAllowListsResponse,++    -- * Response Lenses+    listAllowListsResponse_allowLists,+    listAllowListsResponse_nextToken,+    listAllowListsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListAllowLists' smart constructor.+data ListAllowLists = ListAllowLists'+  { -- | The maximum number of items to include in each page of a paginated+    -- response.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The nextToken string that specifies which page of results to return in a+    -- paginated response.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAllowLists' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listAllowLists_maxResults' - The maximum number of items to include in each page of a paginated+-- response.+--+-- 'nextToken', 'listAllowLists_nextToken' - The nextToken string that specifies which page of results to return in a+-- paginated response.+newListAllowLists ::+  ListAllowLists+newListAllowLists =+  ListAllowLists'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of items to include in each page of a paginated+-- response.+listAllowLists_maxResults :: Lens.Lens' ListAllowLists (Prelude.Maybe Prelude.Natural)+listAllowLists_maxResults = Lens.lens (\ListAllowLists' {maxResults} -> maxResults) (\s@ListAllowLists' {} a -> s {maxResults = a} :: ListAllowLists)++-- | The nextToken string that specifies which page of results to return in a+-- paginated response.+listAllowLists_nextToken :: Lens.Lens' ListAllowLists (Prelude.Maybe Prelude.Text)+listAllowLists_nextToken = Lens.lens (\ListAllowLists' {nextToken} -> nextToken) (\s@ListAllowLists' {} a -> s {nextToken = a} :: ListAllowLists)++instance Core.AWSPager ListAllowLists where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listAllowListsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listAllowListsResponse_allowLists+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listAllowLists_nextToken+          Lens..~ rs+          Lens.^? listAllowListsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListAllowLists where+  type+    AWSResponse ListAllowLists =+      ListAllowListsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListAllowListsResponse'+            Prelude.<$> (x Data..?> "allowLists" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListAllowLists where+  hashWithSalt _salt ListAllowLists' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListAllowLists where+  rnf ListAllowLists' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListAllowLists where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListAllowLists where+  toPath = Prelude.const "/allow-lists"++instance Data.ToQuery ListAllowLists where+  toQuery ListAllowLists' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListAllowListsResponse' smart constructor.+data ListAllowListsResponse = ListAllowListsResponse'+  { -- | An array of objects, one for each allow list.+    allowLists :: Prelude.Maybe [AllowListSummary],+    -- | The string to use in a subsequent request to get the next page of+    -- results in a paginated response. This value is null if there are no+    -- additional pages.+    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 'ListAllowListsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'allowLists', 'listAllowListsResponse_allowLists' - An array of objects, one for each allow list.+--+-- 'nextToken', 'listAllowListsResponse_nextToken' - The string to use in a subsequent request to get the next page of+-- results in a paginated response. This value is null if there are no+-- additional pages.+--+-- 'httpStatus', 'listAllowListsResponse_httpStatus' - The response's http status code.+newListAllowListsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListAllowListsResponse+newListAllowListsResponse pHttpStatus_ =+  ListAllowListsResponse'+    { allowLists =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array of objects, one for each allow list.+listAllowListsResponse_allowLists :: Lens.Lens' ListAllowListsResponse (Prelude.Maybe [AllowListSummary])+listAllowListsResponse_allowLists = Lens.lens (\ListAllowListsResponse' {allowLists} -> allowLists) (\s@ListAllowListsResponse' {} a -> s {allowLists = a} :: ListAllowListsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The string to use in a subsequent request to get the next page of+-- results in a paginated response. This value is null if there are no+-- additional pages.+listAllowListsResponse_nextToken :: Lens.Lens' ListAllowListsResponse (Prelude.Maybe Prelude.Text)+listAllowListsResponse_nextToken = Lens.lens (\ListAllowListsResponse' {nextToken} -> nextToken) (\s@ListAllowListsResponse' {} a -> s {nextToken = a} :: ListAllowListsResponse)++-- | The response's http status code.+listAllowListsResponse_httpStatus :: Lens.Lens' ListAllowListsResponse Prelude.Int+listAllowListsResponse_httpStatus = Lens.lens (\ListAllowListsResponse' {httpStatus} -> httpStatus) (\s@ListAllowListsResponse' {} a -> s {httpStatus = a} :: ListAllowListsResponse)++instance Prelude.NFData ListAllowListsResponse where+  rnf ListAllowListsResponse' {..} =+    Prelude.rnf allowLists+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/ListClassificationJobs.hs view
@@ -0,0 +1,259 @@+{-# 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.MacieV2.ListClassificationJobs+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a subset of information about one or more classification jobs.+--+-- This operation returns paginated results.+module Amazonka.MacieV2.ListClassificationJobs+  ( -- * Creating a Request+    ListClassificationJobs (..),+    newListClassificationJobs,++    -- * Request Lenses+    listClassificationJobs_filterCriteria,+    listClassificationJobs_maxResults,+    listClassificationJobs_nextToken,+    listClassificationJobs_sortCriteria,++    -- * Destructuring the Response+    ListClassificationJobsResponse (..),+    newListClassificationJobsResponse,++    -- * Response Lenses+    listClassificationJobsResponse_items,+    listClassificationJobsResponse_nextToken,+    listClassificationJobsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListClassificationJobs' smart constructor.+data ListClassificationJobs = ListClassificationJobs'+  { -- | The criteria to use to filter the results.+    filterCriteria :: Prelude.Maybe ListJobsFilterCriteria,+    -- | The maximum number of items to include in each page of the response.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | The nextToken string that specifies which page of results to return in a+    -- paginated response.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The criteria to use to sort the results.+    sortCriteria :: Prelude.Maybe ListJobsSortCriteria+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListClassificationJobs' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filterCriteria', 'listClassificationJobs_filterCriteria' - The criteria to use to filter the results.+--+-- 'maxResults', 'listClassificationJobs_maxResults' - The maximum number of items to include in each page of the response.+--+-- 'nextToken', 'listClassificationJobs_nextToken' - The nextToken string that specifies which page of results to return in a+-- paginated response.+--+-- 'sortCriteria', 'listClassificationJobs_sortCriteria' - The criteria to use to sort the results.+newListClassificationJobs ::+  ListClassificationJobs+newListClassificationJobs =+  ListClassificationJobs'+    { filterCriteria =+        Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      sortCriteria = Prelude.Nothing+    }++-- | The criteria to use to filter the results.+listClassificationJobs_filterCriteria :: Lens.Lens' ListClassificationJobs (Prelude.Maybe ListJobsFilterCriteria)+listClassificationJobs_filterCriteria = Lens.lens (\ListClassificationJobs' {filterCriteria} -> filterCriteria) (\s@ListClassificationJobs' {} a -> s {filterCriteria = a} :: ListClassificationJobs)++-- | The maximum number of items to include in each page of the response.+listClassificationJobs_maxResults :: Lens.Lens' ListClassificationJobs (Prelude.Maybe Prelude.Int)+listClassificationJobs_maxResults = Lens.lens (\ListClassificationJobs' {maxResults} -> maxResults) (\s@ListClassificationJobs' {} a -> s {maxResults = a} :: ListClassificationJobs)++-- | The nextToken string that specifies which page of results to return in a+-- paginated response.+listClassificationJobs_nextToken :: Lens.Lens' ListClassificationJobs (Prelude.Maybe Prelude.Text)+listClassificationJobs_nextToken = Lens.lens (\ListClassificationJobs' {nextToken} -> nextToken) (\s@ListClassificationJobs' {} a -> s {nextToken = a} :: ListClassificationJobs)++-- | The criteria to use to sort the results.+listClassificationJobs_sortCriteria :: Lens.Lens' ListClassificationJobs (Prelude.Maybe ListJobsSortCriteria)+listClassificationJobs_sortCriteria = Lens.lens (\ListClassificationJobs' {sortCriteria} -> sortCriteria) (\s@ListClassificationJobs' {} a -> s {sortCriteria = a} :: ListClassificationJobs)++instance Core.AWSPager ListClassificationJobs where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listClassificationJobsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listClassificationJobsResponse_items+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listClassificationJobs_nextToken+          Lens..~ rs+          Lens.^? listClassificationJobsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListClassificationJobs where+  type+    AWSResponse ListClassificationJobs =+      ListClassificationJobsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListClassificationJobsResponse'+            Prelude.<$> (x Data..?> "items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListClassificationJobs where+  hashWithSalt _salt ListClassificationJobs' {..} =+    _salt+      `Prelude.hashWithSalt` filterCriteria+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` sortCriteria++instance Prelude.NFData ListClassificationJobs where+  rnf ListClassificationJobs' {..} =+    Prelude.rnf filterCriteria+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf sortCriteria++instance Data.ToHeaders ListClassificationJobs where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListClassificationJobs where+  toJSON ListClassificationJobs' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("filterCriteria" Data..=)+              Prelude.<$> filterCriteria,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("sortCriteria" Data..=) Prelude.<$> sortCriteria+          ]+      )++instance Data.ToPath ListClassificationJobs where+  toPath = Prelude.const "/jobs/list"++instance Data.ToQuery ListClassificationJobs where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListClassificationJobsResponse' smart constructor.+data ListClassificationJobsResponse = ListClassificationJobsResponse'+  { -- | An array of objects, one for each job that matches the filter criteria+    -- specified in the request.+    items :: Prelude.Maybe [JobSummary],+    -- | The string to use in a subsequent request to get the next page of+    -- results in a paginated response. This value is null if there are no+    -- additional pages.+    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 'ListClassificationJobsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'listClassificationJobsResponse_items' - An array of objects, one for each job that matches the filter criteria+-- specified in the request.+--+-- 'nextToken', 'listClassificationJobsResponse_nextToken' - The string to use in a subsequent request to get the next page of+-- results in a paginated response. This value is null if there are no+-- additional pages.+--+-- 'httpStatus', 'listClassificationJobsResponse_httpStatus' - The response's http status code.+newListClassificationJobsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListClassificationJobsResponse+newListClassificationJobsResponse pHttpStatus_ =+  ListClassificationJobsResponse'+    { items =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array of objects, one for each job that matches the filter criteria+-- specified in the request.+listClassificationJobsResponse_items :: Lens.Lens' ListClassificationJobsResponse (Prelude.Maybe [JobSummary])+listClassificationJobsResponse_items = Lens.lens (\ListClassificationJobsResponse' {items} -> items) (\s@ListClassificationJobsResponse' {} a -> s {items = a} :: ListClassificationJobsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The string to use in a subsequent request to get the next page of+-- results in a paginated response. This value is null if there are no+-- additional pages.+listClassificationJobsResponse_nextToken :: Lens.Lens' ListClassificationJobsResponse (Prelude.Maybe Prelude.Text)+listClassificationJobsResponse_nextToken = Lens.lens (\ListClassificationJobsResponse' {nextToken} -> nextToken) (\s@ListClassificationJobsResponse' {} a -> s {nextToken = a} :: ListClassificationJobsResponse)++-- | The response's http status code.+listClassificationJobsResponse_httpStatus :: Lens.Lens' ListClassificationJobsResponse Prelude.Int+listClassificationJobsResponse_httpStatus = Lens.lens (\ListClassificationJobsResponse' {httpStatus} -> httpStatus) (\s@ListClassificationJobsResponse' {} a -> s {httpStatus = a} :: ListClassificationJobsResponse)++instance+  Prelude.NFData+    ListClassificationJobsResponse+  where+  rnf ListClassificationJobsResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/ListClassificationScopes.hs view
@@ -0,0 +1,231 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.ListClassificationScopes+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a subset of information about the classification scope for an+-- account.+--+-- This operation returns paginated results.+module Amazonka.MacieV2.ListClassificationScopes+  ( -- * Creating a Request+    ListClassificationScopes (..),+    newListClassificationScopes,++    -- * Request Lenses+    listClassificationScopes_name,+    listClassificationScopes_nextToken,++    -- * Destructuring the Response+    ListClassificationScopesResponse (..),+    newListClassificationScopesResponse,++    -- * Response Lenses+    listClassificationScopesResponse_classificationScopes,+    listClassificationScopesResponse_nextToken,+    listClassificationScopesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListClassificationScopes' smart constructor.+data ListClassificationScopes = ListClassificationScopes'+  { -- | The name of the classification scope to retrieve the unique identifier+    -- for.+    name :: Prelude.Maybe Prelude.Text,+    -- | The nextToken string that specifies which page of results to return in a+    -- paginated response.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListClassificationScopes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'listClassificationScopes_name' - The name of the classification scope to retrieve the unique identifier+-- for.+--+-- 'nextToken', 'listClassificationScopes_nextToken' - The nextToken string that specifies which page of results to return in a+-- paginated response.+newListClassificationScopes ::+  ListClassificationScopes+newListClassificationScopes =+  ListClassificationScopes'+    { name = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The name of the classification scope to retrieve the unique identifier+-- for.+listClassificationScopes_name :: Lens.Lens' ListClassificationScopes (Prelude.Maybe Prelude.Text)+listClassificationScopes_name = Lens.lens (\ListClassificationScopes' {name} -> name) (\s@ListClassificationScopes' {} a -> s {name = a} :: ListClassificationScopes)++-- | The nextToken string that specifies which page of results to return in a+-- paginated response.+listClassificationScopes_nextToken :: Lens.Lens' ListClassificationScopes (Prelude.Maybe Prelude.Text)+listClassificationScopes_nextToken = Lens.lens (\ListClassificationScopes' {nextToken} -> nextToken) (\s@ListClassificationScopes' {} a -> s {nextToken = a} :: ListClassificationScopes)++instance Core.AWSPager ListClassificationScopes where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listClassificationScopesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listClassificationScopesResponse_classificationScopes+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listClassificationScopes_nextToken+          Lens..~ rs+          Lens.^? listClassificationScopesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListClassificationScopes where+  type+    AWSResponse ListClassificationScopes =+      ListClassificationScopesResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListClassificationScopesResponse'+            Prelude.<$> ( x+                            Data..?> "classificationScopes"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListClassificationScopes where+  hashWithSalt _salt ListClassificationScopes' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListClassificationScopes where+  rnf ListClassificationScopes' {..} =+    Prelude.rnf name+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListClassificationScopes where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListClassificationScopes where+  toPath = Prelude.const "/classification-scopes"++instance Data.ToQuery ListClassificationScopes where+  toQuery ListClassificationScopes' {..} =+    Prelude.mconcat+      ["name" Data.=: name, "nextToken" Data.=: nextToken]++-- | /See:/ 'newListClassificationScopesResponse' smart constructor.+data ListClassificationScopesResponse = ListClassificationScopesResponse'+  { -- | An array that specifies the unique identifier and name of the+    -- classification scope for the account.+    classificationScopes :: Prelude.Maybe [ClassificationScopeSummary],+    -- | The string to use in a subsequent request to get the next page of+    -- results in a paginated response. This value is null if there are no+    -- additional pages.+    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 'ListClassificationScopesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'classificationScopes', 'listClassificationScopesResponse_classificationScopes' - An array that specifies the unique identifier and name of the+-- classification scope for the account.+--+-- 'nextToken', 'listClassificationScopesResponse_nextToken' - The string to use in a subsequent request to get the next page of+-- results in a paginated response. This value is null if there are no+-- additional pages.+--+-- 'httpStatus', 'listClassificationScopesResponse_httpStatus' - The response's http status code.+newListClassificationScopesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListClassificationScopesResponse+newListClassificationScopesResponse pHttpStatus_ =+  ListClassificationScopesResponse'+    { classificationScopes =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array that specifies the unique identifier and name of the+-- classification scope for the account.+listClassificationScopesResponse_classificationScopes :: Lens.Lens' ListClassificationScopesResponse (Prelude.Maybe [ClassificationScopeSummary])+listClassificationScopesResponse_classificationScopes = Lens.lens (\ListClassificationScopesResponse' {classificationScopes} -> classificationScopes) (\s@ListClassificationScopesResponse' {} a -> s {classificationScopes = a} :: ListClassificationScopesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The string to use in a subsequent request to get the next page of+-- results in a paginated response. This value is null if there are no+-- additional pages.+listClassificationScopesResponse_nextToken :: Lens.Lens' ListClassificationScopesResponse (Prelude.Maybe Prelude.Text)+listClassificationScopesResponse_nextToken = Lens.lens (\ListClassificationScopesResponse' {nextToken} -> nextToken) (\s@ListClassificationScopesResponse' {} a -> s {nextToken = a} :: ListClassificationScopesResponse)++-- | The response's http status code.+listClassificationScopesResponse_httpStatus :: Lens.Lens' ListClassificationScopesResponse Prelude.Int+listClassificationScopesResponse_httpStatus = Lens.lens (\ListClassificationScopesResponse' {httpStatus} -> httpStatus) (\s@ListClassificationScopesResponse' {} a -> s {httpStatus = a} :: ListClassificationScopesResponse)++instance+  Prelude.NFData+    ListClassificationScopesResponse+  where+  rnf ListClassificationScopesResponse' {..} =+    Prelude.rnf classificationScopes+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/ListCustomDataIdentifiers.hs view
@@ -0,0 +1,231 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.ListCustomDataIdentifiers+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a subset of information about all the custom data identifiers+-- for an account.+--+-- This operation returns paginated results.+module Amazonka.MacieV2.ListCustomDataIdentifiers+  ( -- * Creating a Request+    ListCustomDataIdentifiers (..),+    newListCustomDataIdentifiers,++    -- * Request Lenses+    listCustomDataIdentifiers_maxResults,+    listCustomDataIdentifiers_nextToken,++    -- * Destructuring the Response+    ListCustomDataIdentifiersResponse (..),+    newListCustomDataIdentifiersResponse,++    -- * Response Lenses+    listCustomDataIdentifiersResponse_items,+    listCustomDataIdentifiersResponse_nextToken,+    listCustomDataIdentifiersResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListCustomDataIdentifiers' smart constructor.+data ListCustomDataIdentifiers = ListCustomDataIdentifiers'+  { -- | The maximum number of items to include in each page of the response.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | The nextToken string that specifies which page of results to return in a+    -- paginated response.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListCustomDataIdentifiers' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listCustomDataIdentifiers_maxResults' - The maximum number of items to include in each page of the response.+--+-- 'nextToken', 'listCustomDataIdentifiers_nextToken' - The nextToken string that specifies which page of results to return in a+-- paginated response.+newListCustomDataIdentifiers ::+  ListCustomDataIdentifiers+newListCustomDataIdentifiers =+  ListCustomDataIdentifiers'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of items to include in each page of the response.+listCustomDataIdentifiers_maxResults :: Lens.Lens' ListCustomDataIdentifiers (Prelude.Maybe Prelude.Int)+listCustomDataIdentifiers_maxResults = Lens.lens (\ListCustomDataIdentifiers' {maxResults} -> maxResults) (\s@ListCustomDataIdentifiers' {} a -> s {maxResults = a} :: ListCustomDataIdentifiers)++-- | The nextToken string that specifies which page of results to return in a+-- paginated response.+listCustomDataIdentifiers_nextToken :: Lens.Lens' ListCustomDataIdentifiers (Prelude.Maybe Prelude.Text)+listCustomDataIdentifiers_nextToken = Lens.lens (\ListCustomDataIdentifiers' {nextToken} -> nextToken) (\s@ListCustomDataIdentifiers' {} a -> s {nextToken = a} :: ListCustomDataIdentifiers)++instance Core.AWSPager ListCustomDataIdentifiers where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listCustomDataIdentifiersResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listCustomDataIdentifiersResponse_items+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listCustomDataIdentifiers_nextToken+          Lens..~ rs+          Lens.^? listCustomDataIdentifiersResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListCustomDataIdentifiers where+  type+    AWSResponse ListCustomDataIdentifiers =+      ListCustomDataIdentifiersResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListCustomDataIdentifiersResponse'+            Prelude.<$> (x Data..?> "items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListCustomDataIdentifiers where+  hashWithSalt _salt ListCustomDataIdentifiers' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListCustomDataIdentifiers where+  rnf ListCustomDataIdentifiers' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListCustomDataIdentifiers where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListCustomDataIdentifiers where+  toJSON ListCustomDataIdentifiers' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListCustomDataIdentifiers where+  toPath =+    Prelude.const "/custom-data-identifiers/list"++instance Data.ToQuery ListCustomDataIdentifiers where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListCustomDataIdentifiersResponse' smart constructor.+data ListCustomDataIdentifiersResponse = ListCustomDataIdentifiersResponse'+  { -- | An array of objects, one for each custom data identifier.+    items :: Prelude.Maybe [CustomDataIdentifierSummary],+    -- | The string to use in a subsequent request to get the next page of+    -- results in a paginated response. This value is null if there are no+    -- additional pages.+    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 'ListCustomDataIdentifiersResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'listCustomDataIdentifiersResponse_items' - An array of objects, one for each custom data identifier.+--+-- 'nextToken', 'listCustomDataIdentifiersResponse_nextToken' - The string to use in a subsequent request to get the next page of+-- results in a paginated response. This value is null if there are no+-- additional pages.+--+-- 'httpStatus', 'listCustomDataIdentifiersResponse_httpStatus' - The response's http status code.+newListCustomDataIdentifiersResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListCustomDataIdentifiersResponse+newListCustomDataIdentifiersResponse pHttpStatus_ =+  ListCustomDataIdentifiersResponse'+    { items =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array of objects, one for each custom data identifier.+listCustomDataIdentifiersResponse_items :: Lens.Lens' ListCustomDataIdentifiersResponse (Prelude.Maybe [CustomDataIdentifierSummary])+listCustomDataIdentifiersResponse_items = Lens.lens (\ListCustomDataIdentifiersResponse' {items} -> items) (\s@ListCustomDataIdentifiersResponse' {} a -> s {items = a} :: ListCustomDataIdentifiersResponse) Prelude.. Lens.mapping Lens.coerced++-- | The string to use in a subsequent request to get the next page of+-- results in a paginated response. This value is null if there are no+-- additional pages.+listCustomDataIdentifiersResponse_nextToken :: Lens.Lens' ListCustomDataIdentifiersResponse (Prelude.Maybe Prelude.Text)+listCustomDataIdentifiersResponse_nextToken = Lens.lens (\ListCustomDataIdentifiersResponse' {nextToken} -> nextToken) (\s@ListCustomDataIdentifiersResponse' {} a -> s {nextToken = a} :: ListCustomDataIdentifiersResponse)++-- | The response's http status code.+listCustomDataIdentifiersResponse_httpStatus :: Lens.Lens' ListCustomDataIdentifiersResponse Prelude.Int+listCustomDataIdentifiersResponse_httpStatus = Lens.lens (\ListCustomDataIdentifiersResponse' {httpStatus} -> httpStatus) (\s@ListCustomDataIdentifiersResponse' {} a -> s {httpStatus = a} :: ListCustomDataIdentifiersResponse)++instance+  Prelude.NFData+    ListCustomDataIdentifiersResponse+  where+  rnf ListCustomDataIdentifiersResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/ListFindings.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.MacieV2.ListFindings+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a subset of information about one or more findings.+--+-- This operation returns paginated results.+module Amazonka.MacieV2.ListFindings+  ( -- * Creating a Request+    ListFindings (..),+    newListFindings,++    -- * Request Lenses+    listFindings_findingCriteria,+    listFindings_maxResults,+    listFindings_nextToken,+    listFindings_sortCriteria,++    -- * Destructuring the Response+    ListFindingsResponse (..),+    newListFindingsResponse,++    -- * Response Lenses+    listFindingsResponse_findingIds,+    listFindingsResponse_nextToken,+    listFindingsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListFindings' smart constructor.+data ListFindings = ListFindings'+  { -- | The criteria to use to filter the results.+    findingCriteria :: Prelude.Maybe FindingCriteria,+    -- | The maximum number of items to include in each page of the response.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | The nextToken string that specifies which page of results to return in a+    -- paginated response.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The criteria to use to sort the results.+    sortCriteria :: Prelude.Maybe SortCriteria+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListFindings' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'findingCriteria', 'listFindings_findingCriteria' - The criteria to use to filter the results.+--+-- 'maxResults', 'listFindings_maxResults' - The maximum number of items to include in each page of the response.+--+-- 'nextToken', 'listFindings_nextToken' - The nextToken string that specifies which page of results to return in a+-- paginated response.+--+-- 'sortCriteria', 'listFindings_sortCriteria' - The criteria to use to sort the results.+newListFindings ::+  ListFindings+newListFindings =+  ListFindings'+    { findingCriteria = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      sortCriteria = Prelude.Nothing+    }++-- | The criteria to use to filter the results.+listFindings_findingCriteria :: Lens.Lens' ListFindings (Prelude.Maybe FindingCriteria)+listFindings_findingCriteria = Lens.lens (\ListFindings' {findingCriteria} -> findingCriteria) (\s@ListFindings' {} a -> s {findingCriteria = a} :: ListFindings)++-- | The maximum number of items to include in each page of the response.+listFindings_maxResults :: Lens.Lens' ListFindings (Prelude.Maybe Prelude.Int)+listFindings_maxResults = Lens.lens (\ListFindings' {maxResults} -> maxResults) (\s@ListFindings' {} a -> s {maxResults = a} :: ListFindings)++-- | The nextToken string that specifies which page of results to return in a+-- paginated response.+listFindings_nextToken :: Lens.Lens' ListFindings (Prelude.Maybe Prelude.Text)+listFindings_nextToken = Lens.lens (\ListFindings' {nextToken} -> nextToken) (\s@ListFindings' {} a -> s {nextToken = a} :: ListFindings)++-- | The criteria to use to sort the results.+listFindings_sortCriteria :: Lens.Lens' ListFindings (Prelude.Maybe SortCriteria)+listFindings_sortCriteria = Lens.lens (\ListFindings' {sortCriteria} -> sortCriteria) (\s@ListFindings' {} a -> s {sortCriteria = a} :: ListFindings)++instance Core.AWSPager ListFindings where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listFindingsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listFindingsResponse_findingIds+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listFindings_nextToken+          Lens..~ rs+          Lens.^? listFindingsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListFindings where+  type AWSResponse ListFindings = ListFindingsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListFindingsResponse'+            Prelude.<$> (x Data..?> "findingIds" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListFindings where+  hashWithSalt _salt ListFindings' {..} =+    _salt+      `Prelude.hashWithSalt` findingCriteria+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` sortCriteria++instance Prelude.NFData ListFindings where+  rnf ListFindings' {..} =+    Prelude.rnf findingCriteria+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf sortCriteria++instance Data.ToHeaders ListFindings where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListFindings where+  toJSON ListFindings' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("findingCriteria" Data..=)+              Prelude.<$> findingCriteria,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("sortCriteria" Data..=) Prelude.<$> sortCriteria+          ]+      )++instance Data.ToPath ListFindings where+  toPath = Prelude.const "/findings"++instance Data.ToQuery ListFindings where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListFindingsResponse' smart constructor.+data ListFindingsResponse = ListFindingsResponse'+  { -- | An array of strings, where each string is the unique identifier for a+    -- finding that matches the filter criteria specified in the request.+    findingIds :: Prelude.Maybe [Prelude.Text],+    -- | The string to use in a subsequent request to get the next page of+    -- results in a paginated response. This value is null if there are no+    -- additional pages.+    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 'ListFindingsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'findingIds', 'listFindingsResponse_findingIds' - An array of strings, where each string is the unique identifier for a+-- finding that matches the filter criteria specified in the request.+--+-- 'nextToken', 'listFindingsResponse_nextToken' - The string to use in a subsequent request to get the next page of+-- results in a paginated response. This value is null if there are no+-- additional pages.+--+-- 'httpStatus', 'listFindingsResponse_httpStatus' - The response's http status code.+newListFindingsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListFindingsResponse+newListFindingsResponse pHttpStatus_ =+  ListFindingsResponse'+    { findingIds = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array of strings, where each string is the unique identifier for a+-- finding that matches the filter criteria specified in the request.+listFindingsResponse_findingIds :: Lens.Lens' ListFindingsResponse (Prelude.Maybe [Prelude.Text])+listFindingsResponse_findingIds = Lens.lens (\ListFindingsResponse' {findingIds} -> findingIds) (\s@ListFindingsResponse' {} a -> s {findingIds = a} :: ListFindingsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The string to use in a subsequent request to get the next page of+-- results in a paginated response. This value is null if there are no+-- additional pages.+listFindingsResponse_nextToken :: Lens.Lens' ListFindingsResponse (Prelude.Maybe Prelude.Text)+listFindingsResponse_nextToken = Lens.lens (\ListFindingsResponse' {nextToken} -> nextToken) (\s@ListFindingsResponse' {} a -> s {nextToken = a} :: ListFindingsResponse)++-- | The response's http status code.+listFindingsResponse_httpStatus :: Lens.Lens' ListFindingsResponse Prelude.Int+listFindingsResponse_httpStatus = Lens.lens (\ListFindingsResponse' {httpStatus} -> httpStatus) (\s@ListFindingsResponse' {} a -> s {httpStatus = a} :: ListFindingsResponse)++instance Prelude.NFData ListFindingsResponse where+  rnf ListFindingsResponse' {..} =+    Prelude.rnf findingIds+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/ListFindingsFilters.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.MacieV2.ListFindingsFilters+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a subset of information about all the findings filters for an+-- account.+--+-- This operation returns paginated results.+module Amazonka.MacieV2.ListFindingsFilters+  ( -- * Creating a Request+    ListFindingsFilters (..),+    newListFindingsFilters,++    -- * Request Lenses+    listFindingsFilters_maxResults,+    listFindingsFilters_nextToken,++    -- * Destructuring the Response+    ListFindingsFiltersResponse (..),+    newListFindingsFiltersResponse,++    -- * Response Lenses+    listFindingsFiltersResponse_findingsFilterListItems,+    listFindingsFiltersResponse_nextToken,+    listFindingsFiltersResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListFindingsFilters' smart constructor.+data ListFindingsFilters = ListFindingsFilters'+  { -- | The maximum number of items to include in each page of a paginated+    -- response.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The nextToken string that specifies which page of results to return in a+    -- paginated response.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListFindingsFilters' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listFindingsFilters_maxResults' - The maximum number of items to include in each page of a paginated+-- response.+--+-- 'nextToken', 'listFindingsFilters_nextToken' - The nextToken string that specifies which page of results to return in a+-- paginated response.+newListFindingsFilters ::+  ListFindingsFilters+newListFindingsFilters =+  ListFindingsFilters'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of items to include in each page of a paginated+-- response.+listFindingsFilters_maxResults :: Lens.Lens' ListFindingsFilters (Prelude.Maybe Prelude.Natural)+listFindingsFilters_maxResults = Lens.lens (\ListFindingsFilters' {maxResults} -> maxResults) (\s@ListFindingsFilters' {} a -> s {maxResults = a} :: ListFindingsFilters)++-- | The nextToken string that specifies which page of results to return in a+-- paginated response.+listFindingsFilters_nextToken :: Lens.Lens' ListFindingsFilters (Prelude.Maybe Prelude.Text)+listFindingsFilters_nextToken = Lens.lens (\ListFindingsFilters' {nextToken} -> nextToken) (\s@ListFindingsFilters' {} a -> s {nextToken = a} :: ListFindingsFilters)++instance Core.AWSPager ListFindingsFilters where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listFindingsFiltersResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listFindingsFiltersResponse_findingsFilterListItems+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listFindingsFilters_nextToken+          Lens..~ rs+          Lens.^? listFindingsFiltersResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListFindingsFilters where+  type+    AWSResponse ListFindingsFilters =+      ListFindingsFiltersResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListFindingsFiltersResponse'+            Prelude.<$> ( x+                            Data..?> "findingsFilterListItems"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListFindingsFilters where+  hashWithSalt _salt ListFindingsFilters' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListFindingsFilters where+  rnf ListFindingsFilters' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListFindingsFilters where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListFindingsFilters where+  toPath = Prelude.const "/findingsfilters"++instance Data.ToQuery ListFindingsFilters where+  toQuery ListFindingsFilters' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListFindingsFiltersResponse' smart constructor.+data ListFindingsFiltersResponse = ListFindingsFiltersResponse'+  { -- | An array of objects, one for each filter that\'s associated with the+    -- account.+    findingsFilterListItems :: Prelude.Maybe [FindingsFilterListItem],+    -- | The string to use in a subsequent request to get the next page of+    -- results in a paginated response. This value is null if there are no+    -- additional pages.+    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 'ListFindingsFiltersResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'findingsFilterListItems', 'listFindingsFiltersResponse_findingsFilterListItems' - An array of objects, one for each filter that\'s associated with the+-- account.+--+-- 'nextToken', 'listFindingsFiltersResponse_nextToken' - The string to use in a subsequent request to get the next page of+-- results in a paginated response. This value is null if there are no+-- additional pages.+--+-- 'httpStatus', 'listFindingsFiltersResponse_httpStatus' - The response's http status code.+newListFindingsFiltersResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListFindingsFiltersResponse+newListFindingsFiltersResponse pHttpStatus_ =+  ListFindingsFiltersResponse'+    { findingsFilterListItems =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array of objects, one for each filter that\'s associated with the+-- account.+listFindingsFiltersResponse_findingsFilterListItems :: Lens.Lens' ListFindingsFiltersResponse (Prelude.Maybe [FindingsFilterListItem])+listFindingsFiltersResponse_findingsFilterListItems = Lens.lens (\ListFindingsFiltersResponse' {findingsFilterListItems} -> findingsFilterListItems) (\s@ListFindingsFiltersResponse' {} a -> s {findingsFilterListItems = a} :: ListFindingsFiltersResponse) Prelude.. Lens.mapping Lens.coerced++-- | The string to use in a subsequent request to get the next page of+-- results in a paginated response. This value is null if there are no+-- additional pages.+listFindingsFiltersResponse_nextToken :: Lens.Lens' ListFindingsFiltersResponse (Prelude.Maybe Prelude.Text)+listFindingsFiltersResponse_nextToken = Lens.lens (\ListFindingsFiltersResponse' {nextToken} -> nextToken) (\s@ListFindingsFiltersResponse' {} a -> s {nextToken = a} :: ListFindingsFiltersResponse)++-- | The response's http status code.+listFindingsFiltersResponse_httpStatus :: Lens.Lens' ListFindingsFiltersResponse Prelude.Int+listFindingsFiltersResponse_httpStatus = Lens.lens (\ListFindingsFiltersResponse' {httpStatus} -> httpStatus) (\s@ListFindingsFiltersResponse' {} a -> s {httpStatus = a} :: ListFindingsFiltersResponse)++instance Prelude.NFData ListFindingsFiltersResponse where+  rnf ListFindingsFiltersResponse' {..} =+    Prelude.rnf findingsFilterListItems+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/ListInvitations.hs view
@@ -0,0 +1,227 @@+{-# 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.MacieV2.ListInvitations+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves information about the Amazon Macie membership invitations that+-- were received by an account.+--+-- This operation returns paginated results.+module Amazonka.MacieV2.ListInvitations+  ( -- * Creating a Request+    ListInvitations (..),+    newListInvitations,++    -- * Request Lenses+    listInvitations_maxResults,+    listInvitations_nextToken,++    -- * Destructuring the Response+    ListInvitationsResponse (..),+    newListInvitationsResponse,++    -- * Response Lenses+    listInvitationsResponse_invitations,+    listInvitationsResponse_nextToken,+    listInvitationsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListInvitations' smart constructor.+data ListInvitations = ListInvitations'+  { -- | The maximum number of items to include in each page of a paginated+    -- response.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The nextToken string that specifies which page of results to return in a+    -- paginated response.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListInvitations' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listInvitations_maxResults' - The maximum number of items to include in each page of a paginated+-- response.+--+-- 'nextToken', 'listInvitations_nextToken' - The nextToken string that specifies which page of results to return in a+-- paginated response.+newListInvitations ::+  ListInvitations+newListInvitations =+  ListInvitations'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of items to include in each page of a paginated+-- response.+listInvitations_maxResults :: Lens.Lens' ListInvitations (Prelude.Maybe Prelude.Natural)+listInvitations_maxResults = Lens.lens (\ListInvitations' {maxResults} -> maxResults) (\s@ListInvitations' {} a -> s {maxResults = a} :: ListInvitations)++-- | The nextToken string that specifies which page of results to return in a+-- paginated response.+listInvitations_nextToken :: Lens.Lens' ListInvitations (Prelude.Maybe Prelude.Text)+listInvitations_nextToken = Lens.lens (\ListInvitations' {nextToken} -> nextToken) (\s@ListInvitations' {} a -> s {nextToken = a} :: ListInvitations)++instance Core.AWSPager ListInvitations where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listInvitationsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listInvitationsResponse_invitations+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listInvitations_nextToken+          Lens..~ rs+          Lens.^? listInvitationsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListInvitations where+  type+    AWSResponse ListInvitations =+      ListInvitationsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListInvitationsResponse'+            Prelude.<$> (x Data..?> "invitations" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListInvitations where+  hashWithSalt _salt ListInvitations' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListInvitations where+  rnf ListInvitations' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListInvitations where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListInvitations where+  toPath = Prelude.const "/invitations"++instance Data.ToQuery ListInvitations where+  toQuery ListInvitations' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListInvitationsResponse' smart constructor.+data ListInvitationsResponse = ListInvitationsResponse'+  { -- | An array of objects, one for each invitation that was received by the+    -- account.+    invitations :: Prelude.Maybe [Invitation],+    -- | The string to use in a subsequent request to get the next page of+    -- results in a paginated response. This value is null if there are no+    -- additional pages.+    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 'ListInvitationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'invitations', 'listInvitationsResponse_invitations' - An array of objects, one for each invitation that was received by the+-- account.+--+-- 'nextToken', 'listInvitationsResponse_nextToken' - The string to use in a subsequent request to get the next page of+-- results in a paginated response. This value is null if there are no+-- additional pages.+--+-- 'httpStatus', 'listInvitationsResponse_httpStatus' - The response's http status code.+newListInvitationsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListInvitationsResponse+newListInvitationsResponse pHttpStatus_ =+  ListInvitationsResponse'+    { invitations =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array of objects, one for each invitation that was received by the+-- account.+listInvitationsResponse_invitations :: Lens.Lens' ListInvitationsResponse (Prelude.Maybe [Invitation])+listInvitationsResponse_invitations = Lens.lens (\ListInvitationsResponse' {invitations} -> invitations) (\s@ListInvitationsResponse' {} a -> s {invitations = a} :: ListInvitationsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The string to use in a subsequent request to get the next page of+-- results in a paginated response. This value is null if there are no+-- additional pages.+listInvitationsResponse_nextToken :: Lens.Lens' ListInvitationsResponse (Prelude.Maybe Prelude.Text)+listInvitationsResponse_nextToken = Lens.lens (\ListInvitationsResponse' {nextToken} -> nextToken) (\s@ListInvitationsResponse' {} a -> s {nextToken = a} :: ListInvitationsResponse)++-- | The response's http status code.+listInvitationsResponse_httpStatus :: Lens.Lens' ListInvitationsResponse Prelude.Int+listInvitationsResponse_httpStatus = Lens.lens (\ListInvitationsResponse' {httpStatus} -> httpStatus) (\s@ListInvitationsResponse' {} a -> s {httpStatus = a} :: ListInvitationsResponse)++instance Prelude.NFData ListInvitationsResponse where+  rnf ListInvitationsResponse' {..} =+    Prelude.rnf invitations+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/ListManagedDataIdentifiers.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.MacieV2.ListManagedDataIdentifiers+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves information about all the managed data identifiers that Amazon+-- Macie currently provides.+--+-- This operation returns paginated results.+module Amazonka.MacieV2.ListManagedDataIdentifiers+  ( -- * Creating a Request+    ListManagedDataIdentifiers (..),+    newListManagedDataIdentifiers,++    -- * Request Lenses+    listManagedDataIdentifiers_nextToken,++    -- * Destructuring the Response+    ListManagedDataIdentifiersResponse (..),+    newListManagedDataIdentifiersResponse,++    -- * Response Lenses+    listManagedDataIdentifiersResponse_items,+    listManagedDataIdentifiersResponse_nextToken,+    listManagedDataIdentifiersResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListManagedDataIdentifiers' smart constructor.+data ListManagedDataIdentifiers = ListManagedDataIdentifiers'+  { -- | The nextToken string that specifies which page of results to return in a+    -- paginated response.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListManagedDataIdentifiers' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listManagedDataIdentifiers_nextToken' - The nextToken string that specifies which page of results to return in a+-- paginated response.+newListManagedDataIdentifiers ::+  ListManagedDataIdentifiers+newListManagedDataIdentifiers =+  ListManagedDataIdentifiers'+    { nextToken =+        Prelude.Nothing+    }++-- | The nextToken string that specifies which page of results to return in a+-- paginated response.+listManagedDataIdentifiers_nextToken :: Lens.Lens' ListManagedDataIdentifiers (Prelude.Maybe Prelude.Text)+listManagedDataIdentifiers_nextToken = Lens.lens (\ListManagedDataIdentifiers' {nextToken} -> nextToken) (\s@ListManagedDataIdentifiers' {} a -> s {nextToken = a} :: ListManagedDataIdentifiers)++instance Core.AWSPager ListManagedDataIdentifiers where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listManagedDataIdentifiersResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listManagedDataIdentifiersResponse_items+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listManagedDataIdentifiers_nextToken+          Lens..~ rs+          Lens.^? listManagedDataIdentifiersResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListManagedDataIdentifiers where+  type+    AWSResponse ListManagedDataIdentifiers =+      ListManagedDataIdentifiersResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListManagedDataIdentifiersResponse'+            Prelude.<$> (x Data..?> "items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListManagedDataIdentifiers where+  hashWithSalt _salt ListManagedDataIdentifiers' {..} =+    _salt `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListManagedDataIdentifiers where+  rnf ListManagedDataIdentifiers' {..} =+    Prelude.rnf nextToken++instance Data.ToHeaders ListManagedDataIdentifiers where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListManagedDataIdentifiers where+  toJSON ListManagedDataIdentifiers' {..} =+    Data.object+      ( Prelude.catMaybes+          [("nextToken" Data..=) Prelude.<$> nextToken]+      )++instance Data.ToPath ListManagedDataIdentifiers where+  toPath =+    Prelude.const "/managed-data-identifiers/list"++instance Data.ToQuery ListManagedDataIdentifiers where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListManagedDataIdentifiersResponse' smart constructor.+data ListManagedDataIdentifiersResponse = ListManagedDataIdentifiersResponse'+  { -- | An array of objects, one for each managed data identifier.+    items :: Prelude.Maybe [ManagedDataIdentifierSummary],+    -- | The string to use in a subsequent request to get the next page of+    -- results in a paginated response. This value is null if there are no+    -- additional pages.+    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 'ListManagedDataIdentifiersResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'listManagedDataIdentifiersResponse_items' - An array of objects, one for each managed data identifier.+--+-- 'nextToken', 'listManagedDataIdentifiersResponse_nextToken' - The string to use in a subsequent request to get the next page of+-- results in a paginated response. This value is null if there are no+-- additional pages.+--+-- 'httpStatus', 'listManagedDataIdentifiersResponse_httpStatus' - The response's http status code.+newListManagedDataIdentifiersResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListManagedDataIdentifiersResponse+newListManagedDataIdentifiersResponse pHttpStatus_ =+  ListManagedDataIdentifiersResponse'+    { items =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array of objects, one for each managed data identifier.+listManagedDataIdentifiersResponse_items :: Lens.Lens' ListManagedDataIdentifiersResponse (Prelude.Maybe [ManagedDataIdentifierSummary])+listManagedDataIdentifiersResponse_items = Lens.lens (\ListManagedDataIdentifiersResponse' {items} -> items) (\s@ListManagedDataIdentifiersResponse' {} a -> s {items = a} :: ListManagedDataIdentifiersResponse) Prelude.. Lens.mapping Lens.coerced++-- | The string to use in a subsequent request to get the next page of+-- results in a paginated response. This value is null if there are no+-- additional pages.+listManagedDataIdentifiersResponse_nextToken :: Lens.Lens' ListManagedDataIdentifiersResponse (Prelude.Maybe Prelude.Text)+listManagedDataIdentifiersResponse_nextToken = Lens.lens (\ListManagedDataIdentifiersResponse' {nextToken} -> nextToken) (\s@ListManagedDataIdentifiersResponse' {} a -> s {nextToken = a} :: ListManagedDataIdentifiersResponse)++-- | The response's http status code.+listManagedDataIdentifiersResponse_httpStatus :: Lens.Lens' ListManagedDataIdentifiersResponse Prelude.Int+listManagedDataIdentifiersResponse_httpStatus = Lens.lens (\ListManagedDataIdentifiersResponse' {httpStatus} -> httpStatus) (\s@ListManagedDataIdentifiersResponse' {} a -> s {httpStatus = a} :: ListManagedDataIdentifiersResponse)++instance+  Prelude.NFData+    ListManagedDataIdentifiersResponse+  where+  rnf ListManagedDataIdentifiersResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/ListMembers.hs view
@@ -0,0 +1,246 @@+{-# 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.MacieV2.ListMembers+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves information about the accounts that are associated with an+-- Amazon Macie administrator account.+--+-- This operation returns paginated results.+module Amazonka.MacieV2.ListMembers+  ( -- * Creating a Request+    ListMembers (..),+    newListMembers,++    -- * Request Lenses+    listMembers_maxResults,+    listMembers_nextToken,+    listMembers_onlyAssociated,++    -- * Destructuring the Response+    ListMembersResponse (..),+    newListMembersResponse,++    -- * Response Lenses+    listMembersResponse_members,+    listMembersResponse_nextToken,+    listMembersResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListMembers' smart constructor.+data ListMembers = ListMembers'+  { -- | The maximum number of items to include in each page of a paginated+    -- response.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The nextToken string that specifies which page of results to return in a+    -- paginated response.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Specifies which accounts to include in the response, based on the status+    -- of an account\'s relationship with the administrator account. By+    -- default, the response includes only current member accounts. To include+    -- all accounts, set this value to false.+    onlyAssociated :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListMembers' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listMembers_maxResults' - The maximum number of items to include in each page of a paginated+-- response.+--+-- 'nextToken', 'listMembers_nextToken' - The nextToken string that specifies which page of results to return in a+-- paginated response.+--+-- 'onlyAssociated', 'listMembers_onlyAssociated' - Specifies which accounts to include in the response, based on the status+-- of an account\'s relationship with the administrator account. By+-- default, the response includes only current member accounts. To include+-- all accounts, set this value to false.+newListMembers ::+  ListMembers+newListMembers =+  ListMembers'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      onlyAssociated = Prelude.Nothing+    }++-- | The maximum number of items to include in each page of a paginated+-- response.+listMembers_maxResults :: Lens.Lens' ListMembers (Prelude.Maybe Prelude.Natural)+listMembers_maxResults = Lens.lens (\ListMembers' {maxResults} -> maxResults) (\s@ListMembers' {} a -> s {maxResults = a} :: ListMembers)++-- | The nextToken string that specifies which page of results to return in a+-- paginated response.+listMembers_nextToken :: Lens.Lens' ListMembers (Prelude.Maybe Prelude.Text)+listMembers_nextToken = Lens.lens (\ListMembers' {nextToken} -> nextToken) (\s@ListMembers' {} a -> s {nextToken = a} :: ListMembers)++-- | Specifies which accounts to include in the response, based on the status+-- of an account\'s relationship with the administrator account. By+-- default, the response includes only current member accounts. To include+-- all accounts, set this value to false.+listMembers_onlyAssociated :: Lens.Lens' ListMembers (Prelude.Maybe Prelude.Text)+listMembers_onlyAssociated = Lens.lens (\ListMembers' {onlyAssociated} -> onlyAssociated) (\s@ListMembers' {} a -> s {onlyAssociated = a} :: ListMembers)++instance Core.AWSPager ListMembers where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listMembersResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listMembersResponse_members+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listMembers_nextToken+          Lens..~ rs+          Lens.^? listMembersResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListMembers where+  type AWSResponse ListMembers = ListMembersResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListMembersResponse'+            Prelude.<$> (x Data..?> "members" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListMembers where+  hashWithSalt _salt ListMembers' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` onlyAssociated++instance Prelude.NFData ListMembers where+  rnf ListMembers' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf onlyAssociated++instance Data.ToHeaders ListMembers where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListMembers where+  toPath = Prelude.const "/members"++instance Data.ToQuery ListMembers where+  toQuery ListMembers' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken,+        "onlyAssociated" Data.=: onlyAssociated+      ]++-- | /See:/ 'newListMembersResponse' smart constructor.+data ListMembersResponse = ListMembersResponse'+  { -- | An array of objects, one for each account that\'s associated with the+    -- administrator account and matches the criteria specified in the request.+    members :: Prelude.Maybe [Member],+    -- | The string to use in a subsequent request to get the next page of+    -- results in a paginated response. This value is null if there are no+    -- additional pages.+    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 'ListMembersResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'members', 'listMembersResponse_members' - An array of objects, one for each account that\'s associated with the+-- administrator account and matches the criteria specified in the request.+--+-- 'nextToken', 'listMembersResponse_nextToken' - The string to use in a subsequent request to get the next page of+-- results in a paginated response. This value is null if there are no+-- additional pages.+--+-- 'httpStatus', 'listMembersResponse_httpStatus' - The response's http status code.+newListMembersResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListMembersResponse+newListMembersResponse pHttpStatus_ =+  ListMembersResponse'+    { members = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array of objects, one for each account that\'s associated with the+-- administrator account and matches the criteria specified in the request.+listMembersResponse_members :: Lens.Lens' ListMembersResponse (Prelude.Maybe [Member])+listMembersResponse_members = Lens.lens (\ListMembersResponse' {members} -> members) (\s@ListMembersResponse' {} a -> s {members = a} :: ListMembersResponse) Prelude.. Lens.mapping Lens.coerced++-- | The string to use in a subsequent request to get the next page of+-- results in a paginated response. This value is null if there are no+-- additional pages.+listMembersResponse_nextToken :: Lens.Lens' ListMembersResponse (Prelude.Maybe Prelude.Text)+listMembersResponse_nextToken = Lens.lens (\ListMembersResponse' {nextToken} -> nextToken) (\s@ListMembersResponse' {} a -> s {nextToken = a} :: ListMembersResponse)++-- | The response's http status code.+listMembersResponse_httpStatus :: Lens.Lens' ListMembersResponse Prelude.Int+listMembersResponse_httpStatus = Lens.lens (\ListMembersResponse' {httpStatus} -> httpStatus) (\s@ListMembersResponse' {} a -> s {httpStatus = a} :: ListMembersResponse)++instance Prelude.NFData ListMembersResponse where+  rnf ListMembersResponse' {..} =+    Prelude.rnf members+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/ListOrganizationAdminAccounts.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.MacieV2.ListOrganizationAdminAccounts+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves information about the delegated Amazon Macie administrator+-- account for an organization in Organizations.+--+-- This operation returns paginated results.+module Amazonka.MacieV2.ListOrganizationAdminAccounts+  ( -- * Creating a Request+    ListOrganizationAdminAccounts (..),+    newListOrganizationAdminAccounts,++    -- * Request Lenses+    listOrganizationAdminAccounts_maxResults,+    listOrganizationAdminAccounts_nextToken,++    -- * Destructuring the Response+    ListOrganizationAdminAccountsResponse (..),+    newListOrganizationAdminAccountsResponse,++    -- * Response Lenses+    listOrganizationAdminAccountsResponse_adminAccounts,+    listOrganizationAdminAccountsResponse_nextToken,+    listOrganizationAdminAccountsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListOrganizationAdminAccounts' smart constructor.+data ListOrganizationAdminAccounts = ListOrganizationAdminAccounts'+  { -- | The maximum number of items to include in each page of a paginated+    -- response.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The nextToken string that specifies which page of results to return in a+    -- paginated response.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListOrganizationAdminAccounts' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listOrganizationAdminAccounts_maxResults' - The maximum number of items to include in each page of a paginated+-- response.+--+-- 'nextToken', 'listOrganizationAdminAccounts_nextToken' - The nextToken string that specifies which page of results to return in a+-- paginated response.+newListOrganizationAdminAccounts ::+  ListOrganizationAdminAccounts+newListOrganizationAdminAccounts =+  ListOrganizationAdminAccounts'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of items to include in each page of a paginated+-- response.+listOrganizationAdminAccounts_maxResults :: Lens.Lens' ListOrganizationAdminAccounts (Prelude.Maybe Prelude.Natural)+listOrganizationAdminAccounts_maxResults = Lens.lens (\ListOrganizationAdminAccounts' {maxResults} -> maxResults) (\s@ListOrganizationAdminAccounts' {} a -> s {maxResults = a} :: ListOrganizationAdminAccounts)++-- | The nextToken string that specifies which page of results to return in a+-- paginated response.+listOrganizationAdminAccounts_nextToken :: Lens.Lens' ListOrganizationAdminAccounts (Prelude.Maybe Prelude.Text)+listOrganizationAdminAccounts_nextToken = Lens.lens (\ListOrganizationAdminAccounts' {nextToken} -> nextToken) (\s@ListOrganizationAdminAccounts' {} a -> s {nextToken = a} :: ListOrganizationAdminAccounts)++instance Core.AWSPager ListOrganizationAdminAccounts where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listOrganizationAdminAccountsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listOrganizationAdminAccountsResponse_adminAccounts+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listOrganizationAdminAccounts_nextToken+          Lens..~ rs+          Lens.^? listOrganizationAdminAccountsResponse_nextToken+          Prelude.. Lens._Just++instance+  Core.AWSRequest+    ListOrganizationAdminAccounts+  where+  type+    AWSResponse ListOrganizationAdminAccounts =+      ListOrganizationAdminAccountsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListOrganizationAdminAccountsResponse'+            Prelude.<$> (x Data..?> "adminAccounts" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    ListOrganizationAdminAccounts+  where+  hashWithSalt _salt ListOrganizationAdminAccounts' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListOrganizationAdminAccounts where+  rnf ListOrganizationAdminAccounts' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListOrganizationAdminAccounts where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListOrganizationAdminAccounts where+  toPath = Prelude.const "/admin"++instance Data.ToQuery ListOrganizationAdminAccounts where+  toQuery ListOrganizationAdminAccounts' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListOrganizationAdminAccountsResponse' smart constructor.+data ListOrganizationAdminAccountsResponse = ListOrganizationAdminAccountsResponse'+  { -- | An array of objects, one for each delegated Amazon Macie administrator+    -- account for the organization. Only one of these accounts can have a+    -- status of ENABLED.+    adminAccounts :: Prelude.Maybe [AdminAccount],+    -- | The string to use in a subsequent request to get the next page of+    -- results in a paginated response. This value is null if there are no+    -- additional pages.+    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 'ListOrganizationAdminAccountsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'adminAccounts', 'listOrganizationAdminAccountsResponse_adminAccounts' - An array of objects, one for each delegated Amazon Macie administrator+-- account for the organization. Only one of these accounts can have a+-- status of ENABLED.+--+-- 'nextToken', 'listOrganizationAdminAccountsResponse_nextToken' - The string to use in a subsequent request to get the next page of+-- results in a paginated response. This value is null if there are no+-- additional pages.+--+-- 'httpStatus', 'listOrganizationAdminAccountsResponse_httpStatus' - The response's http status code.+newListOrganizationAdminAccountsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListOrganizationAdminAccountsResponse+newListOrganizationAdminAccountsResponse pHttpStatus_ =+  ListOrganizationAdminAccountsResponse'+    { adminAccounts =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array of objects, one for each delegated Amazon Macie administrator+-- account for the organization. Only one of these accounts can have a+-- status of ENABLED.+listOrganizationAdminAccountsResponse_adminAccounts :: Lens.Lens' ListOrganizationAdminAccountsResponse (Prelude.Maybe [AdminAccount])+listOrganizationAdminAccountsResponse_adminAccounts = Lens.lens (\ListOrganizationAdminAccountsResponse' {adminAccounts} -> adminAccounts) (\s@ListOrganizationAdminAccountsResponse' {} a -> s {adminAccounts = a} :: ListOrganizationAdminAccountsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The string to use in a subsequent request to get the next page of+-- results in a paginated response. This value is null if there are no+-- additional pages.+listOrganizationAdminAccountsResponse_nextToken :: Lens.Lens' ListOrganizationAdminAccountsResponse (Prelude.Maybe Prelude.Text)+listOrganizationAdminAccountsResponse_nextToken = Lens.lens (\ListOrganizationAdminAccountsResponse' {nextToken} -> nextToken) (\s@ListOrganizationAdminAccountsResponse' {} a -> s {nextToken = a} :: ListOrganizationAdminAccountsResponse)++-- | The response's http status code.+listOrganizationAdminAccountsResponse_httpStatus :: Lens.Lens' ListOrganizationAdminAccountsResponse Prelude.Int+listOrganizationAdminAccountsResponse_httpStatus = Lens.lens (\ListOrganizationAdminAccountsResponse' {httpStatus} -> httpStatus) (\s@ListOrganizationAdminAccountsResponse' {} a -> s {httpStatus = a} :: ListOrganizationAdminAccountsResponse)++instance+  Prelude.NFData+    ListOrganizationAdminAccountsResponse+  where+  rnf ListOrganizationAdminAccountsResponse' {..} =+    Prelude.rnf adminAccounts+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/ListResourceProfileArtifacts.hs view
@@ -0,0 +1,236 @@+{-# 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.MacieV2.ListResourceProfileArtifacts+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves information about objects that were selected from an S3 bucket+-- for automated sensitive data discovery.+--+-- This operation returns paginated results.+module Amazonka.MacieV2.ListResourceProfileArtifacts+  ( -- * Creating a Request+    ListResourceProfileArtifacts (..),+    newListResourceProfileArtifacts,++    -- * Request Lenses+    listResourceProfileArtifacts_nextToken,+    listResourceProfileArtifacts_resourceArn,++    -- * Destructuring the Response+    ListResourceProfileArtifactsResponse (..),+    newListResourceProfileArtifactsResponse,++    -- * Response Lenses+    listResourceProfileArtifactsResponse_artifacts,+    listResourceProfileArtifactsResponse_nextToken,+    listResourceProfileArtifactsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListResourceProfileArtifacts' smart constructor.+data ListResourceProfileArtifacts = ListResourceProfileArtifacts'+  { -- | The nextToken string that specifies which page of results to return in a+    -- paginated response.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the S3 bucket that the request applies+    -- to.+    resourceArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListResourceProfileArtifacts' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listResourceProfileArtifacts_nextToken' - The nextToken string that specifies which page of results to return in a+-- paginated response.+--+-- 'resourceArn', 'listResourceProfileArtifacts_resourceArn' - The Amazon Resource Name (ARN) of the S3 bucket that the request applies+-- to.+newListResourceProfileArtifacts ::+  -- | 'resourceArn'+  Prelude.Text ->+  ListResourceProfileArtifacts+newListResourceProfileArtifacts pResourceArn_ =+  ListResourceProfileArtifacts'+    { nextToken =+        Prelude.Nothing,+      resourceArn = pResourceArn_+    }++-- | The nextToken string that specifies which page of results to return in a+-- paginated response.+listResourceProfileArtifacts_nextToken :: Lens.Lens' ListResourceProfileArtifacts (Prelude.Maybe Prelude.Text)+listResourceProfileArtifacts_nextToken = Lens.lens (\ListResourceProfileArtifacts' {nextToken} -> nextToken) (\s@ListResourceProfileArtifacts' {} a -> s {nextToken = a} :: ListResourceProfileArtifacts)++-- | The Amazon Resource Name (ARN) of the S3 bucket that the request applies+-- to.+listResourceProfileArtifacts_resourceArn :: Lens.Lens' ListResourceProfileArtifacts Prelude.Text+listResourceProfileArtifacts_resourceArn = Lens.lens (\ListResourceProfileArtifacts' {resourceArn} -> resourceArn) (\s@ListResourceProfileArtifacts' {} a -> s {resourceArn = a} :: ListResourceProfileArtifacts)++instance Core.AWSPager ListResourceProfileArtifacts where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listResourceProfileArtifactsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listResourceProfileArtifactsResponse_artifacts+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listResourceProfileArtifacts_nextToken+          Lens..~ rs+          Lens.^? listResourceProfileArtifactsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListResourceProfileArtifacts where+  type+    AWSResponse ListResourceProfileArtifacts =+      ListResourceProfileArtifactsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListResourceProfileArtifactsResponse'+            Prelude.<$> (x Data..?> "artifacts" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    ListResourceProfileArtifacts+  where+  hashWithSalt _salt ListResourceProfileArtifacts' {..} =+    _salt+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData ListResourceProfileArtifacts where+  rnf ListResourceProfileArtifacts' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf resourceArn++instance Data.ToHeaders ListResourceProfileArtifacts where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListResourceProfileArtifacts where+  toPath = Prelude.const "/resource-profiles/artifacts"++instance Data.ToQuery ListResourceProfileArtifacts where+  toQuery ListResourceProfileArtifacts' {..} =+    Prelude.mconcat+      [ "nextToken" Data.=: nextToken,+        "resourceArn" Data.=: resourceArn+      ]++-- | /See:/ 'newListResourceProfileArtifactsResponse' smart constructor.+data ListResourceProfileArtifactsResponse = ListResourceProfileArtifactsResponse'+  { -- | An array of objects, one for each S3 object that Amazon Macie selected+    -- for analysis.+    artifacts :: Prelude.Maybe [ResourceProfileArtifact],+    -- | The string to use in a subsequent request to get the next page of+    -- results in a paginated response. This value is null if there are no+    -- additional pages.+    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 'ListResourceProfileArtifactsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'artifacts', 'listResourceProfileArtifactsResponse_artifacts' - An array of objects, one for each S3 object that Amazon Macie selected+-- for analysis.+--+-- 'nextToken', 'listResourceProfileArtifactsResponse_nextToken' - The string to use in a subsequent request to get the next page of+-- results in a paginated response. This value is null if there are no+-- additional pages.+--+-- 'httpStatus', 'listResourceProfileArtifactsResponse_httpStatus' - The response's http status code.+newListResourceProfileArtifactsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListResourceProfileArtifactsResponse+newListResourceProfileArtifactsResponse pHttpStatus_ =+  ListResourceProfileArtifactsResponse'+    { artifacts =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array of objects, one for each S3 object that Amazon Macie selected+-- for analysis.+listResourceProfileArtifactsResponse_artifacts :: Lens.Lens' ListResourceProfileArtifactsResponse (Prelude.Maybe [ResourceProfileArtifact])+listResourceProfileArtifactsResponse_artifacts = Lens.lens (\ListResourceProfileArtifactsResponse' {artifacts} -> artifacts) (\s@ListResourceProfileArtifactsResponse' {} a -> s {artifacts = a} :: ListResourceProfileArtifactsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The string to use in a subsequent request to get the next page of+-- results in a paginated response. This value is null if there are no+-- additional pages.+listResourceProfileArtifactsResponse_nextToken :: Lens.Lens' ListResourceProfileArtifactsResponse (Prelude.Maybe Prelude.Text)+listResourceProfileArtifactsResponse_nextToken = Lens.lens (\ListResourceProfileArtifactsResponse' {nextToken} -> nextToken) (\s@ListResourceProfileArtifactsResponse' {} a -> s {nextToken = a} :: ListResourceProfileArtifactsResponse)++-- | The response's http status code.+listResourceProfileArtifactsResponse_httpStatus :: Lens.Lens' ListResourceProfileArtifactsResponse Prelude.Int+listResourceProfileArtifactsResponse_httpStatus = Lens.lens (\ListResourceProfileArtifactsResponse' {httpStatus} -> httpStatus) (\s@ListResourceProfileArtifactsResponse' {} a -> s {httpStatus = a} :: ListResourceProfileArtifactsResponse)++instance+  Prelude.NFData+    ListResourceProfileArtifactsResponse+  where+  rnf ListResourceProfileArtifactsResponse' {..} =+    Prelude.rnf artifacts+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/ListResourceProfileDetections.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.MacieV2.ListResourceProfileDetections+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves information about the types and amount of sensitive data that+-- Amazon Macie found in an S3 bucket.+--+-- This operation returns paginated results.+module Amazonka.MacieV2.ListResourceProfileDetections+  ( -- * Creating a Request+    ListResourceProfileDetections (..),+    newListResourceProfileDetections,++    -- * Request Lenses+    listResourceProfileDetections_maxResults,+    listResourceProfileDetections_nextToken,+    listResourceProfileDetections_resourceArn,++    -- * Destructuring the Response+    ListResourceProfileDetectionsResponse (..),+    newListResourceProfileDetectionsResponse,++    -- * Response Lenses+    listResourceProfileDetectionsResponse_detections,+    listResourceProfileDetectionsResponse_nextToken,+    listResourceProfileDetectionsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListResourceProfileDetections' smart constructor.+data ListResourceProfileDetections = ListResourceProfileDetections'+  { -- | The maximum number of items to include in each page of a paginated+    -- response.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The nextToken string that specifies which page of results to return in a+    -- paginated response.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the S3 bucket that the request applies+    -- to.+    resourceArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListResourceProfileDetections' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listResourceProfileDetections_maxResults' - The maximum number of items to include in each page of a paginated+-- response.+--+-- 'nextToken', 'listResourceProfileDetections_nextToken' - The nextToken string that specifies which page of results to return in a+-- paginated response.+--+-- 'resourceArn', 'listResourceProfileDetections_resourceArn' - The Amazon Resource Name (ARN) of the S3 bucket that the request applies+-- to.+newListResourceProfileDetections ::+  -- | 'resourceArn'+  Prelude.Text ->+  ListResourceProfileDetections+newListResourceProfileDetections pResourceArn_ =+  ListResourceProfileDetections'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      resourceArn = pResourceArn_+    }++-- | The maximum number of items to include in each page of a paginated+-- response.+listResourceProfileDetections_maxResults :: Lens.Lens' ListResourceProfileDetections (Prelude.Maybe Prelude.Natural)+listResourceProfileDetections_maxResults = Lens.lens (\ListResourceProfileDetections' {maxResults} -> maxResults) (\s@ListResourceProfileDetections' {} a -> s {maxResults = a} :: ListResourceProfileDetections)++-- | The nextToken string that specifies which page of results to return in a+-- paginated response.+listResourceProfileDetections_nextToken :: Lens.Lens' ListResourceProfileDetections (Prelude.Maybe Prelude.Text)+listResourceProfileDetections_nextToken = Lens.lens (\ListResourceProfileDetections' {nextToken} -> nextToken) (\s@ListResourceProfileDetections' {} a -> s {nextToken = a} :: ListResourceProfileDetections)++-- | The Amazon Resource Name (ARN) of the S3 bucket that the request applies+-- to.+listResourceProfileDetections_resourceArn :: Lens.Lens' ListResourceProfileDetections Prelude.Text+listResourceProfileDetections_resourceArn = Lens.lens (\ListResourceProfileDetections' {resourceArn} -> resourceArn) (\s@ListResourceProfileDetections' {} a -> s {resourceArn = a} :: ListResourceProfileDetections)++instance Core.AWSPager ListResourceProfileDetections where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listResourceProfileDetectionsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listResourceProfileDetectionsResponse_detections+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listResourceProfileDetections_nextToken+          Lens..~ rs+          Lens.^? listResourceProfileDetectionsResponse_nextToken+          Prelude.. Lens._Just++instance+  Core.AWSRequest+    ListResourceProfileDetections+  where+  type+    AWSResponse ListResourceProfileDetections =+      ListResourceProfileDetectionsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListResourceProfileDetectionsResponse'+            Prelude.<$> (x Data..?> "detections" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    ListResourceProfileDetections+  where+  hashWithSalt _salt ListResourceProfileDetections' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData ListResourceProfileDetections where+  rnf ListResourceProfileDetections' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf resourceArn++instance Data.ToHeaders ListResourceProfileDetections where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListResourceProfileDetections where+  toPath =+    Prelude.const "/resource-profiles/detections"++instance Data.ToQuery ListResourceProfileDetections where+  toQuery ListResourceProfileDetections' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken,+        "resourceArn" Data.=: resourceArn+      ]++-- | /See:/ 'newListResourceProfileDetectionsResponse' smart constructor.+data ListResourceProfileDetectionsResponse = ListResourceProfileDetectionsResponse'+  { -- | An array of objects, one for each type of sensitive data that Amazon+    -- Macie found in the bucket. Each object reports the number of occurrences+    -- of the specified type and provides information about the custom data+    -- identifier or managed data identifier that detected the data.+    detections :: Prelude.Maybe [Detection],+    -- | The string to use in a subsequent request to get the next page of+    -- results in a paginated response. This value is null if there are no+    -- additional pages.+    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 'ListResourceProfileDetectionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'detections', 'listResourceProfileDetectionsResponse_detections' - An array of objects, one for each type of sensitive data that Amazon+-- Macie found in the bucket. Each object reports the number of occurrences+-- of the specified type and provides information about the custom data+-- identifier or managed data identifier that detected the data.+--+-- 'nextToken', 'listResourceProfileDetectionsResponse_nextToken' - The string to use in a subsequent request to get the next page of+-- results in a paginated response. This value is null if there are no+-- additional pages.+--+-- 'httpStatus', 'listResourceProfileDetectionsResponse_httpStatus' - The response's http status code.+newListResourceProfileDetectionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListResourceProfileDetectionsResponse+newListResourceProfileDetectionsResponse pHttpStatus_ =+  ListResourceProfileDetectionsResponse'+    { detections =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array of objects, one for each type of sensitive data that Amazon+-- Macie found in the bucket. Each object reports the number of occurrences+-- of the specified type and provides information about the custom data+-- identifier or managed data identifier that detected the data.+listResourceProfileDetectionsResponse_detections :: Lens.Lens' ListResourceProfileDetectionsResponse (Prelude.Maybe [Detection])+listResourceProfileDetectionsResponse_detections = Lens.lens (\ListResourceProfileDetectionsResponse' {detections} -> detections) (\s@ListResourceProfileDetectionsResponse' {} a -> s {detections = a} :: ListResourceProfileDetectionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The string to use in a subsequent request to get the next page of+-- results in a paginated response. This value is null if there are no+-- additional pages.+listResourceProfileDetectionsResponse_nextToken :: Lens.Lens' ListResourceProfileDetectionsResponse (Prelude.Maybe Prelude.Text)+listResourceProfileDetectionsResponse_nextToken = Lens.lens (\ListResourceProfileDetectionsResponse' {nextToken} -> nextToken) (\s@ListResourceProfileDetectionsResponse' {} a -> s {nextToken = a} :: ListResourceProfileDetectionsResponse)++-- | The response's http status code.+listResourceProfileDetectionsResponse_httpStatus :: Lens.Lens' ListResourceProfileDetectionsResponse Prelude.Int+listResourceProfileDetectionsResponse_httpStatus = Lens.lens (\ListResourceProfileDetectionsResponse' {httpStatus} -> httpStatus) (\s@ListResourceProfileDetectionsResponse' {} a -> s {httpStatus = a} :: ListResourceProfileDetectionsResponse)++instance+  Prelude.NFData+    ListResourceProfileDetectionsResponse+  where+  rnf ListResourceProfileDetectionsResponse' {..} =+    Prelude.rnf detections+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/ListSensitivityInspectionTemplates.hs view
@@ -0,0 +1,260 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.ListSensitivityInspectionTemplates+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a subset of information about the sensitivity inspection+-- template for an account.+--+-- This operation returns paginated results.+module Amazonka.MacieV2.ListSensitivityInspectionTemplates+  ( -- * Creating a Request+    ListSensitivityInspectionTemplates (..),+    newListSensitivityInspectionTemplates,++    -- * Request Lenses+    listSensitivityInspectionTemplates_maxResults,+    listSensitivityInspectionTemplates_nextToken,++    -- * Destructuring the Response+    ListSensitivityInspectionTemplatesResponse (..),+    newListSensitivityInspectionTemplatesResponse,++    -- * Response Lenses+    listSensitivityInspectionTemplatesResponse_nextToken,+    listSensitivityInspectionTemplatesResponse_sensitivityInspectionTemplates,+    listSensitivityInspectionTemplatesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListSensitivityInspectionTemplates' smart constructor.+data ListSensitivityInspectionTemplates = ListSensitivityInspectionTemplates'+  { -- | The maximum number of items to include in each page of a paginated+    -- response.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The nextToken string that specifies which page of results to return in a+    -- paginated response.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSensitivityInspectionTemplates' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listSensitivityInspectionTemplates_maxResults' - The maximum number of items to include in each page of a paginated+-- response.+--+-- 'nextToken', 'listSensitivityInspectionTemplates_nextToken' - The nextToken string that specifies which page of results to return in a+-- paginated response.+newListSensitivityInspectionTemplates ::+  ListSensitivityInspectionTemplates+newListSensitivityInspectionTemplates =+  ListSensitivityInspectionTemplates'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of items to include in each page of a paginated+-- response.+listSensitivityInspectionTemplates_maxResults :: Lens.Lens' ListSensitivityInspectionTemplates (Prelude.Maybe Prelude.Natural)+listSensitivityInspectionTemplates_maxResults = Lens.lens (\ListSensitivityInspectionTemplates' {maxResults} -> maxResults) (\s@ListSensitivityInspectionTemplates' {} a -> s {maxResults = a} :: ListSensitivityInspectionTemplates)++-- | The nextToken string that specifies which page of results to return in a+-- paginated response.+listSensitivityInspectionTemplates_nextToken :: Lens.Lens' ListSensitivityInspectionTemplates (Prelude.Maybe Prelude.Text)+listSensitivityInspectionTemplates_nextToken = Lens.lens (\ListSensitivityInspectionTemplates' {nextToken} -> nextToken) (\s@ListSensitivityInspectionTemplates' {} a -> s {nextToken = a} :: ListSensitivityInspectionTemplates)++instance+  Core.AWSPager+    ListSensitivityInspectionTemplates+  where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listSensitivityInspectionTemplatesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listSensitivityInspectionTemplatesResponse_sensitivityInspectionTemplates+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listSensitivityInspectionTemplates_nextToken+          Lens..~ rs+          Lens.^? listSensitivityInspectionTemplatesResponse_nextToken+          Prelude.. Lens._Just++instance+  Core.AWSRequest+    ListSensitivityInspectionTemplates+  where+  type+    AWSResponse ListSensitivityInspectionTemplates =+      ListSensitivityInspectionTemplatesResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListSensitivityInspectionTemplatesResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> ( x+                            Data..?> "sensitivityInspectionTemplates"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    ListSensitivityInspectionTemplates+  where+  hashWithSalt+    _salt+    ListSensitivityInspectionTemplates' {..} =+      _salt+        `Prelude.hashWithSalt` maxResults+        `Prelude.hashWithSalt` nextToken++instance+  Prelude.NFData+    ListSensitivityInspectionTemplates+  where+  rnf ListSensitivityInspectionTemplates' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance+  Data.ToHeaders+    ListSensitivityInspectionTemplates+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToPath+    ListSensitivityInspectionTemplates+  where+  toPath =+    Prelude.const "/templates/sensitivity-inspections"++instance+  Data.ToQuery+    ListSensitivityInspectionTemplates+  where+  toQuery ListSensitivityInspectionTemplates' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListSensitivityInspectionTemplatesResponse' smart constructor.+data ListSensitivityInspectionTemplatesResponse = ListSensitivityInspectionTemplatesResponse'+  { -- | The string to use in a subsequent request to get the next page of+    -- results in a paginated response. This value is null if there are no+    -- additional pages.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | An array that specifies the unique identifier and name of the+    -- sensitivity inspection template for the account.+    sensitivityInspectionTemplates :: Prelude.Maybe [SensitivityInspectionTemplatesEntry],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSensitivityInspectionTemplatesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listSensitivityInspectionTemplatesResponse_nextToken' - The string to use in a subsequent request to get the next page of+-- results in a paginated response. This value is null if there are no+-- additional pages.+--+-- 'sensitivityInspectionTemplates', 'listSensitivityInspectionTemplatesResponse_sensitivityInspectionTemplates' - An array that specifies the unique identifier and name of the+-- sensitivity inspection template for the account.+--+-- 'httpStatus', 'listSensitivityInspectionTemplatesResponse_httpStatus' - The response's http status code.+newListSensitivityInspectionTemplatesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListSensitivityInspectionTemplatesResponse+newListSensitivityInspectionTemplatesResponse+  pHttpStatus_ =+    ListSensitivityInspectionTemplatesResponse'+      { nextToken =+          Prelude.Nothing,+        sensitivityInspectionTemplates =+          Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | The string to use in a subsequent request to get the next page of+-- results in a paginated response. This value is null if there are no+-- additional pages.+listSensitivityInspectionTemplatesResponse_nextToken :: Lens.Lens' ListSensitivityInspectionTemplatesResponse (Prelude.Maybe Prelude.Text)+listSensitivityInspectionTemplatesResponse_nextToken = Lens.lens (\ListSensitivityInspectionTemplatesResponse' {nextToken} -> nextToken) (\s@ListSensitivityInspectionTemplatesResponse' {} a -> s {nextToken = a} :: ListSensitivityInspectionTemplatesResponse)++-- | An array that specifies the unique identifier and name of the+-- sensitivity inspection template for the account.+listSensitivityInspectionTemplatesResponse_sensitivityInspectionTemplates :: Lens.Lens' ListSensitivityInspectionTemplatesResponse (Prelude.Maybe [SensitivityInspectionTemplatesEntry])+listSensitivityInspectionTemplatesResponse_sensitivityInspectionTemplates = Lens.lens (\ListSensitivityInspectionTemplatesResponse' {sensitivityInspectionTemplates} -> sensitivityInspectionTemplates) (\s@ListSensitivityInspectionTemplatesResponse' {} a -> s {sensitivityInspectionTemplates = a} :: ListSensitivityInspectionTemplatesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listSensitivityInspectionTemplatesResponse_httpStatus :: Lens.Lens' ListSensitivityInspectionTemplatesResponse Prelude.Int+listSensitivityInspectionTemplatesResponse_httpStatus = Lens.lens (\ListSensitivityInspectionTemplatesResponse' {httpStatus} -> httpStatus) (\s@ListSensitivityInspectionTemplatesResponse' {} a -> s {httpStatus = a} :: ListSensitivityInspectionTemplatesResponse)++instance+  Prelude.NFData+    ListSensitivityInspectionTemplatesResponse+  where+  rnf ListSensitivityInspectionTemplatesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf sensitivityInspectionTemplates+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/ListTagsForResource.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.MacieV2.ListTagsForResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the tags (keys and values) that are associated with an Amazon+-- Macie resource.+module Amazonka.MacieV2.ListTagsForResource+  ( -- * Creating a Request+    ListTagsForResource (..),+    newListTagsForResource,++    -- * Request Lenses+    listTagsForResource_resourceArn,++    -- * Destructuring the Response+    ListTagsForResourceResponse (..),+    newListTagsForResourceResponse,++    -- * Response Lenses+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListTagsForResource' smart constructor.+data ListTagsForResource = ListTagsForResource'+  { -- | The 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'+  { -- | A map of key-value pairs that specifies which tags (keys and values) are+    -- associated with the resource.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tags', 'listTagsForResourceResponse_tags' - A map of key-value pairs that specifies which tags (keys and values) are+-- associated with the resource.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+  ListTagsForResourceResponse'+    { tags =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A map of key-value pairs that specifies which tags (keys and values) are+-- associated with the resource.+listTagsForResourceResponse_tags :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+listTagsForResourceResponse_tags = Lens.lens (\ListTagsForResourceResponse' {tags} -> tags) (\s@ListTagsForResourceResponse' {} a -> s {tags = a} :: ListTagsForResourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listTagsForResourceResponse_httpStatus :: Lens.Lens' ListTagsForResourceResponse Prelude.Int+listTagsForResourceResponse_httpStatus = Lens.lens (\ListTagsForResourceResponse' {httpStatus} -> httpStatus) (\s@ListTagsForResourceResponse' {} a -> s {httpStatus = a} :: ListTagsForResourceResponse)++instance Prelude.NFData ListTagsForResourceResponse where+  rnf ListTagsForResourceResponse' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/PutClassificationExportConfiguration.hs view
@@ -0,0 +1,207 @@+{-# 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.MacieV2.PutClassificationExportConfiguration+-- 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 or updates the configuration settings for storing data+-- classification results.+module Amazonka.MacieV2.PutClassificationExportConfiguration+  ( -- * Creating a Request+    PutClassificationExportConfiguration (..),+    newPutClassificationExportConfiguration,++    -- * Request Lenses+    putClassificationExportConfiguration_configuration,++    -- * Destructuring the Response+    PutClassificationExportConfigurationResponse (..),+    newPutClassificationExportConfigurationResponse,++    -- * Response Lenses+    putClassificationExportConfigurationResponse_configuration,+    putClassificationExportConfigurationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newPutClassificationExportConfiguration' smart constructor.+data PutClassificationExportConfiguration = PutClassificationExportConfiguration'+  { -- | The location to store data classification results in, and the encryption+    -- settings to use when storing results in that location.+    configuration :: ClassificationExportConfiguration+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutClassificationExportConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configuration', 'putClassificationExportConfiguration_configuration' - The location to store data classification results in, and the encryption+-- settings to use when storing results in that location.+newPutClassificationExportConfiguration ::+  -- | 'configuration'+  ClassificationExportConfiguration ->+  PutClassificationExportConfiguration+newPutClassificationExportConfiguration+  pConfiguration_ =+    PutClassificationExportConfiguration'+      { configuration =+          pConfiguration_+      }++-- | The location to store data classification results in, and the encryption+-- settings to use when storing results in that location.+putClassificationExportConfiguration_configuration :: Lens.Lens' PutClassificationExportConfiguration ClassificationExportConfiguration+putClassificationExportConfiguration_configuration = Lens.lens (\PutClassificationExportConfiguration' {configuration} -> configuration) (\s@PutClassificationExportConfiguration' {} a -> s {configuration = a} :: PutClassificationExportConfiguration)++instance+  Core.AWSRequest+    PutClassificationExportConfiguration+  where+  type+    AWSResponse PutClassificationExportConfiguration =+      PutClassificationExportConfigurationResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          PutClassificationExportConfigurationResponse'+            Prelude.<$> (x Data..?> "configuration")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    PutClassificationExportConfiguration+  where+  hashWithSalt+    _salt+    PutClassificationExportConfiguration' {..} =+      _salt `Prelude.hashWithSalt` configuration++instance+  Prelude.NFData+    PutClassificationExportConfiguration+  where+  rnf PutClassificationExportConfiguration' {..} =+    Prelude.rnf configuration++instance+  Data.ToHeaders+    PutClassificationExportConfiguration+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    PutClassificationExportConfiguration+  where+  toJSON PutClassificationExportConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("configuration" Data..= configuration)+          ]+      )++instance+  Data.ToPath+    PutClassificationExportConfiguration+  where+  toPath =+    Prelude.const+      "/classification-export-configuration"++instance+  Data.ToQuery+    PutClassificationExportConfiguration+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPutClassificationExportConfigurationResponse' smart constructor.+data PutClassificationExportConfigurationResponse = PutClassificationExportConfigurationResponse'+  { -- | The location where the data classification results are stored, and the+    -- encryption settings that are used when storing results in that location.+    configuration :: Prelude.Maybe ClassificationExportConfiguration,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutClassificationExportConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configuration', 'putClassificationExportConfigurationResponse_configuration' - The location where the data classification results are stored, and the+-- encryption settings that are used when storing results in that location.+--+-- 'httpStatus', 'putClassificationExportConfigurationResponse_httpStatus' - The response's http status code.+newPutClassificationExportConfigurationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  PutClassificationExportConfigurationResponse+newPutClassificationExportConfigurationResponse+  pHttpStatus_ =+    PutClassificationExportConfigurationResponse'+      { configuration =+          Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | The location where the data classification results are stored, and the+-- encryption settings that are used when storing results in that location.+putClassificationExportConfigurationResponse_configuration :: Lens.Lens' PutClassificationExportConfigurationResponse (Prelude.Maybe ClassificationExportConfiguration)+putClassificationExportConfigurationResponse_configuration = Lens.lens (\PutClassificationExportConfigurationResponse' {configuration} -> configuration) (\s@PutClassificationExportConfigurationResponse' {} a -> s {configuration = a} :: PutClassificationExportConfigurationResponse)++-- | The response's http status code.+putClassificationExportConfigurationResponse_httpStatus :: Lens.Lens' PutClassificationExportConfigurationResponse Prelude.Int+putClassificationExportConfigurationResponse_httpStatus = Lens.lens (\PutClassificationExportConfigurationResponse' {httpStatus} -> httpStatus) (\s@PutClassificationExportConfigurationResponse' {} a -> s {httpStatus = a} :: PutClassificationExportConfigurationResponse)++instance+  Prelude.NFData+    PutClassificationExportConfigurationResponse+  where+  rnf PutClassificationExportConfigurationResponse' {..} =+    Prelude.rnf configuration+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/PutFindingsPublicationConfiguration.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.MacieV2.PutFindingsPublicationConfiguration+-- 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 configuration settings for publishing findings to Security+-- Hub.+module Amazonka.MacieV2.PutFindingsPublicationConfiguration+  ( -- * Creating a Request+    PutFindingsPublicationConfiguration (..),+    newPutFindingsPublicationConfiguration,++    -- * Request Lenses+    putFindingsPublicationConfiguration_clientToken,+    putFindingsPublicationConfiguration_securityHubConfiguration,++    -- * Destructuring the Response+    PutFindingsPublicationConfigurationResponse (..),+    newPutFindingsPublicationConfigurationResponse,++    -- * Response Lenses+    putFindingsPublicationConfigurationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newPutFindingsPublicationConfiguration' smart constructor.+data PutFindingsPublicationConfiguration = PutFindingsPublicationConfiguration'+  { -- | A unique, case-sensitive token that you provide to ensure the+    -- idempotency of the request.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The configuration settings that determine which findings to publish to+    -- Security Hub.+    securityHubConfiguration :: Prelude.Maybe SecurityHubConfiguration+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutFindingsPublicationConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'putFindingsPublicationConfiguration_clientToken' - A unique, case-sensitive token that you provide to ensure the+-- idempotency of the request.+--+-- 'securityHubConfiguration', 'putFindingsPublicationConfiguration_securityHubConfiguration' - The configuration settings that determine which findings to publish to+-- Security Hub.+newPutFindingsPublicationConfiguration ::+  PutFindingsPublicationConfiguration+newPutFindingsPublicationConfiguration =+  PutFindingsPublicationConfiguration'+    { clientToken =+        Prelude.Nothing,+      securityHubConfiguration =+        Prelude.Nothing+    }++-- | A unique, case-sensitive token that you provide to ensure the+-- idempotency of the request.+putFindingsPublicationConfiguration_clientToken :: Lens.Lens' PutFindingsPublicationConfiguration (Prelude.Maybe Prelude.Text)+putFindingsPublicationConfiguration_clientToken = Lens.lens (\PutFindingsPublicationConfiguration' {clientToken} -> clientToken) (\s@PutFindingsPublicationConfiguration' {} a -> s {clientToken = a} :: PutFindingsPublicationConfiguration)++-- | The configuration settings that determine which findings to publish to+-- Security Hub.+putFindingsPublicationConfiguration_securityHubConfiguration :: Lens.Lens' PutFindingsPublicationConfiguration (Prelude.Maybe SecurityHubConfiguration)+putFindingsPublicationConfiguration_securityHubConfiguration = Lens.lens (\PutFindingsPublicationConfiguration' {securityHubConfiguration} -> securityHubConfiguration) (\s@PutFindingsPublicationConfiguration' {} a -> s {securityHubConfiguration = a} :: PutFindingsPublicationConfiguration)++instance+  Core.AWSRequest+    PutFindingsPublicationConfiguration+  where+  type+    AWSResponse PutFindingsPublicationConfiguration =+      PutFindingsPublicationConfigurationResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          PutFindingsPublicationConfigurationResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    PutFindingsPublicationConfiguration+  where+  hashWithSalt+    _salt+    PutFindingsPublicationConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` clientToken+        `Prelude.hashWithSalt` securityHubConfiguration++instance+  Prelude.NFData+    PutFindingsPublicationConfiguration+  where+  rnf PutFindingsPublicationConfiguration' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf securityHubConfiguration++instance+  Data.ToHeaders+    PutFindingsPublicationConfiguration+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    PutFindingsPublicationConfiguration+  where+  toJSON PutFindingsPublicationConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("clientToken" Data..=) Prelude.<$> clientToken,+            ("securityHubConfiguration" Data..=)+              Prelude.<$> securityHubConfiguration+          ]+      )++instance+  Data.ToPath+    PutFindingsPublicationConfiguration+  where+  toPath =+    Prelude.const "/findings-publication-configuration"++instance+  Data.ToQuery+    PutFindingsPublicationConfiguration+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPutFindingsPublicationConfigurationResponse' smart constructor.+data PutFindingsPublicationConfigurationResponse = PutFindingsPublicationConfigurationResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutFindingsPublicationConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putFindingsPublicationConfigurationResponse_httpStatus' - The response's http status code.+newPutFindingsPublicationConfigurationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  PutFindingsPublicationConfigurationResponse+newPutFindingsPublicationConfigurationResponse+  pHttpStatus_ =+    PutFindingsPublicationConfigurationResponse'+      { httpStatus =+          pHttpStatus_+      }++-- | The response's http status code.+putFindingsPublicationConfigurationResponse_httpStatus :: Lens.Lens' PutFindingsPublicationConfigurationResponse Prelude.Int+putFindingsPublicationConfigurationResponse_httpStatus = Lens.lens (\PutFindingsPublicationConfigurationResponse' {httpStatus} -> httpStatus) (\s@PutFindingsPublicationConfigurationResponse' {} a -> s {httpStatus = a} :: PutFindingsPublicationConfigurationResponse)++instance+  Prelude.NFData+    PutFindingsPublicationConfigurationResponse+  where+  rnf PutFindingsPublicationConfigurationResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/SearchResources.hs view
@@ -0,0 +1,266 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.SearchResources+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves (queries) statistical data and other information about Amazon+-- Web Services resources that Amazon Macie monitors and analyzes.+--+-- This operation returns paginated results.+module Amazonka.MacieV2.SearchResources+  ( -- * Creating a Request+    SearchResources (..),+    newSearchResources,++    -- * Request Lenses+    searchResources_bucketCriteria,+    searchResources_maxResults,+    searchResources_nextToken,+    searchResources_sortCriteria,++    -- * Destructuring the Response+    SearchResourcesResponse (..),+    newSearchResourcesResponse,++    -- * Response Lenses+    searchResourcesResponse_matchingResources,+    searchResourcesResponse_nextToken,+    searchResourcesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newSearchResources' smart constructor.+data SearchResources = SearchResources'+  { -- | The filter conditions that determine which S3 buckets to include or+    -- exclude from the query results.+    bucketCriteria :: Prelude.Maybe SearchResourcesBucketCriteria,+    -- | The maximum number of items to include in each page of the response. The+    -- default value is 50.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | The nextToken string that specifies which page of results to return in a+    -- paginated response.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The criteria to use to sort the results.+    sortCriteria :: Prelude.Maybe SearchResourcesSortCriteria+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SearchResources' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'bucketCriteria', 'searchResources_bucketCriteria' - The filter conditions that determine which S3 buckets to include or+-- exclude from the query results.+--+-- 'maxResults', 'searchResources_maxResults' - The maximum number of items to include in each page of the response. The+-- default value is 50.+--+-- 'nextToken', 'searchResources_nextToken' - The nextToken string that specifies which page of results to return in a+-- paginated response.+--+-- 'sortCriteria', 'searchResources_sortCriteria' - The criteria to use to sort the results.+newSearchResources ::+  SearchResources+newSearchResources =+  SearchResources'+    { bucketCriteria = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      sortCriteria = Prelude.Nothing+    }++-- | The filter conditions that determine which S3 buckets to include or+-- exclude from the query results.+searchResources_bucketCriteria :: Lens.Lens' SearchResources (Prelude.Maybe SearchResourcesBucketCriteria)+searchResources_bucketCriteria = Lens.lens (\SearchResources' {bucketCriteria} -> bucketCriteria) (\s@SearchResources' {} a -> s {bucketCriteria = a} :: SearchResources)++-- | The maximum number of items to include in each page of the response. The+-- default value is 50.+searchResources_maxResults :: Lens.Lens' SearchResources (Prelude.Maybe Prelude.Int)+searchResources_maxResults = Lens.lens (\SearchResources' {maxResults} -> maxResults) (\s@SearchResources' {} a -> s {maxResults = a} :: SearchResources)++-- | The nextToken string that specifies which page of results to return in a+-- paginated response.+searchResources_nextToken :: Lens.Lens' SearchResources (Prelude.Maybe Prelude.Text)+searchResources_nextToken = Lens.lens (\SearchResources' {nextToken} -> nextToken) (\s@SearchResources' {} a -> s {nextToken = a} :: SearchResources)++-- | The criteria to use to sort the results.+searchResources_sortCriteria :: Lens.Lens' SearchResources (Prelude.Maybe SearchResourcesSortCriteria)+searchResources_sortCriteria = Lens.lens (\SearchResources' {sortCriteria} -> sortCriteria) (\s@SearchResources' {} a -> s {sortCriteria = a} :: SearchResources)++instance Core.AWSPager SearchResources where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? searchResourcesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? searchResourcesResponse_matchingResources+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& searchResources_nextToken+          Lens..~ rs+          Lens.^? searchResourcesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest SearchResources where+  type+    AWSResponse SearchResources =+      SearchResourcesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          SearchResourcesResponse'+            Prelude.<$> ( x+                            Data..?> "matchingResources"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable SearchResources where+  hashWithSalt _salt SearchResources' {..} =+    _salt+      `Prelude.hashWithSalt` bucketCriteria+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` sortCriteria++instance Prelude.NFData SearchResources where+  rnf SearchResources' {..} =+    Prelude.rnf bucketCriteria+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf sortCriteria++instance Data.ToHeaders SearchResources where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON SearchResources where+  toJSON SearchResources' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("bucketCriteria" Data..=)+              Prelude.<$> bucketCriteria,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("sortCriteria" Data..=) Prelude.<$> sortCriteria+          ]+      )++instance Data.ToPath SearchResources where+  toPath =+    Prelude.const "/datasources/search-resources"++instance Data.ToQuery SearchResources where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newSearchResourcesResponse' smart constructor.+data SearchResourcesResponse = SearchResourcesResponse'+  { -- | An array of objects, one for each resource that matches the filter+    -- criteria specified in the request.+    matchingResources :: Prelude.Maybe [MatchingResource],+    -- | The string to use in a subsequent request to get the next page of+    -- results in a paginated response. This value is null if there are no+    -- additional pages.+    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 'SearchResourcesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'matchingResources', 'searchResourcesResponse_matchingResources' - An array of objects, one for each resource that matches the filter+-- criteria specified in the request.+--+-- 'nextToken', 'searchResourcesResponse_nextToken' - The string to use in a subsequent request to get the next page of+-- results in a paginated response. This value is null if there are no+-- additional pages.+--+-- 'httpStatus', 'searchResourcesResponse_httpStatus' - The response's http status code.+newSearchResourcesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  SearchResourcesResponse+newSearchResourcesResponse pHttpStatus_ =+  SearchResourcesResponse'+    { matchingResources =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array of objects, one for each resource that matches the filter+-- criteria specified in the request.+searchResourcesResponse_matchingResources :: Lens.Lens' SearchResourcesResponse (Prelude.Maybe [MatchingResource])+searchResourcesResponse_matchingResources = Lens.lens (\SearchResourcesResponse' {matchingResources} -> matchingResources) (\s@SearchResourcesResponse' {} a -> s {matchingResources = a} :: SearchResourcesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The string to use in a subsequent request to get the next page of+-- results in a paginated response. This value is null if there are no+-- additional pages.+searchResourcesResponse_nextToken :: Lens.Lens' SearchResourcesResponse (Prelude.Maybe Prelude.Text)+searchResourcesResponse_nextToken = Lens.lens (\SearchResourcesResponse' {nextToken} -> nextToken) (\s@SearchResourcesResponse' {} a -> s {nextToken = a} :: SearchResourcesResponse)++-- | The response's http status code.+searchResourcesResponse_httpStatus :: Lens.Lens' SearchResourcesResponse Prelude.Int+searchResourcesResponse_httpStatus = Lens.lens (\SearchResourcesResponse' {httpStatus} -> httpStatus) (\s@SearchResourcesResponse' {} a -> s {httpStatus = a} :: SearchResourcesResponse)++instance Prelude.NFData SearchResourcesResponse where+  rnf SearchResourcesResponse' {..} =+    Prelude.rnf matchingResources+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/TagResource.hs view
@@ -0,0 +1,179 @@+{-# 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.MacieV2.TagResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds or updates one or more tags (keys and values) that are associated+-- with an Amazon Macie resource.+module Amazonka.MacieV2.TagResource+  ( -- * Creating a Request+    TagResource (..),+    newTagResource,++    -- * Request Lenses+    tagResource_resourceArn,+    tagResource_tags,++    -- * Destructuring the Response+    TagResourceResponse (..),+    newTagResourceResponse,++    -- * Response Lenses+    tagResourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newTagResource' smart constructor.+data TagResource = TagResource'+  { -- | The Amazon Resource Name (ARN) of the resource.+    resourceArn :: Prelude.Text,+    -- | A map of key-value pairs that specifies the tags to associate with the+    -- resource.+    --+    -- A resource can have a maximum of 50 tags. Each tag consists of a tag key+    -- and an associated tag value. The maximum length of a tag key is 128+    -- characters. The maximum length of a tag value is 256 characters.+    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' - A map of key-value pairs that specifies the tags to associate with the+-- resource.+--+-- A resource can have a maximum of 50 tags. Each tag consists of a tag key+-- and an associated tag value. The maximum length of a tag key is 128+-- characters. The maximum length of a tag value is 256 characters.+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)++-- | A map of key-value pairs that specifies the tags to associate with the+-- resource.+--+-- A resource can have a maximum of 50 tags. Each tag consists of a tag key+-- and an associated tag value. The maximum length of a tag key is 128+-- characters. The maximum length of a tag value is 256 characters.+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/MacieV2/TestCustomDataIdentifier.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.MacieV2.TestCustomDataIdentifier+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Tests a custom data identifier.+module Amazonka.MacieV2.TestCustomDataIdentifier+  ( -- * Creating a Request+    TestCustomDataIdentifier (..),+    newTestCustomDataIdentifier,++    -- * Request Lenses+    testCustomDataIdentifier_ignoreWords,+    testCustomDataIdentifier_keywords,+    testCustomDataIdentifier_maximumMatchDistance,+    testCustomDataIdentifier_regex,+    testCustomDataIdentifier_sampleText,++    -- * Destructuring the Response+    TestCustomDataIdentifierResponse (..),+    newTestCustomDataIdentifierResponse,++    -- * Response Lenses+    testCustomDataIdentifierResponse_matchCount,+    testCustomDataIdentifierResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newTestCustomDataIdentifier' smart constructor.+data TestCustomDataIdentifier = TestCustomDataIdentifier'+  { -- | An array that lists specific character sequences (/ignore words/) to+    -- exclude from the results. If the text matched by the regular expression+    -- contains any string in this array, Amazon Macie ignores it. The array+    -- can contain as many as 10 ignore words. Each ignore word can contain+    -- 4-90 UTF-8 characters. Ignore words are case sensitive.+    ignoreWords :: Prelude.Maybe [Prelude.Text],+    -- | An array that lists specific character sequences (/keywords/), one of+    -- which must precede and be within proximity (maximumMatchDistance) of the+    -- regular expression to match. The array can contain as many as 50+    -- keywords. Each keyword can contain 3-90 UTF-8 characters. Keywords+    -- aren\'t case sensitive.+    keywords :: Prelude.Maybe [Prelude.Text],+    -- | The maximum number of characters that can exist between the end of at+    -- least one complete character sequence specified by the keywords array+    -- and the end of the text that matches the regex pattern. If a complete+    -- keyword precedes all the text that matches the pattern and the keyword+    -- is within the specified distance, Amazon Macie includes the result. The+    -- distance can be 1-300 characters. The default value is 50.+    maximumMatchDistance :: Prelude.Maybe Prelude.Int,+    -- | The regular expression (/regex/) that defines the pattern to match. The+    -- expression can contain as many as 512 characters.+    regex :: Prelude.Text,+    -- | The sample text to inspect by using the custom data identifier. The text+    -- can contain as many as 1,000 characters.+    sampleText :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TestCustomDataIdentifier' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'ignoreWords', 'testCustomDataIdentifier_ignoreWords' - An array that lists specific character sequences (/ignore words/) to+-- exclude from the results. If the text matched by the regular expression+-- contains any string in this array, Amazon Macie ignores it. The array+-- can contain as many as 10 ignore words. Each ignore word can contain+-- 4-90 UTF-8 characters. Ignore words are case sensitive.+--+-- 'keywords', 'testCustomDataIdentifier_keywords' - An array that lists specific character sequences (/keywords/), one of+-- which must precede and be within proximity (maximumMatchDistance) of the+-- regular expression to match. The array can contain as many as 50+-- keywords. Each keyword can contain 3-90 UTF-8 characters. Keywords+-- aren\'t case sensitive.+--+-- 'maximumMatchDistance', 'testCustomDataIdentifier_maximumMatchDistance' - The maximum number of characters that can exist between the end of at+-- least one complete character sequence specified by the keywords array+-- and the end of the text that matches the regex pattern. If a complete+-- keyword precedes all the text that matches the pattern and the keyword+-- is within the specified distance, Amazon Macie includes the result. The+-- distance can be 1-300 characters. The default value is 50.+--+-- 'regex', 'testCustomDataIdentifier_regex' - The regular expression (/regex/) that defines the pattern to match. The+-- expression can contain as many as 512 characters.+--+-- 'sampleText', 'testCustomDataIdentifier_sampleText' - The sample text to inspect by using the custom data identifier. The text+-- can contain as many as 1,000 characters.+newTestCustomDataIdentifier ::+  -- | 'regex'+  Prelude.Text ->+  -- | 'sampleText'+  Prelude.Text ->+  TestCustomDataIdentifier+newTestCustomDataIdentifier pRegex_ pSampleText_ =+  TestCustomDataIdentifier'+    { ignoreWords =+        Prelude.Nothing,+      keywords = Prelude.Nothing,+      maximumMatchDistance = Prelude.Nothing,+      regex = pRegex_,+      sampleText = pSampleText_+    }++-- | An array that lists specific character sequences (/ignore words/) to+-- exclude from the results. If the text matched by the regular expression+-- contains any string in this array, Amazon Macie ignores it. The array+-- can contain as many as 10 ignore words. Each ignore word can contain+-- 4-90 UTF-8 characters. Ignore words are case sensitive.+testCustomDataIdentifier_ignoreWords :: Lens.Lens' TestCustomDataIdentifier (Prelude.Maybe [Prelude.Text])+testCustomDataIdentifier_ignoreWords = Lens.lens (\TestCustomDataIdentifier' {ignoreWords} -> ignoreWords) (\s@TestCustomDataIdentifier' {} a -> s {ignoreWords = a} :: TestCustomDataIdentifier) Prelude.. Lens.mapping Lens.coerced++-- | An array that lists specific character sequences (/keywords/), one of+-- which must precede and be within proximity (maximumMatchDistance) of the+-- regular expression to match. The array can contain as many as 50+-- keywords. Each keyword can contain 3-90 UTF-8 characters. Keywords+-- aren\'t case sensitive.+testCustomDataIdentifier_keywords :: Lens.Lens' TestCustomDataIdentifier (Prelude.Maybe [Prelude.Text])+testCustomDataIdentifier_keywords = Lens.lens (\TestCustomDataIdentifier' {keywords} -> keywords) (\s@TestCustomDataIdentifier' {} a -> s {keywords = a} :: TestCustomDataIdentifier) Prelude.. Lens.mapping Lens.coerced++-- | The maximum number of characters that can exist between the end of at+-- least one complete character sequence specified by the keywords array+-- and the end of the text that matches the regex pattern. If a complete+-- keyword precedes all the text that matches the pattern and the keyword+-- is within the specified distance, Amazon Macie includes the result. The+-- distance can be 1-300 characters. The default value is 50.+testCustomDataIdentifier_maximumMatchDistance :: Lens.Lens' TestCustomDataIdentifier (Prelude.Maybe Prelude.Int)+testCustomDataIdentifier_maximumMatchDistance = Lens.lens (\TestCustomDataIdentifier' {maximumMatchDistance} -> maximumMatchDistance) (\s@TestCustomDataIdentifier' {} a -> s {maximumMatchDistance = a} :: TestCustomDataIdentifier)++-- | The regular expression (/regex/) that defines the pattern to match. The+-- expression can contain as many as 512 characters.+testCustomDataIdentifier_regex :: Lens.Lens' TestCustomDataIdentifier Prelude.Text+testCustomDataIdentifier_regex = Lens.lens (\TestCustomDataIdentifier' {regex} -> regex) (\s@TestCustomDataIdentifier' {} a -> s {regex = a} :: TestCustomDataIdentifier)++-- | The sample text to inspect by using the custom data identifier. The text+-- can contain as many as 1,000 characters.+testCustomDataIdentifier_sampleText :: Lens.Lens' TestCustomDataIdentifier Prelude.Text+testCustomDataIdentifier_sampleText = Lens.lens (\TestCustomDataIdentifier' {sampleText} -> sampleText) (\s@TestCustomDataIdentifier' {} a -> s {sampleText = a} :: TestCustomDataIdentifier)++instance Core.AWSRequest TestCustomDataIdentifier where+  type+    AWSResponse TestCustomDataIdentifier =+      TestCustomDataIdentifierResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          TestCustomDataIdentifierResponse'+            Prelude.<$> (x Data..?> "matchCount")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable TestCustomDataIdentifier where+  hashWithSalt _salt TestCustomDataIdentifier' {..} =+    _salt+      `Prelude.hashWithSalt` ignoreWords+      `Prelude.hashWithSalt` keywords+      `Prelude.hashWithSalt` maximumMatchDistance+      `Prelude.hashWithSalt` regex+      `Prelude.hashWithSalt` sampleText++instance Prelude.NFData TestCustomDataIdentifier where+  rnf TestCustomDataIdentifier' {..} =+    Prelude.rnf ignoreWords+      `Prelude.seq` Prelude.rnf keywords+      `Prelude.seq` Prelude.rnf maximumMatchDistance+      `Prelude.seq` Prelude.rnf regex+      `Prelude.seq` Prelude.rnf sampleText++instance Data.ToHeaders TestCustomDataIdentifier where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON TestCustomDataIdentifier where+  toJSON TestCustomDataIdentifier' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ignoreWords" Data..=) Prelude.<$> ignoreWords,+            ("keywords" Data..=) Prelude.<$> keywords,+            ("maximumMatchDistance" Data..=)+              Prelude.<$> maximumMatchDistance,+            Prelude.Just ("regex" Data..= regex),+            Prelude.Just ("sampleText" Data..= sampleText)+          ]+      )++instance Data.ToPath TestCustomDataIdentifier where+  toPath =+    Prelude.const "/custom-data-identifiers/test"++instance Data.ToQuery TestCustomDataIdentifier where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newTestCustomDataIdentifierResponse' smart constructor.+data TestCustomDataIdentifierResponse = TestCustomDataIdentifierResponse'+  { -- | The number of occurrences of sample text that matched the criteria+    -- specified by the custom data identifier.+    matchCount :: Prelude.Maybe Prelude.Int,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TestCustomDataIdentifierResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'matchCount', 'testCustomDataIdentifierResponse_matchCount' - The number of occurrences of sample text that matched the criteria+-- specified by the custom data identifier.+--+-- 'httpStatus', 'testCustomDataIdentifierResponse_httpStatus' - The response's http status code.+newTestCustomDataIdentifierResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  TestCustomDataIdentifierResponse+newTestCustomDataIdentifierResponse pHttpStatus_ =+  TestCustomDataIdentifierResponse'+    { matchCount =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The number of occurrences of sample text that matched the criteria+-- specified by the custom data identifier.+testCustomDataIdentifierResponse_matchCount :: Lens.Lens' TestCustomDataIdentifierResponse (Prelude.Maybe Prelude.Int)+testCustomDataIdentifierResponse_matchCount = Lens.lens (\TestCustomDataIdentifierResponse' {matchCount} -> matchCount) (\s@TestCustomDataIdentifierResponse' {} a -> s {matchCount = a} :: TestCustomDataIdentifierResponse)++-- | The response's http status code.+testCustomDataIdentifierResponse_httpStatus :: Lens.Lens' TestCustomDataIdentifierResponse Prelude.Int+testCustomDataIdentifierResponse_httpStatus = Lens.lens (\TestCustomDataIdentifierResponse' {httpStatus} -> httpStatus) (\s@TestCustomDataIdentifierResponse' {} a -> s {httpStatus = a} :: TestCustomDataIdentifierResponse)++instance+  Prelude.NFData+    TestCustomDataIdentifierResponse+  where+  rnf TestCustomDataIdentifierResponse' {..} =+    Prelude.rnf matchCount+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/Types.hs view
@@ -0,0 +1,1540 @@+{-# 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.MacieV2.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.MacieV2.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _AccessDeniedException,+    _ConflictException,+    _InternalServerException,+    _ResourceNotFoundException,+    _ServiceQuotaExceededException,+    _ThrottlingException,+    _UnprocessableEntityException,+    _ValidationException,++    -- * AdminStatus+    AdminStatus (..),++    -- * AllowListStatusCode+    AllowListStatusCode (..),++    -- * AllowsUnencryptedObjectUploads+    AllowsUnencryptedObjectUploads (..),++    -- * AutomatedDiscoveryStatus+    AutomatedDiscoveryStatus (..),++    -- * AvailabilityCode+    AvailabilityCode (..),++    -- * BucketMetadataErrorCode+    BucketMetadataErrorCode (..),++    -- * ClassificationScopeUpdateOperation+    ClassificationScopeUpdateOperation (..),++    -- * Currency+    Currency (..),++    -- * DataIdentifierSeverity+    DataIdentifierSeverity (..),++    -- * DataIdentifierType+    DataIdentifierType (..),++    -- * DayOfWeek+    DayOfWeek (..),++    -- * EffectivePermission+    EffectivePermission (..),++    -- * EncryptionType+    EncryptionType (..),++    -- * ErrorCode+    ErrorCode (..),++    -- * FindingActionType+    FindingActionType (..),++    -- * FindingCategory+    FindingCategory (..),++    -- * FindingPublishingFrequency+    FindingPublishingFrequency (..),++    -- * FindingStatisticsSortAttributeName+    FindingStatisticsSortAttributeName (..),++    -- * FindingType+    FindingType (..),++    -- * FindingsFilterAction+    FindingsFilterAction (..),++    -- * GroupBy+    GroupBy (..),++    -- * IsDefinedInJob+    IsDefinedInJob (..),++    -- * IsMonitoredByJob+    IsMonitoredByJob (..),++    -- * JobComparator+    JobComparator (..),++    -- * JobStatus+    JobStatus (..),++    -- * JobType+    JobType (..),++    -- * LastRunErrorStatusCode+    LastRunErrorStatusCode (..),++    -- * ListJobsFilterKey+    ListJobsFilterKey (..),++    -- * ListJobsSortAttributeName+    ListJobsSortAttributeName (..),++    -- * MacieStatus+    MacieStatus (..),++    -- * ManagedDataIdentifierSelector+    ManagedDataIdentifierSelector (..),++    -- * OrderBy+    OrderBy (..),++    -- * OriginType+    OriginType (..),++    -- * RelationshipStatus+    RelationshipStatus (..),++    -- * RevealRequestStatus+    RevealRequestStatus (..),++    -- * RevealStatus+    RevealStatus (..),++    -- * ScopeFilterKey+    ScopeFilterKey (..),++    -- * SearchResourcesComparator+    SearchResourcesComparator (..),++    -- * SearchResourcesSimpleCriterionKey+    SearchResourcesSimpleCriterionKey (..),++    -- * SearchResourcesSortAttributeName+    SearchResourcesSortAttributeName (..),++    -- * SensitiveDataItemCategory+    SensitiveDataItemCategory (..),++    -- * SeverityDescription+    SeverityDescription (..),++    -- * SharedAccess+    SharedAccess (..),++    -- * SimpleCriterionKeyForJob+    SimpleCriterionKeyForJob (..),++    -- * StorageClass+    StorageClass (..),++    -- * TagTarget+    TagTarget (..),++    -- * TimeRange+    TimeRange (..),++    -- * Type+    Type (..),++    -- * UnavailabilityReasonCode+    UnavailabilityReasonCode (..),++    -- * Unit+    Unit (..),++    -- * UsageStatisticsFilterComparator+    UsageStatisticsFilterComparator (..),++    -- * UsageStatisticsFilterKey+    UsageStatisticsFilterKey (..),++    -- * UsageStatisticsSortKey+    UsageStatisticsSortKey (..),++    -- * UsageType+    UsageType (..),++    -- * UserIdentityType+    UserIdentityType (..),++    -- * AccessControlList+    AccessControlList (..),+    newAccessControlList,+    accessControlList_allowsPublicReadAccess,+    accessControlList_allowsPublicWriteAccess,++    -- * AccountDetail+    AccountDetail (..),+    newAccountDetail,+    accountDetail_email,+    accountDetail_accountId,++    -- * AccountLevelPermissions+    AccountLevelPermissions (..),+    newAccountLevelPermissions,+    accountLevelPermissions_blockPublicAccess,++    -- * AdminAccount+    AdminAccount (..),+    newAdminAccount,+    adminAccount_accountId,+    adminAccount_status,++    -- * AllowListCriteria+    AllowListCriteria (..),+    newAllowListCriteria,+    allowListCriteria_regex,+    allowListCriteria_s3WordsList,++    -- * AllowListStatus+    AllowListStatus (..),+    newAllowListStatus,+    allowListStatus_description,+    allowListStatus_code,++    -- * AllowListSummary+    AllowListSummary (..),+    newAllowListSummary,+    allowListSummary_arn,+    allowListSummary_createdAt,+    allowListSummary_description,+    allowListSummary_id,+    allowListSummary_name,+    allowListSummary_updatedAt,++    -- * ApiCallDetails+    ApiCallDetails (..),+    newApiCallDetails,+    apiCallDetails_api,+    apiCallDetails_apiServiceName,+    apiCallDetails_firstSeen,+    apiCallDetails_lastSeen,++    -- * AssumedRole+    AssumedRole (..),+    newAssumedRole,+    assumedRole_accessKeyId,+    assumedRole_accountId,+    assumedRole_arn,+    assumedRole_principalId,+    assumedRole_sessionContext,++    -- * AwsAccount+    AwsAccount (..),+    newAwsAccount,+    awsAccount_accountId,+    awsAccount_principalId,++    -- * AwsService+    AwsService (..),+    newAwsService,+    awsService_invokedBy,++    -- * BatchGetCustomDataIdentifierSummary+    BatchGetCustomDataIdentifierSummary (..),+    newBatchGetCustomDataIdentifierSummary,+    batchGetCustomDataIdentifierSummary_arn,+    batchGetCustomDataIdentifierSummary_createdAt,+    batchGetCustomDataIdentifierSummary_deleted,+    batchGetCustomDataIdentifierSummary_description,+    batchGetCustomDataIdentifierSummary_id,+    batchGetCustomDataIdentifierSummary_name,++    -- * BlockPublicAccess+    BlockPublicAccess (..),+    newBlockPublicAccess,+    blockPublicAccess_blockPublicAcls,+    blockPublicAccess_blockPublicPolicy,+    blockPublicAccess_ignorePublicAcls,+    blockPublicAccess_restrictPublicBuckets,++    -- * BucketCountByEffectivePermission+    BucketCountByEffectivePermission (..),+    newBucketCountByEffectivePermission,+    bucketCountByEffectivePermission_publiclyAccessible,+    bucketCountByEffectivePermission_publiclyReadable,+    bucketCountByEffectivePermission_publiclyWritable,+    bucketCountByEffectivePermission_unknown,++    -- * BucketCountByEncryptionType+    BucketCountByEncryptionType (..),+    newBucketCountByEncryptionType,+    bucketCountByEncryptionType_kmsManaged,+    bucketCountByEncryptionType_s3Managed,+    bucketCountByEncryptionType_unencrypted,+    bucketCountByEncryptionType_unknown,++    -- * BucketCountBySharedAccessType+    BucketCountBySharedAccessType (..),+    newBucketCountBySharedAccessType,+    bucketCountBySharedAccessType_external,+    bucketCountBySharedAccessType_internal,+    bucketCountBySharedAccessType_notShared,+    bucketCountBySharedAccessType_unknown,++    -- * BucketCountPolicyAllowsUnencryptedObjectUploads+    BucketCountPolicyAllowsUnencryptedObjectUploads (..),+    newBucketCountPolicyAllowsUnencryptedObjectUploads,+    bucketCountPolicyAllowsUnencryptedObjectUploads_allowsUnencryptedObjectUploads,+    bucketCountPolicyAllowsUnencryptedObjectUploads_deniesUnencryptedObjectUploads,+    bucketCountPolicyAllowsUnencryptedObjectUploads_unknown,++    -- * BucketCriteriaAdditionalProperties+    BucketCriteriaAdditionalProperties (..),+    newBucketCriteriaAdditionalProperties,+    bucketCriteriaAdditionalProperties_eq,+    bucketCriteriaAdditionalProperties_gt,+    bucketCriteriaAdditionalProperties_gte,+    bucketCriteriaAdditionalProperties_lt,+    bucketCriteriaAdditionalProperties_lte,+    bucketCriteriaAdditionalProperties_neq,+    bucketCriteriaAdditionalProperties_prefix,++    -- * BucketLevelPermissions+    BucketLevelPermissions (..),+    newBucketLevelPermissions,+    bucketLevelPermissions_accessControlList,+    bucketLevelPermissions_blockPublicAccess,+    bucketLevelPermissions_bucketPolicy,++    -- * BucketMetadata+    BucketMetadata (..),+    newBucketMetadata,+    bucketMetadata_accountId,+    bucketMetadata_allowsUnencryptedObjectUploads,+    bucketMetadata_bucketArn,+    bucketMetadata_bucketCreatedAt,+    bucketMetadata_bucketName,+    bucketMetadata_classifiableObjectCount,+    bucketMetadata_classifiableSizeInBytes,+    bucketMetadata_errorCode,+    bucketMetadata_errorMessage,+    bucketMetadata_jobDetails,+    bucketMetadata_lastAutomatedDiscoveryTime,+    bucketMetadata_lastUpdated,+    bucketMetadata_objectCount,+    bucketMetadata_objectCountByEncryptionType,+    bucketMetadata_publicAccess,+    bucketMetadata_region,+    bucketMetadata_replicationDetails,+    bucketMetadata_sensitivityScore,+    bucketMetadata_serverSideEncryption,+    bucketMetadata_sharedAccess,+    bucketMetadata_sizeInBytes,+    bucketMetadata_sizeInBytesCompressed,+    bucketMetadata_tags,+    bucketMetadata_unclassifiableObjectCount,+    bucketMetadata_unclassifiableObjectSizeInBytes,+    bucketMetadata_versioning,++    -- * BucketPermissionConfiguration+    BucketPermissionConfiguration (..),+    newBucketPermissionConfiguration,+    bucketPermissionConfiguration_accountLevelPermissions,+    bucketPermissionConfiguration_bucketLevelPermissions,++    -- * BucketPolicy+    BucketPolicy (..),+    newBucketPolicy,+    bucketPolicy_allowsPublicReadAccess,+    bucketPolicy_allowsPublicWriteAccess,++    -- * BucketPublicAccess+    BucketPublicAccess (..),+    newBucketPublicAccess,+    bucketPublicAccess_effectivePermission,+    bucketPublicAccess_permissionConfiguration,++    -- * BucketServerSideEncryption+    BucketServerSideEncryption (..),+    newBucketServerSideEncryption,+    bucketServerSideEncryption_kmsMasterKeyId,+    bucketServerSideEncryption_type,++    -- * BucketSortCriteria+    BucketSortCriteria (..),+    newBucketSortCriteria,+    bucketSortCriteria_attributeName,+    bucketSortCriteria_orderBy,++    -- * BucketStatisticsBySensitivity+    BucketStatisticsBySensitivity (..),+    newBucketStatisticsBySensitivity,+    bucketStatisticsBySensitivity_classificationError,+    bucketStatisticsBySensitivity_notClassified,+    bucketStatisticsBySensitivity_notSensitive,+    bucketStatisticsBySensitivity_sensitive,++    -- * Cell+    Cell (..),+    newCell,+    cell_cellReference,+    cell_column,+    cell_columnName,+    cell_row,++    -- * ClassificationDetails+    ClassificationDetails (..),+    newClassificationDetails,+    classificationDetails_detailedResultsLocation,+    classificationDetails_jobArn,+    classificationDetails_jobId,+    classificationDetails_originType,+    classificationDetails_result,++    -- * ClassificationExportConfiguration+    ClassificationExportConfiguration (..),+    newClassificationExportConfiguration,+    classificationExportConfiguration_s3Destination,++    -- * ClassificationResult+    ClassificationResult (..),+    newClassificationResult,+    classificationResult_additionalOccurrences,+    classificationResult_customDataIdentifiers,+    classificationResult_mimeType,+    classificationResult_sensitiveData,+    classificationResult_sizeClassified,+    classificationResult_status,++    -- * ClassificationResultStatus+    ClassificationResultStatus (..),+    newClassificationResultStatus,+    classificationResultStatus_code,+    classificationResultStatus_reason,++    -- * ClassificationScopeSummary+    ClassificationScopeSummary (..),+    newClassificationScopeSummary,+    classificationScopeSummary_id,+    classificationScopeSummary_name,++    -- * CriteriaBlockForJob+    CriteriaBlockForJob (..),+    newCriteriaBlockForJob,+    criteriaBlockForJob_and,++    -- * CriteriaForJob+    CriteriaForJob (..),+    newCriteriaForJob,+    criteriaForJob_simpleCriterion,+    criteriaForJob_tagCriterion,++    -- * CriterionAdditionalProperties+    CriterionAdditionalProperties (..),+    newCriterionAdditionalProperties,+    criterionAdditionalProperties_eq,+    criterionAdditionalProperties_eqExactMatch,+    criterionAdditionalProperties_gt,+    criterionAdditionalProperties_gte,+    criterionAdditionalProperties_lt,+    criterionAdditionalProperties_lte,+    criterionAdditionalProperties_neq,++    -- * CustomDataIdentifierSummary+    CustomDataIdentifierSummary (..),+    newCustomDataIdentifierSummary,+    customDataIdentifierSummary_arn,+    customDataIdentifierSummary_createdAt,+    customDataIdentifierSummary_description,+    customDataIdentifierSummary_id,+    customDataIdentifierSummary_name,++    -- * CustomDataIdentifiers+    CustomDataIdentifiers (..),+    newCustomDataIdentifiers,+    customDataIdentifiers_detections,+    customDataIdentifiers_totalCount,++    -- * CustomDetection+    CustomDetection (..),+    newCustomDetection,+    customDetection_arn,+    customDetection_count,+    customDetection_name,+    customDetection_occurrences,++    -- * DailySchedule+    DailySchedule (..),+    newDailySchedule,++    -- * DefaultDetection+    DefaultDetection (..),+    newDefaultDetection,+    defaultDetection_count,+    defaultDetection_occurrences,+    defaultDetection_type,++    -- * DetectedDataDetails+    DetectedDataDetails (..),+    newDetectedDataDetails,+    detectedDataDetails_value,++    -- * Detection+    Detection (..),+    newDetection,+    detection_arn,+    detection_count,+    detection_id,+    detection_name,+    detection_suppressed,+    detection_type,++    -- * DomainDetails+    DomainDetails (..),+    newDomainDetails,+    domainDetails_domainName,++    -- * FederatedUser+    FederatedUser (..),+    newFederatedUser,+    federatedUser_accessKeyId,+    federatedUser_accountId,+    federatedUser_arn,+    federatedUser_principalId,+    federatedUser_sessionContext,++    -- * Finding+    Finding (..),+    newFinding,+    finding_accountId,+    finding_archived,+    finding_category,+    finding_classificationDetails,+    finding_count,+    finding_createdAt,+    finding_description,+    finding_id,+    finding_partition,+    finding_policyDetails,+    finding_region,+    finding_resourcesAffected,+    finding_sample,+    finding_schemaVersion,+    finding_severity,+    finding_title,+    finding_type,+    finding_updatedAt,++    -- * FindingAction+    FindingAction (..),+    newFindingAction,+    findingAction_actionType,+    findingAction_apiCallDetails,++    -- * FindingActor+    FindingActor (..),+    newFindingActor,+    findingActor_domainDetails,+    findingActor_ipAddressDetails,+    findingActor_userIdentity,++    -- * FindingCriteria+    FindingCriteria (..),+    newFindingCriteria,+    findingCriteria_criterion,++    -- * FindingStatisticsSortCriteria+    FindingStatisticsSortCriteria (..),+    newFindingStatisticsSortCriteria,+    findingStatisticsSortCriteria_attributeName,+    findingStatisticsSortCriteria_orderBy,++    -- * FindingsFilterListItem+    FindingsFilterListItem (..),+    newFindingsFilterListItem,+    findingsFilterListItem_action,+    findingsFilterListItem_arn,+    findingsFilterListItem_id,+    findingsFilterListItem_name,+    findingsFilterListItem_tags,++    -- * GroupCount+    GroupCount (..),+    newGroupCount,+    groupCount_count,+    groupCount_groupKey,++    -- * IamUser+    IamUser (..),+    newIamUser,+    iamUser_accountId,+    iamUser_arn,+    iamUser_principalId,+    iamUser_userName,++    -- * Invitation+    Invitation (..),+    newInvitation,+    invitation_accountId,+    invitation_invitationId,+    invitation_invitedAt,+    invitation_relationshipStatus,++    -- * IpAddressDetails+    IpAddressDetails (..),+    newIpAddressDetails,+    ipAddressDetails_ipAddressV4,+    ipAddressDetails_ipCity,+    ipAddressDetails_ipCountry,+    ipAddressDetails_ipGeoLocation,+    ipAddressDetails_ipOwner,++    -- * IpCity+    IpCity (..),+    newIpCity,+    ipCity_name,++    -- * IpCountry+    IpCountry (..),+    newIpCountry,+    ipCountry_code,+    ipCountry_name,++    -- * IpGeoLocation+    IpGeoLocation (..),+    newIpGeoLocation,+    ipGeoLocation_lat,+    ipGeoLocation_lon,++    -- * IpOwner+    IpOwner (..),+    newIpOwner,+    ipOwner_asn,+    ipOwner_asnOrg,+    ipOwner_isp,+    ipOwner_org,++    -- * JobDetails+    JobDetails (..),+    newJobDetails,+    jobDetails_isDefinedInJob,+    jobDetails_isMonitoredByJob,+    jobDetails_lastJobId,+    jobDetails_lastJobRunTime,++    -- * JobScheduleFrequency+    JobScheduleFrequency (..),+    newJobScheduleFrequency,+    jobScheduleFrequency_dailySchedule,+    jobScheduleFrequency_monthlySchedule,+    jobScheduleFrequency_weeklySchedule,++    -- * JobScopeTerm+    JobScopeTerm (..),+    newJobScopeTerm,+    jobScopeTerm_simpleScopeTerm,+    jobScopeTerm_tagScopeTerm,++    -- * JobScopingBlock+    JobScopingBlock (..),+    newJobScopingBlock,+    jobScopingBlock_and,++    -- * JobSummary+    JobSummary (..),+    newJobSummary,+    jobSummary_bucketCriteria,+    jobSummary_bucketDefinitions,+    jobSummary_createdAt,+    jobSummary_jobId,+    jobSummary_jobStatus,+    jobSummary_jobType,+    jobSummary_lastRunErrorStatus,+    jobSummary_name,+    jobSummary_userPausedDetails,++    -- * KeyValuePair+    KeyValuePair (..),+    newKeyValuePair,+    keyValuePair_key,+    keyValuePair_value,++    -- * LastRunErrorStatus+    LastRunErrorStatus (..),+    newLastRunErrorStatus,+    lastRunErrorStatus_code,++    -- * ListJobsFilterCriteria+    ListJobsFilterCriteria (..),+    newListJobsFilterCriteria,+    listJobsFilterCriteria_excludes,+    listJobsFilterCriteria_includes,++    -- * ListJobsFilterTerm+    ListJobsFilterTerm (..),+    newListJobsFilterTerm,+    listJobsFilterTerm_comparator,+    listJobsFilterTerm_key,+    listJobsFilterTerm_values,++    -- * ListJobsSortCriteria+    ListJobsSortCriteria (..),+    newListJobsSortCriteria,+    listJobsSortCriteria_attributeName,+    listJobsSortCriteria_orderBy,++    -- * ManagedDataIdentifierSummary+    ManagedDataIdentifierSummary (..),+    newManagedDataIdentifierSummary,+    managedDataIdentifierSummary_category,+    managedDataIdentifierSummary_id,++    -- * MatchingBucket+    MatchingBucket (..),+    newMatchingBucket,+    matchingBucket_accountId,+    matchingBucket_bucketName,+    matchingBucket_classifiableObjectCount,+    matchingBucket_classifiableSizeInBytes,+    matchingBucket_errorCode,+    matchingBucket_errorMessage,+    matchingBucket_jobDetails,+    matchingBucket_lastAutomatedDiscoveryTime,+    matchingBucket_objectCount,+    matchingBucket_objectCountByEncryptionType,+    matchingBucket_sensitivityScore,+    matchingBucket_sizeInBytes,+    matchingBucket_sizeInBytesCompressed,+    matchingBucket_unclassifiableObjectCount,+    matchingBucket_unclassifiableObjectSizeInBytes,++    -- * MatchingResource+    MatchingResource (..),+    newMatchingResource,+    matchingResource_matchingBucket,++    -- * Member+    Member (..),+    newMember,+    member_accountId,+    member_administratorAccountId,+    member_arn,+    member_email,+    member_invitedAt,+    member_masterAccountId,+    member_relationshipStatus,+    member_tags,+    member_updatedAt,++    -- * MonthlySchedule+    MonthlySchedule (..),+    newMonthlySchedule,+    monthlySchedule_dayOfMonth,++    -- * ObjectCountByEncryptionType+    ObjectCountByEncryptionType (..),+    newObjectCountByEncryptionType,+    objectCountByEncryptionType_customerManaged,+    objectCountByEncryptionType_kmsManaged,+    objectCountByEncryptionType_s3Managed,+    objectCountByEncryptionType_unencrypted,+    objectCountByEncryptionType_unknown,++    -- * ObjectLevelStatistics+    ObjectLevelStatistics (..),+    newObjectLevelStatistics,+    objectLevelStatistics_fileType,+    objectLevelStatistics_storageClass,+    objectLevelStatistics_total,++    -- * Occurrences+    Occurrences (..),+    newOccurrences,+    occurrences_cells,+    occurrences_lineRanges,+    occurrences_offsetRanges,+    occurrences_pages,+    occurrences_records,++    -- * Page+    Page (..),+    newPage,+    page_lineRange,+    page_offsetRange,+    page_pageNumber,++    -- * PolicyDetails+    PolicyDetails (..),+    newPolicyDetails,+    policyDetails_action,+    policyDetails_actor,++    -- * Range+    Range (..),+    newRange,+    range_end,+    range_start,+    range_startColumn,++    -- * Record+    Record (..),+    newRecord,+    record_jsonPath,+    record_recordIndex,++    -- * ReplicationDetails+    ReplicationDetails (..),+    newReplicationDetails,+    replicationDetails_replicated,+    replicationDetails_replicatedExternally,+    replicationDetails_replicationAccounts,++    -- * ResourceProfileArtifact+    ResourceProfileArtifact (..),+    newResourceProfileArtifact,+    resourceProfileArtifact_sensitive,+    resourceProfileArtifact_classificationResultStatus,+    resourceProfileArtifact_arn,++    -- * ResourceStatistics+    ResourceStatistics (..),+    newResourceStatistics,+    resourceStatistics_totalBytesClassified,+    resourceStatistics_totalDetections,+    resourceStatistics_totalDetectionsSuppressed,+    resourceStatistics_totalItemsClassified,+    resourceStatistics_totalItemsSensitive,+    resourceStatistics_totalItemsSkipped,+    resourceStatistics_totalItemsSkippedInvalidEncryption,+    resourceStatistics_totalItemsSkippedInvalidKms,+    resourceStatistics_totalItemsSkippedPermissionDenied,++    -- * ResourcesAffected+    ResourcesAffected (..),+    newResourcesAffected,+    resourcesAffected_s3Bucket,+    resourcesAffected_s3Object,++    -- * RevealConfiguration+    RevealConfiguration (..),+    newRevealConfiguration,+    revealConfiguration_kmsKeyId,+    revealConfiguration_status,++    -- * S3Bucket+    S3Bucket (..),+    newS3Bucket,+    s3Bucket_allowsUnencryptedObjectUploads,+    s3Bucket_arn,+    s3Bucket_createdAt,+    s3Bucket_defaultServerSideEncryption,+    s3Bucket_name,+    s3Bucket_owner,+    s3Bucket_publicAccess,+    s3Bucket_tags,++    -- * S3BucketCriteriaForJob+    S3BucketCriteriaForJob (..),+    newS3BucketCriteriaForJob,+    s3BucketCriteriaForJob_excludes,+    s3BucketCriteriaForJob_includes,++    -- * S3BucketDefinitionForJob+    S3BucketDefinitionForJob (..),+    newS3BucketDefinitionForJob,+    s3BucketDefinitionForJob_accountId,+    s3BucketDefinitionForJob_buckets,++    -- * S3BucketOwner+    S3BucketOwner (..),+    newS3BucketOwner,+    s3BucketOwner_displayName,+    s3BucketOwner_id,++    -- * S3ClassificationScope+    S3ClassificationScope (..),+    newS3ClassificationScope,+    s3ClassificationScope_excludes,++    -- * S3ClassificationScopeExclusion+    S3ClassificationScopeExclusion (..),+    newS3ClassificationScopeExclusion,+    s3ClassificationScopeExclusion_bucketNames,++    -- * S3ClassificationScopeExclusionUpdate+    S3ClassificationScopeExclusionUpdate (..),+    newS3ClassificationScopeExclusionUpdate,+    s3ClassificationScopeExclusionUpdate_bucketNames,+    s3ClassificationScopeExclusionUpdate_operation,++    -- * S3ClassificationScopeUpdate+    S3ClassificationScopeUpdate (..),+    newS3ClassificationScopeUpdate,+    s3ClassificationScopeUpdate_excludes,++    -- * S3Destination+    S3Destination (..),+    newS3Destination,+    s3Destination_keyPrefix,+    s3Destination_bucketName,+    s3Destination_kmsKeyArn,++    -- * S3JobDefinition+    S3JobDefinition (..),+    newS3JobDefinition,+    s3JobDefinition_bucketCriteria,+    s3JobDefinition_bucketDefinitions,+    s3JobDefinition_scoping,++    -- * S3Object+    S3Object (..),+    newS3Object,+    s3Object_bucketArn,+    s3Object_eTag,+    s3Object_extension,+    s3Object_key,+    s3Object_lastModified,+    s3Object_path,+    s3Object_publicAccess,+    s3Object_serverSideEncryption,+    s3Object_size,+    s3Object_storageClass,+    s3Object_tags,+    s3Object_versionId,++    -- * S3WordsList+    S3WordsList (..),+    newS3WordsList,+    s3WordsList_bucketName,+    s3WordsList_objectKey,++    -- * Scoping+    Scoping (..),+    newScoping,+    scoping_excludes,+    scoping_includes,++    -- * SearchResourcesBucketCriteria+    SearchResourcesBucketCriteria (..),+    newSearchResourcesBucketCriteria,+    searchResourcesBucketCriteria_excludes,+    searchResourcesBucketCriteria_includes,++    -- * SearchResourcesCriteria+    SearchResourcesCriteria (..),+    newSearchResourcesCriteria,+    searchResourcesCriteria_simpleCriterion,+    searchResourcesCriteria_tagCriterion,++    -- * SearchResourcesCriteriaBlock+    SearchResourcesCriteriaBlock (..),+    newSearchResourcesCriteriaBlock,+    searchResourcesCriteriaBlock_and,++    -- * SearchResourcesSimpleCriterion+    SearchResourcesSimpleCriterion (..),+    newSearchResourcesSimpleCriterion,+    searchResourcesSimpleCriterion_comparator,+    searchResourcesSimpleCriterion_key,+    searchResourcesSimpleCriterion_values,++    -- * SearchResourcesSortCriteria+    SearchResourcesSortCriteria (..),+    newSearchResourcesSortCriteria,+    searchResourcesSortCriteria_attributeName,+    searchResourcesSortCriteria_orderBy,++    -- * SearchResourcesTagCriterion+    SearchResourcesTagCriterion (..),+    newSearchResourcesTagCriterion,+    searchResourcesTagCriterion_comparator,+    searchResourcesTagCriterion_tagValues,++    -- * SearchResourcesTagCriterionPair+    SearchResourcesTagCriterionPair (..),+    newSearchResourcesTagCriterionPair,+    searchResourcesTagCriterionPair_key,+    searchResourcesTagCriterionPair_value,++    -- * SecurityHubConfiguration+    SecurityHubConfiguration (..),+    newSecurityHubConfiguration,+    securityHubConfiguration_publishPolicyFindings,+    securityHubConfiguration_publishClassificationFindings,++    -- * SensitiveDataItem+    SensitiveDataItem (..),+    newSensitiveDataItem,+    sensitiveDataItem_category,+    sensitiveDataItem_detections,+    sensitiveDataItem_totalCount,++    -- * SensitivityAggregations+    SensitivityAggregations (..),+    newSensitivityAggregations,+    sensitivityAggregations_classifiableSizeInBytes,+    sensitivityAggregations_publiclyAccessibleCount,+    sensitivityAggregations_totalCount,+    sensitivityAggregations_totalSizeInBytes,++    -- * SensitivityInspectionTemplateExcludes+    SensitivityInspectionTemplateExcludes (..),+    newSensitivityInspectionTemplateExcludes,+    sensitivityInspectionTemplateExcludes_managedDataIdentifierIds,++    -- * SensitivityInspectionTemplateIncludes+    SensitivityInspectionTemplateIncludes (..),+    newSensitivityInspectionTemplateIncludes,+    sensitivityInspectionTemplateIncludes_allowListIds,+    sensitivityInspectionTemplateIncludes_customDataIdentifierIds,+    sensitivityInspectionTemplateIncludes_managedDataIdentifierIds,++    -- * SensitivityInspectionTemplatesEntry+    SensitivityInspectionTemplatesEntry (..),+    newSensitivityInspectionTemplatesEntry,+    sensitivityInspectionTemplatesEntry_id,+    sensitivityInspectionTemplatesEntry_name,++    -- * ServerSideEncryption+    ServerSideEncryption (..),+    newServerSideEncryption,+    serverSideEncryption_encryptionType,+    serverSideEncryption_kmsMasterKeyId,++    -- * ServiceLimit+    ServiceLimit (..),+    newServiceLimit,+    serviceLimit_isServiceLimited,+    serviceLimit_unit,+    serviceLimit_value,++    -- * SessionContext+    SessionContext (..),+    newSessionContext,+    sessionContext_attributes,+    sessionContext_sessionIssuer,++    -- * SessionContextAttributes+    SessionContextAttributes (..),+    newSessionContextAttributes,+    sessionContextAttributes_creationDate,+    sessionContextAttributes_mfaAuthenticated,++    -- * SessionIssuer+    SessionIssuer (..),+    newSessionIssuer,+    sessionIssuer_accountId,+    sessionIssuer_arn,+    sessionIssuer_principalId,+    sessionIssuer_type,+    sessionIssuer_userName,++    -- * Severity+    Severity (..),+    newSeverity,+    severity_description,+    severity_score,++    -- * SeverityLevel+    SeverityLevel (..),+    newSeverityLevel,+    severityLevel_occurrencesThreshold,+    severityLevel_severity,++    -- * SimpleCriterionForJob+    SimpleCriterionForJob (..),+    newSimpleCriterionForJob,+    simpleCriterionForJob_comparator,+    simpleCriterionForJob_key,+    simpleCriterionForJob_values,++    -- * SimpleScopeTerm+    SimpleScopeTerm (..),+    newSimpleScopeTerm,+    simpleScopeTerm_comparator,+    simpleScopeTerm_key,+    simpleScopeTerm_values,++    -- * SortCriteria+    SortCriteria (..),+    newSortCriteria,+    sortCriteria_attributeName,+    sortCriteria_orderBy,++    -- * Statistics+    Statistics (..),+    newStatistics,+    statistics_approximateNumberOfObjectsToProcess,+    statistics_numberOfRuns,++    -- * SuppressDataIdentifier+    SuppressDataIdentifier (..),+    newSuppressDataIdentifier,+    suppressDataIdentifier_id,+    suppressDataIdentifier_type,++    -- * TagCriterionForJob+    TagCriterionForJob (..),+    newTagCriterionForJob,+    tagCriterionForJob_comparator,+    tagCriterionForJob_tagValues,++    -- * TagCriterionPairForJob+    TagCriterionPairForJob (..),+    newTagCriterionPairForJob,+    tagCriterionPairForJob_key,+    tagCriterionPairForJob_value,++    -- * TagScopeTerm+    TagScopeTerm (..),+    newTagScopeTerm,+    tagScopeTerm_comparator,+    tagScopeTerm_key,+    tagScopeTerm_tagValues,+    tagScopeTerm_target,++    -- * TagValuePair+    TagValuePair (..),+    newTagValuePair,+    tagValuePair_key,+    tagValuePair_value,++    -- * UnprocessedAccount+    UnprocessedAccount (..),+    newUnprocessedAccount,+    unprocessedAccount_accountId,+    unprocessedAccount_errorCode,+    unprocessedAccount_errorMessage,++    -- * UsageByAccount+    UsageByAccount (..),+    newUsageByAccount,+    usageByAccount_currency,+    usageByAccount_estimatedCost,+    usageByAccount_serviceLimit,+    usageByAccount_type,++    -- * UsageRecord+    UsageRecord (..),+    newUsageRecord,+    usageRecord_accountId,+    usageRecord_automatedDiscoveryFreeTrialStartDate,+    usageRecord_freeTrialStartDate,+    usageRecord_usage,++    -- * UsageStatisticsFilter+    UsageStatisticsFilter (..),+    newUsageStatisticsFilter,+    usageStatisticsFilter_comparator,+    usageStatisticsFilter_key,+    usageStatisticsFilter_values,++    -- * UsageStatisticsSortBy+    UsageStatisticsSortBy (..),+    newUsageStatisticsSortBy,+    usageStatisticsSortBy_key,+    usageStatisticsSortBy_orderBy,++    -- * UsageTotal+    UsageTotal (..),+    newUsageTotal,+    usageTotal_currency,+    usageTotal_estimatedCost,+    usageTotal_type,++    -- * UserIdentity+    UserIdentity (..),+    newUserIdentity,+    userIdentity_assumedRole,+    userIdentity_awsAccount,+    userIdentity_awsService,+    userIdentity_federatedUser,+    userIdentity_iamUser,+    userIdentity_root,+    userIdentity_type,++    -- * UserIdentityRoot+    UserIdentityRoot (..),+    newUserIdentityRoot,+    userIdentityRoot_accountId,+    userIdentityRoot_arn,+    userIdentityRoot_principalId,++    -- * UserPausedDetails+    UserPausedDetails (..),+    newUserPausedDetails,+    userPausedDetails_jobExpiresAt,+    userPausedDetails_jobImminentExpirationHealthEventArn,+    userPausedDetails_jobPausedAt,++    -- * WeeklySchedule+    WeeklySchedule (..),+    newWeeklySchedule,+    weeklySchedule_dayOfWeek,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.MacieV2.Types.AccessControlList+import Amazonka.MacieV2.Types.AccountDetail+import Amazonka.MacieV2.Types.AccountLevelPermissions+import Amazonka.MacieV2.Types.AdminAccount+import Amazonka.MacieV2.Types.AdminStatus+import Amazonka.MacieV2.Types.AllowListCriteria+import Amazonka.MacieV2.Types.AllowListStatus+import Amazonka.MacieV2.Types.AllowListStatusCode+import Amazonka.MacieV2.Types.AllowListSummary+import Amazonka.MacieV2.Types.AllowsUnencryptedObjectUploads+import Amazonka.MacieV2.Types.ApiCallDetails+import Amazonka.MacieV2.Types.AssumedRole+import Amazonka.MacieV2.Types.AutomatedDiscoveryStatus+import Amazonka.MacieV2.Types.AvailabilityCode+import Amazonka.MacieV2.Types.AwsAccount+import Amazonka.MacieV2.Types.AwsService+import Amazonka.MacieV2.Types.BatchGetCustomDataIdentifierSummary+import Amazonka.MacieV2.Types.BlockPublicAccess+import Amazonka.MacieV2.Types.BucketCountByEffectivePermission+import Amazonka.MacieV2.Types.BucketCountByEncryptionType+import Amazonka.MacieV2.Types.BucketCountBySharedAccessType+import Amazonka.MacieV2.Types.BucketCountPolicyAllowsUnencryptedObjectUploads+import Amazonka.MacieV2.Types.BucketCriteriaAdditionalProperties+import Amazonka.MacieV2.Types.BucketLevelPermissions+import Amazonka.MacieV2.Types.BucketMetadata+import Amazonka.MacieV2.Types.BucketMetadataErrorCode+import Amazonka.MacieV2.Types.BucketPermissionConfiguration+import Amazonka.MacieV2.Types.BucketPolicy+import Amazonka.MacieV2.Types.BucketPublicAccess+import Amazonka.MacieV2.Types.BucketServerSideEncryption+import Amazonka.MacieV2.Types.BucketSortCriteria+import Amazonka.MacieV2.Types.BucketStatisticsBySensitivity+import Amazonka.MacieV2.Types.Cell+import Amazonka.MacieV2.Types.ClassificationDetails+import Amazonka.MacieV2.Types.ClassificationExportConfiguration+import Amazonka.MacieV2.Types.ClassificationResult+import Amazonka.MacieV2.Types.ClassificationResultStatus+import Amazonka.MacieV2.Types.ClassificationScopeSummary+import Amazonka.MacieV2.Types.ClassificationScopeUpdateOperation+import Amazonka.MacieV2.Types.CriteriaBlockForJob+import Amazonka.MacieV2.Types.CriteriaForJob+import Amazonka.MacieV2.Types.CriterionAdditionalProperties+import Amazonka.MacieV2.Types.Currency+import Amazonka.MacieV2.Types.CustomDataIdentifierSummary+import Amazonka.MacieV2.Types.CustomDataIdentifiers+import Amazonka.MacieV2.Types.CustomDetection+import Amazonka.MacieV2.Types.DailySchedule+import Amazonka.MacieV2.Types.DataIdentifierSeverity+import Amazonka.MacieV2.Types.DataIdentifierType+import Amazonka.MacieV2.Types.DayOfWeek+import Amazonka.MacieV2.Types.DefaultDetection+import Amazonka.MacieV2.Types.DetectedDataDetails+import Amazonka.MacieV2.Types.Detection+import Amazonka.MacieV2.Types.DomainDetails+import Amazonka.MacieV2.Types.EffectivePermission+import Amazonka.MacieV2.Types.EncryptionType+import Amazonka.MacieV2.Types.ErrorCode+import Amazonka.MacieV2.Types.FederatedUser+import Amazonka.MacieV2.Types.Finding+import Amazonka.MacieV2.Types.FindingAction+import Amazonka.MacieV2.Types.FindingActionType+import Amazonka.MacieV2.Types.FindingActor+import Amazonka.MacieV2.Types.FindingCategory+import Amazonka.MacieV2.Types.FindingCriteria+import Amazonka.MacieV2.Types.FindingPublishingFrequency+import Amazonka.MacieV2.Types.FindingStatisticsSortAttributeName+import Amazonka.MacieV2.Types.FindingStatisticsSortCriteria+import Amazonka.MacieV2.Types.FindingType+import Amazonka.MacieV2.Types.FindingsFilterAction+import Amazonka.MacieV2.Types.FindingsFilterListItem+import Amazonka.MacieV2.Types.GroupBy+import Amazonka.MacieV2.Types.GroupCount+import Amazonka.MacieV2.Types.IamUser+import Amazonka.MacieV2.Types.Invitation+import Amazonka.MacieV2.Types.IpAddressDetails+import Amazonka.MacieV2.Types.IpCity+import Amazonka.MacieV2.Types.IpCountry+import Amazonka.MacieV2.Types.IpGeoLocation+import Amazonka.MacieV2.Types.IpOwner+import Amazonka.MacieV2.Types.IsDefinedInJob+import Amazonka.MacieV2.Types.IsMonitoredByJob+import Amazonka.MacieV2.Types.JobComparator+import Amazonka.MacieV2.Types.JobDetails+import Amazonka.MacieV2.Types.JobScheduleFrequency+import Amazonka.MacieV2.Types.JobScopeTerm+import Amazonka.MacieV2.Types.JobScopingBlock+import Amazonka.MacieV2.Types.JobStatus+import Amazonka.MacieV2.Types.JobSummary+import Amazonka.MacieV2.Types.JobType+import Amazonka.MacieV2.Types.KeyValuePair+import Amazonka.MacieV2.Types.LastRunErrorStatus+import Amazonka.MacieV2.Types.LastRunErrorStatusCode+import Amazonka.MacieV2.Types.ListJobsFilterCriteria+import Amazonka.MacieV2.Types.ListJobsFilterKey+import Amazonka.MacieV2.Types.ListJobsFilterTerm+import Amazonka.MacieV2.Types.ListJobsSortAttributeName+import Amazonka.MacieV2.Types.ListJobsSortCriteria+import Amazonka.MacieV2.Types.MacieStatus+import Amazonka.MacieV2.Types.ManagedDataIdentifierSelector+import Amazonka.MacieV2.Types.ManagedDataIdentifierSummary+import Amazonka.MacieV2.Types.MatchingBucket+import Amazonka.MacieV2.Types.MatchingResource+import Amazonka.MacieV2.Types.Member+import Amazonka.MacieV2.Types.MonthlySchedule+import Amazonka.MacieV2.Types.ObjectCountByEncryptionType+import Amazonka.MacieV2.Types.ObjectLevelStatistics+import Amazonka.MacieV2.Types.Occurrences+import Amazonka.MacieV2.Types.OrderBy+import Amazonka.MacieV2.Types.OriginType+import Amazonka.MacieV2.Types.Page+import Amazonka.MacieV2.Types.PolicyDetails+import Amazonka.MacieV2.Types.Range+import Amazonka.MacieV2.Types.Record+import Amazonka.MacieV2.Types.RelationshipStatus+import Amazonka.MacieV2.Types.ReplicationDetails+import Amazonka.MacieV2.Types.ResourceProfileArtifact+import Amazonka.MacieV2.Types.ResourceStatistics+import Amazonka.MacieV2.Types.ResourcesAffected+import Amazonka.MacieV2.Types.RevealConfiguration+import Amazonka.MacieV2.Types.RevealRequestStatus+import Amazonka.MacieV2.Types.RevealStatus+import Amazonka.MacieV2.Types.S3Bucket+import Amazonka.MacieV2.Types.S3BucketCriteriaForJob+import Amazonka.MacieV2.Types.S3BucketDefinitionForJob+import Amazonka.MacieV2.Types.S3BucketOwner+import Amazonka.MacieV2.Types.S3ClassificationScope+import Amazonka.MacieV2.Types.S3ClassificationScopeExclusion+import Amazonka.MacieV2.Types.S3ClassificationScopeExclusionUpdate+import Amazonka.MacieV2.Types.S3ClassificationScopeUpdate+import Amazonka.MacieV2.Types.S3Destination+import Amazonka.MacieV2.Types.S3JobDefinition+import Amazonka.MacieV2.Types.S3Object+import Amazonka.MacieV2.Types.S3WordsList+import Amazonka.MacieV2.Types.ScopeFilterKey+import Amazonka.MacieV2.Types.Scoping+import Amazonka.MacieV2.Types.SearchResourcesBucketCriteria+import Amazonka.MacieV2.Types.SearchResourcesComparator+import Amazonka.MacieV2.Types.SearchResourcesCriteria+import Amazonka.MacieV2.Types.SearchResourcesCriteriaBlock+import Amazonka.MacieV2.Types.SearchResourcesSimpleCriterion+import Amazonka.MacieV2.Types.SearchResourcesSimpleCriterionKey+import Amazonka.MacieV2.Types.SearchResourcesSortAttributeName+import Amazonka.MacieV2.Types.SearchResourcesSortCriteria+import Amazonka.MacieV2.Types.SearchResourcesTagCriterion+import Amazonka.MacieV2.Types.SearchResourcesTagCriterionPair+import Amazonka.MacieV2.Types.SecurityHubConfiguration+import Amazonka.MacieV2.Types.SensitiveDataItem+import Amazonka.MacieV2.Types.SensitiveDataItemCategory+import Amazonka.MacieV2.Types.SensitivityAggregations+import Amazonka.MacieV2.Types.SensitivityInspectionTemplateExcludes+import Amazonka.MacieV2.Types.SensitivityInspectionTemplateIncludes+import Amazonka.MacieV2.Types.SensitivityInspectionTemplatesEntry+import Amazonka.MacieV2.Types.ServerSideEncryption+import Amazonka.MacieV2.Types.ServiceLimit+import Amazonka.MacieV2.Types.SessionContext+import Amazonka.MacieV2.Types.SessionContextAttributes+import Amazonka.MacieV2.Types.SessionIssuer+import Amazonka.MacieV2.Types.Severity+import Amazonka.MacieV2.Types.SeverityDescription+import Amazonka.MacieV2.Types.SeverityLevel+import Amazonka.MacieV2.Types.SharedAccess+import Amazonka.MacieV2.Types.SimpleCriterionForJob+import Amazonka.MacieV2.Types.SimpleCriterionKeyForJob+import Amazonka.MacieV2.Types.SimpleScopeTerm+import Amazonka.MacieV2.Types.SortCriteria+import Amazonka.MacieV2.Types.Statistics+import Amazonka.MacieV2.Types.StorageClass+import Amazonka.MacieV2.Types.SuppressDataIdentifier+import Amazonka.MacieV2.Types.TagCriterionForJob+import Amazonka.MacieV2.Types.TagCriterionPairForJob+import Amazonka.MacieV2.Types.TagScopeTerm+import Amazonka.MacieV2.Types.TagTarget+import Amazonka.MacieV2.Types.TagValuePair+import Amazonka.MacieV2.Types.TimeRange+import Amazonka.MacieV2.Types.Type+import Amazonka.MacieV2.Types.UnavailabilityReasonCode+import Amazonka.MacieV2.Types.Unit+import Amazonka.MacieV2.Types.UnprocessedAccount+import Amazonka.MacieV2.Types.UsageByAccount+import Amazonka.MacieV2.Types.UsageRecord+import Amazonka.MacieV2.Types.UsageStatisticsFilter+import Amazonka.MacieV2.Types.UsageStatisticsFilterComparator+import Amazonka.MacieV2.Types.UsageStatisticsFilterKey+import Amazonka.MacieV2.Types.UsageStatisticsSortBy+import Amazonka.MacieV2.Types.UsageStatisticsSortKey+import Amazonka.MacieV2.Types.UsageTotal+import Amazonka.MacieV2.Types.UsageType+import Amazonka.MacieV2.Types.UserIdentity+import Amazonka.MacieV2.Types.UserIdentityRoot+import Amazonka.MacieV2.Types.UserIdentityType+import Amazonka.MacieV2.Types.UserPausedDetails+import Amazonka.MacieV2.Types.WeeklySchedule+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2020-01-01@ of the Amazon Macie 2 SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "MacieV2",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "macie2",+      Core.signingName = "macie2",+      Core.version = "2020-01-01",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "MacieV2",+      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++-- | Provides information about an error that occurred due to insufficient+-- access to a specified resource.+_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AccessDeniedException =+  Core._MatchServiceError+    defaultService+    "AccessDeniedException"+    Prelude.. Core.hasStatus 403++-- | Provides information about an error that occurred due to a versioning+-- conflict for a specified resource.+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+  Core._MatchServiceError+    defaultService+    "ConflictException"+    Prelude.. Core.hasStatus 409++-- | Provides information about an error that occurred due to an unknown+-- internal server error, exception, or failure.+_InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerException =+  Core._MatchServiceError+    defaultService+    "InternalServerException"+    Prelude.. Core.hasStatus 500++-- | Provides information about an error that occurred because a specified+-- resource wasn\'t found.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+  Core._MatchServiceError+    defaultService+    "ResourceNotFoundException"+    Prelude.. Core.hasStatus 404++-- | Provides information about an error that occurred due to one or more+-- service quotas for an account.+_ServiceQuotaExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceQuotaExceededException =+  Core._MatchServiceError+    defaultService+    "ServiceQuotaExceededException"+    Prelude.. Core.hasStatus 402++-- | Provides information about an error that occurred because too many+-- requests were sent during a certain amount of time.+_ThrottlingException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ThrottlingException =+  Core._MatchServiceError+    defaultService+    "ThrottlingException"+    Prelude.. Core.hasStatus 429++-- | Provides information about an error that occurred due to an+-- unprocessable entity.+_UnprocessableEntityException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_UnprocessableEntityException =+  Core._MatchServiceError+    defaultService+    "UnprocessableEntityException"+    Prelude.. Core.hasStatus 422++-- | Provides information about an error that occurred due to a syntax error+-- in a request.+_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ValidationException =+  Core._MatchServiceError+    defaultService+    "ValidationException"+    Prelude.. Core.hasStatus 400
+ gen/Amazonka/MacieV2/Types/AccessControlList.hs view
@@ -0,0 +1,92 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.AccessControlList+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.AccessControlList where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the permissions settings of the bucket-level+-- access control list (ACL) for an S3 bucket.+--+-- /See:/ 'newAccessControlList' smart constructor.+data AccessControlList = AccessControlList'+  { -- | Specifies whether the ACL grants the general public with read access+    -- permissions for the bucket.+    allowsPublicReadAccess :: Prelude.Maybe Prelude.Bool,+    -- | Specifies whether the ACL grants the general public with write access+    -- permissions for the bucket.+    allowsPublicWriteAccess :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AccessControlList' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'allowsPublicReadAccess', 'accessControlList_allowsPublicReadAccess' - Specifies whether the ACL grants the general public with read access+-- permissions for the bucket.+--+-- 'allowsPublicWriteAccess', 'accessControlList_allowsPublicWriteAccess' - Specifies whether the ACL grants the general public with write access+-- permissions for the bucket.+newAccessControlList ::+  AccessControlList+newAccessControlList =+  AccessControlList'+    { allowsPublicReadAccess =+        Prelude.Nothing,+      allowsPublicWriteAccess = Prelude.Nothing+    }++-- | Specifies whether the ACL grants the general public with read access+-- permissions for the bucket.+accessControlList_allowsPublicReadAccess :: Lens.Lens' AccessControlList (Prelude.Maybe Prelude.Bool)+accessControlList_allowsPublicReadAccess = Lens.lens (\AccessControlList' {allowsPublicReadAccess} -> allowsPublicReadAccess) (\s@AccessControlList' {} a -> s {allowsPublicReadAccess = a} :: AccessControlList)++-- | Specifies whether the ACL grants the general public with write access+-- permissions for the bucket.+accessControlList_allowsPublicWriteAccess :: Lens.Lens' AccessControlList (Prelude.Maybe Prelude.Bool)+accessControlList_allowsPublicWriteAccess = Lens.lens (\AccessControlList' {allowsPublicWriteAccess} -> allowsPublicWriteAccess) (\s@AccessControlList' {} a -> s {allowsPublicWriteAccess = a} :: AccessControlList)++instance Data.FromJSON AccessControlList where+  parseJSON =+    Data.withObject+      "AccessControlList"+      ( \x ->+          AccessControlList'+            Prelude.<$> (x Data..:? "allowsPublicReadAccess")+            Prelude.<*> (x Data..:? "allowsPublicWriteAccess")+      )++instance Prelude.Hashable AccessControlList where+  hashWithSalt _salt AccessControlList' {..} =+    _salt+      `Prelude.hashWithSalt` allowsPublicReadAccess+      `Prelude.hashWithSalt` allowsPublicWriteAccess++instance Prelude.NFData AccessControlList where+  rnf AccessControlList' {..} =+    Prelude.rnf allowsPublicReadAccess+      `Prelude.seq` Prelude.rnf allowsPublicWriteAccess
+ gen/Amazonka/MacieV2/Types/AccountDetail.hs view
@@ -0,0 +1,88 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.AccountDetail+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.AccountDetail 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++-- | Specifies the details of an account to associate with an Amazon Macie+-- administrator account.+--+-- /See:/ 'newAccountDetail' smart constructor.+data AccountDetail = AccountDetail'+  { -- | The email address for the account.+    email :: Prelude.Text,+    -- | The Amazon Web Services account ID for the account.+    accountId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AccountDetail' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'email', 'accountDetail_email' - The email address for the account.+--+-- 'accountId', 'accountDetail_accountId' - The Amazon Web Services account ID for the account.+newAccountDetail ::+  -- | 'email'+  Prelude.Text ->+  -- | 'accountId'+  Prelude.Text ->+  AccountDetail+newAccountDetail pEmail_ pAccountId_ =+  AccountDetail'+    { email = pEmail_,+      accountId = pAccountId_+    }++-- | The email address for the account.+accountDetail_email :: Lens.Lens' AccountDetail Prelude.Text+accountDetail_email = Lens.lens (\AccountDetail' {email} -> email) (\s@AccountDetail' {} a -> s {email = a} :: AccountDetail)++-- | The Amazon Web Services account ID for the account.+accountDetail_accountId :: Lens.Lens' AccountDetail Prelude.Text+accountDetail_accountId = Lens.lens (\AccountDetail' {accountId} -> accountId) (\s@AccountDetail' {} a -> s {accountId = a} :: AccountDetail)++instance Prelude.Hashable AccountDetail where+  hashWithSalt _salt AccountDetail' {..} =+    _salt+      `Prelude.hashWithSalt` email+      `Prelude.hashWithSalt` accountId++instance Prelude.NFData AccountDetail where+  rnf AccountDetail' {..} =+    Prelude.rnf email+      `Prelude.seq` Prelude.rnf accountId++instance Data.ToJSON AccountDetail where+  toJSON AccountDetail' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("email" Data..= email),+            Prelude.Just ("accountId" Data..= accountId)+          ]+      )
+ gen/Amazonka/MacieV2/Types/AccountLevelPermissions.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.MacieV2.Types.AccountLevelPermissions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.AccountLevelPermissions where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.BlockPublicAccess+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the account-level permissions settings that+-- apply to an S3 bucket.+--+-- /See:/ 'newAccountLevelPermissions' smart constructor.+data AccountLevelPermissions = AccountLevelPermissions'+  { -- | The block public access settings for the Amazon Web Services account+    -- that owns the bucket.+    blockPublicAccess :: Prelude.Maybe BlockPublicAccess+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AccountLevelPermissions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'blockPublicAccess', 'accountLevelPermissions_blockPublicAccess' - The block public access settings for the Amazon Web Services account+-- that owns the bucket.+newAccountLevelPermissions ::+  AccountLevelPermissions+newAccountLevelPermissions =+  AccountLevelPermissions'+    { blockPublicAccess =+        Prelude.Nothing+    }++-- | The block public access settings for the Amazon Web Services account+-- that owns the bucket.+accountLevelPermissions_blockPublicAccess :: Lens.Lens' AccountLevelPermissions (Prelude.Maybe BlockPublicAccess)+accountLevelPermissions_blockPublicAccess = Lens.lens (\AccountLevelPermissions' {blockPublicAccess} -> blockPublicAccess) (\s@AccountLevelPermissions' {} a -> s {blockPublicAccess = a} :: AccountLevelPermissions)++instance Data.FromJSON AccountLevelPermissions where+  parseJSON =+    Data.withObject+      "AccountLevelPermissions"+      ( \x ->+          AccountLevelPermissions'+            Prelude.<$> (x Data..:? "blockPublicAccess")+      )++instance Prelude.Hashable AccountLevelPermissions where+  hashWithSalt _salt AccountLevelPermissions' {..} =+    _salt `Prelude.hashWithSalt` blockPublicAccess++instance Prelude.NFData AccountLevelPermissions where+  rnf AccountLevelPermissions' {..} =+    Prelude.rnf blockPublicAccess
+ gen/Amazonka/MacieV2/Types/AdminAccount.hs view
@@ -0,0 +1,89 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.AdminAccount+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.AdminAccount where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.AdminStatus+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the delegated Amazon Macie administrator+-- account for an organization in Organizations.+--+-- /See:/ 'newAdminAccount' smart constructor.+data AdminAccount = AdminAccount'+  { -- | The Amazon Web Services account ID for the account.+    accountId :: Prelude.Maybe Prelude.Text,+    -- | The current status of the account as the delegated Amazon Macie+    -- administrator account for the organization.+    status :: Prelude.Maybe AdminStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AdminAccount' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'adminAccount_accountId' - The Amazon Web Services account ID for the account.+--+-- 'status', 'adminAccount_status' - The current status of the account as the delegated Amazon Macie+-- administrator account for the organization.+newAdminAccount ::+  AdminAccount+newAdminAccount =+  AdminAccount'+    { accountId = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The Amazon Web Services account ID for the account.+adminAccount_accountId :: Lens.Lens' AdminAccount (Prelude.Maybe Prelude.Text)+adminAccount_accountId = Lens.lens (\AdminAccount' {accountId} -> accountId) (\s@AdminAccount' {} a -> s {accountId = a} :: AdminAccount)++-- | The current status of the account as the delegated Amazon Macie+-- administrator account for the organization.+adminAccount_status :: Lens.Lens' AdminAccount (Prelude.Maybe AdminStatus)+adminAccount_status = Lens.lens (\AdminAccount' {status} -> status) (\s@AdminAccount' {} a -> s {status = a} :: AdminAccount)++instance Data.FromJSON AdminAccount where+  parseJSON =+    Data.withObject+      "AdminAccount"+      ( \x ->+          AdminAccount'+            Prelude.<$> (x Data..:? "accountId")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable AdminAccount where+  hashWithSalt _salt AdminAccount' {..} =+    _salt+      `Prelude.hashWithSalt` accountId+      `Prelude.hashWithSalt` status++instance Prelude.NFData AdminAccount where+  rnf AdminAccount' {..} =+    Prelude.rnf accountId+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/MacieV2/Types/AdminStatus.hs view
@@ -0,0 +1,74 @@+{-# 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.MacieV2.Types.AdminStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.AdminStatus+  ( AdminStatus+      ( ..,+        AdminStatus_DISABLING_IN_PROGRESS,+        AdminStatus_ENABLED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The current status of an account as the delegated Amazon Macie+-- administrator account for an organization in Organizations. Possible+-- values are:+newtype AdminStatus = AdminStatus'+  { fromAdminStatus ::+      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 AdminStatus_DISABLING_IN_PROGRESS :: AdminStatus+pattern AdminStatus_DISABLING_IN_PROGRESS = AdminStatus' "DISABLING_IN_PROGRESS"++pattern AdminStatus_ENABLED :: AdminStatus+pattern AdminStatus_ENABLED = AdminStatus' "ENABLED"++{-# COMPLETE+  AdminStatus_DISABLING_IN_PROGRESS,+  AdminStatus_ENABLED,+  AdminStatus'+  #-}
+ gen/Amazonka/MacieV2/Types/AllowListCriteria.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.MacieV2.Types.AllowListCriteria+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.AllowListCriteria where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.S3WordsList+import qualified Amazonka.Prelude as Prelude++-- | Specifies the criteria for an allow list. The criteria must specify a+-- regular expression (regex) or an S3 object (s3WordsList). It can\'t+-- specify both.+--+-- /See:/ 'newAllowListCriteria' smart constructor.+data AllowListCriteria = AllowListCriteria'+  { -- | The regular expression (/regex/) that defines the text pattern to+    -- ignore. The expression can contain as many as 512 characters.+    regex :: Prelude.Maybe Prelude.Text,+    -- | The location and name of the S3 object that lists specific text to+    -- ignore.+    s3WordsList :: Prelude.Maybe S3WordsList+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AllowListCriteria' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'regex', 'allowListCriteria_regex' - The regular expression (/regex/) that defines the text pattern to+-- ignore. The expression can contain as many as 512 characters.+--+-- 's3WordsList', 'allowListCriteria_s3WordsList' - The location and name of the S3 object that lists specific text to+-- ignore.+newAllowListCriteria ::+  AllowListCriteria+newAllowListCriteria =+  AllowListCriteria'+    { regex = Prelude.Nothing,+      s3WordsList = Prelude.Nothing+    }++-- | The regular expression (/regex/) that defines the text pattern to+-- ignore. The expression can contain as many as 512 characters.+allowListCriteria_regex :: Lens.Lens' AllowListCriteria (Prelude.Maybe Prelude.Text)+allowListCriteria_regex = Lens.lens (\AllowListCriteria' {regex} -> regex) (\s@AllowListCriteria' {} a -> s {regex = a} :: AllowListCriteria)++-- | The location and name of the S3 object that lists specific text to+-- ignore.+allowListCriteria_s3WordsList :: Lens.Lens' AllowListCriteria (Prelude.Maybe S3WordsList)+allowListCriteria_s3WordsList = Lens.lens (\AllowListCriteria' {s3WordsList} -> s3WordsList) (\s@AllowListCriteria' {} a -> s {s3WordsList = a} :: AllowListCriteria)++instance Data.FromJSON AllowListCriteria where+  parseJSON =+    Data.withObject+      "AllowListCriteria"+      ( \x ->+          AllowListCriteria'+            Prelude.<$> (x Data..:? "regex")+            Prelude.<*> (x Data..:? "s3WordsList")+      )++instance Prelude.Hashable AllowListCriteria where+  hashWithSalt _salt AllowListCriteria' {..} =+    _salt+      `Prelude.hashWithSalt` regex+      `Prelude.hashWithSalt` s3WordsList++instance Prelude.NFData AllowListCriteria where+  rnf AllowListCriteria' {..} =+    Prelude.rnf regex+      `Prelude.seq` Prelude.rnf s3WordsList++instance Data.ToJSON AllowListCriteria where+  toJSON AllowListCriteria' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("regex" Data..=) Prelude.<$> regex,+            ("s3WordsList" Data..=) Prelude.<$> s3WordsList+          ]+      )
+ gen/Amazonka/MacieV2/Types/AllowListStatus.hs view
@@ -0,0 +1,229 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.AllowListStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.AllowListStatus where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.AllowListStatusCode+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the current status of an allow list, which+-- indicates whether Amazon Macie can access and use the list\'s criteria.+--+-- /See:/ 'newAllowListStatus' smart constructor.+data AllowListStatus = AllowListStatus'+  { -- | A brief description of the status of the allow list. Amazon Macie uses+    -- this value to provide additional information about an error that+    -- occurred when Macie tried to access and use the list\'s criteria.+    description :: Prelude.Maybe Prelude.Text,+    -- | The current status of the allow list. If the list\'s criteria specify a+    -- regular expression (regex), this value is typically OK. Amazon Macie can+    -- compile the expression.+    --+    -- If the list\'s criteria specify an S3 object, possible values are:+    --+    -- -   OK - Macie can retrieve and parse the contents of the object.+    --+    -- -   S3_OBJECT_ACCESS_DENIED - Macie isn\'t allowed to access the object+    --     or the object is encrypted with a customer managed KMS key that+    --     Macie isn\'t allowed to use. Check the bucket policy and other+    --     permissions settings for the bucket and the object. If the object is+    --     encrypted, also ensure that it\'s encrypted with a key that Macie is+    --     allowed to use.+    --+    -- -   S3_OBJECT_EMPTY - Macie can retrieve the object but the object+    --     doesn\'t contain any content. Ensure that the object contains the+    --     correct entries. Also ensure that the list\'s criteria specify the+    --     correct bucket and object names.+    --+    -- -   S3_OBJECT_NOT_FOUND - The object doesn\'t exist in Amazon S3. Ensure+    --     that the list\'s criteria specify the correct bucket and object+    --     names.+    --+    -- -   S3_OBJECT_OVERSIZE - Macie can retrieve the object. However, the+    --     object contains too many entries or its storage size exceeds the+    --     quota for an allow list. Try breaking the list into multiple files+    --     and ensure that each file doesn\'t exceed any quotas. Then configure+    --     list settings in Macie for each file.+    --+    -- -   S3_THROTTLED - Amazon S3 throttled the request to retrieve the+    --     object. Wait a few minutes and then try again.+    --+    -- -   S3_USER_ACCESS_DENIED - Amazon S3 denied the request to retrieve the+    --     object. If the specified object exists, you\'re not allowed to+    --     access it or it\'s encrypted with an KMS key that you\'re not+    --     allowed to use. Work with your Amazon Web Services administrator to+    --     ensure that the list\'s criteria specify the correct bucket and+    --     object names, and you have read access to the bucket and the object.+    --     If the object is encrypted, also ensure that it\'s encrypted with a+    --     key that you\'re allowed to use.+    --+    -- -   UNKNOWN_ERROR - A transient or internal error occurred when Macie+    --     attempted to retrieve or parse the object. Wait a few minutes and+    --     then try again. A list can also have this status if it\'s encrypted+    --     with a key that Amazon S3 and Macie can\'t access or use.+    code :: AllowListStatusCode+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AllowListStatus' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'allowListStatus_description' - A brief description of the status of the allow list. Amazon Macie uses+-- this value to provide additional information about an error that+-- occurred when Macie tried to access and use the list\'s criteria.+--+-- 'code', 'allowListStatus_code' - The current status of the allow list. If the list\'s criteria specify a+-- regular expression (regex), this value is typically OK. Amazon Macie can+-- compile the expression.+--+-- If the list\'s criteria specify an S3 object, possible values are:+--+-- -   OK - Macie can retrieve and parse the contents of the object.+--+-- -   S3_OBJECT_ACCESS_DENIED - Macie isn\'t allowed to access the object+--     or the object is encrypted with a customer managed KMS key that+--     Macie isn\'t allowed to use. Check the bucket policy and other+--     permissions settings for the bucket and the object. If the object is+--     encrypted, also ensure that it\'s encrypted with a key that Macie is+--     allowed to use.+--+-- -   S3_OBJECT_EMPTY - Macie can retrieve the object but the object+--     doesn\'t contain any content. Ensure that the object contains the+--     correct entries. Also ensure that the list\'s criteria specify the+--     correct bucket and object names.+--+-- -   S3_OBJECT_NOT_FOUND - The object doesn\'t exist in Amazon S3. Ensure+--     that the list\'s criteria specify the correct bucket and object+--     names.+--+-- -   S3_OBJECT_OVERSIZE - Macie can retrieve the object. However, the+--     object contains too many entries or its storage size exceeds the+--     quota for an allow list. Try breaking the list into multiple files+--     and ensure that each file doesn\'t exceed any quotas. Then configure+--     list settings in Macie for each file.+--+-- -   S3_THROTTLED - Amazon S3 throttled the request to retrieve the+--     object. Wait a few minutes and then try again.+--+-- -   S3_USER_ACCESS_DENIED - Amazon S3 denied the request to retrieve the+--     object. If the specified object exists, you\'re not allowed to+--     access it or it\'s encrypted with an KMS key that you\'re not+--     allowed to use. Work with your Amazon Web Services administrator to+--     ensure that the list\'s criteria specify the correct bucket and+--     object names, and you have read access to the bucket and the object.+--     If the object is encrypted, also ensure that it\'s encrypted with a+--     key that you\'re allowed to use.+--+-- -   UNKNOWN_ERROR - A transient or internal error occurred when Macie+--     attempted to retrieve or parse the object. Wait a few minutes and+--     then try again. A list can also have this status if it\'s encrypted+--     with a key that Amazon S3 and Macie can\'t access or use.+newAllowListStatus ::+  -- | 'code'+  AllowListStatusCode ->+  AllowListStatus+newAllowListStatus pCode_ =+  AllowListStatus'+    { description = Prelude.Nothing,+      code = pCode_+    }++-- | A brief description of the status of the allow list. Amazon Macie uses+-- this value to provide additional information about an error that+-- occurred when Macie tried to access and use the list\'s criteria.+allowListStatus_description :: Lens.Lens' AllowListStatus (Prelude.Maybe Prelude.Text)+allowListStatus_description = Lens.lens (\AllowListStatus' {description} -> description) (\s@AllowListStatus' {} a -> s {description = a} :: AllowListStatus)++-- | The current status of the allow list. If the list\'s criteria specify a+-- regular expression (regex), this value is typically OK. Amazon Macie can+-- compile the expression.+--+-- If the list\'s criteria specify an S3 object, possible values are:+--+-- -   OK - Macie can retrieve and parse the contents of the object.+--+-- -   S3_OBJECT_ACCESS_DENIED - Macie isn\'t allowed to access the object+--     or the object is encrypted with a customer managed KMS key that+--     Macie isn\'t allowed to use. Check the bucket policy and other+--     permissions settings for the bucket and the object. If the object is+--     encrypted, also ensure that it\'s encrypted with a key that Macie is+--     allowed to use.+--+-- -   S3_OBJECT_EMPTY - Macie can retrieve the object but the object+--     doesn\'t contain any content. Ensure that the object contains the+--     correct entries. Also ensure that the list\'s criteria specify the+--     correct bucket and object names.+--+-- -   S3_OBJECT_NOT_FOUND - The object doesn\'t exist in Amazon S3. Ensure+--     that the list\'s criteria specify the correct bucket and object+--     names.+--+-- -   S3_OBJECT_OVERSIZE - Macie can retrieve the object. However, the+--     object contains too many entries or its storage size exceeds the+--     quota for an allow list. Try breaking the list into multiple files+--     and ensure that each file doesn\'t exceed any quotas. Then configure+--     list settings in Macie for each file.+--+-- -   S3_THROTTLED - Amazon S3 throttled the request to retrieve the+--     object. Wait a few minutes and then try again.+--+-- -   S3_USER_ACCESS_DENIED - Amazon S3 denied the request to retrieve the+--     object. If the specified object exists, you\'re not allowed to+--     access it or it\'s encrypted with an KMS key that you\'re not+--     allowed to use. Work with your Amazon Web Services administrator to+--     ensure that the list\'s criteria specify the correct bucket and+--     object names, and you have read access to the bucket and the object.+--     If the object is encrypted, also ensure that it\'s encrypted with a+--     key that you\'re allowed to use.+--+-- -   UNKNOWN_ERROR - A transient or internal error occurred when Macie+--     attempted to retrieve or parse the object. Wait a few minutes and+--     then try again. A list can also have this status if it\'s encrypted+--     with a key that Amazon S3 and Macie can\'t access or use.+allowListStatus_code :: Lens.Lens' AllowListStatus AllowListStatusCode+allowListStatus_code = Lens.lens (\AllowListStatus' {code} -> code) (\s@AllowListStatus' {} a -> s {code = a} :: AllowListStatus)++instance Data.FromJSON AllowListStatus where+  parseJSON =+    Data.withObject+      "AllowListStatus"+      ( \x ->+          AllowListStatus'+            Prelude.<$> (x Data..:? "description")+            Prelude.<*> (x Data..: "code")+      )++instance Prelude.Hashable AllowListStatus where+  hashWithSalt _salt AllowListStatus' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` code++instance Prelude.NFData AllowListStatus where+  rnf AllowListStatus' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf code
+ gen/Amazonka/MacieV2/Types/AllowListStatusCode.hs view
@@ -0,0 +1,103 @@+{-# 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.MacieV2.Types.AllowListStatusCode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.AllowListStatusCode+  ( AllowListStatusCode+      ( ..,+        AllowListStatusCode_OK,+        AllowListStatusCode_S3_OBJECT_ACCESS_DENIED,+        AllowListStatusCode_S3_OBJECT_EMPTY,+        AllowListStatusCode_S3_OBJECT_NOT_FOUND,+        AllowListStatusCode_S3_OBJECT_OVERSIZE,+        AllowListStatusCode_S3_THROTTLED,+        AllowListStatusCode_S3_USER_ACCESS_DENIED,+        AllowListStatusCode_UNKNOWN_ERROR+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Indicates the current status of an allow list. Depending on the type of+-- criteria that the list specifies, possible values are:+newtype AllowListStatusCode = AllowListStatusCode'+  { fromAllowListStatusCode ::+      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 AllowListStatusCode_OK :: AllowListStatusCode+pattern AllowListStatusCode_OK = AllowListStatusCode' "OK"++pattern AllowListStatusCode_S3_OBJECT_ACCESS_DENIED :: AllowListStatusCode+pattern AllowListStatusCode_S3_OBJECT_ACCESS_DENIED = AllowListStatusCode' "S3_OBJECT_ACCESS_DENIED"++pattern AllowListStatusCode_S3_OBJECT_EMPTY :: AllowListStatusCode+pattern AllowListStatusCode_S3_OBJECT_EMPTY = AllowListStatusCode' "S3_OBJECT_EMPTY"++pattern AllowListStatusCode_S3_OBJECT_NOT_FOUND :: AllowListStatusCode+pattern AllowListStatusCode_S3_OBJECT_NOT_FOUND = AllowListStatusCode' "S3_OBJECT_NOT_FOUND"++pattern AllowListStatusCode_S3_OBJECT_OVERSIZE :: AllowListStatusCode+pattern AllowListStatusCode_S3_OBJECT_OVERSIZE = AllowListStatusCode' "S3_OBJECT_OVERSIZE"++pattern AllowListStatusCode_S3_THROTTLED :: AllowListStatusCode+pattern AllowListStatusCode_S3_THROTTLED = AllowListStatusCode' "S3_THROTTLED"++pattern AllowListStatusCode_S3_USER_ACCESS_DENIED :: AllowListStatusCode+pattern AllowListStatusCode_S3_USER_ACCESS_DENIED = AllowListStatusCode' "S3_USER_ACCESS_DENIED"++pattern AllowListStatusCode_UNKNOWN_ERROR :: AllowListStatusCode+pattern AllowListStatusCode_UNKNOWN_ERROR = AllowListStatusCode' "UNKNOWN_ERROR"++{-# COMPLETE+  AllowListStatusCode_OK,+  AllowListStatusCode_S3_OBJECT_ACCESS_DENIED,+  AllowListStatusCode_S3_OBJECT_EMPTY,+  AllowListStatusCode_S3_OBJECT_NOT_FOUND,+  AllowListStatusCode_S3_OBJECT_OVERSIZE,+  AllowListStatusCode_S3_THROTTLED,+  AllowListStatusCode_S3_USER_ACCESS_DENIED,+  AllowListStatusCode_UNKNOWN_ERROR,+  AllowListStatusCode'+  #-}
+ gen/Amazonka/MacieV2/Types/AllowListSummary.hs view
@@ -0,0 +1,138 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.AllowListSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.AllowListSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides a subset of information about an allow list.+--+-- /See:/ 'newAllowListSummary' smart constructor.+data AllowListSummary = AllowListSummary'+  { -- | The Amazon Resource Name (ARN) of the allow list.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The date and time, in UTC and extended ISO 8601 format, when the allow+    -- list was created in Amazon Macie.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | The custom description of the allow list.+    description :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the allow list.+    id :: Prelude.Maybe Prelude.Text,+    -- | The custom name of the allow list.+    name :: Prelude.Maybe Prelude.Text,+    -- | The date and time, in UTC and extended ISO 8601 format, when the allow+    -- list\'s settings were most recently changed in Amazon Macie.+    updatedAt :: Prelude.Maybe Data.ISO8601+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AllowListSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'allowListSummary_arn' - The Amazon Resource Name (ARN) of the allow list.+--+-- 'createdAt', 'allowListSummary_createdAt' - The date and time, in UTC and extended ISO 8601 format, when the allow+-- list was created in Amazon Macie.+--+-- 'description', 'allowListSummary_description' - The custom description of the allow list.+--+-- 'id', 'allowListSummary_id' - The unique identifier for the allow list.+--+-- 'name', 'allowListSummary_name' - The custom name of the allow list.+--+-- 'updatedAt', 'allowListSummary_updatedAt' - The date and time, in UTC and extended ISO 8601 format, when the allow+-- list\'s settings were most recently changed in Amazon Macie.+newAllowListSummary ::+  AllowListSummary+newAllowListSummary =+  AllowListSummary'+    { arn = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      description = Prelude.Nothing,+      id = Prelude.Nothing,+      name = Prelude.Nothing,+      updatedAt = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the allow list.+allowListSummary_arn :: Lens.Lens' AllowListSummary (Prelude.Maybe Prelude.Text)+allowListSummary_arn = Lens.lens (\AllowListSummary' {arn} -> arn) (\s@AllowListSummary' {} a -> s {arn = a} :: AllowListSummary)++-- | The date and time, in UTC and extended ISO 8601 format, when the allow+-- list was created in Amazon Macie.+allowListSummary_createdAt :: Lens.Lens' AllowListSummary (Prelude.Maybe Prelude.UTCTime)+allowListSummary_createdAt = Lens.lens (\AllowListSummary' {createdAt} -> createdAt) (\s@AllowListSummary' {} a -> s {createdAt = a} :: AllowListSummary) Prelude.. Lens.mapping Data._Time++-- | The custom description of the allow list.+allowListSummary_description :: Lens.Lens' AllowListSummary (Prelude.Maybe Prelude.Text)+allowListSummary_description = Lens.lens (\AllowListSummary' {description} -> description) (\s@AllowListSummary' {} a -> s {description = a} :: AllowListSummary)++-- | The unique identifier for the allow list.+allowListSummary_id :: Lens.Lens' AllowListSummary (Prelude.Maybe Prelude.Text)+allowListSummary_id = Lens.lens (\AllowListSummary' {id} -> id) (\s@AllowListSummary' {} a -> s {id = a} :: AllowListSummary)++-- | The custom name of the allow list.+allowListSummary_name :: Lens.Lens' AllowListSummary (Prelude.Maybe Prelude.Text)+allowListSummary_name = Lens.lens (\AllowListSummary' {name} -> name) (\s@AllowListSummary' {} a -> s {name = a} :: AllowListSummary)++-- | The date and time, in UTC and extended ISO 8601 format, when the allow+-- list\'s settings were most recently changed in Amazon Macie.+allowListSummary_updatedAt :: Lens.Lens' AllowListSummary (Prelude.Maybe Prelude.UTCTime)+allowListSummary_updatedAt = Lens.lens (\AllowListSummary' {updatedAt} -> updatedAt) (\s@AllowListSummary' {} a -> s {updatedAt = a} :: AllowListSummary) Prelude.. Lens.mapping Data._Time++instance Data.FromJSON AllowListSummary where+  parseJSON =+    Data.withObject+      "AllowListSummary"+      ( \x ->+          AllowListSummary'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "createdAt")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "id")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "updatedAt")+      )++instance Prelude.Hashable AllowListSummary where+  hashWithSalt _salt AllowListSummary' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` updatedAt++instance Prelude.NFData AllowListSummary where+  rnf AllowListSummary' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf updatedAt
+ gen/Amazonka/MacieV2/Types/AllowsUnencryptedObjectUploads.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.MacieV2.Types.AllowsUnencryptedObjectUploads+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.AllowsUnencryptedObjectUploads+  ( AllowsUnencryptedObjectUploads+      ( ..,+        AllowsUnencryptedObjectUploads_FALSE,+        AllowsUnencryptedObjectUploads_TRUE,+        AllowsUnencryptedObjectUploads_UNKNOWN+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AllowsUnencryptedObjectUploads = AllowsUnencryptedObjectUploads'+  { fromAllowsUnencryptedObjectUploads ::+      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 AllowsUnencryptedObjectUploads_FALSE :: AllowsUnencryptedObjectUploads+pattern AllowsUnencryptedObjectUploads_FALSE = AllowsUnencryptedObjectUploads' "FALSE"++pattern AllowsUnencryptedObjectUploads_TRUE :: AllowsUnencryptedObjectUploads+pattern AllowsUnencryptedObjectUploads_TRUE = AllowsUnencryptedObjectUploads' "TRUE"++pattern AllowsUnencryptedObjectUploads_UNKNOWN :: AllowsUnencryptedObjectUploads+pattern AllowsUnencryptedObjectUploads_UNKNOWN = AllowsUnencryptedObjectUploads' "UNKNOWN"++{-# COMPLETE+  AllowsUnencryptedObjectUploads_FALSE,+  AllowsUnencryptedObjectUploads_TRUE,+  AllowsUnencryptedObjectUploads_UNKNOWN,+  AllowsUnencryptedObjectUploads'+  #-}
+ gen/Amazonka/MacieV2/Types/ApiCallDetails.hs view
@@ -0,0 +1,121 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.ApiCallDetails+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.ApiCallDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides information about an API operation that an entity invoked for+-- an affected resource.+--+-- /See:/ 'newApiCallDetails' smart constructor.+data ApiCallDetails = ApiCallDetails'+  { -- | The name of the operation that was invoked most recently and produced+    -- the finding.+    api :: Prelude.Maybe Prelude.Text,+    -- | The URL of the Amazon Web Service that provides the operation, for+    -- example: s3.amazonaws.com.+    apiServiceName :: Prelude.Maybe Prelude.Text,+    -- | The first date and time, in UTC and extended ISO 8601 format, when any+    -- operation was invoked and produced the finding.+    firstSeen :: Prelude.Maybe Data.ISO8601,+    -- | The most recent date and time, in UTC and extended ISO 8601 format, when+    -- the specified operation (api) was invoked and produced the finding.+    lastSeen :: Prelude.Maybe Data.ISO8601+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ApiCallDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'api', 'apiCallDetails_api' - The name of the operation that was invoked most recently and produced+-- the finding.+--+-- 'apiServiceName', 'apiCallDetails_apiServiceName' - The URL of the Amazon Web Service that provides the operation, for+-- example: s3.amazonaws.com.+--+-- 'firstSeen', 'apiCallDetails_firstSeen' - The first date and time, in UTC and extended ISO 8601 format, when any+-- operation was invoked and produced the finding.+--+-- 'lastSeen', 'apiCallDetails_lastSeen' - The most recent date and time, in UTC and extended ISO 8601 format, when+-- the specified operation (api) was invoked and produced the finding.+newApiCallDetails ::+  ApiCallDetails+newApiCallDetails =+  ApiCallDetails'+    { api = Prelude.Nothing,+      apiServiceName = Prelude.Nothing,+      firstSeen = Prelude.Nothing,+      lastSeen = Prelude.Nothing+    }++-- | The name of the operation that was invoked most recently and produced+-- the finding.+apiCallDetails_api :: Lens.Lens' ApiCallDetails (Prelude.Maybe Prelude.Text)+apiCallDetails_api = Lens.lens (\ApiCallDetails' {api} -> api) (\s@ApiCallDetails' {} a -> s {api = a} :: ApiCallDetails)++-- | The URL of the Amazon Web Service that provides the operation, for+-- example: s3.amazonaws.com.+apiCallDetails_apiServiceName :: Lens.Lens' ApiCallDetails (Prelude.Maybe Prelude.Text)+apiCallDetails_apiServiceName = Lens.lens (\ApiCallDetails' {apiServiceName} -> apiServiceName) (\s@ApiCallDetails' {} a -> s {apiServiceName = a} :: ApiCallDetails)++-- | The first date and time, in UTC and extended ISO 8601 format, when any+-- operation was invoked and produced the finding.+apiCallDetails_firstSeen :: Lens.Lens' ApiCallDetails (Prelude.Maybe Prelude.UTCTime)+apiCallDetails_firstSeen = Lens.lens (\ApiCallDetails' {firstSeen} -> firstSeen) (\s@ApiCallDetails' {} a -> s {firstSeen = a} :: ApiCallDetails) Prelude.. Lens.mapping Data._Time++-- | The most recent date and time, in UTC and extended ISO 8601 format, when+-- the specified operation (api) was invoked and produced the finding.+apiCallDetails_lastSeen :: Lens.Lens' ApiCallDetails (Prelude.Maybe Prelude.UTCTime)+apiCallDetails_lastSeen = Lens.lens (\ApiCallDetails' {lastSeen} -> lastSeen) (\s@ApiCallDetails' {} a -> s {lastSeen = a} :: ApiCallDetails) Prelude.. Lens.mapping Data._Time++instance Data.FromJSON ApiCallDetails where+  parseJSON =+    Data.withObject+      "ApiCallDetails"+      ( \x ->+          ApiCallDetails'+            Prelude.<$> (x Data..:? "api")+            Prelude.<*> (x Data..:? "apiServiceName")+            Prelude.<*> (x Data..:? "firstSeen")+            Prelude.<*> (x Data..:? "lastSeen")+      )++instance Prelude.Hashable ApiCallDetails where+  hashWithSalt _salt ApiCallDetails' {..} =+    _salt+      `Prelude.hashWithSalt` api+      `Prelude.hashWithSalt` apiServiceName+      `Prelude.hashWithSalt` firstSeen+      `Prelude.hashWithSalt` lastSeen++instance Prelude.NFData ApiCallDetails where+  rnf ApiCallDetails' {..} =+    Prelude.rnf api+      `Prelude.seq` Prelude.rnf apiServiceName+      `Prelude.seq` Prelude.rnf firstSeen+      `Prelude.seq` Prelude.rnf lastSeen
+ gen/Amazonka/MacieV2/Types/AssumedRole.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.MacieV2.Types.AssumedRole+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.AssumedRole where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.SessionContext+import qualified Amazonka.Prelude as Prelude++-- | Provides information about an identity that performed an action on an+-- affected resource by using temporary security credentials. The+-- credentials were obtained using the AssumeRole operation of the Security+-- Token Service (STS) API.+--+-- /See:/ 'newAssumedRole' smart constructor.+data AssumedRole = AssumedRole'+  { -- | The Amazon Web Services access key ID that identifies the credentials.+    accessKeyId :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the Amazon Web Services account that owns the+    -- entity that was used to get the credentials.+    accountId :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the entity that was used to get the+    -- credentials.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the entity that was used to get the+    -- credentials.+    principalId :: Prelude.Maybe Prelude.Text,+    -- | The details of the session that was created for the credentials,+    -- including the entity that issued the session.+    sessionContext :: Prelude.Maybe SessionContext+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssumedRole' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accessKeyId', 'assumedRole_accessKeyId' - The Amazon Web Services access key ID that identifies the credentials.+--+-- 'accountId', 'assumedRole_accountId' - The unique identifier for the Amazon Web Services account that owns the+-- entity that was used to get the credentials.+--+-- 'arn', 'assumedRole_arn' - The Amazon Resource Name (ARN) of the entity that was used to get the+-- credentials.+--+-- 'principalId', 'assumedRole_principalId' - The unique identifier for the entity that was used to get the+-- credentials.+--+-- 'sessionContext', 'assumedRole_sessionContext' - The details of the session that was created for the credentials,+-- including the entity that issued the session.+newAssumedRole ::+  AssumedRole+newAssumedRole =+  AssumedRole'+    { accessKeyId = Prelude.Nothing,+      accountId = Prelude.Nothing,+      arn = Prelude.Nothing,+      principalId = Prelude.Nothing,+      sessionContext = Prelude.Nothing+    }++-- | The Amazon Web Services access key ID that identifies the credentials.+assumedRole_accessKeyId :: Lens.Lens' AssumedRole (Prelude.Maybe Prelude.Text)+assumedRole_accessKeyId = Lens.lens (\AssumedRole' {accessKeyId} -> accessKeyId) (\s@AssumedRole' {} a -> s {accessKeyId = a} :: AssumedRole)++-- | The unique identifier for the Amazon Web Services account that owns the+-- entity that was used to get the credentials.+assumedRole_accountId :: Lens.Lens' AssumedRole (Prelude.Maybe Prelude.Text)+assumedRole_accountId = Lens.lens (\AssumedRole' {accountId} -> accountId) (\s@AssumedRole' {} a -> s {accountId = a} :: AssumedRole)++-- | The Amazon Resource Name (ARN) of the entity that was used to get the+-- credentials.+assumedRole_arn :: Lens.Lens' AssumedRole (Prelude.Maybe Prelude.Text)+assumedRole_arn = Lens.lens (\AssumedRole' {arn} -> arn) (\s@AssumedRole' {} a -> s {arn = a} :: AssumedRole)++-- | The unique identifier for the entity that was used to get the+-- credentials.+assumedRole_principalId :: Lens.Lens' AssumedRole (Prelude.Maybe Prelude.Text)+assumedRole_principalId = Lens.lens (\AssumedRole' {principalId} -> principalId) (\s@AssumedRole' {} a -> s {principalId = a} :: AssumedRole)++-- | The details of the session that was created for the credentials,+-- including the entity that issued the session.+assumedRole_sessionContext :: Lens.Lens' AssumedRole (Prelude.Maybe SessionContext)+assumedRole_sessionContext = Lens.lens (\AssumedRole' {sessionContext} -> sessionContext) (\s@AssumedRole' {} a -> s {sessionContext = a} :: AssumedRole)++instance Data.FromJSON AssumedRole where+  parseJSON =+    Data.withObject+      "AssumedRole"+      ( \x ->+          AssumedRole'+            Prelude.<$> (x Data..:? "accessKeyId")+            Prelude.<*> (x Data..:? "accountId")+            Prelude.<*> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "principalId")+            Prelude.<*> (x Data..:? "sessionContext")+      )++instance Prelude.Hashable AssumedRole where+  hashWithSalt _salt AssumedRole' {..} =+    _salt+      `Prelude.hashWithSalt` accessKeyId+      `Prelude.hashWithSalt` accountId+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` principalId+      `Prelude.hashWithSalt` sessionContext++instance Prelude.NFData AssumedRole where+  rnf AssumedRole' {..} =+    Prelude.rnf accessKeyId+      `Prelude.seq` Prelude.rnf accountId+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf principalId+      `Prelude.seq` Prelude.rnf sessionContext
+ gen/Amazonka/MacieV2/Types/AutomatedDiscoveryStatus.hs view
@@ -0,0 +1,73 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.AutomatedDiscoveryStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.AutomatedDiscoveryStatus+  ( AutomatedDiscoveryStatus+      ( ..,+        AutomatedDiscoveryStatus_DISABLED,+        AutomatedDiscoveryStatus_ENABLED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The status of the automated sensitive data discovery configuration for+-- an Amazon Macie account. Valid values are:+newtype AutomatedDiscoveryStatus = AutomatedDiscoveryStatus'+  { fromAutomatedDiscoveryStatus ::+      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 AutomatedDiscoveryStatus_DISABLED :: AutomatedDiscoveryStatus+pattern AutomatedDiscoveryStatus_DISABLED = AutomatedDiscoveryStatus' "DISABLED"++pattern AutomatedDiscoveryStatus_ENABLED :: AutomatedDiscoveryStatus+pattern AutomatedDiscoveryStatus_ENABLED = AutomatedDiscoveryStatus' "ENABLED"++{-# COMPLETE+  AutomatedDiscoveryStatus_DISABLED,+  AutomatedDiscoveryStatus_ENABLED,+  AutomatedDiscoveryStatus'+  #-}
+ gen/Amazonka/MacieV2/Types/AvailabilityCode.hs view
@@ -0,0 +1,73 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.AvailabilityCode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.AvailabilityCode+  ( AvailabilityCode+      ( ..,+        AvailabilityCode_AVAILABLE,+        AvailabilityCode_UNAVAILABLE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Specifies whether occurrences of sensitive data can be retrieved for a+-- finding. Possible values are:+newtype AvailabilityCode = AvailabilityCode'+  { fromAvailabilityCode ::+      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 AvailabilityCode_AVAILABLE :: AvailabilityCode+pattern AvailabilityCode_AVAILABLE = AvailabilityCode' "AVAILABLE"++pattern AvailabilityCode_UNAVAILABLE :: AvailabilityCode+pattern AvailabilityCode_UNAVAILABLE = AvailabilityCode' "UNAVAILABLE"++{-# COMPLETE+  AvailabilityCode_AVAILABLE,+  AvailabilityCode_UNAVAILABLE,+  AvailabilityCode'+  #-}
+ gen/Amazonka/MacieV2/Types/AwsAccount.hs view
@@ -0,0 +1,87 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.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.MacieV2.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++-- | Provides information about an Amazon Web Services account and entity+-- that performed an action on an affected resource. The action was+-- performed using the credentials for an Amazon Web Services account other+-- than your own account.+--+-- /See:/ 'newAwsAccount' smart constructor.+data AwsAccount = AwsAccount'+  { -- | The unique identifier for the Amazon Web Services account.+    accountId :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the entity that performed the action.+    principalId :: 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:+--+-- 'accountId', 'awsAccount_accountId' - The unique identifier for the Amazon Web Services account.+--+-- 'principalId', 'awsAccount_principalId' - The unique identifier for the entity that performed the action.+newAwsAccount ::+  AwsAccount+newAwsAccount =+  AwsAccount'+    { accountId = Prelude.Nothing,+      principalId = Prelude.Nothing+    }++-- | The unique identifier for the Amazon Web Services account.+awsAccount_accountId :: Lens.Lens' AwsAccount (Prelude.Maybe Prelude.Text)+awsAccount_accountId = Lens.lens (\AwsAccount' {accountId} -> accountId) (\s@AwsAccount' {} a -> s {accountId = a} :: AwsAccount)++-- | The unique identifier for the entity that performed the action.+awsAccount_principalId :: Lens.Lens' AwsAccount (Prelude.Maybe Prelude.Text)+awsAccount_principalId = Lens.lens (\AwsAccount' {principalId} -> principalId) (\s@AwsAccount' {} a -> s {principalId = a} :: AwsAccount)++instance Data.FromJSON AwsAccount where+  parseJSON =+    Data.withObject+      "AwsAccount"+      ( \x ->+          AwsAccount'+            Prelude.<$> (x Data..:? "accountId")+            Prelude.<*> (x Data..:? "principalId")+      )++instance Prelude.Hashable AwsAccount where+  hashWithSalt _salt AwsAccount' {..} =+    _salt+      `Prelude.hashWithSalt` accountId+      `Prelude.hashWithSalt` principalId++instance Prelude.NFData AwsAccount where+  rnf AwsAccount' {..} =+    Prelude.rnf accountId+      `Prelude.seq` Prelude.rnf principalId
+ gen/Amazonka/MacieV2/Types/AwsService.hs view
@@ -0,0 +1,68 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.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.MacieV2.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++-- | Provides information about an Amazon Web Service that performed an+-- action on an affected resource.+--+-- /See:/ 'newAwsService' smart constructor.+data AwsService = AwsService'+  { -- | The name of the Amazon Web Service that performed the action.+    invokedBy :: 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:+--+-- 'invokedBy', 'awsService_invokedBy' - The name of the Amazon Web Service that performed the action.+newAwsService ::+  AwsService+newAwsService =+  AwsService' {invokedBy = Prelude.Nothing}++-- | The name of the Amazon Web Service that performed the action.+awsService_invokedBy :: Lens.Lens' AwsService (Prelude.Maybe Prelude.Text)+awsService_invokedBy = Lens.lens (\AwsService' {invokedBy} -> invokedBy) (\s@AwsService' {} a -> s {invokedBy = a} :: AwsService)++instance Data.FromJSON AwsService where+  parseJSON =+    Data.withObject+      "AwsService"+      ( \x ->+          AwsService' Prelude.<$> (x Data..:? "invokedBy")+      )++instance Prelude.Hashable AwsService where+  hashWithSalt _salt AwsService' {..} =+    _salt `Prelude.hashWithSalt` invokedBy++instance Prelude.NFData AwsService where+  rnf AwsService' {..} = Prelude.rnf invokedBy
+ gen/Amazonka/MacieV2/Types/BatchGetCustomDataIdentifierSummary.hs view
@@ -0,0 +1,153 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.BatchGetCustomDataIdentifierSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.BatchGetCustomDataIdentifierSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides information about a custom data identifier.+--+-- /See:/ 'newBatchGetCustomDataIdentifierSummary' smart constructor.+data BatchGetCustomDataIdentifierSummary = BatchGetCustomDataIdentifierSummary'+  { -- | The Amazon Resource Name (ARN) of the custom data identifier.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The date and time, in UTC and extended ISO 8601 format, when the custom+    -- data identifier was created.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | Specifies whether the custom data identifier was deleted. If you delete+    -- a custom data identifier, Amazon Macie doesn\'t delete it permanently.+    -- Instead, it soft deletes the identifier.+    deleted :: Prelude.Maybe Prelude.Bool,+    -- | The custom description of the custom data identifier.+    description :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the custom data identifier.+    id :: Prelude.Maybe Prelude.Text,+    -- | The custom name of the custom data identifier.+    name :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchGetCustomDataIdentifierSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'batchGetCustomDataIdentifierSummary_arn' - The Amazon Resource Name (ARN) of the custom data identifier.+--+-- 'createdAt', 'batchGetCustomDataIdentifierSummary_createdAt' - The date and time, in UTC and extended ISO 8601 format, when the custom+-- data identifier was created.+--+-- 'deleted', 'batchGetCustomDataIdentifierSummary_deleted' - Specifies whether the custom data identifier was deleted. If you delete+-- a custom data identifier, Amazon Macie doesn\'t delete it permanently.+-- Instead, it soft deletes the identifier.+--+-- 'description', 'batchGetCustomDataIdentifierSummary_description' - The custom description of the custom data identifier.+--+-- 'id', 'batchGetCustomDataIdentifierSummary_id' - The unique identifier for the custom data identifier.+--+-- 'name', 'batchGetCustomDataIdentifierSummary_name' - The custom name of the custom data identifier.+newBatchGetCustomDataIdentifierSummary ::+  BatchGetCustomDataIdentifierSummary+newBatchGetCustomDataIdentifierSummary =+  BatchGetCustomDataIdentifierSummary'+    { arn =+        Prelude.Nothing,+      createdAt = Prelude.Nothing,+      deleted = Prelude.Nothing,+      description = Prelude.Nothing,+      id = Prelude.Nothing,+      name = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the custom data identifier.+batchGetCustomDataIdentifierSummary_arn :: Lens.Lens' BatchGetCustomDataIdentifierSummary (Prelude.Maybe Prelude.Text)+batchGetCustomDataIdentifierSummary_arn = Lens.lens (\BatchGetCustomDataIdentifierSummary' {arn} -> arn) (\s@BatchGetCustomDataIdentifierSummary' {} a -> s {arn = a} :: BatchGetCustomDataIdentifierSummary)++-- | The date and time, in UTC and extended ISO 8601 format, when the custom+-- data identifier was created.+batchGetCustomDataIdentifierSummary_createdAt :: Lens.Lens' BatchGetCustomDataIdentifierSummary (Prelude.Maybe Prelude.UTCTime)+batchGetCustomDataIdentifierSummary_createdAt = Lens.lens (\BatchGetCustomDataIdentifierSummary' {createdAt} -> createdAt) (\s@BatchGetCustomDataIdentifierSummary' {} a -> s {createdAt = a} :: BatchGetCustomDataIdentifierSummary) Prelude.. Lens.mapping Data._Time++-- | Specifies whether the custom data identifier was deleted. If you delete+-- a custom data identifier, Amazon Macie doesn\'t delete it permanently.+-- Instead, it soft deletes the identifier.+batchGetCustomDataIdentifierSummary_deleted :: Lens.Lens' BatchGetCustomDataIdentifierSummary (Prelude.Maybe Prelude.Bool)+batchGetCustomDataIdentifierSummary_deleted = Lens.lens (\BatchGetCustomDataIdentifierSummary' {deleted} -> deleted) (\s@BatchGetCustomDataIdentifierSummary' {} a -> s {deleted = a} :: BatchGetCustomDataIdentifierSummary)++-- | The custom description of the custom data identifier.+batchGetCustomDataIdentifierSummary_description :: Lens.Lens' BatchGetCustomDataIdentifierSummary (Prelude.Maybe Prelude.Text)+batchGetCustomDataIdentifierSummary_description = Lens.lens (\BatchGetCustomDataIdentifierSummary' {description} -> description) (\s@BatchGetCustomDataIdentifierSummary' {} a -> s {description = a} :: BatchGetCustomDataIdentifierSummary)++-- | The unique identifier for the custom data identifier.+batchGetCustomDataIdentifierSummary_id :: Lens.Lens' BatchGetCustomDataIdentifierSummary (Prelude.Maybe Prelude.Text)+batchGetCustomDataIdentifierSummary_id = Lens.lens (\BatchGetCustomDataIdentifierSummary' {id} -> id) (\s@BatchGetCustomDataIdentifierSummary' {} a -> s {id = a} :: BatchGetCustomDataIdentifierSummary)++-- | The custom name of the custom data identifier.+batchGetCustomDataIdentifierSummary_name :: Lens.Lens' BatchGetCustomDataIdentifierSummary (Prelude.Maybe Prelude.Text)+batchGetCustomDataIdentifierSummary_name = Lens.lens (\BatchGetCustomDataIdentifierSummary' {name} -> name) (\s@BatchGetCustomDataIdentifierSummary' {} a -> s {name = a} :: BatchGetCustomDataIdentifierSummary)++instance+  Data.FromJSON+    BatchGetCustomDataIdentifierSummary+  where+  parseJSON =+    Data.withObject+      "BatchGetCustomDataIdentifierSummary"+      ( \x ->+          BatchGetCustomDataIdentifierSummary'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "createdAt")+            Prelude.<*> (x Data..:? "deleted")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "id")+            Prelude.<*> (x Data..:? "name")+      )++instance+  Prelude.Hashable+    BatchGetCustomDataIdentifierSummary+  where+  hashWithSalt+    _salt+    BatchGetCustomDataIdentifierSummary' {..} =+      _salt+        `Prelude.hashWithSalt` arn+        `Prelude.hashWithSalt` createdAt+        `Prelude.hashWithSalt` deleted+        `Prelude.hashWithSalt` description+        `Prelude.hashWithSalt` id+        `Prelude.hashWithSalt` name++instance+  Prelude.NFData+    BatchGetCustomDataIdentifierSummary+  where+  rnf BatchGetCustomDataIdentifierSummary' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf deleted+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/MacieV2/Types/BlockPublicAccess.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.MacieV2.Types.BlockPublicAccess+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.BlockPublicAccess where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the block public access settings for an S3+-- bucket. These settings can apply to a bucket at the account or bucket+-- level. For detailed information about each setting, see+-- <https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-control-block-public-access.html Blocking public access to your Amazon S3 storage>+-- in the /Amazon Simple Storage Service User Guide/.+--+-- /See:/ 'newBlockPublicAccess' smart constructor.+data BlockPublicAccess = BlockPublicAccess'+  { -- | Specifies whether Amazon S3 blocks public access control lists (ACLs)+    -- for the bucket and objects in the bucket.+    blockPublicAcls :: Prelude.Maybe Prelude.Bool,+    -- | Specifies whether Amazon S3 blocks public bucket policies for the+    -- bucket.+    blockPublicPolicy :: Prelude.Maybe Prelude.Bool,+    -- | Specifies whether Amazon S3 ignores public ACLs for the bucket and+    -- objects in the bucket.+    ignorePublicAcls :: Prelude.Maybe Prelude.Bool,+    -- | Specifies whether Amazon S3 restricts public bucket policies for the+    -- bucket.+    restrictPublicBuckets :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BlockPublicAccess' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'blockPublicAcls', 'blockPublicAccess_blockPublicAcls' - Specifies whether Amazon S3 blocks public access control lists (ACLs)+-- for the bucket and objects in the bucket.+--+-- 'blockPublicPolicy', 'blockPublicAccess_blockPublicPolicy' - Specifies whether Amazon S3 blocks public bucket policies for the+-- bucket.+--+-- 'ignorePublicAcls', 'blockPublicAccess_ignorePublicAcls' - Specifies whether Amazon S3 ignores public ACLs for the bucket and+-- objects in the bucket.+--+-- 'restrictPublicBuckets', 'blockPublicAccess_restrictPublicBuckets' - Specifies whether Amazon S3 restricts public bucket policies for the+-- bucket.+newBlockPublicAccess ::+  BlockPublicAccess+newBlockPublicAccess =+  BlockPublicAccess'+    { blockPublicAcls =+        Prelude.Nothing,+      blockPublicPolicy = Prelude.Nothing,+      ignorePublicAcls = Prelude.Nothing,+      restrictPublicBuckets = Prelude.Nothing+    }++-- | Specifies whether Amazon S3 blocks public access control lists (ACLs)+-- for the bucket and objects in the bucket.+blockPublicAccess_blockPublicAcls :: Lens.Lens' BlockPublicAccess (Prelude.Maybe Prelude.Bool)+blockPublicAccess_blockPublicAcls = Lens.lens (\BlockPublicAccess' {blockPublicAcls} -> blockPublicAcls) (\s@BlockPublicAccess' {} a -> s {blockPublicAcls = a} :: BlockPublicAccess)++-- | Specifies whether Amazon S3 blocks public bucket policies for the+-- bucket.+blockPublicAccess_blockPublicPolicy :: Lens.Lens' BlockPublicAccess (Prelude.Maybe Prelude.Bool)+blockPublicAccess_blockPublicPolicy = Lens.lens (\BlockPublicAccess' {blockPublicPolicy} -> blockPublicPolicy) (\s@BlockPublicAccess' {} a -> s {blockPublicPolicy = a} :: BlockPublicAccess)++-- | Specifies whether Amazon S3 ignores public ACLs for the bucket and+-- objects in the bucket.+blockPublicAccess_ignorePublicAcls :: Lens.Lens' BlockPublicAccess (Prelude.Maybe Prelude.Bool)+blockPublicAccess_ignorePublicAcls = Lens.lens (\BlockPublicAccess' {ignorePublicAcls} -> ignorePublicAcls) (\s@BlockPublicAccess' {} a -> s {ignorePublicAcls = a} :: BlockPublicAccess)++-- | Specifies whether Amazon S3 restricts public bucket policies for the+-- bucket.+blockPublicAccess_restrictPublicBuckets :: Lens.Lens' BlockPublicAccess (Prelude.Maybe Prelude.Bool)+blockPublicAccess_restrictPublicBuckets = Lens.lens (\BlockPublicAccess' {restrictPublicBuckets} -> restrictPublicBuckets) (\s@BlockPublicAccess' {} a -> s {restrictPublicBuckets = a} :: BlockPublicAccess)++instance Data.FromJSON BlockPublicAccess where+  parseJSON =+    Data.withObject+      "BlockPublicAccess"+      ( \x ->+          BlockPublicAccess'+            Prelude.<$> (x Data..:? "blockPublicAcls")+            Prelude.<*> (x Data..:? "blockPublicPolicy")+            Prelude.<*> (x Data..:? "ignorePublicAcls")+            Prelude.<*> (x Data..:? "restrictPublicBuckets")+      )++instance Prelude.Hashable BlockPublicAccess where+  hashWithSalt _salt BlockPublicAccess' {..} =+    _salt+      `Prelude.hashWithSalt` blockPublicAcls+      `Prelude.hashWithSalt` blockPublicPolicy+      `Prelude.hashWithSalt` ignorePublicAcls+      `Prelude.hashWithSalt` restrictPublicBuckets++instance Prelude.NFData BlockPublicAccess where+  rnf BlockPublicAccess' {..} =+    Prelude.rnf blockPublicAcls+      `Prelude.seq` Prelude.rnf blockPublicPolicy+      `Prelude.seq` Prelude.rnf ignorePublicAcls+      `Prelude.seq` Prelude.rnf restrictPublicBuckets
+ gen/Amazonka/MacieV2/Types/BucketCountByEffectivePermission.hs view
@@ -0,0 +1,137 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.BucketCountByEffectivePermission+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.BucketCountByEffectivePermission where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the number of S3 buckets that are publicly+-- accessible based on a combination of permissions settings for each+-- bucket.+--+-- /See:/ 'newBucketCountByEffectivePermission' smart constructor.+data BucketCountByEffectivePermission = BucketCountByEffectivePermission'+  { -- | The total number of buckets that allow the general public to have read+    -- or write access to the bucket.+    publiclyAccessible :: Prelude.Maybe Prelude.Integer,+    -- | The total number of buckets that allow the general public to have read+    -- access to the bucket.+    publiclyReadable :: Prelude.Maybe Prelude.Integer,+    -- | The total number of buckets that allow the general public to have write+    -- access to the bucket.+    publiclyWritable :: Prelude.Maybe Prelude.Integer,+    -- | The total number of buckets that Amazon Macie wasn\'t able to evaluate+    -- permissions settings for. Macie can\'t determine whether these buckets+    -- are publicly accessible.+    unknown :: Prelude.Maybe Prelude.Integer+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BucketCountByEffectivePermission' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'publiclyAccessible', 'bucketCountByEffectivePermission_publiclyAccessible' - The total number of buckets that allow the general public to have read+-- or write access to the bucket.+--+-- 'publiclyReadable', 'bucketCountByEffectivePermission_publiclyReadable' - The total number of buckets that allow the general public to have read+-- access to the bucket.+--+-- 'publiclyWritable', 'bucketCountByEffectivePermission_publiclyWritable' - The total number of buckets that allow the general public to have write+-- access to the bucket.+--+-- 'unknown', 'bucketCountByEffectivePermission_unknown' - The total number of buckets that Amazon Macie wasn\'t able to evaluate+-- permissions settings for. Macie can\'t determine whether these buckets+-- are publicly accessible.+newBucketCountByEffectivePermission ::+  BucketCountByEffectivePermission+newBucketCountByEffectivePermission =+  BucketCountByEffectivePermission'+    { publiclyAccessible =+        Prelude.Nothing,+      publiclyReadable = Prelude.Nothing,+      publiclyWritable = Prelude.Nothing,+      unknown = Prelude.Nothing+    }++-- | The total number of buckets that allow the general public to have read+-- or write access to the bucket.+bucketCountByEffectivePermission_publiclyAccessible :: Lens.Lens' BucketCountByEffectivePermission (Prelude.Maybe Prelude.Integer)+bucketCountByEffectivePermission_publiclyAccessible = Lens.lens (\BucketCountByEffectivePermission' {publiclyAccessible} -> publiclyAccessible) (\s@BucketCountByEffectivePermission' {} a -> s {publiclyAccessible = a} :: BucketCountByEffectivePermission)++-- | The total number of buckets that allow the general public to have read+-- access to the bucket.+bucketCountByEffectivePermission_publiclyReadable :: Lens.Lens' BucketCountByEffectivePermission (Prelude.Maybe Prelude.Integer)+bucketCountByEffectivePermission_publiclyReadable = Lens.lens (\BucketCountByEffectivePermission' {publiclyReadable} -> publiclyReadable) (\s@BucketCountByEffectivePermission' {} a -> s {publiclyReadable = a} :: BucketCountByEffectivePermission)++-- | The total number of buckets that allow the general public to have write+-- access to the bucket.+bucketCountByEffectivePermission_publiclyWritable :: Lens.Lens' BucketCountByEffectivePermission (Prelude.Maybe Prelude.Integer)+bucketCountByEffectivePermission_publiclyWritable = Lens.lens (\BucketCountByEffectivePermission' {publiclyWritable} -> publiclyWritable) (\s@BucketCountByEffectivePermission' {} a -> s {publiclyWritable = a} :: BucketCountByEffectivePermission)++-- | The total number of buckets that Amazon Macie wasn\'t able to evaluate+-- permissions settings for. Macie can\'t determine whether these buckets+-- are publicly accessible.+bucketCountByEffectivePermission_unknown :: Lens.Lens' BucketCountByEffectivePermission (Prelude.Maybe Prelude.Integer)+bucketCountByEffectivePermission_unknown = Lens.lens (\BucketCountByEffectivePermission' {unknown} -> unknown) (\s@BucketCountByEffectivePermission' {} a -> s {unknown = a} :: BucketCountByEffectivePermission)++instance+  Data.FromJSON+    BucketCountByEffectivePermission+  where+  parseJSON =+    Data.withObject+      "BucketCountByEffectivePermission"+      ( \x ->+          BucketCountByEffectivePermission'+            Prelude.<$> (x Data..:? "publiclyAccessible")+            Prelude.<*> (x Data..:? "publiclyReadable")+            Prelude.<*> (x Data..:? "publiclyWritable")+            Prelude.<*> (x Data..:? "unknown")+      )++instance+  Prelude.Hashable+    BucketCountByEffectivePermission+  where+  hashWithSalt+    _salt+    BucketCountByEffectivePermission' {..} =+      _salt+        `Prelude.hashWithSalt` publiclyAccessible+        `Prelude.hashWithSalt` publiclyReadable+        `Prelude.hashWithSalt` publiclyWritable+        `Prelude.hashWithSalt` unknown++instance+  Prelude.NFData+    BucketCountByEffectivePermission+  where+  rnf BucketCountByEffectivePermission' {..} =+    Prelude.rnf publiclyAccessible+      `Prelude.seq` Prelude.rnf publiclyReadable+      `Prelude.seq` Prelude.rnf publiclyWritable+      `Prelude.seq` Prelude.rnf unknown
+ gen/Amazonka/MacieV2/Types/BucketCountByEncryptionType.hs view
@@ -0,0 +1,134 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.BucketCountByEncryptionType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.BucketCountByEncryptionType where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the number of S3 buckets that use certain+-- types of server-side encryption by default or don\'t encrypt new objects+-- by default. For detailed information about these settings, see+-- <https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-encryption.html Setting default server-side encryption behavior for Amazon S3 buckets>+-- in the /Amazon Simple Storage Service User Guide/.+--+-- /See:/ 'newBucketCountByEncryptionType' smart constructor.+data BucketCountByEncryptionType = BucketCountByEncryptionType'+  { -- | The total number of buckets that use an KMS key to encrypt new objects+    -- by default, either an Amazon Web Services managed key or a customer+    -- managed key. These buckets use KMS encryption (SSE-KMS) by default.+    kmsManaged :: Prelude.Maybe Prelude.Integer,+    -- | The total number of buckets that use an Amazon S3 managed key to encrypt+    -- new objects by default. These buckets use Amazon S3 managed encryption+    -- (SSE-S3) by default.+    s3Managed :: Prelude.Maybe Prelude.Integer,+    -- | The total number of buckets that don\'t encrypt new objects by default.+    -- Default encryption is disabled for these buckets.+    unencrypted :: Prelude.Maybe Prelude.Integer,+    -- | The total number of buckets that Amazon Macie doesn\'t have current+    -- encryption metadata for. Macie can\'t provide current data about the+    -- default encryption settings for these buckets.+    unknown :: Prelude.Maybe Prelude.Integer+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BucketCountByEncryptionType' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'kmsManaged', 'bucketCountByEncryptionType_kmsManaged' - The total number of buckets that use an KMS key to encrypt new objects+-- by default, either an Amazon Web Services managed key or a customer+-- managed key. These buckets use KMS encryption (SSE-KMS) by default.+--+-- 's3Managed', 'bucketCountByEncryptionType_s3Managed' - The total number of buckets that use an Amazon S3 managed key to encrypt+-- new objects by default. These buckets use Amazon S3 managed encryption+-- (SSE-S3) by default.+--+-- 'unencrypted', 'bucketCountByEncryptionType_unencrypted' - The total number of buckets that don\'t encrypt new objects by default.+-- Default encryption is disabled for these buckets.+--+-- 'unknown', 'bucketCountByEncryptionType_unknown' - The total number of buckets that Amazon Macie doesn\'t have current+-- encryption metadata for. Macie can\'t provide current data about the+-- default encryption settings for these buckets.+newBucketCountByEncryptionType ::+  BucketCountByEncryptionType+newBucketCountByEncryptionType =+  BucketCountByEncryptionType'+    { kmsManaged =+        Prelude.Nothing,+      s3Managed = Prelude.Nothing,+      unencrypted = Prelude.Nothing,+      unknown = Prelude.Nothing+    }++-- | The total number of buckets that use an KMS key to encrypt new objects+-- by default, either an Amazon Web Services managed key or a customer+-- managed key. These buckets use KMS encryption (SSE-KMS) by default.+bucketCountByEncryptionType_kmsManaged :: Lens.Lens' BucketCountByEncryptionType (Prelude.Maybe Prelude.Integer)+bucketCountByEncryptionType_kmsManaged = Lens.lens (\BucketCountByEncryptionType' {kmsManaged} -> kmsManaged) (\s@BucketCountByEncryptionType' {} a -> s {kmsManaged = a} :: BucketCountByEncryptionType)++-- | The total number of buckets that use an Amazon S3 managed key to encrypt+-- new objects by default. These buckets use Amazon S3 managed encryption+-- (SSE-S3) by default.+bucketCountByEncryptionType_s3Managed :: Lens.Lens' BucketCountByEncryptionType (Prelude.Maybe Prelude.Integer)+bucketCountByEncryptionType_s3Managed = Lens.lens (\BucketCountByEncryptionType' {s3Managed} -> s3Managed) (\s@BucketCountByEncryptionType' {} a -> s {s3Managed = a} :: BucketCountByEncryptionType)++-- | The total number of buckets that don\'t encrypt new objects by default.+-- Default encryption is disabled for these buckets.+bucketCountByEncryptionType_unencrypted :: Lens.Lens' BucketCountByEncryptionType (Prelude.Maybe Prelude.Integer)+bucketCountByEncryptionType_unencrypted = Lens.lens (\BucketCountByEncryptionType' {unencrypted} -> unencrypted) (\s@BucketCountByEncryptionType' {} a -> s {unencrypted = a} :: BucketCountByEncryptionType)++-- | The total number of buckets that Amazon Macie doesn\'t have current+-- encryption metadata for. Macie can\'t provide current data about the+-- default encryption settings for these buckets.+bucketCountByEncryptionType_unknown :: Lens.Lens' BucketCountByEncryptionType (Prelude.Maybe Prelude.Integer)+bucketCountByEncryptionType_unknown = Lens.lens (\BucketCountByEncryptionType' {unknown} -> unknown) (\s@BucketCountByEncryptionType' {} a -> s {unknown = a} :: BucketCountByEncryptionType)++instance Data.FromJSON BucketCountByEncryptionType where+  parseJSON =+    Data.withObject+      "BucketCountByEncryptionType"+      ( \x ->+          BucketCountByEncryptionType'+            Prelude.<$> (x Data..:? "kmsManaged")+            Prelude.<*> (x Data..:? "s3Managed")+            Prelude.<*> (x Data..:? "unencrypted")+            Prelude.<*> (x Data..:? "unknown")+      )++instance Prelude.Hashable BucketCountByEncryptionType where+  hashWithSalt _salt BucketCountByEncryptionType' {..} =+    _salt+      `Prelude.hashWithSalt` kmsManaged+      `Prelude.hashWithSalt` s3Managed+      `Prelude.hashWithSalt` unencrypted+      `Prelude.hashWithSalt` unknown++instance Prelude.NFData BucketCountByEncryptionType where+  rnf BucketCountByEncryptionType' {..} =+    Prelude.rnf kmsManaged+      `Prelude.seq` Prelude.rnf s3Managed+      `Prelude.seq` Prelude.rnf unencrypted+      `Prelude.seq` Prelude.rnf unknown
+ gen/Amazonka/MacieV2/Types/BucketCountBySharedAccessType.hs view
@@ -0,0 +1,128 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.BucketCountBySharedAccessType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.BucketCountBySharedAccessType where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the number of S3 buckets that are or aren\'t+-- shared with other Amazon Web Services accounts.+--+-- /See:/ 'newBucketCountBySharedAccessType' smart constructor.+data BucketCountBySharedAccessType = BucketCountBySharedAccessType'+  { -- | The total number of buckets that are shared with an Amazon Web Services+    -- account that isn\'t part of the same Amazon Macie organization.+    external :: Prelude.Maybe Prelude.Integer,+    -- | The total number of buckets that are shared with an Amazon Web Services+    -- account that\'s part of the same Amazon Macie organization.+    internal :: Prelude.Maybe Prelude.Integer,+    -- | The total number of buckets that aren\'t shared with other Amazon Web+    -- Services accounts.+    notShared :: Prelude.Maybe Prelude.Integer,+    -- | The total number of buckets that Amazon Macie wasn\'t able to evaluate+    -- shared access settings for. Macie can\'t determine whether these buckets+    -- are shared with other Amazon Web Services accounts.+    unknown :: Prelude.Maybe Prelude.Integer+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BucketCountBySharedAccessType' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'external', 'bucketCountBySharedAccessType_external' - The total number of buckets that are shared with an Amazon Web Services+-- account that isn\'t part of the same Amazon Macie organization.+--+-- 'internal', 'bucketCountBySharedAccessType_internal' - The total number of buckets that are shared with an Amazon Web Services+-- account that\'s part of the same Amazon Macie organization.+--+-- 'notShared', 'bucketCountBySharedAccessType_notShared' - The total number of buckets that aren\'t shared with other Amazon Web+-- Services accounts.+--+-- 'unknown', 'bucketCountBySharedAccessType_unknown' - The total number of buckets that Amazon Macie wasn\'t able to evaluate+-- shared access settings for. Macie can\'t determine whether these buckets+-- are shared with other Amazon Web Services accounts.+newBucketCountBySharedAccessType ::+  BucketCountBySharedAccessType+newBucketCountBySharedAccessType =+  BucketCountBySharedAccessType'+    { external =+        Prelude.Nothing,+      internal = Prelude.Nothing,+      notShared = Prelude.Nothing,+      unknown = Prelude.Nothing+    }++-- | The total number of buckets that are shared with an Amazon Web Services+-- account that isn\'t part of the same Amazon Macie organization.+bucketCountBySharedAccessType_external :: Lens.Lens' BucketCountBySharedAccessType (Prelude.Maybe Prelude.Integer)+bucketCountBySharedAccessType_external = Lens.lens (\BucketCountBySharedAccessType' {external} -> external) (\s@BucketCountBySharedAccessType' {} a -> s {external = a} :: BucketCountBySharedAccessType)++-- | The total number of buckets that are shared with an Amazon Web Services+-- account that\'s part of the same Amazon Macie organization.+bucketCountBySharedAccessType_internal :: Lens.Lens' BucketCountBySharedAccessType (Prelude.Maybe Prelude.Integer)+bucketCountBySharedAccessType_internal = Lens.lens (\BucketCountBySharedAccessType' {internal} -> internal) (\s@BucketCountBySharedAccessType' {} a -> s {internal = a} :: BucketCountBySharedAccessType)++-- | The total number of buckets that aren\'t shared with other Amazon Web+-- Services accounts.+bucketCountBySharedAccessType_notShared :: Lens.Lens' BucketCountBySharedAccessType (Prelude.Maybe Prelude.Integer)+bucketCountBySharedAccessType_notShared = Lens.lens (\BucketCountBySharedAccessType' {notShared} -> notShared) (\s@BucketCountBySharedAccessType' {} a -> s {notShared = a} :: BucketCountBySharedAccessType)++-- | The total number of buckets that Amazon Macie wasn\'t able to evaluate+-- shared access settings for. Macie can\'t determine whether these buckets+-- are shared with other Amazon Web Services accounts.+bucketCountBySharedAccessType_unknown :: Lens.Lens' BucketCountBySharedAccessType (Prelude.Maybe Prelude.Integer)+bucketCountBySharedAccessType_unknown = Lens.lens (\BucketCountBySharedAccessType' {unknown} -> unknown) (\s@BucketCountBySharedAccessType' {} a -> s {unknown = a} :: BucketCountBySharedAccessType)++instance Data.FromJSON BucketCountBySharedAccessType where+  parseJSON =+    Data.withObject+      "BucketCountBySharedAccessType"+      ( \x ->+          BucketCountBySharedAccessType'+            Prelude.<$> (x Data..:? "external")+            Prelude.<*> (x Data..:? "internal")+            Prelude.<*> (x Data..:? "notShared")+            Prelude.<*> (x Data..:? "unknown")+      )++instance+  Prelude.Hashable+    BucketCountBySharedAccessType+  where+  hashWithSalt _salt BucketCountBySharedAccessType' {..} =+    _salt+      `Prelude.hashWithSalt` external+      `Prelude.hashWithSalt` internal+      `Prelude.hashWithSalt` notShared+      `Prelude.hashWithSalt` unknown++instance Prelude.NFData BucketCountBySharedAccessType where+  rnf BucketCountBySharedAccessType' {..} =+    Prelude.rnf external+      `Prelude.seq` Prelude.rnf internal+      `Prelude.seq` Prelude.rnf notShared+      `Prelude.seq` Prelude.rnf unknown
+ gen/Amazonka/MacieV2/Types/BucketCountPolicyAllowsUnencryptedObjectUploads.hs view
@@ -0,0 +1,154 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.BucketCountPolicyAllowsUnencryptedObjectUploads+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.BucketCountPolicyAllowsUnencryptedObjectUploads where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the number of S3 buckets whose bucket+-- policies do or don\'t require server-side encryption of objects when+-- objects are uploaded to the buckets.+--+-- /See:/ 'newBucketCountPolicyAllowsUnencryptedObjectUploads' smart constructor.+data BucketCountPolicyAllowsUnencryptedObjectUploads = BucketCountPolicyAllowsUnencryptedObjectUploads'+  { -- | The total number of buckets that don\'t have a bucket policy or have a+    -- bucket policy that doesn\'t require server-side encryption of new+    -- objects. If a bucket policy exists, the policy doesn\'t require+    -- PutObject requests to include a valid server-side encryption header: the+    -- x-amz-server-side-encryption header with a value of AES256 or aws:kms,+    -- or the x-amz-server-side-encryption-customer-algorithm header with a+    -- value of AES256.+    allowsUnencryptedObjectUploads :: Prelude.Maybe Prelude.Integer,+    -- | The total number of buckets whose bucket policies require server-side+    -- encryption of new objects. PutObject requests for these buckets must+    -- include a valid server-side encryption header: the+    -- x-amz-server-side-encryption header with a value of AES256 or aws:kms,+    -- or the x-amz-server-side-encryption-customer-algorithm header with a+    -- value of AES256.+    deniesUnencryptedObjectUploads :: Prelude.Maybe Prelude.Integer,+    -- | The total number of buckets that Amazon Macie wasn\'t able to evaluate+    -- server-side encryption requirements for. Macie can\'t determine whether+    -- the bucket policies for these buckets require server-side encryption of+    -- new objects.+    unknown :: Prelude.Maybe Prelude.Integer+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BucketCountPolicyAllowsUnencryptedObjectUploads' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'allowsUnencryptedObjectUploads', 'bucketCountPolicyAllowsUnencryptedObjectUploads_allowsUnencryptedObjectUploads' - The total number of buckets that don\'t have a bucket policy or have a+-- bucket policy that doesn\'t require server-side encryption of new+-- objects. If a bucket policy exists, the policy doesn\'t require+-- PutObject requests to include a valid server-side encryption header: the+-- x-amz-server-side-encryption header with a value of AES256 or aws:kms,+-- or the x-amz-server-side-encryption-customer-algorithm header with a+-- value of AES256.+--+-- 'deniesUnencryptedObjectUploads', 'bucketCountPolicyAllowsUnencryptedObjectUploads_deniesUnencryptedObjectUploads' - The total number of buckets whose bucket policies require server-side+-- encryption of new objects. PutObject requests for these buckets must+-- include a valid server-side encryption header: the+-- x-amz-server-side-encryption header with a value of AES256 or aws:kms,+-- or the x-amz-server-side-encryption-customer-algorithm header with a+-- value of AES256.+--+-- 'unknown', 'bucketCountPolicyAllowsUnencryptedObjectUploads_unknown' - The total number of buckets that Amazon Macie wasn\'t able to evaluate+-- server-side encryption requirements for. Macie can\'t determine whether+-- the bucket policies for these buckets require server-side encryption of+-- new objects.+newBucketCountPolicyAllowsUnencryptedObjectUploads ::+  BucketCountPolicyAllowsUnencryptedObjectUploads+newBucketCountPolicyAllowsUnencryptedObjectUploads =+  BucketCountPolicyAllowsUnencryptedObjectUploads'+    { allowsUnencryptedObjectUploads =+        Prelude.Nothing,+      deniesUnencryptedObjectUploads =+        Prelude.Nothing,+      unknown = Prelude.Nothing+    }++-- | The total number of buckets that don\'t have a bucket policy or have a+-- bucket policy that doesn\'t require server-side encryption of new+-- objects. If a bucket policy exists, the policy doesn\'t require+-- PutObject requests to include a valid server-side encryption header: the+-- x-amz-server-side-encryption header with a value of AES256 or aws:kms,+-- or the x-amz-server-side-encryption-customer-algorithm header with a+-- value of AES256.+bucketCountPolicyAllowsUnencryptedObjectUploads_allowsUnencryptedObjectUploads :: Lens.Lens' BucketCountPolicyAllowsUnencryptedObjectUploads (Prelude.Maybe Prelude.Integer)+bucketCountPolicyAllowsUnencryptedObjectUploads_allowsUnencryptedObjectUploads = Lens.lens (\BucketCountPolicyAllowsUnencryptedObjectUploads' {allowsUnencryptedObjectUploads} -> allowsUnencryptedObjectUploads) (\s@BucketCountPolicyAllowsUnencryptedObjectUploads' {} a -> s {allowsUnencryptedObjectUploads = a} :: BucketCountPolicyAllowsUnencryptedObjectUploads)++-- | The total number of buckets whose bucket policies require server-side+-- encryption of new objects. PutObject requests for these buckets must+-- include a valid server-side encryption header: the+-- x-amz-server-side-encryption header with a value of AES256 or aws:kms,+-- or the x-amz-server-side-encryption-customer-algorithm header with a+-- value of AES256.+bucketCountPolicyAllowsUnencryptedObjectUploads_deniesUnencryptedObjectUploads :: Lens.Lens' BucketCountPolicyAllowsUnencryptedObjectUploads (Prelude.Maybe Prelude.Integer)+bucketCountPolicyAllowsUnencryptedObjectUploads_deniesUnencryptedObjectUploads = Lens.lens (\BucketCountPolicyAllowsUnencryptedObjectUploads' {deniesUnencryptedObjectUploads} -> deniesUnencryptedObjectUploads) (\s@BucketCountPolicyAllowsUnencryptedObjectUploads' {} a -> s {deniesUnencryptedObjectUploads = a} :: BucketCountPolicyAllowsUnencryptedObjectUploads)++-- | The total number of buckets that Amazon Macie wasn\'t able to evaluate+-- server-side encryption requirements for. Macie can\'t determine whether+-- the bucket policies for these buckets require server-side encryption of+-- new objects.+bucketCountPolicyAllowsUnencryptedObjectUploads_unknown :: Lens.Lens' BucketCountPolicyAllowsUnencryptedObjectUploads (Prelude.Maybe Prelude.Integer)+bucketCountPolicyAllowsUnencryptedObjectUploads_unknown = Lens.lens (\BucketCountPolicyAllowsUnencryptedObjectUploads' {unknown} -> unknown) (\s@BucketCountPolicyAllowsUnencryptedObjectUploads' {} a -> s {unknown = a} :: BucketCountPolicyAllowsUnencryptedObjectUploads)++instance+  Data.FromJSON+    BucketCountPolicyAllowsUnencryptedObjectUploads+  where+  parseJSON =+    Data.withObject+      "BucketCountPolicyAllowsUnencryptedObjectUploads"+      ( \x ->+          BucketCountPolicyAllowsUnencryptedObjectUploads'+            Prelude.<$> (x Data..:? "allowsUnencryptedObjectUploads")+            Prelude.<*> (x Data..:? "deniesUnencryptedObjectUploads")+            Prelude.<*> (x Data..:? "unknown")+      )++instance+  Prelude.Hashable+    BucketCountPolicyAllowsUnencryptedObjectUploads+  where+  hashWithSalt+    _salt+    BucketCountPolicyAllowsUnencryptedObjectUploads' {..} =+      _salt+        `Prelude.hashWithSalt` allowsUnencryptedObjectUploads+        `Prelude.hashWithSalt` deniesUnencryptedObjectUploads+        `Prelude.hashWithSalt` unknown++instance+  Prelude.NFData+    BucketCountPolicyAllowsUnencryptedObjectUploads+  where+  rnf+    BucketCountPolicyAllowsUnencryptedObjectUploads' {..} =+      Prelude.rnf allowsUnencryptedObjectUploads+        `Prelude.seq` Prelude.rnf deniesUnencryptedObjectUploads+        `Prelude.seq` Prelude.rnf unknown
+ gen/Amazonka/MacieV2/Types/BucketCriteriaAdditionalProperties.hs view
@@ -0,0 +1,168 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.BucketCriteriaAdditionalProperties+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.BucketCriteriaAdditionalProperties 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++-- | Specifies the operator to use in a property-based condition that filters+-- the results of a query for information about S3 buckets.+--+-- /See:/ 'newBucketCriteriaAdditionalProperties' smart constructor.+data BucketCriteriaAdditionalProperties = BucketCriteriaAdditionalProperties'+  { -- | The value for the property matches (equals) the specified value. If you+    -- specify multiple values, Amazon Macie uses OR logic to join the values.+    eq :: Prelude.Maybe [Prelude.Text],+    -- | The value for the property is greater than the specified value.+    gt :: Prelude.Maybe Prelude.Integer,+    -- | The value for the property is greater than or equal to the specified+    -- value.+    gte :: Prelude.Maybe Prelude.Integer,+    -- | The value for the property is less than the specified value.+    lt :: Prelude.Maybe Prelude.Integer,+    -- | The value for the property is less than or equal to the specified value.+    lte :: Prelude.Maybe Prelude.Integer,+    -- | The value for the property doesn\'t match (doesn\'t equal) the specified+    -- value. If you specify multiple values, Amazon Macie uses OR logic to+    -- join the values.+    neq :: Prelude.Maybe [Prelude.Text],+    -- | The name of the bucket begins with the specified value.+    prefix :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BucketCriteriaAdditionalProperties' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eq', 'bucketCriteriaAdditionalProperties_eq' - The value for the property matches (equals) the specified value. If you+-- specify multiple values, Amazon Macie uses OR logic to join the values.+--+-- 'gt', 'bucketCriteriaAdditionalProperties_gt' - The value for the property is greater than the specified value.+--+-- 'gte', 'bucketCriteriaAdditionalProperties_gte' - The value for the property is greater than or equal to the specified+-- value.+--+-- 'lt', 'bucketCriteriaAdditionalProperties_lt' - The value for the property is less than the specified value.+--+-- 'lte', 'bucketCriteriaAdditionalProperties_lte' - The value for the property is less than or equal to the specified value.+--+-- 'neq', 'bucketCriteriaAdditionalProperties_neq' - The value for the property doesn\'t match (doesn\'t equal) the specified+-- value. If you specify multiple values, Amazon Macie uses OR logic to+-- join the values.+--+-- 'prefix', 'bucketCriteriaAdditionalProperties_prefix' - The name of the bucket begins with the specified value.+newBucketCriteriaAdditionalProperties ::+  BucketCriteriaAdditionalProperties+newBucketCriteriaAdditionalProperties =+  BucketCriteriaAdditionalProperties'+    { eq =+        Prelude.Nothing,+      gt = Prelude.Nothing,+      gte = Prelude.Nothing,+      lt = Prelude.Nothing,+      lte = Prelude.Nothing,+      neq = Prelude.Nothing,+      prefix = Prelude.Nothing+    }++-- | The value for the property matches (equals) the specified value. If you+-- specify multiple values, Amazon Macie uses OR logic to join the values.+bucketCriteriaAdditionalProperties_eq :: Lens.Lens' BucketCriteriaAdditionalProperties (Prelude.Maybe [Prelude.Text])+bucketCriteriaAdditionalProperties_eq = Lens.lens (\BucketCriteriaAdditionalProperties' {eq} -> eq) (\s@BucketCriteriaAdditionalProperties' {} a -> s {eq = a} :: BucketCriteriaAdditionalProperties) Prelude.. Lens.mapping Lens.coerced++-- | The value for the property is greater than the specified value.+bucketCriteriaAdditionalProperties_gt :: Lens.Lens' BucketCriteriaAdditionalProperties (Prelude.Maybe Prelude.Integer)+bucketCriteriaAdditionalProperties_gt = Lens.lens (\BucketCriteriaAdditionalProperties' {gt} -> gt) (\s@BucketCriteriaAdditionalProperties' {} a -> s {gt = a} :: BucketCriteriaAdditionalProperties)++-- | The value for the property is greater than or equal to the specified+-- value.+bucketCriteriaAdditionalProperties_gte :: Lens.Lens' BucketCriteriaAdditionalProperties (Prelude.Maybe Prelude.Integer)+bucketCriteriaAdditionalProperties_gte = Lens.lens (\BucketCriteriaAdditionalProperties' {gte} -> gte) (\s@BucketCriteriaAdditionalProperties' {} a -> s {gte = a} :: BucketCriteriaAdditionalProperties)++-- | The value for the property is less than the specified value.+bucketCriteriaAdditionalProperties_lt :: Lens.Lens' BucketCriteriaAdditionalProperties (Prelude.Maybe Prelude.Integer)+bucketCriteriaAdditionalProperties_lt = Lens.lens (\BucketCriteriaAdditionalProperties' {lt} -> lt) (\s@BucketCriteriaAdditionalProperties' {} a -> s {lt = a} :: BucketCriteriaAdditionalProperties)++-- | The value for the property is less than or equal to the specified value.+bucketCriteriaAdditionalProperties_lte :: Lens.Lens' BucketCriteriaAdditionalProperties (Prelude.Maybe Prelude.Integer)+bucketCriteriaAdditionalProperties_lte = Lens.lens (\BucketCriteriaAdditionalProperties' {lte} -> lte) (\s@BucketCriteriaAdditionalProperties' {} a -> s {lte = a} :: BucketCriteriaAdditionalProperties)++-- | The value for the property doesn\'t match (doesn\'t equal) the specified+-- value. If you specify multiple values, Amazon Macie uses OR logic to+-- join the values.+bucketCriteriaAdditionalProperties_neq :: Lens.Lens' BucketCriteriaAdditionalProperties (Prelude.Maybe [Prelude.Text])+bucketCriteriaAdditionalProperties_neq = Lens.lens (\BucketCriteriaAdditionalProperties' {neq} -> neq) (\s@BucketCriteriaAdditionalProperties' {} a -> s {neq = a} :: BucketCriteriaAdditionalProperties) Prelude.. Lens.mapping Lens.coerced++-- | The name of the bucket begins with the specified value.+bucketCriteriaAdditionalProperties_prefix :: Lens.Lens' BucketCriteriaAdditionalProperties (Prelude.Maybe Prelude.Text)+bucketCriteriaAdditionalProperties_prefix = Lens.lens (\BucketCriteriaAdditionalProperties' {prefix} -> prefix) (\s@BucketCriteriaAdditionalProperties' {} a -> s {prefix = a} :: BucketCriteriaAdditionalProperties)++instance+  Prelude.Hashable+    BucketCriteriaAdditionalProperties+  where+  hashWithSalt+    _salt+    BucketCriteriaAdditionalProperties' {..} =+      _salt+        `Prelude.hashWithSalt` eq+        `Prelude.hashWithSalt` gt+        `Prelude.hashWithSalt` gte+        `Prelude.hashWithSalt` lt+        `Prelude.hashWithSalt` lte+        `Prelude.hashWithSalt` neq+        `Prelude.hashWithSalt` prefix++instance+  Prelude.NFData+    BucketCriteriaAdditionalProperties+  where+  rnf BucketCriteriaAdditionalProperties' {..} =+    Prelude.rnf eq+      `Prelude.seq` Prelude.rnf gt+      `Prelude.seq` Prelude.rnf gte+      `Prelude.seq` Prelude.rnf lt+      `Prelude.seq` Prelude.rnf lte+      `Prelude.seq` Prelude.rnf neq+      `Prelude.seq` Prelude.rnf prefix++instance+  Data.ToJSON+    BucketCriteriaAdditionalProperties+  where+  toJSON BucketCriteriaAdditionalProperties' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("eq" Data..=) Prelude.<$> eq,+            ("gt" Data..=) Prelude.<$> gt,+            ("gte" Data..=) Prelude.<$> gte,+            ("lt" Data..=) Prelude.<$> lt,+            ("lte" Data..=) Prelude.<$> lte,+            ("neq" Data..=) Prelude.<$> neq,+            ("prefix" Data..=) Prelude.<$> prefix+          ]+      )
+ gen/Amazonka/MacieV2/Types/BucketLevelPermissions.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.MacieV2.Types.BucketLevelPermissions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.BucketLevelPermissions where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.AccessControlList+import Amazonka.MacieV2.Types.BlockPublicAccess+import Amazonka.MacieV2.Types.BucketPolicy+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the bucket-level permissions settings for an+-- S3 bucket.+--+-- /See:/ 'newBucketLevelPermissions' smart constructor.+data BucketLevelPermissions = BucketLevelPermissions'+  { -- | The permissions settings of the access control list (ACL) for the+    -- bucket. This value is null if an ACL hasn\'t been defined for the+    -- bucket.+    accessControlList :: Prelude.Maybe AccessControlList,+    -- | The block public access settings for the bucket.+    blockPublicAccess :: Prelude.Maybe BlockPublicAccess,+    -- | The permissions settings of the bucket policy for the bucket. This value+    -- is null if a bucket policy hasn\'t been defined for the bucket.+    bucketPolicy :: Prelude.Maybe BucketPolicy+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BucketLevelPermissions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accessControlList', 'bucketLevelPermissions_accessControlList' - The permissions settings of the access control list (ACL) for the+-- bucket. This value is null if an ACL hasn\'t been defined for the+-- bucket.+--+-- 'blockPublicAccess', 'bucketLevelPermissions_blockPublicAccess' - The block public access settings for the bucket.+--+-- 'bucketPolicy', 'bucketLevelPermissions_bucketPolicy' - The permissions settings of the bucket policy for the bucket. This value+-- is null if a bucket policy hasn\'t been defined for the bucket.+newBucketLevelPermissions ::+  BucketLevelPermissions+newBucketLevelPermissions =+  BucketLevelPermissions'+    { accessControlList =+        Prelude.Nothing,+      blockPublicAccess = Prelude.Nothing,+      bucketPolicy = Prelude.Nothing+    }++-- | The permissions settings of the access control list (ACL) for the+-- bucket. This value is null if an ACL hasn\'t been defined for the+-- bucket.+bucketLevelPermissions_accessControlList :: Lens.Lens' BucketLevelPermissions (Prelude.Maybe AccessControlList)+bucketLevelPermissions_accessControlList = Lens.lens (\BucketLevelPermissions' {accessControlList} -> accessControlList) (\s@BucketLevelPermissions' {} a -> s {accessControlList = a} :: BucketLevelPermissions)++-- | The block public access settings for the bucket.+bucketLevelPermissions_blockPublicAccess :: Lens.Lens' BucketLevelPermissions (Prelude.Maybe BlockPublicAccess)+bucketLevelPermissions_blockPublicAccess = Lens.lens (\BucketLevelPermissions' {blockPublicAccess} -> blockPublicAccess) (\s@BucketLevelPermissions' {} a -> s {blockPublicAccess = a} :: BucketLevelPermissions)++-- | The permissions settings of the bucket policy for the bucket. This value+-- is null if a bucket policy hasn\'t been defined for the bucket.+bucketLevelPermissions_bucketPolicy :: Lens.Lens' BucketLevelPermissions (Prelude.Maybe BucketPolicy)+bucketLevelPermissions_bucketPolicy = Lens.lens (\BucketLevelPermissions' {bucketPolicy} -> bucketPolicy) (\s@BucketLevelPermissions' {} a -> s {bucketPolicy = a} :: BucketLevelPermissions)++instance Data.FromJSON BucketLevelPermissions where+  parseJSON =+    Data.withObject+      "BucketLevelPermissions"+      ( \x ->+          BucketLevelPermissions'+            Prelude.<$> (x Data..:? "accessControlList")+            Prelude.<*> (x Data..:? "blockPublicAccess")+            Prelude.<*> (x Data..:? "bucketPolicy")+      )++instance Prelude.Hashable BucketLevelPermissions where+  hashWithSalt _salt BucketLevelPermissions' {..} =+    _salt+      `Prelude.hashWithSalt` accessControlList+      `Prelude.hashWithSalt` blockPublicAccess+      `Prelude.hashWithSalt` bucketPolicy++instance Prelude.NFData BucketLevelPermissions where+  rnf BucketLevelPermissions' {..} =+    Prelude.rnf accessControlList+      `Prelude.seq` Prelude.rnf blockPublicAccess+      `Prelude.seq` Prelude.rnf bucketPolicy
+ gen/Amazonka/MacieV2/Types/BucketMetadata.hs view
@@ -0,0 +1,648 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.BucketMetadata+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.BucketMetadata where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.AllowsUnencryptedObjectUploads+import Amazonka.MacieV2.Types.BucketMetadataErrorCode+import Amazonka.MacieV2.Types.BucketPublicAccess+import Amazonka.MacieV2.Types.BucketServerSideEncryption+import Amazonka.MacieV2.Types.JobDetails+import Amazonka.MacieV2.Types.KeyValuePair+import Amazonka.MacieV2.Types.ObjectCountByEncryptionType+import Amazonka.MacieV2.Types.ObjectLevelStatistics+import Amazonka.MacieV2.Types.ReplicationDetails+import Amazonka.MacieV2.Types.SharedAccess+import qualified Amazonka.Prelude as Prelude++-- | Provides statistical data and other information about an S3 bucket that+-- Amazon Macie monitors and analyzes for your account. If an error occurs+-- when Macie attempts to retrieve and process metadata from Amazon S3 for+-- the bucket and the bucket\'s objects, the value for the versioning+-- property is false and the value for most other properties is null. Key+-- exceptions are accountId, bucketArn, bucketCreatedAt, bucketName,+-- lastUpdated, and region. To identify the cause of the error, refer to+-- the errorCode and errorMessage values.+--+-- /See:/ 'newBucketMetadata' smart constructor.+data BucketMetadata = BucketMetadata'+  { -- | The unique identifier for the Amazon Web Services account that owns the+    -- bucket.+    accountId :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether the bucket policy for the bucket requires server-side+    -- encryption of objects when objects are uploaded to the bucket. Possible+    -- values are:+    --+    -- -   FALSE - The bucket policy requires server-side encryption of new+    --     objects. PutObject requests must include a valid server-side+    --     encryption header.+    --+    -- -   TRUE - The bucket doesn\'t have a bucket policy or it has a bucket+    --     policy that doesn\'t require server-side encryption of new objects.+    --     If a bucket policy exists, it doesn\'t require PutObject requests to+    --     include a valid server-side encryption header.+    --+    -- -   UNKNOWN - Amazon Macie can\'t determine whether the bucket policy+    --     requires server-side encryption of new objects.+    --+    -- Valid server-side encryption headers are: x-amz-server-side-encryption+    -- with a value of AES256 or aws:kms, and+    -- x-amz-server-side-encryption-customer-algorithm with a value of AES256.+    allowsUnencryptedObjectUploads :: Prelude.Maybe AllowsUnencryptedObjectUploads,+    -- | The Amazon Resource Name (ARN) of the bucket.+    bucketArn :: Prelude.Maybe Prelude.Text,+    -- | The date and time, in UTC and extended ISO 8601 format, when the bucket+    -- was created, or changes such as edits to the bucket\'s policy were most+    -- recently made to the bucket.+    bucketCreatedAt :: Prelude.Maybe Data.ISO8601,+    -- | The name of the bucket.+    bucketName :: Prelude.Maybe Prelude.Text,+    -- | The total number of objects that Amazon Macie can analyze in the bucket.+    -- These objects use a supported storage class and have a file name+    -- extension for a supported file or storage format.+    classifiableObjectCount :: Prelude.Maybe Prelude.Integer,+    -- | The total storage size, in bytes, of the objects that Amazon Macie can+    -- analyze in the bucket. These objects use a supported storage class and+    -- have a file name extension for a supported file or storage format.+    --+    -- If versioning is enabled for the bucket, Macie calculates this value+    -- based on the size of the latest version of each applicable object in the+    -- bucket. This value doesn\'t reflect the storage size of all versions of+    -- each applicable object in the bucket.+    classifiableSizeInBytes :: Prelude.Maybe Prelude.Integer,+    -- | Specifies the error code for an error that prevented Amazon Macie from+    -- retrieving and processing information about the bucket and the bucket\'s+    -- objects. If this value is ACCESS_DENIED, Macie doesn\'t have permission+    -- to retrieve the information. For example, the bucket has a restrictive+    -- bucket policy and Amazon S3 denied the request. If this value is null,+    -- Macie was able to retrieve and process the information.+    errorCode :: Prelude.Maybe BucketMetadataErrorCode,+    -- | A brief description of the error (errorCode) that prevented Amazon Macie+    -- from retrieving and processing information about the bucket and the+    -- bucket\'s objects. This value is null if Macie was able to retrieve and+    -- process the information.+    errorMessage :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether any one-time or recurring classification jobs are+    -- configured to analyze data in the bucket, and, if so, the details of the+    -- job that ran most recently.+    jobDetails :: Prelude.Maybe JobDetails,+    -- | The date and time, in UTC and extended ISO 8601 format, when Amazon+    -- Macie most recently performed automated sensitive data discovery for the+    -- bucket. This value is null if automated sensitive data discovery is+    -- currently disabled for your account.+    lastAutomatedDiscoveryTime :: Prelude.Maybe Data.ISO8601,+    -- | The date and time, in UTC and extended ISO 8601 format, when Amazon+    -- Macie most recently retrieved both bucket and object metadata from+    -- Amazon S3 for the bucket.+    lastUpdated :: Prelude.Maybe Data.ISO8601,+    -- | The total number of objects in the bucket.+    objectCount :: Prelude.Maybe Prelude.Integer,+    -- | The total number of objects that are in the bucket, grouped by+    -- server-side encryption type. This includes a grouping that reports the+    -- total number of objects that aren\'t encrypted or use client-side+    -- encryption.+    objectCountByEncryptionType :: Prelude.Maybe ObjectCountByEncryptionType,+    -- | Specifies whether the bucket is publicly accessible due to the+    -- combination of permissions settings that apply to the bucket, and+    -- provides information about those settings.+    publicAccess :: Prelude.Maybe BucketPublicAccess,+    -- | The Amazon Web Services Region that hosts the bucket.+    region :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether the bucket is configured to replicate one or more+    -- objects to buckets for other Amazon Web Services accounts and, if so,+    -- which accounts.+    replicationDetails :: Prelude.Maybe ReplicationDetails,+    -- | The sensitivity score for the bucket, ranging from -1 (no analysis due+    -- to an error) to 100 (sensitive). This value is null if automated+    -- sensitive data discovery is currently disabled for your account.+    sensitivityScore :: Prelude.Maybe Prelude.Int,+    -- | Specifies whether the bucket encrypts new objects by default and, if so,+    -- the type of server-side encryption that\'s used.+    serverSideEncryption :: Prelude.Maybe BucketServerSideEncryption,+    -- | Specifies whether the bucket is shared with another Amazon Web Services+    -- account. Possible values are:+    --+    -- -   EXTERNAL - The bucket is shared with an Amazon Web Services account+    --     that isn\'t part of the same Amazon Macie organization.+    --+    -- -   INTERNAL - The bucket is shared with an Amazon Web Services account+    --     that\'s part of the same Amazon Macie organization.+    --+    -- -   NOT_SHARED - The bucket isn\'t shared with other Amazon Web Services+    --     accounts.+    --+    -- -   UNKNOWN - Amazon Macie wasn\'t able to evaluate the shared access+    --     settings for the bucket.+    sharedAccess :: Prelude.Maybe SharedAccess,+    -- | The total storage size, in bytes, of the bucket.+    --+    -- If versioning is enabled for the bucket, Amazon Macie calculates this+    -- value based on the size of the latest version of each object in the+    -- bucket. This value doesn\'t reflect the storage size of all versions of+    -- each object in the bucket.+    sizeInBytes :: Prelude.Maybe Prelude.Integer,+    -- | The total storage size, in bytes, of the objects that are compressed+    -- (.gz, .gzip, .zip) files in the bucket.+    --+    -- If versioning is enabled for the bucket, Amazon Macie calculates this+    -- value based on the size of the latest version of each applicable object+    -- in the bucket. This value doesn\'t reflect the storage size of all+    -- versions of each applicable object in the bucket.+    sizeInBytesCompressed :: Prelude.Maybe Prelude.Integer,+    -- | An array that specifies the tags (keys and values) that are associated+    -- with the bucket.+    tags :: Prelude.Maybe [KeyValuePair],+    -- | The total number of objects that Amazon Macie can\'t analyze in the+    -- bucket. These objects don\'t use a supported storage class or don\'t+    -- have a file name extension for a supported file or storage format.+    unclassifiableObjectCount :: Prelude.Maybe ObjectLevelStatistics,+    -- | The total storage size, in bytes, of the objects that Amazon Macie+    -- can\'t analyze in the bucket. These objects don\'t use a supported+    -- storage class or don\'t have a file name extension for a supported file+    -- or storage format.+    unclassifiableObjectSizeInBytes :: Prelude.Maybe ObjectLevelStatistics,+    -- | Specifies whether versioning is enabled for the bucket.+    versioning :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BucketMetadata' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'bucketMetadata_accountId' - The unique identifier for the Amazon Web Services account that owns the+-- bucket.+--+-- 'allowsUnencryptedObjectUploads', 'bucketMetadata_allowsUnencryptedObjectUploads' - Specifies whether the bucket policy for the bucket requires server-side+-- encryption of objects when objects are uploaded to the bucket. Possible+-- values are:+--+-- -   FALSE - The bucket policy requires server-side encryption of new+--     objects. PutObject requests must include a valid server-side+--     encryption header.+--+-- -   TRUE - The bucket doesn\'t have a bucket policy or it has a bucket+--     policy that doesn\'t require server-side encryption of new objects.+--     If a bucket policy exists, it doesn\'t require PutObject requests to+--     include a valid server-side encryption header.+--+-- -   UNKNOWN - Amazon Macie can\'t determine whether the bucket policy+--     requires server-side encryption of new objects.+--+-- Valid server-side encryption headers are: x-amz-server-side-encryption+-- with a value of AES256 or aws:kms, and+-- x-amz-server-side-encryption-customer-algorithm with a value of AES256.+--+-- 'bucketArn', 'bucketMetadata_bucketArn' - The Amazon Resource Name (ARN) of the bucket.+--+-- 'bucketCreatedAt', 'bucketMetadata_bucketCreatedAt' - The date and time, in UTC and extended ISO 8601 format, when the bucket+-- was created, or changes such as edits to the bucket\'s policy were most+-- recently made to the bucket.+--+-- 'bucketName', 'bucketMetadata_bucketName' - The name of the bucket.+--+-- 'classifiableObjectCount', 'bucketMetadata_classifiableObjectCount' - The total number of objects that Amazon Macie can analyze in the bucket.+-- These objects use a supported storage class and have a file name+-- extension for a supported file or storage format.+--+-- 'classifiableSizeInBytes', 'bucketMetadata_classifiableSizeInBytes' - The total storage size, in bytes, of the objects that Amazon Macie can+-- analyze in the bucket. These objects use a supported storage class and+-- have a file name extension for a supported file or storage format.+--+-- If versioning is enabled for the bucket, Macie calculates this value+-- based on the size of the latest version of each applicable object in the+-- bucket. This value doesn\'t reflect the storage size of all versions of+-- each applicable object in the bucket.+--+-- 'errorCode', 'bucketMetadata_errorCode' - Specifies the error code for an error that prevented Amazon Macie from+-- retrieving and processing information about the bucket and the bucket\'s+-- objects. If this value is ACCESS_DENIED, Macie doesn\'t have permission+-- to retrieve the information. For example, the bucket has a restrictive+-- bucket policy and Amazon S3 denied the request. If this value is null,+-- Macie was able to retrieve and process the information.+--+-- 'errorMessage', 'bucketMetadata_errorMessage' - A brief description of the error (errorCode) that prevented Amazon Macie+-- from retrieving and processing information about the bucket and the+-- bucket\'s objects. This value is null if Macie was able to retrieve and+-- process the information.+--+-- 'jobDetails', 'bucketMetadata_jobDetails' - Specifies whether any one-time or recurring classification jobs are+-- configured to analyze data in the bucket, and, if so, the details of the+-- job that ran most recently.+--+-- 'lastAutomatedDiscoveryTime', 'bucketMetadata_lastAutomatedDiscoveryTime' - The date and time, in UTC and extended ISO 8601 format, when Amazon+-- Macie most recently performed automated sensitive data discovery for the+-- bucket. This value is null if automated sensitive data discovery is+-- currently disabled for your account.+--+-- 'lastUpdated', 'bucketMetadata_lastUpdated' - The date and time, in UTC and extended ISO 8601 format, when Amazon+-- Macie most recently retrieved both bucket and object metadata from+-- Amazon S3 for the bucket.+--+-- 'objectCount', 'bucketMetadata_objectCount' - The total number of objects in the bucket.+--+-- 'objectCountByEncryptionType', 'bucketMetadata_objectCountByEncryptionType' - The total number of objects that are in the bucket, grouped by+-- server-side encryption type. This includes a grouping that reports the+-- total number of objects that aren\'t encrypted or use client-side+-- encryption.+--+-- 'publicAccess', 'bucketMetadata_publicAccess' - Specifies whether the bucket is publicly accessible due to the+-- combination of permissions settings that apply to the bucket, and+-- provides information about those settings.+--+-- 'region', 'bucketMetadata_region' - The Amazon Web Services Region that hosts the bucket.+--+-- 'replicationDetails', 'bucketMetadata_replicationDetails' - Specifies whether the bucket is configured to replicate one or more+-- objects to buckets for other Amazon Web Services accounts and, if so,+-- which accounts.+--+-- 'sensitivityScore', 'bucketMetadata_sensitivityScore' - The sensitivity score for the bucket, ranging from -1 (no analysis due+-- to an error) to 100 (sensitive). This value is null if automated+-- sensitive data discovery is currently disabled for your account.+--+-- 'serverSideEncryption', 'bucketMetadata_serverSideEncryption' - Specifies whether the bucket encrypts new objects by default and, if so,+-- the type of server-side encryption that\'s used.+--+-- 'sharedAccess', 'bucketMetadata_sharedAccess' - Specifies whether the bucket is shared with another Amazon Web Services+-- account. Possible values are:+--+-- -   EXTERNAL - The bucket is shared with an Amazon Web Services account+--     that isn\'t part of the same Amazon Macie organization.+--+-- -   INTERNAL - The bucket is shared with an Amazon Web Services account+--     that\'s part of the same Amazon Macie organization.+--+-- -   NOT_SHARED - The bucket isn\'t shared with other Amazon Web Services+--     accounts.+--+-- -   UNKNOWN - Amazon Macie wasn\'t able to evaluate the shared access+--     settings for the bucket.+--+-- 'sizeInBytes', 'bucketMetadata_sizeInBytes' - The total storage size, in bytes, of the bucket.+--+-- If versioning is enabled for the bucket, Amazon Macie calculates this+-- value based on the size of the latest version of each object in the+-- bucket. This value doesn\'t reflect the storage size of all versions of+-- each object in the bucket.+--+-- 'sizeInBytesCompressed', 'bucketMetadata_sizeInBytesCompressed' - The total storage size, in bytes, of the objects that are compressed+-- (.gz, .gzip, .zip) files in the bucket.+--+-- If versioning is enabled for the bucket, Amazon Macie calculates this+-- value based on the size of the latest version of each applicable object+-- in the bucket. This value doesn\'t reflect the storage size of all+-- versions of each applicable object in the bucket.+--+-- 'tags', 'bucketMetadata_tags' - An array that specifies the tags (keys and values) that are associated+-- with the bucket.+--+-- 'unclassifiableObjectCount', 'bucketMetadata_unclassifiableObjectCount' - The total number of objects that Amazon Macie can\'t analyze in the+-- bucket. These objects don\'t use a supported storage class or don\'t+-- have a file name extension for a supported file or storage format.+--+-- 'unclassifiableObjectSizeInBytes', 'bucketMetadata_unclassifiableObjectSizeInBytes' - The total storage size, in bytes, of the objects that Amazon Macie+-- can\'t analyze in the bucket. These objects don\'t use a supported+-- storage class or don\'t have a file name extension for a supported file+-- or storage format.+--+-- 'versioning', 'bucketMetadata_versioning' - Specifies whether versioning is enabled for the bucket.+newBucketMetadata ::+  BucketMetadata+newBucketMetadata =+  BucketMetadata'+    { accountId = Prelude.Nothing,+      allowsUnencryptedObjectUploads = Prelude.Nothing,+      bucketArn = Prelude.Nothing,+      bucketCreatedAt = Prelude.Nothing,+      bucketName = Prelude.Nothing,+      classifiableObjectCount = Prelude.Nothing,+      classifiableSizeInBytes = Prelude.Nothing,+      errorCode = Prelude.Nothing,+      errorMessage = Prelude.Nothing,+      jobDetails = Prelude.Nothing,+      lastAutomatedDiscoveryTime = Prelude.Nothing,+      lastUpdated = Prelude.Nothing,+      objectCount = Prelude.Nothing,+      objectCountByEncryptionType = Prelude.Nothing,+      publicAccess = Prelude.Nothing,+      region = Prelude.Nothing,+      replicationDetails = Prelude.Nothing,+      sensitivityScore = Prelude.Nothing,+      serverSideEncryption = Prelude.Nothing,+      sharedAccess = Prelude.Nothing,+      sizeInBytes = Prelude.Nothing,+      sizeInBytesCompressed = Prelude.Nothing,+      tags = Prelude.Nothing,+      unclassifiableObjectCount = Prelude.Nothing,+      unclassifiableObjectSizeInBytes = Prelude.Nothing,+      versioning = Prelude.Nothing+    }++-- | The unique identifier for the Amazon Web Services account that owns the+-- bucket.+bucketMetadata_accountId :: Lens.Lens' BucketMetadata (Prelude.Maybe Prelude.Text)+bucketMetadata_accountId = Lens.lens (\BucketMetadata' {accountId} -> accountId) (\s@BucketMetadata' {} a -> s {accountId = a} :: BucketMetadata)++-- | Specifies whether the bucket policy for the bucket requires server-side+-- encryption of objects when objects are uploaded to the bucket. Possible+-- values are:+--+-- -   FALSE - The bucket policy requires server-side encryption of new+--     objects. PutObject requests must include a valid server-side+--     encryption header.+--+-- -   TRUE - The bucket doesn\'t have a bucket policy or it has a bucket+--     policy that doesn\'t require server-side encryption of new objects.+--     If a bucket policy exists, it doesn\'t require PutObject requests to+--     include a valid server-side encryption header.+--+-- -   UNKNOWN - Amazon Macie can\'t determine whether the bucket policy+--     requires server-side encryption of new objects.+--+-- Valid server-side encryption headers are: x-amz-server-side-encryption+-- with a value of AES256 or aws:kms, and+-- x-amz-server-side-encryption-customer-algorithm with a value of AES256.+bucketMetadata_allowsUnencryptedObjectUploads :: Lens.Lens' BucketMetadata (Prelude.Maybe AllowsUnencryptedObjectUploads)+bucketMetadata_allowsUnencryptedObjectUploads = Lens.lens (\BucketMetadata' {allowsUnencryptedObjectUploads} -> allowsUnencryptedObjectUploads) (\s@BucketMetadata' {} a -> s {allowsUnencryptedObjectUploads = a} :: BucketMetadata)++-- | The Amazon Resource Name (ARN) of the bucket.+bucketMetadata_bucketArn :: Lens.Lens' BucketMetadata (Prelude.Maybe Prelude.Text)+bucketMetadata_bucketArn = Lens.lens (\BucketMetadata' {bucketArn} -> bucketArn) (\s@BucketMetadata' {} a -> s {bucketArn = a} :: BucketMetadata)++-- | The date and time, in UTC and extended ISO 8601 format, when the bucket+-- was created, or changes such as edits to the bucket\'s policy were most+-- recently made to the bucket.+bucketMetadata_bucketCreatedAt :: Lens.Lens' BucketMetadata (Prelude.Maybe Prelude.UTCTime)+bucketMetadata_bucketCreatedAt = Lens.lens (\BucketMetadata' {bucketCreatedAt} -> bucketCreatedAt) (\s@BucketMetadata' {} a -> s {bucketCreatedAt = a} :: BucketMetadata) Prelude.. Lens.mapping Data._Time++-- | The name of the bucket.+bucketMetadata_bucketName :: Lens.Lens' BucketMetadata (Prelude.Maybe Prelude.Text)+bucketMetadata_bucketName = Lens.lens (\BucketMetadata' {bucketName} -> bucketName) (\s@BucketMetadata' {} a -> s {bucketName = a} :: BucketMetadata)++-- | The total number of objects that Amazon Macie can analyze in the bucket.+-- These objects use a supported storage class and have a file name+-- extension for a supported file or storage format.+bucketMetadata_classifiableObjectCount :: Lens.Lens' BucketMetadata (Prelude.Maybe Prelude.Integer)+bucketMetadata_classifiableObjectCount = Lens.lens (\BucketMetadata' {classifiableObjectCount} -> classifiableObjectCount) (\s@BucketMetadata' {} a -> s {classifiableObjectCount = a} :: BucketMetadata)++-- | The total storage size, in bytes, of the objects that Amazon Macie can+-- analyze in the bucket. These objects use a supported storage class and+-- have a file name extension for a supported file or storage format.+--+-- If versioning is enabled for the bucket, Macie calculates this value+-- based on the size of the latest version of each applicable object in the+-- bucket. This value doesn\'t reflect the storage size of all versions of+-- each applicable object in the bucket.+bucketMetadata_classifiableSizeInBytes :: Lens.Lens' BucketMetadata (Prelude.Maybe Prelude.Integer)+bucketMetadata_classifiableSizeInBytes = Lens.lens (\BucketMetadata' {classifiableSizeInBytes} -> classifiableSizeInBytes) (\s@BucketMetadata' {} a -> s {classifiableSizeInBytes = a} :: BucketMetadata)++-- | Specifies the error code for an error that prevented Amazon Macie from+-- retrieving and processing information about the bucket and the bucket\'s+-- objects. If this value is ACCESS_DENIED, Macie doesn\'t have permission+-- to retrieve the information. For example, the bucket has a restrictive+-- bucket policy and Amazon S3 denied the request. If this value is null,+-- Macie was able to retrieve and process the information.+bucketMetadata_errorCode :: Lens.Lens' BucketMetadata (Prelude.Maybe BucketMetadataErrorCode)+bucketMetadata_errorCode = Lens.lens (\BucketMetadata' {errorCode} -> errorCode) (\s@BucketMetadata' {} a -> s {errorCode = a} :: BucketMetadata)++-- | A brief description of the error (errorCode) that prevented Amazon Macie+-- from retrieving and processing information about the bucket and the+-- bucket\'s objects. This value is null if Macie was able to retrieve and+-- process the information.+bucketMetadata_errorMessage :: Lens.Lens' BucketMetadata (Prelude.Maybe Prelude.Text)+bucketMetadata_errorMessage = Lens.lens (\BucketMetadata' {errorMessage} -> errorMessage) (\s@BucketMetadata' {} a -> s {errorMessage = a} :: BucketMetadata)++-- | Specifies whether any one-time or recurring classification jobs are+-- configured to analyze data in the bucket, and, if so, the details of the+-- job that ran most recently.+bucketMetadata_jobDetails :: Lens.Lens' BucketMetadata (Prelude.Maybe JobDetails)+bucketMetadata_jobDetails = Lens.lens (\BucketMetadata' {jobDetails} -> jobDetails) (\s@BucketMetadata' {} a -> s {jobDetails = a} :: BucketMetadata)++-- | The date and time, in UTC and extended ISO 8601 format, when Amazon+-- Macie most recently performed automated sensitive data discovery for the+-- bucket. This value is null if automated sensitive data discovery is+-- currently disabled for your account.+bucketMetadata_lastAutomatedDiscoveryTime :: Lens.Lens' BucketMetadata (Prelude.Maybe Prelude.UTCTime)+bucketMetadata_lastAutomatedDiscoveryTime = Lens.lens (\BucketMetadata' {lastAutomatedDiscoveryTime} -> lastAutomatedDiscoveryTime) (\s@BucketMetadata' {} a -> s {lastAutomatedDiscoveryTime = a} :: BucketMetadata) Prelude.. Lens.mapping Data._Time++-- | The date and time, in UTC and extended ISO 8601 format, when Amazon+-- Macie most recently retrieved both bucket and object metadata from+-- Amazon S3 for the bucket.+bucketMetadata_lastUpdated :: Lens.Lens' BucketMetadata (Prelude.Maybe Prelude.UTCTime)+bucketMetadata_lastUpdated = Lens.lens (\BucketMetadata' {lastUpdated} -> lastUpdated) (\s@BucketMetadata' {} a -> s {lastUpdated = a} :: BucketMetadata) Prelude.. Lens.mapping Data._Time++-- | The total number of objects in the bucket.+bucketMetadata_objectCount :: Lens.Lens' BucketMetadata (Prelude.Maybe Prelude.Integer)+bucketMetadata_objectCount = Lens.lens (\BucketMetadata' {objectCount} -> objectCount) (\s@BucketMetadata' {} a -> s {objectCount = a} :: BucketMetadata)++-- | The total number of objects that are in the bucket, grouped by+-- server-side encryption type. This includes a grouping that reports the+-- total number of objects that aren\'t encrypted or use client-side+-- encryption.+bucketMetadata_objectCountByEncryptionType :: Lens.Lens' BucketMetadata (Prelude.Maybe ObjectCountByEncryptionType)+bucketMetadata_objectCountByEncryptionType = Lens.lens (\BucketMetadata' {objectCountByEncryptionType} -> objectCountByEncryptionType) (\s@BucketMetadata' {} a -> s {objectCountByEncryptionType = a} :: BucketMetadata)++-- | Specifies whether the bucket is publicly accessible due to the+-- combination of permissions settings that apply to the bucket, and+-- provides information about those settings.+bucketMetadata_publicAccess :: Lens.Lens' BucketMetadata (Prelude.Maybe BucketPublicAccess)+bucketMetadata_publicAccess = Lens.lens (\BucketMetadata' {publicAccess} -> publicAccess) (\s@BucketMetadata' {} a -> s {publicAccess = a} :: BucketMetadata)++-- | The Amazon Web Services Region that hosts the bucket.+bucketMetadata_region :: Lens.Lens' BucketMetadata (Prelude.Maybe Prelude.Text)+bucketMetadata_region = Lens.lens (\BucketMetadata' {region} -> region) (\s@BucketMetadata' {} a -> s {region = a} :: BucketMetadata)++-- | Specifies whether the bucket is configured to replicate one or more+-- objects to buckets for other Amazon Web Services accounts and, if so,+-- which accounts.+bucketMetadata_replicationDetails :: Lens.Lens' BucketMetadata (Prelude.Maybe ReplicationDetails)+bucketMetadata_replicationDetails = Lens.lens (\BucketMetadata' {replicationDetails} -> replicationDetails) (\s@BucketMetadata' {} a -> s {replicationDetails = a} :: BucketMetadata)++-- | The sensitivity score for the bucket, ranging from -1 (no analysis due+-- to an error) to 100 (sensitive). This value is null if automated+-- sensitive data discovery is currently disabled for your account.+bucketMetadata_sensitivityScore :: Lens.Lens' BucketMetadata (Prelude.Maybe Prelude.Int)+bucketMetadata_sensitivityScore = Lens.lens (\BucketMetadata' {sensitivityScore} -> sensitivityScore) (\s@BucketMetadata' {} a -> s {sensitivityScore = a} :: BucketMetadata)++-- | Specifies whether the bucket encrypts new objects by default and, if so,+-- the type of server-side encryption that\'s used.+bucketMetadata_serverSideEncryption :: Lens.Lens' BucketMetadata (Prelude.Maybe BucketServerSideEncryption)+bucketMetadata_serverSideEncryption = Lens.lens (\BucketMetadata' {serverSideEncryption} -> serverSideEncryption) (\s@BucketMetadata' {} a -> s {serverSideEncryption = a} :: BucketMetadata)++-- | Specifies whether the bucket is shared with another Amazon Web Services+-- account. Possible values are:+--+-- -   EXTERNAL - The bucket is shared with an Amazon Web Services account+--     that isn\'t part of the same Amazon Macie organization.+--+-- -   INTERNAL - The bucket is shared with an Amazon Web Services account+--     that\'s part of the same Amazon Macie organization.+--+-- -   NOT_SHARED - The bucket isn\'t shared with other Amazon Web Services+--     accounts.+--+-- -   UNKNOWN - Amazon Macie wasn\'t able to evaluate the shared access+--     settings for the bucket.+bucketMetadata_sharedAccess :: Lens.Lens' BucketMetadata (Prelude.Maybe SharedAccess)+bucketMetadata_sharedAccess = Lens.lens (\BucketMetadata' {sharedAccess} -> sharedAccess) (\s@BucketMetadata' {} a -> s {sharedAccess = a} :: BucketMetadata)++-- | The total storage size, in bytes, of the bucket.+--+-- If versioning is enabled for the bucket, Amazon Macie calculates this+-- value based on the size of the latest version of each object in the+-- bucket. This value doesn\'t reflect the storage size of all versions of+-- each object in the bucket.+bucketMetadata_sizeInBytes :: Lens.Lens' BucketMetadata (Prelude.Maybe Prelude.Integer)+bucketMetadata_sizeInBytes = Lens.lens (\BucketMetadata' {sizeInBytes} -> sizeInBytes) (\s@BucketMetadata' {} a -> s {sizeInBytes = a} :: BucketMetadata)++-- | The total storage size, in bytes, of the objects that are compressed+-- (.gz, .gzip, .zip) files in the bucket.+--+-- If versioning is enabled for the bucket, Amazon Macie calculates this+-- value based on the size of the latest version of each applicable object+-- in the bucket. This value doesn\'t reflect the storage size of all+-- versions of each applicable object in the bucket.+bucketMetadata_sizeInBytesCompressed :: Lens.Lens' BucketMetadata (Prelude.Maybe Prelude.Integer)+bucketMetadata_sizeInBytesCompressed = Lens.lens (\BucketMetadata' {sizeInBytesCompressed} -> sizeInBytesCompressed) (\s@BucketMetadata' {} a -> s {sizeInBytesCompressed = a} :: BucketMetadata)++-- | An array that specifies the tags (keys and values) that are associated+-- with the bucket.+bucketMetadata_tags :: Lens.Lens' BucketMetadata (Prelude.Maybe [KeyValuePair])+bucketMetadata_tags = Lens.lens (\BucketMetadata' {tags} -> tags) (\s@BucketMetadata' {} a -> s {tags = a} :: BucketMetadata) Prelude.. Lens.mapping Lens.coerced++-- | The total number of objects that Amazon Macie can\'t analyze in the+-- bucket. These objects don\'t use a supported storage class or don\'t+-- have a file name extension for a supported file or storage format.+bucketMetadata_unclassifiableObjectCount :: Lens.Lens' BucketMetadata (Prelude.Maybe ObjectLevelStatistics)+bucketMetadata_unclassifiableObjectCount = Lens.lens (\BucketMetadata' {unclassifiableObjectCount} -> unclassifiableObjectCount) (\s@BucketMetadata' {} a -> s {unclassifiableObjectCount = a} :: BucketMetadata)++-- | The total storage size, in bytes, of the objects that Amazon Macie+-- can\'t analyze in the bucket. These objects don\'t use a supported+-- storage class or don\'t have a file name extension for a supported file+-- or storage format.+bucketMetadata_unclassifiableObjectSizeInBytes :: Lens.Lens' BucketMetadata (Prelude.Maybe ObjectLevelStatistics)+bucketMetadata_unclassifiableObjectSizeInBytes = Lens.lens (\BucketMetadata' {unclassifiableObjectSizeInBytes} -> unclassifiableObjectSizeInBytes) (\s@BucketMetadata' {} a -> s {unclassifiableObjectSizeInBytes = a} :: BucketMetadata)++-- | Specifies whether versioning is enabled for the bucket.+bucketMetadata_versioning :: Lens.Lens' BucketMetadata (Prelude.Maybe Prelude.Bool)+bucketMetadata_versioning = Lens.lens (\BucketMetadata' {versioning} -> versioning) (\s@BucketMetadata' {} a -> s {versioning = a} :: BucketMetadata)++instance Data.FromJSON BucketMetadata where+  parseJSON =+    Data.withObject+      "BucketMetadata"+      ( \x ->+          BucketMetadata'+            Prelude.<$> (x Data..:? "accountId")+            Prelude.<*> (x Data..:? "allowsUnencryptedObjectUploads")+            Prelude.<*> (x Data..:? "bucketArn")+            Prelude.<*> (x Data..:? "bucketCreatedAt")+            Prelude.<*> (x Data..:? "bucketName")+            Prelude.<*> (x Data..:? "classifiableObjectCount")+            Prelude.<*> (x Data..:? "classifiableSizeInBytes")+            Prelude.<*> (x Data..:? "errorCode")+            Prelude.<*> (x Data..:? "errorMessage")+            Prelude.<*> (x Data..:? "jobDetails")+            Prelude.<*> (x Data..:? "lastAutomatedDiscoveryTime")+            Prelude.<*> (x Data..:? "lastUpdated")+            Prelude.<*> (x Data..:? "objectCount")+            Prelude.<*> (x Data..:? "objectCountByEncryptionType")+            Prelude.<*> (x Data..:? "publicAccess")+            Prelude.<*> (x Data..:? "region")+            Prelude.<*> (x Data..:? "replicationDetails")+            Prelude.<*> (x Data..:? "sensitivityScore")+            Prelude.<*> (x Data..:? "serverSideEncryption")+            Prelude.<*> (x Data..:? "sharedAccess")+            Prelude.<*> (x Data..:? "sizeInBytes")+            Prelude.<*> (x Data..:? "sizeInBytesCompressed")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "unclassifiableObjectCount")+            Prelude.<*> (x Data..:? "unclassifiableObjectSizeInBytes")+            Prelude.<*> (x Data..:? "versioning")+      )++instance Prelude.Hashable BucketMetadata where+  hashWithSalt _salt BucketMetadata' {..} =+    _salt+      `Prelude.hashWithSalt` accountId+      `Prelude.hashWithSalt` allowsUnencryptedObjectUploads+      `Prelude.hashWithSalt` bucketArn+      `Prelude.hashWithSalt` bucketCreatedAt+      `Prelude.hashWithSalt` bucketName+      `Prelude.hashWithSalt` classifiableObjectCount+      `Prelude.hashWithSalt` classifiableSizeInBytes+      `Prelude.hashWithSalt` errorCode+      `Prelude.hashWithSalt` errorMessage+      `Prelude.hashWithSalt` jobDetails+      `Prelude.hashWithSalt` lastAutomatedDiscoveryTime+      `Prelude.hashWithSalt` lastUpdated+      `Prelude.hashWithSalt` objectCount+      `Prelude.hashWithSalt` objectCountByEncryptionType+      `Prelude.hashWithSalt` publicAccess+      `Prelude.hashWithSalt` region+      `Prelude.hashWithSalt` replicationDetails+      `Prelude.hashWithSalt` sensitivityScore+      `Prelude.hashWithSalt` serverSideEncryption+      `Prelude.hashWithSalt` sharedAccess+      `Prelude.hashWithSalt` sizeInBytes+      `Prelude.hashWithSalt` sizeInBytesCompressed+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` unclassifiableObjectCount+      `Prelude.hashWithSalt` unclassifiableObjectSizeInBytes+      `Prelude.hashWithSalt` versioning++instance Prelude.NFData BucketMetadata where+  rnf BucketMetadata' {..} =+    Prelude.rnf accountId+      `Prelude.seq` Prelude.rnf allowsUnencryptedObjectUploads+      `Prelude.seq` Prelude.rnf bucketArn+      `Prelude.seq` Prelude.rnf bucketCreatedAt+      `Prelude.seq` Prelude.rnf bucketName+      `Prelude.seq` Prelude.rnf classifiableObjectCount+      `Prelude.seq` Prelude.rnf classifiableSizeInBytes+      `Prelude.seq` Prelude.rnf errorCode+      `Prelude.seq` Prelude.rnf errorMessage+      `Prelude.seq` Prelude.rnf jobDetails+      `Prelude.seq` Prelude.rnf lastAutomatedDiscoveryTime+      `Prelude.seq` Prelude.rnf lastUpdated+      `Prelude.seq` Prelude.rnf objectCount+      `Prelude.seq` Prelude.rnf objectCountByEncryptionType+      `Prelude.seq` Prelude.rnf publicAccess+      `Prelude.seq` Prelude.rnf region+      `Prelude.seq` Prelude.rnf replicationDetails+      `Prelude.seq` Prelude.rnf sensitivityScore+      `Prelude.seq` Prelude.rnf serverSideEncryption+      `Prelude.seq` Prelude.rnf sharedAccess+      `Prelude.seq` Prelude.rnf sizeInBytes+      `Prelude.seq` Prelude.rnf+        sizeInBytesCompressed+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf+        unclassifiableObjectCount+      `Prelude.seq` Prelude.rnf+        unclassifiableObjectSizeInBytes+      `Prelude.seq` Prelude.rnf+        versioning
+ gen/Amazonka/MacieV2/Types/BucketMetadataErrorCode.hs view
@@ -0,0 +1,69 @@+{-# 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.MacieV2.Types.BucketMetadataErrorCode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.BucketMetadataErrorCode+  ( BucketMetadataErrorCode+      ( ..,+        BucketMetadataErrorCode_ACCESS_DENIED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The error code for an error that prevented Amazon Macie from retrieving+-- and processing metadata from Amazon S3 for an S3 bucket and the+-- bucket\'s objects.+newtype BucketMetadataErrorCode = BucketMetadataErrorCode'+  { fromBucketMetadataErrorCode ::+      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 BucketMetadataErrorCode_ACCESS_DENIED :: BucketMetadataErrorCode+pattern BucketMetadataErrorCode_ACCESS_DENIED = BucketMetadataErrorCode' "ACCESS_DENIED"++{-# COMPLETE+  BucketMetadataErrorCode_ACCESS_DENIED,+  BucketMetadataErrorCode'+  #-}
+ gen/Amazonka/MacieV2/Types/BucketPermissionConfiguration.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.BucketPermissionConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.BucketPermissionConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.AccountLevelPermissions+import Amazonka.MacieV2.Types.BucketLevelPermissions+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the account-level and bucket-level+-- permissions settings for an S3 bucket.+--+-- /See:/ 'newBucketPermissionConfiguration' smart constructor.+data BucketPermissionConfiguration = BucketPermissionConfiguration'+  { -- | The account-level permissions settings that apply to the bucket.+    accountLevelPermissions :: Prelude.Maybe AccountLevelPermissions,+    -- | The bucket-level permissions settings for the bucket.+    bucketLevelPermissions :: Prelude.Maybe BucketLevelPermissions+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BucketPermissionConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountLevelPermissions', 'bucketPermissionConfiguration_accountLevelPermissions' - The account-level permissions settings that apply to the bucket.+--+-- 'bucketLevelPermissions', 'bucketPermissionConfiguration_bucketLevelPermissions' - The bucket-level permissions settings for the bucket.+newBucketPermissionConfiguration ::+  BucketPermissionConfiguration+newBucketPermissionConfiguration =+  BucketPermissionConfiguration'+    { accountLevelPermissions =+        Prelude.Nothing,+      bucketLevelPermissions = Prelude.Nothing+    }++-- | The account-level permissions settings that apply to the bucket.+bucketPermissionConfiguration_accountLevelPermissions :: Lens.Lens' BucketPermissionConfiguration (Prelude.Maybe AccountLevelPermissions)+bucketPermissionConfiguration_accountLevelPermissions = Lens.lens (\BucketPermissionConfiguration' {accountLevelPermissions} -> accountLevelPermissions) (\s@BucketPermissionConfiguration' {} a -> s {accountLevelPermissions = a} :: BucketPermissionConfiguration)++-- | The bucket-level permissions settings for the bucket.+bucketPermissionConfiguration_bucketLevelPermissions :: Lens.Lens' BucketPermissionConfiguration (Prelude.Maybe BucketLevelPermissions)+bucketPermissionConfiguration_bucketLevelPermissions = Lens.lens (\BucketPermissionConfiguration' {bucketLevelPermissions} -> bucketLevelPermissions) (\s@BucketPermissionConfiguration' {} a -> s {bucketLevelPermissions = a} :: BucketPermissionConfiguration)++instance Data.FromJSON BucketPermissionConfiguration where+  parseJSON =+    Data.withObject+      "BucketPermissionConfiguration"+      ( \x ->+          BucketPermissionConfiguration'+            Prelude.<$> (x Data..:? "accountLevelPermissions")+            Prelude.<*> (x Data..:? "bucketLevelPermissions")+      )++instance+  Prelude.Hashable+    BucketPermissionConfiguration+  where+  hashWithSalt _salt BucketPermissionConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` accountLevelPermissions+      `Prelude.hashWithSalt` bucketLevelPermissions++instance Prelude.NFData BucketPermissionConfiguration where+  rnf BucketPermissionConfiguration' {..} =+    Prelude.rnf accountLevelPermissions+      `Prelude.seq` Prelude.rnf bucketLevelPermissions
+ gen/Amazonka/MacieV2/Types/BucketPolicy.hs view
@@ -0,0 +1,92 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.BucketPolicy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.BucketPolicy where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the permissions settings of the bucket policy+-- for an S3 bucket.+--+-- /See:/ 'newBucketPolicy' smart constructor.+data BucketPolicy = BucketPolicy'+  { -- | Specifies whether the bucket policy allows the general public to have+    -- read access to the bucket.+    allowsPublicReadAccess :: Prelude.Maybe Prelude.Bool,+    -- | Specifies whether the bucket policy allows the general public to have+    -- write access to the bucket.+    allowsPublicWriteAccess :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BucketPolicy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'allowsPublicReadAccess', 'bucketPolicy_allowsPublicReadAccess' - Specifies whether the bucket policy allows the general public to have+-- read access to the bucket.+--+-- 'allowsPublicWriteAccess', 'bucketPolicy_allowsPublicWriteAccess' - Specifies whether the bucket policy allows the general public to have+-- write access to the bucket.+newBucketPolicy ::+  BucketPolicy+newBucketPolicy =+  BucketPolicy'+    { allowsPublicReadAccess =+        Prelude.Nothing,+      allowsPublicWriteAccess = Prelude.Nothing+    }++-- | Specifies whether the bucket policy allows the general public to have+-- read access to the bucket.+bucketPolicy_allowsPublicReadAccess :: Lens.Lens' BucketPolicy (Prelude.Maybe Prelude.Bool)+bucketPolicy_allowsPublicReadAccess = Lens.lens (\BucketPolicy' {allowsPublicReadAccess} -> allowsPublicReadAccess) (\s@BucketPolicy' {} a -> s {allowsPublicReadAccess = a} :: BucketPolicy)++-- | Specifies whether the bucket policy allows the general public to have+-- write access to the bucket.+bucketPolicy_allowsPublicWriteAccess :: Lens.Lens' BucketPolicy (Prelude.Maybe Prelude.Bool)+bucketPolicy_allowsPublicWriteAccess = Lens.lens (\BucketPolicy' {allowsPublicWriteAccess} -> allowsPublicWriteAccess) (\s@BucketPolicy' {} a -> s {allowsPublicWriteAccess = a} :: BucketPolicy)++instance Data.FromJSON BucketPolicy where+  parseJSON =+    Data.withObject+      "BucketPolicy"+      ( \x ->+          BucketPolicy'+            Prelude.<$> (x Data..:? "allowsPublicReadAccess")+            Prelude.<*> (x Data..:? "allowsPublicWriteAccess")+      )++instance Prelude.Hashable BucketPolicy where+  hashWithSalt _salt BucketPolicy' {..} =+    _salt+      `Prelude.hashWithSalt` allowsPublicReadAccess+      `Prelude.hashWithSalt` allowsPublicWriteAccess++instance Prelude.NFData BucketPolicy where+  rnf BucketPolicy' {..} =+    Prelude.rnf allowsPublicReadAccess+      `Prelude.seq` Prelude.rnf allowsPublicWriteAccess
+ gen/Amazonka/MacieV2/Types/BucketPublicAccess.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.MacieV2.Types.BucketPublicAccess+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.BucketPublicAccess where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.BucketPermissionConfiguration+import Amazonka.MacieV2.Types.EffectivePermission+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the permissions settings that determine+-- whether an S3 bucket is publicly accessible.+--+-- /See:/ 'newBucketPublicAccess' smart constructor.+data BucketPublicAccess = BucketPublicAccess'+  { -- | Specifies whether the bucket is publicly accessible due to the+    -- combination of permissions settings that apply to the bucket. Possible+    -- values are:+    --+    -- -   NOT_PUBLIC - The bucket isn\'t publicly accessible.+    --+    -- -   PUBLIC - The bucket is publicly accessible.+    --+    -- -   UNKNOWN - Amazon Macie can\'t determine whether the bucket is+    --     publicly accessible.+    effectivePermission :: Prelude.Maybe EffectivePermission,+    -- | The account-level and bucket-level permissions settings for the bucket.+    permissionConfiguration :: Prelude.Maybe BucketPermissionConfiguration+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BucketPublicAccess' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'effectivePermission', 'bucketPublicAccess_effectivePermission' - Specifies whether the bucket is publicly accessible due to the+-- combination of permissions settings that apply to the bucket. Possible+-- values are:+--+-- -   NOT_PUBLIC - The bucket isn\'t publicly accessible.+--+-- -   PUBLIC - The bucket is publicly accessible.+--+-- -   UNKNOWN - Amazon Macie can\'t determine whether the bucket is+--     publicly accessible.+--+-- 'permissionConfiguration', 'bucketPublicAccess_permissionConfiguration' - The account-level and bucket-level permissions settings for the bucket.+newBucketPublicAccess ::+  BucketPublicAccess+newBucketPublicAccess =+  BucketPublicAccess'+    { effectivePermission =+        Prelude.Nothing,+      permissionConfiguration = Prelude.Nothing+    }++-- | Specifies whether the bucket is publicly accessible due to the+-- combination of permissions settings that apply to the bucket. Possible+-- values are:+--+-- -   NOT_PUBLIC - The bucket isn\'t publicly accessible.+--+-- -   PUBLIC - The bucket is publicly accessible.+--+-- -   UNKNOWN - Amazon Macie can\'t determine whether the bucket is+--     publicly accessible.+bucketPublicAccess_effectivePermission :: Lens.Lens' BucketPublicAccess (Prelude.Maybe EffectivePermission)+bucketPublicAccess_effectivePermission = Lens.lens (\BucketPublicAccess' {effectivePermission} -> effectivePermission) (\s@BucketPublicAccess' {} a -> s {effectivePermission = a} :: BucketPublicAccess)++-- | The account-level and bucket-level permissions settings for the bucket.+bucketPublicAccess_permissionConfiguration :: Lens.Lens' BucketPublicAccess (Prelude.Maybe BucketPermissionConfiguration)+bucketPublicAccess_permissionConfiguration = Lens.lens (\BucketPublicAccess' {permissionConfiguration} -> permissionConfiguration) (\s@BucketPublicAccess' {} a -> s {permissionConfiguration = a} :: BucketPublicAccess)++instance Data.FromJSON BucketPublicAccess where+  parseJSON =+    Data.withObject+      "BucketPublicAccess"+      ( \x ->+          BucketPublicAccess'+            Prelude.<$> (x Data..:? "effectivePermission")+            Prelude.<*> (x Data..:? "permissionConfiguration")+      )++instance Prelude.Hashable BucketPublicAccess where+  hashWithSalt _salt BucketPublicAccess' {..} =+    _salt+      `Prelude.hashWithSalt` effectivePermission+      `Prelude.hashWithSalt` permissionConfiguration++instance Prelude.NFData BucketPublicAccess where+  rnf BucketPublicAccess' {..} =+    Prelude.rnf effectivePermission+      `Prelude.seq` Prelude.rnf permissionConfiguration
+ gen/Amazonka/MacieV2/Types/BucketServerSideEncryption.hs view
@@ -0,0 +1,134 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.BucketServerSideEncryption+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.BucketServerSideEncryption where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.Type+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the default server-side encryption settings+-- for an S3 bucket. For detailed information about these settings, see+-- <https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-encryption.html Setting default server-side encryption behavior for Amazon S3 buckets>+-- in the /Amazon Simple Storage Service User Guide/.+--+-- /See:/ 'newBucketServerSideEncryption' smart constructor.+data BucketServerSideEncryption = BucketServerSideEncryption'+  { -- | The Amazon Resource Name (ARN) or unique identifier (key ID) for the KMS+    -- key that\'s used by default to encrypt objects that are added to the+    -- bucket. This value is null if the bucket uses an Amazon S3 managed key+    -- to encrypt new objects or the bucket doesn\'t encrypt new objects by+    -- default.+    kmsMasterKeyId :: Prelude.Maybe Prelude.Text,+    -- | The type of server-side encryption that\'s used by default when storing+    -- new objects in the bucket. Possible values are:+    --+    -- -   AES256 - New objects are encrypted with an Amazon S3 managed key.+    --     They use SSE-S3 encryption.+    --+    -- -   aws:kms - New objects are encrypted with an KMS key+    --     (kmsMasterKeyId), either an Amazon Web Services managed key or a+    --     customer managed key. They use SSE-KMS encryption.+    --+    -- -   NONE - New objects aren\'t encrypted by default. Default encryption+    --     is disabled for the bucket.+    type' :: Prelude.Maybe Type+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BucketServerSideEncryption' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'kmsMasterKeyId', 'bucketServerSideEncryption_kmsMasterKeyId' - The Amazon Resource Name (ARN) or unique identifier (key ID) for the KMS+-- key that\'s used by default to encrypt objects that are added to the+-- bucket. This value is null if the bucket uses an Amazon S3 managed key+-- to encrypt new objects or the bucket doesn\'t encrypt new objects by+-- default.+--+-- 'type'', 'bucketServerSideEncryption_type' - The type of server-side encryption that\'s used by default when storing+-- new objects in the bucket. Possible values are:+--+-- -   AES256 - New objects are encrypted with an Amazon S3 managed key.+--     They use SSE-S3 encryption.+--+-- -   aws:kms - New objects are encrypted with an KMS key+--     (kmsMasterKeyId), either an Amazon Web Services managed key or a+--     customer managed key. They use SSE-KMS encryption.+--+-- -   NONE - New objects aren\'t encrypted by default. Default encryption+--     is disabled for the bucket.+newBucketServerSideEncryption ::+  BucketServerSideEncryption+newBucketServerSideEncryption =+  BucketServerSideEncryption'+    { kmsMasterKeyId =+        Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) or unique identifier (key ID) for the KMS+-- key that\'s used by default to encrypt objects that are added to the+-- bucket. This value is null if the bucket uses an Amazon S3 managed key+-- to encrypt new objects or the bucket doesn\'t encrypt new objects by+-- default.+bucketServerSideEncryption_kmsMasterKeyId :: Lens.Lens' BucketServerSideEncryption (Prelude.Maybe Prelude.Text)+bucketServerSideEncryption_kmsMasterKeyId = Lens.lens (\BucketServerSideEncryption' {kmsMasterKeyId} -> kmsMasterKeyId) (\s@BucketServerSideEncryption' {} a -> s {kmsMasterKeyId = a} :: BucketServerSideEncryption)++-- | The type of server-side encryption that\'s used by default when storing+-- new objects in the bucket. Possible values are:+--+-- -   AES256 - New objects are encrypted with an Amazon S3 managed key.+--     They use SSE-S3 encryption.+--+-- -   aws:kms - New objects are encrypted with an KMS key+--     (kmsMasterKeyId), either an Amazon Web Services managed key or a+--     customer managed key. They use SSE-KMS encryption.+--+-- -   NONE - New objects aren\'t encrypted by default. Default encryption+--     is disabled for the bucket.+bucketServerSideEncryption_type :: Lens.Lens' BucketServerSideEncryption (Prelude.Maybe Type)+bucketServerSideEncryption_type = Lens.lens (\BucketServerSideEncryption' {type'} -> type') (\s@BucketServerSideEncryption' {} a -> s {type' = a} :: BucketServerSideEncryption)++instance Data.FromJSON BucketServerSideEncryption where+  parseJSON =+    Data.withObject+      "BucketServerSideEncryption"+      ( \x ->+          BucketServerSideEncryption'+            Prelude.<$> (x Data..:? "kmsMasterKeyId")+            Prelude.<*> (x Data..:? "type")+      )++instance Prelude.Hashable BucketServerSideEncryption where+  hashWithSalt _salt BucketServerSideEncryption' {..} =+    _salt+      `Prelude.hashWithSalt` kmsMasterKeyId+      `Prelude.hashWithSalt` type'++instance Prelude.NFData BucketServerSideEncryption where+  rnf BucketServerSideEncryption' {..} =+    Prelude.rnf kmsMasterKeyId+      `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/MacieV2/Types/BucketSortCriteria.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.MacieV2.Types.BucketSortCriteria+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.BucketSortCriteria where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.OrderBy+import qualified Amazonka.Prelude as Prelude++-- | Specifies criteria for sorting the results of a query for information+-- about S3 buckets.+--+-- /See:/ 'newBucketSortCriteria' smart constructor.+data BucketSortCriteria = BucketSortCriteria'+  { -- | The name of the bucket property to sort the results by. This value can+    -- be one of the following properties that Amazon Macie defines as bucket+    -- metadata: accountId, bucketName, classifiableObjectCount,+    -- classifiableSizeInBytes, objectCount, sensitivityScore, or sizeInBytes.+    attributeName :: Prelude.Maybe Prelude.Text,+    -- | The sort order to apply to the results, based on the value specified by+    -- the attributeName property. Valid values are: ASC, sort the results in+    -- ascending order; and, DESC, sort the results in descending order.+    orderBy :: Prelude.Maybe OrderBy+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BucketSortCriteria' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attributeName', 'bucketSortCriteria_attributeName' - The name of the bucket property to sort the results by. This value can+-- be one of the following properties that Amazon Macie defines as bucket+-- metadata: accountId, bucketName, classifiableObjectCount,+-- classifiableSizeInBytes, objectCount, sensitivityScore, or sizeInBytes.+--+-- 'orderBy', 'bucketSortCriteria_orderBy' - The sort order to apply to the results, based on the value specified by+-- the attributeName property. Valid values are: ASC, sort the results in+-- ascending order; and, DESC, sort the results in descending order.+newBucketSortCriteria ::+  BucketSortCriteria+newBucketSortCriteria =+  BucketSortCriteria'+    { attributeName =+        Prelude.Nothing,+      orderBy = Prelude.Nothing+    }++-- | The name of the bucket property to sort the results by. This value can+-- be one of the following properties that Amazon Macie defines as bucket+-- metadata: accountId, bucketName, classifiableObjectCount,+-- classifiableSizeInBytes, objectCount, sensitivityScore, or sizeInBytes.+bucketSortCriteria_attributeName :: Lens.Lens' BucketSortCriteria (Prelude.Maybe Prelude.Text)+bucketSortCriteria_attributeName = Lens.lens (\BucketSortCriteria' {attributeName} -> attributeName) (\s@BucketSortCriteria' {} a -> s {attributeName = a} :: BucketSortCriteria)++-- | The sort order to apply to the results, based on the value specified by+-- the attributeName property. Valid values are: ASC, sort the results in+-- ascending order; and, DESC, sort the results in descending order.+bucketSortCriteria_orderBy :: Lens.Lens' BucketSortCriteria (Prelude.Maybe OrderBy)+bucketSortCriteria_orderBy = Lens.lens (\BucketSortCriteria' {orderBy} -> orderBy) (\s@BucketSortCriteria' {} a -> s {orderBy = a} :: BucketSortCriteria)++instance Prelude.Hashable BucketSortCriteria where+  hashWithSalt _salt BucketSortCriteria' {..} =+    _salt+      `Prelude.hashWithSalt` attributeName+      `Prelude.hashWithSalt` orderBy++instance Prelude.NFData BucketSortCriteria where+  rnf BucketSortCriteria' {..} =+    Prelude.rnf attributeName+      `Prelude.seq` Prelude.rnf orderBy++instance Data.ToJSON BucketSortCriteria where+  toJSON BucketSortCriteria' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("attributeName" Data..=) Prelude.<$> attributeName,+            ("orderBy" Data..=) Prelude.<$> orderBy+          ]+      )
+ gen/Amazonka/MacieV2/Types/BucketStatisticsBySensitivity.hs view
@@ -0,0 +1,128 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.BucketStatisticsBySensitivity+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.BucketStatisticsBySensitivity where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.SensitivityAggregations+import qualified Amazonka.Prelude as Prelude++-- | Provides aggregated statistical data for sensitive data discovery+-- metrics that apply to S3 buckets, grouped by bucket sensitivity score+-- (sensitivityScore). If automated sensitive data discovery is currently+-- disabled for your account, the value for each metric is 0.+--+-- /See:/ 'newBucketStatisticsBySensitivity' smart constructor.+data BucketStatisticsBySensitivity = BucketStatisticsBySensitivity'+  { -- | The aggregated statistical data for all buckets that have a sensitivity+    -- score of -1.+    classificationError :: Prelude.Maybe SensitivityAggregations,+    -- | The aggregated statistical data for all buckets that have a sensitivity+    -- score of 50.+    notClassified :: Prelude.Maybe SensitivityAggregations,+    -- | The aggregated statistical data for all buckets that have a sensitivity+    -- score of 0-49.+    notSensitive :: Prelude.Maybe SensitivityAggregations,+    -- | The aggregated statistical data for all buckets that have a sensitivity+    -- score of 51-100.+    sensitive :: Prelude.Maybe SensitivityAggregations+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BucketStatisticsBySensitivity' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'classificationError', 'bucketStatisticsBySensitivity_classificationError' - The aggregated statistical data for all buckets that have a sensitivity+-- score of -1.+--+-- 'notClassified', 'bucketStatisticsBySensitivity_notClassified' - The aggregated statistical data for all buckets that have a sensitivity+-- score of 50.+--+-- 'notSensitive', 'bucketStatisticsBySensitivity_notSensitive' - The aggregated statistical data for all buckets that have a sensitivity+-- score of 0-49.+--+-- 'sensitive', 'bucketStatisticsBySensitivity_sensitive' - The aggregated statistical data for all buckets that have a sensitivity+-- score of 51-100.+newBucketStatisticsBySensitivity ::+  BucketStatisticsBySensitivity+newBucketStatisticsBySensitivity =+  BucketStatisticsBySensitivity'+    { classificationError =+        Prelude.Nothing,+      notClassified = Prelude.Nothing,+      notSensitive = Prelude.Nothing,+      sensitive = Prelude.Nothing+    }++-- | The aggregated statistical data for all buckets that have a sensitivity+-- score of -1.+bucketStatisticsBySensitivity_classificationError :: Lens.Lens' BucketStatisticsBySensitivity (Prelude.Maybe SensitivityAggregations)+bucketStatisticsBySensitivity_classificationError = Lens.lens (\BucketStatisticsBySensitivity' {classificationError} -> classificationError) (\s@BucketStatisticsBySensitivity' {} a -> s {classificationError = a} :: BucketStatisticsBySensitivity)++-- | The aggregated statistical data for all buckets that have a sensitivity+-- score of 50.+bucketStatisticsBySensitivity_notClassified :: Lens.Lens' BucketStatisticsBySensitivity (Prelude.Maybe SensitivityAggregations)+bucketStatisticsBySensitivity_notClassified = Lens.lens (\BucketStatisticsBySensitivity' {notClassified} -> notClassified) (\s@BucketStatisticsBySensitivity' {} a -> s {notClassified = a} :: BucketStatisticsBySensitivity)++-- | The aggregated statistical data for all buckets that have a sensitivity+-- score of 0-49.+bucketStatisticsBySensitivity_notSensitive :: Lens.Lens' BucketStatisticsBySensitivity (Prelude.Maybe SensitivityAggregations)+bucketStatisticsBySensitivity_notSensitive = Lens.lens (\BucketStatisticsBySensitivity' {notSensitive} -> notSensitive) (\s@BucketStatisticsBySensitivity' {} a -> s {notSensitive = a} :: BucketStatisticsBySensitivity)++-- | The aggregated statistical data for all buckets that have a sensitivity+-- score of 51-100.+bucketStatisticsBySensitivity_sensitive :: Lens.Lens' BucketStatisticsBySensitivity (Prelude.Maybe SensitivityAggregations)+bucketStatisticsBySensitivity_sensitive = Lens.lens (\BucketStatisticsBySensitivity' {sensitive} -> sensitive) (\s@BucketStatisticsBySensitivity' {} a -> s {sensitive = a} :: BucketStatisticsBySensitivity)++instance Data.FromJSON BucketStatisticsBySensitivity where+  parseJSON =+    Data.withObject+      "BucketStatisticsBySensitivity"+      ( \x ->+          BucketStatisticsBySensitivity'+            Prelude.<$> (x Data..:? "classificationError")+            Prelude.<*> (x Data..:? "notClassified")+            Prelude.<*> (x Data..:? "notSensitive")+            Prelude.<*> (x Data..:? "sensitive")+      )++instance+  Prelude.Hashable+    BucketStatisticsBySensitivity+  where+  hashWithSalt _salt BucketStatisticsBySensitivity' {..} =+    _salt+      `Prelude.hashWithSalt` classificationError+      `Prelude.hashWithSalt` notClassified+      `Prelude.hashWithSalt` notSensitive+      `Prelude.hashWithSalt` sensitive++instance Prelude.NFData BucketStatisticsBySensitivity where+  rnf BucketStatisticsBySensitivity' {..} =+    Prelude.rnf classificationError+      `Prelude.seq` Prelude.rnf notClassified+      `Prelude.seq` Prelude.rnf notSensitive+      `Prelude.seq` Prelude.rnf sensitive
+ gen/Amazonka/MacieV2/Types/Cell.hs view
@@ -0,0 +1,124 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.Cell+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.Cell 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++-- | Specifies the location of an occurrence of sensitive data in a Microsoft+-- Excel workbook, CSV file, or TSV file.+--+-- /See:/ 'newCell' smart constructor.+data Cell = Cell'+  { -- | The location of the cell, as an absolute cell reference, that contains+    -- the sensitive data, for example Sheet2!C5 for cell C5 on Sheet2 in a+    -- Microsoft Excel workbook. This value is null for CSV and TSV files.+    cellReference :: Prelude.Maybe Prelude.Text,+    -- | The column number of the column that contains the sensitive data. For a+    -- Microsoft Excel workbook, this value correlates to the alphabetical+    -- character(s) for a column identifier, for example: 1 for column A, 2 for+    -- column B, and so on.+    column :: Prelude.Maybe Prelude.Integer,+    -- | The name of the column that contains the sensitive data, if available.+    columnName :: Prelude.Maybe Prelude.Text,+    -- | The row number of the row that contains the sensitive data.+    row :: Prelude.Maybe Prelude.Integer+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Cell' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cellReference', 'cell_cellReference' - The location of the cell, as an absolute cell reference, that contains+-- the sensitive data, for example Sheet2!C5 for cell C5 on Sheet2 in a+-- Microsoft Excel workbook. This value is null for CSV and TSV files.+--+-- 'column', 'cell_column' - The column number of the column that contains the sensitive data. For a+-- Microsoft Excel workbook, this value correlates to the alphabetical+-- character(s) for a column identifier, for example: 1 for column A, 2 for+-- column B, and so on.+--+-- 'columnName', 'cell_columnName' - The name of the column that contains the sensitive data, if available.+--+-- 'row', 'cell_row' - The row number of the row that contains the sensitive data.+newCell ::+  Cell+newCell =+  Cell'+    { cellReference = Prelude.Nothing,+      column = Prelude.Nothing,+      columnName = Prelude.Nothing,+      row = Prelude.Nothing+    }++-- | The location of the cell, as an absolute cell reference, that contains+-- the sensitive data, for example Sheet2!C5 for cell C5 on Sheet2 in a+-- Microsoft Excel workbook. This value is null for CSV and TSV files.+cell_cellReference :: Lens.Lens' Cell (Prelude.Maybe Prelude.Text)+cell_cellReference = Lens.lens (\Cell' {cellReference} -> cellReference) (\s@Cell' {} a -> s {cellReference = a} :: Cell)++-- | The column number of the column that contains the sensitive data. For a+-- Microsoft Excel workbook, this value correlates to the alphabetical+-- character(s) for a column identifier, for example: 1 for column A, 2 for+-- column B, and so on.+cell_column :: Lens.Lens' Cell (Prelude.Maybe Prelude.Integer)+cell_column = Lens.lens (\Cell' {column} -> column) (\s@Cell' {} a -> s {column = a} :: Cell)++-- | The name of the column that contains the sensitive data, if available.+cell_columnName :: Lens.Lens' Cell (Prelude.Maybe Prelude.Text)+cell_columnName = Lens.lens (\Cell' {columnName} -> columnName) (\s@Cell' {} a -> s {columnName = a} :: Cell)++-- | The row number of the row that contains the sensitive data.+cell_row :: Lens.Lens' Cell (Prelude.Maybe Prelude.Integer)+cell_row = Lens.lens (\Cell' {row} -> row) (\s@Cell' {} a -> s {row = a} :: Cell)++instance Data.FromJSON Cell where+  parseJSON =+    Data.withObject+      "Cell"+      ( \x ->+          Cell'+            Prelude.<$> (x Data..:? "cellReference")+            Prelude.<*> (x Data..:? "column")+            Prelude.<*> (x Data..:? "columnName")+            Prelude.<*> (x Data..:? "row")+      )++instance Prelude.Hashable Cell where+  hashWithSalt _salt Cell' {..} =+    _salt+      `Prelude.hashWithSalt` cellReference+      `Prelude.hashWithSalt` column+      `Prelude.hashWithSalt` columnName+      `Prelude.hashWithSalt` row++instance Prelude.NFData Cell where+  rnf Cell' {..} =+    Prelude.rnf cellReference+      `Prelude.seq` Prelude.rnf column+      `Prelude.seq` Prelude.rnf columnName+      `Prelude.seq` Prelude.rnf row
+ gen/Amazonka/MacieV2/Types/ClassificationDetails.hs view
@@ -0,0 +1,154 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.ClassificationDetails+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.ClassificationDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.ClassificationResult+import Amazonka.MacieV2.Types.OriginType+import qualified Amazonka.Prelude as Prelude++-- | Provides information about a sensitive data finding and the details of+-- the finding.+--+-- /See:/ 'newClassificationDetails' smart constructor.+data ClassificationDetails = ClassificationDetails'+  { -- | The path to the folder or file in Amazon S3 that contains the+    -- corresponding sensitive data discovery result for the finding. If a+    -- finding applies to a large archive or compressed file, this value is the+    -- path to a folder. Otherwise, this value is the path to a file.+    detailedResultsLocation :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the classification job that produced+    -- the finding. This value is null if the origin of the finding+    -- (originType) is AUTOMATED_SENSITIVE_DATA_DISCOVERY.+    jobArn :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the classification job that produced the+    -- finding. This value is null if the origin of the finding (originType) is+    -- AUTOMATED_SENSITIVE_DATA_DISCOVERY.+    jobId :: Prelude.Maybe Prelude.Text,+    -- | Specifies how Amazon Macie found the sensitive data that produced the+    -- finding. Possible values are: SENSITIVE_DATA_DISCOVERY_JOB, for a+    -- classification job; and, AUTOMATED_SENSITIVE_DATA_DISCOVERY, for+    -- automated sensitive data discovery.+    originType :: Prelude.Maybe OriginType,+    -- | The status and other details of the finding.+    result :: Prelude.Maybe ClassificationResult+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ClassificationDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'detailedResultsLocation', 'classificationDetails_detailedResultsLocation' - The path to the folder or file in Amazon S3 that contains the+-- corresponding sensitive data discovery result for the finding. If a+-- finding applies to a large archive or compressed file, this value is the+-- path to a folder. Otherwise, this value is the path to a file.+--+-- 'jobArn', 'classificationDetails_jobArn' - The Amazon Resource Name (ARN) of the classification job that produced+-- the finding. This value is null if the origin of the finding+-- (originType) is AUTOMATED_SENSITIVE_DATA_DISCOVERY.+--+-- 'jobId', 'classificationDetails_jobId' - The unique identifier for the classification job that produced the+-- finding. This value is null if the origin of the finding (originType) is+-- AUTOMATED_SENSITIVE_DATA_DISCOVERY.+--+-- 'originType', 'classificationDetails_originType' - Specifies how Amazon Macie found the sensitive data that produced the+-- finding. Possible values are: SENSITIVE_DATA_DISCOVERY_JOB, for a+-- classification job; and, AUTOMATED_SENSITIVE_DATA_DISCOVERY, for+-- automated sensitive data discovery.+--+-- 'result', 'classificationDetails_result' - The status and other details of the finding.+newClassificationDetails ::+  ClassificationDetails+newClassificationDetails =+  ClassificationDetails'+    { detailedResultsLocation =+        Prelude.Nothing,+      jobArn = Prelude.Nothing,+      jobId = Prelude.Nothing,+      originType = Prelude.Nothing,+      result = Prelude.Nothing+    }++-- | The path to the folder or file in Amazon S3 that contains the+-- corresponding sensitive data discovery result for the finding. If a+-- finding applies to a large archive or compressed file, this value is the+-- path to a folder. Otherwise, this value is the path to a file.+classificationDetails_detailedResultsLocation :: Lens.Lens' ClassificationDetails (Prelude.Maybe Prelude.Text)+classificationDetails_detailedResultsLocation = Lens.lens (\ClassificationDetails' {detailedResultsLocation} -> detailedResultsLocation) (\s@ClassificationDetails' {} a -> s {detailedResultsLocation = a} :: ClassificationDetails)++-- | The Amazon Resource Name (ARN) of the classification job that produced+-- the finding. This value is null if the origin of the finding+-- (originType) is AUTOMATED_SENSITIVE_DATA_DISCOVERY.+classificationDetails_jobArn :: Lens.Lens' ClassificationDetails (Prelude.Maybe Prelude.Text)+classificationDetails_jobArn = Lens.lens (\ClassificationDetails' {jobArn} -> jobArn) (\s@ClassificationDetails' {} a -> s {jobArn = a} :: ClassificationDetails)++-- | The unique identifier for the classification job that produced the+-- finding. This value is null if the origin of the finding (originType) is+-- AUTOMATED_SENSITIVE_DATA_DISCOVERY.+classificationDetails_jobId :: Lens.Lens' ClassificationDetails (Prelude.Maybe Prelude.Text)+classificationDetails_jobId = Lens.lens (\ClassificationDetails' {jobId} -> jobId) (\s@ClassificationDetails' {} a -> s {jobId = a} :: ClassificationDetails)++-- | Specifies how Amazon Macie found the sensitive data that produced the+-- finding. Possible values are: SENSITIVE_DATA_DISCOVERY_JOB, for a+-- classification job; and, AUTOMATED_SENSITIVE_DATA_DISCOVERY, for+-- automated sensitive data discovery.+classificationDetails_originType :: Lens.Lens' ClassificationDetails (Prelude.Maybe OriginType)+classificationDetails_originType = Lens.lens (\ClassificationDetails' {originType} -> originType) (\s@ClassificationDetails' {} a -> s {originType = a} :: ClassificationDetails)++-- | The status and other details of the finding.+classificationDetails_result :: Lens.Lens' ClassificationDetails (Prelude.Maybe ClassificationResult)+classificationDetails_result = Lens.lens (\ClassificationDetails' {result} -> result) (\s@ClassificationDetails' {} a -> s {result = a} :: ClassificationDetails)++instance Data.FromJSON ClassificationDetails where+  parseJSON =+    Data.withObject+      "ClassificationDetails"+      ( \x ->+          ClassificationDetails'+            Prelude.<$> (x Data..:? "detailedResultsLocation")+            Prelude.<*> (x Data..:? "jobArn")+            Prelude.<*> (x Data..:? "jobId")+            Prelude.<*> (x Data..:? "originType")+            Prelude.<*> (x Data..:? "result")+      )++instance Prelude.Hashable ClassificationDetails where+  hashWithSalt _salt ClassificationDetails' {..} =+    _salt+      `Prelude.hashWithSalt` detailedResultsLocation+      `Prelude.hashWithSalt` jobArn+      `Prelude.hashWithSalt` jobId+      `Prelude.hashWithSalt` originType+      `Prelude.hashWithSalt` result++instance Prelude.NFData ClassificationDetails where+  rnf ClassificationDetails' {..} =+    Prelude.rnf detailedResultsLocation+      `Prelude.seq` Prelude.rnf jobArn+      `Prelude.seq` Prelude.rnf jobId+      `Prelude.seq` Prelude.rnf originType+      `Prelude.seq` Prelude.rnf result
+ gen/Amazonka/MacieV2/Types/ClassificationExportConfiguration.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.MacieV2.Types.ClassificationExportConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.ClassificationExportConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.S3Destination+import qualified Amazonka.Prelude as Prelude++-- | Specifies where to store data classification results, and the encryption+-- settings to use when storing results in that location. The location must+-- be an S3 bucket.+--+-- /See:/ 'newClassificationExportConfiguration' smart constructor.+data ClassificationExportConfiguration = ClassificationExportConfiguration'+  { -- | The S3 bucket to store data classification results in, and the+    -- encryption settings to use when storing results in that bucket.+    s3Destination :: Prelude.Maybe S3Destination+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ClassificationExportConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 's3Destination', 'classificationExportConfiguration_s3Destination' - The S3 bucket to store data classification results in, and the+-- encryption settings to use when storing results in that bucket.+newClassificationExportConfiguration ::+  ClassificationExportConfiguration+newClassificationExportConfiguration =+  ClassificationExportConfiguration'+    { s3Destination =+        Prelude.Nothing+    }++-- | The S3 bucket to store data classification results in, and the+-- encryption settings to use when storing results in that bucket.+classificationExportConfiguration_s3Destination :: Lens.Lens' ClassificationExportConfiguration (Prelude.Maybe S3Destination)+classificationExportConfiguration_s3Destination = Lens.lens (\ClassificationExportConfiguration' {s3Destination} -> s3Destination) (\s@ClassificationExportConfiguration' {} a -> s {s3Destination = a} :: ClassificationExportConfiguration)++instance+  Data.FromJSON+    ClassificationExportConfiguration+  where+  parseJSON =+    Data.withObject+      "ClassificationExportConfiguration"+      ( \x ->+          ClassificationExportConfiguration'+            Prelude.<$> (x Data..:? "s3Destination")+      )++instance+  Prelude.Hashable+    ClassificationExportConfiguration+  where+  hashWithSalt+    _salt+    ClassificationExportConfiguration' {..} =+      _salt `Prelude.hashWithSalt` s3Destination++instance+  Prelude.NFData+    ClassificationExportConfiguration+  where+  rnf ClassificationExportConfiguration' {..} =+    Prelude.rnf s3Destination++instance+  Data.ToJSON+    ClassificationExportConfiguration+  where+  toJSON ClassificationExportConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("s3Destination" Data..=)+              Prelude.<$> s3Destination+          ]+      )
+ gen/Amazonka/MacieV2/Types/ClassificationResult.hs view
@@ -0,0 +1,171 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.ClassificationResult+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.ClassificationResult where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.ClassificationResultStatus+import Amazonka.MacieV2.Types.CustomDataIdentifiers+import Amazonka.MacieV2.Types.SensitiveDataItem+import qualified Amazonka.Prelude as Prelude++-- | Provides the details of a sensitive data finding, including the types,+-- number of occurrences, and locations of the sensitive data that was+-- detected.+--+-- /See:/ 'newClassificationResult' smart constructor.+data ClassificationResult = ClassificationResult'+  { -- | Specifies whether Amazon Macie detected additional occurrences of+    -- sensitive data in the S3 object. A finding includes location data for a+    -- maximum of 15 occurrences of sensitive data.+    --+    -- This value can help you determine whether to investigate additional+    -- occurrences of sensitive data in an object. You can do this by referring+    -- to the corresponding sensitive data discovery result for the finding+    -- (ClassificationDetails.detailedResultsLocation).+    additionalOccurrences :: Prelude.Maybe Prelude.Bool,+    -- | The custom data identifiers that detected the sensitive data and the+    -- number of occurrences of the data that they detected.+    customDataIdentifiers :: Prelude.Maybe CustomDataIdentifiers,+    -- | The type of content, as a MIME type, that the finding applies to. For+    -- example, application\/gzip, for a GNU Gzip compressed archive file, or+    -- application\/pdf, for an Adobe Portable Document Format file.+    mimeType :: Prelude.Maybe Prelude.Text,+    -- | The category, types, and number of occurrences of the sensitive data+    -- that produced the finding.+    sensitiveData :: Prelude.Maybe [SensitiveDataItem],+    -- | The total size, in bytes, of the data that the finding applies to.+    sizeClassified :: Prelude.Maybe Prelude.Integer,+    -- | The status of the finding.+    status :: Prelude.Maybe ClassificationResultStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ClassificationResult' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'additionalOccurrences', 'classificationResult_additionalOccurrences' - Specifies whether Amazon Macie detected additional occurrences of+-- sensitive data in the S3 object. A finding includes location data for a+-- maximum of 15 occurrences of sensitive data.+--+-- This value can help you determine whether to investigate additional+-- occurrences of sensitive data in an object. You can do this by referring+-- to the corresponding sensitive data discovery result for the finding+-- (ClassificationDetails.detailedResultsLocation).+--+-- 'customDataIdentifiers', 'classificationResult_customDataIdentifiers' - The custom data identifiers that detected the sensitive data and the+-- number of occurrences of the data that they detected.+--+-- 'mimeType', 'classificationResult_mimeType' - The type of content, as a MIME type, that the finding applies to. For+-- example, application\/gzip, for a GNU Gzip compressed archive file, or+-- application\/pdf, for an Adobe Portable Document Format file.+--+-- 'sensitiveData', 'classificationResult_sensitiveData' - The category, types, and number of occurrences of the sensitive data+-- that produced the finding.+--+-- 'sizeClassified', 'classificationResult_sizeClassified' - The total size, in bytes, of the data that the finding applies to.+--+-- 'status', 'classificationResult_status' - The status of the finding.+newClassificationResult ::+  ClassificationResult+newClassificationResult =+  ClassificationResult'+    { additionalOccurrences =+        Prelude.Nothing,+      customDataIdentifiers = Prelude.Nothing,+      mimeType = Prelude.Nothing,+      sensitiveData = Prelude.Nothing,+      sizeClassified = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | Specifies whether Amazon Macie detected additional occurrences of+-- sensitive data in the S3 object. A finding includes location data for a+-- maximum of 15 occurrences of sensitive data.+--+-- This value can help you determine whether to investigate additional+-- occurrences of sensitive data in an object. You can do this by referring+-- to the corresponding sensitive data discovery result for the finding+-- (ClassificationDetails.detailedResultsLocation).+classificationResult_additionalOccurrences :: Lens.Lens' ClassificationResult (Prelude.Maybe Prelude.Bool)+classificationResult_additionalOccurrences = Lens.lens (\ClassificationResult' {additionalOccurrences} -> additionalOccurrences) (\s@ClassificationResult' {} a -> s {additionalOccurrences = a} :: ClassificationResult)++-- | The custom data identifiers that detected the sensitive data and the+-- number of occurrences of the data that they detected.+classificationResult_customDataIdentifiers :: Lens.Lens' ClassificationResult (Prelude.Maybe CustomDataIdentifiers)+classificationResult_customDataIdentifiers = Lens.lens (\ClassificationResult' {customDataIdentifiers} -> customDataIdentifiers) (\s@ClassificationResult' {} a -> s {customDataIdentifiers = a} :: ClassificationResult)++-- | The type of content, as a MIME type, that the finding applies to. For+-- example, application\/gzip, for a GNU Gzip compressed archive file, or+-- application\/pdf, for an Adobe Portable Document Format file.+classificationResult_mimeType :: Lens.Lens' ClassificationResult (Prelude.Maybe Prelude.Text)+classificationResult_mimeType = Lens.lens (\ClassificationResult' {mimeType} -> mimeType) (\s@ClassificationResult' {} a -> s {mimeType = a} :: ClassificationResult)++-- | The category, types, and number of occurrences of the sensitive data+-- that produced the finding.+classificationResult_sensitiveData :: Lens.Lens' ClassificationResult (Prelude.Maybe [SensitiveDataItem])+classificationResult_sensitiveData = Lens.lens (\ClassificationResult' {sensitiveData} -> sensitiveData) (\s@ClassificationResult' {} a -> s {sensitiveData = a} :: ClassificationResult) Prelude.. Lens.mapping Lens.coerced++-- | The total size, in bytes, of the data that the finding applies to.+classificationResult_sizeClassified :: Lens.Lens' ClassificationResult (Prelude.Maybe Prelude.Integer)+classificationResult_sizeClassified = Lens.lens (\ClassificationResult' {sizeClassified} -> sizeClassified) (\s@ClassificationResult' {} a -> s {sizeClassified = a} :: ClassificationResult)++-- | The status of the finding.+classificationResult_status :: Lens.Lens' ClassificationResult (Prelude.Maybe ClassificationResultStatus)+classificationResult_status = Lens.lens (\ClassificationResult' {status} -> status) (\s@ClassificationResult' {} a -> s {status = a} :: ClassificationResult)++instance Data.FromJSON ClassificationResult where+  parseJSON =+    Data.withObject+      "ClassificationResult"+      ( \x ->+          ClassificationResult'+            Prelude.<$> (x Data..:? "additionalOccurrences")+            Prelude.<*> (x Data..:? "customDataIdentifiers")+            Prelude.<*> (x Data..:? "mimeType")+            Prelude.<*> (x Data..:? "sensitiveData" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "sizeClassified")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable ClassificationResult where+  hashWithSalt _salt ClassificationResult' {..} =+    _salt+      `Prelude.hashWithSalt` additionalOccurrences+      `Prelude.hashWithSalt` customDataIdentifiers+      `Prelude.hashWithSalt` mimeType+      `Prelude.hashWithSalt` sensitiveData+      `Prelude.hashWithSalt` sizeClassified+      `Prelude.hashWithSalt` status++instance Prelude.NFData ClassificationResult where+  rnf ClassificationResult' {..} =+    Prelude.rnf additionalOccurrences+      `Prelude.seq` Prelude.rnf customDataIdentifiers+      `Prelude.seq` Prelude.rnf mimeType+      `Prelude.seq` Prelude.rnf sensitiveData+      `Prelude.seq` Prelude.rnf sizeClassified+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/MacieV2/Types/ClassificationResultStatus.hs view
@@ -0,0 +1,380 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.ClassificationResultStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.ClassificationResultStatus where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the status of a sensitive data finding.+--+-- /See:/ 'newClassificationResultStatus' smart constructor.+data ClassificationResultStatus = ClassificationResultStatus'+  { -- | The status of the finding. Possible values are:+    --+    -- -   COMPLETE - Amazon Macie successfully completed its analysis of the+    --     S3 object that the finding applies to.+    --+    -- -   PARTIAL - Macie analyzed only a subset of the data in the S3 object+    --     that the finding applies to. For example, the object is an archive+    --     file that contains files in an unsupported format.+    --+    -- -   SKIPPED - Macie wasn\'t able to analyze the S3 object that the+    --     finding applies to. For example, the object is a file that uses an+    --     unsupported format.+    code :: Prelude.Maybe Prelude.Text,+    -- | A brief description of the status of the finding. This value is null if+    -- the status (code) of the finding is COMPLETE.+    --+    -- Amazon Macie uses this value to notify you of any errors, warnings, or+    -- considerations that might impact your analysis of the finding and the+    -- affected S3 object. Possible values are:+    --+    -- -   ARCHIVE_CONTAINS_UNPROCESSED_FILES - The object is an archive file+    --     and Macie extracted and analyzed only some or none of the files in+    --     the archive. To determine which files Macie analyzed, if any, you+    --     can refer to the corresponding sensitive data discovery result for+    --     the finding (ClassificationDetails.detailedResultsLocation).+    --+    -- -   ARCHIVE_EXCEEDS_SIZE_LIMIT - The object is an archive file whose+    --     total storage size exceeds the size quota for this type of archive.+    --+    -- -   ARCHIVE_NESTING_LEVEL_OVER_LIMIT - The object is an archive file+    --     whose nested depth exceeds the quota for the maximum number of+    --     nested levels that Macie analyzes for this type of archive.+    --+    -- -   ARCHIVE_TOTAL_BYTES_EXTRACTED_OVER_LIMIT - The object is an archive+    --     file that exceeds the quota for the maximum amount of data that+    --     Macie extracts and analyzes for this type of archive.+    --+    -- -   ARCHIVE_TOTAL_DOCUMENTS_PROCESSED_OVER_LIMIT - The object is an+    --     archive file that contains more than the maximum number of files+    --     that Macie extracts and analyzes for this type of archive.+    --+    -- -   FILE_EXCEEDS_SIZE_LIMIT - The storage size of the object exceeds the+    --     size quota for this type of file.+    --+    -- -   INVALID_ENCRYPTION - The object is encrypted using server-side+    --     encryption but Macie isn’t allowed to use the key. Macie can’t+    --     decrypt and analyze the object.+    --+    -- -   INVALID_KMS_KEY - The object is encrypted with an KMS key that was+    --     disabled or is being deleted. Macie can’t decrypt and analyze the+    --     object.+    --+    -- -   INVALID_OBJECT_STATE - The object doesn’t use a supported Amazon S3+    --     storage class. For more information, see+    --     <https://docs.aws.amazon.com/macie/latest/user/data-classification.html Discovering sensitive data>+    --     in the /Amazon Macie User Guide/.+    --+    -- -   JSON_NESTING_LEVEL_OVER_LIMIT - The object contains JSON data and+    --     the nested depth of the data exceeds the quota for the number of+    --     nested levels that Macie analyzes for this type of file.+    --+    -- -   MALFORMED_FILE - The object is a malformed or corrupted file. An+    --     error occurred when Macie attempted to detect the file’s type or+    --     extract data from the file.+    --+    -- -   OBJECT_VERSION_MISMATCH - The object was changed while Macie was+    --     analyzing it.+    --+    -- -   NO_SUCH_BUCKET_AVAILABLE - The object was in a bucket that was+    --     deleted shortly before or when Macie attempted to analyze the+    --     object.+    --+    -- -   MALFORMED_OR_FILE_SIZE_EXCEEDS_LIMIT - The object is a Microsoft+    --     Office file that is malformed or exceeds the size quota for this+    --     type of file. If the file is malformed, an error occurred when Macie+    --     attempted to extract data from the file.+    --+    -- -   OOXML_UNCOMPRESSED_SIZE_EXCEEDS_LIMIT - The object is an Office Open+    --     XML file that exceeds the size quota for this type of file.+    --+    -- -   OOXML_UNCOMPRESSED_RATIO_EXCEEDS_LIMIT - The object is an Office+    --     Open XML file whose compression ratio exceeds the compression quota+    --     for this type of file.+    --+    -- -   PERMISSION_DENIED - Macie isn’t allowed to access the object. The+    --     object’s permissions settings prevent Macie from analyzing the+    --     object.+    --+    -- -   SOURCE_OBJECT_NO_LONGER_AVAILABLE - The object was deleted shortly+    --     before or when Macie attempted to analyze it.+    --+    -- -   UNABLE_TO_PARSE_FILE - The object is a file that contains structured+    --     data and an error occurred when Macie attempted to parse the data.+    --+    -- -   UNSUPPORTED_FILE_TYPE_EXCEPTION - The object is a file that uses an+    --     unsupported file or storage format. For more information, see+    --     <https://docs.aws.amazon.com/macie/latest/user/discovery-supported-formats.html Supported file and storage formats>+    --     in the /Amazon Macie User Guide/.+    --+    -- For information about sensitive data discovery quotas for files, see+    -- <https://docs.aws.amazon.com/macie/latest/user/macie-quotas.html Amazon Macie quotas>+    -- in the /Amazon Macie User Guide/.+    reason :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ClassificationResultStatus' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'code', 'classificationResultStatus_code' - The status of the finding. Possible values are:+--+-- -   COMPLETE - Amazon Macie successfully completed its analysis of the+--     S3 object that the finding applies to.+--+-- -   PARTIAL - Macie analyzed only a subset of the data in the S3 object+--     that the finding applies to. For example, the object is an archive+--     file that contains files in an unsupported format.+--+-- -   SKIPPED - Macie wasn\'t able to analyze the S3 object that the+--     finding applies to. For example, the object is a file that uses an+--     unsupported format.+--+-- 'reason', 'classificationResultStatus_reason' - A brief description of the status of the finding. This value is null if+-- the status (code) of the finding is COMPLETE.+--+-- Amazon Macie uses this value to notify you of any errors, warnings, or+-- considerations that might impact your analysis of the finding and the+-- affected S3 object. Possible values are:+--+-- -   ARCHIVE_CONTAINS_UNPROCESSED_FILES - The object is an archive file+--     and Macie extracted and analyzed only some or none of the files in+--     the archive. To determine which files Macie analyzed, if any, you+--     can refer to the corresponding sensitive data discovery result for+--     the finding (ClassificationDetails.detailedResultsLocation).+--+-- -   ARCHIVE_EXCEEDS_SIZE_LIMIT - The object is an archive file whose+--     total storage size exceeds the size quota for this type of archive.+--+-- -   ARCHIVE_NESTING_LEVEL_OVER_LIMIT - The object is an archive file+--     whose nested depth exceeds the quota for the maximum number of+--     nested levels that Macie analyzes for this type of archive.+--+-- -   ARCHIVE_TOTAL_BYTES_EXTRACTED_OVER_LIMIT - The object is an archive+--     file that exceeds the quota for the maximum amount of data that+--     Macie extracts and analyzes for this type of archive.+--+-- -   ARCHIVE_TOTAL_DOCUMENTS_PROCESSED_OVER_LIMIT - The object is an+--     archive file that contains more than the maximum number of files+--     that Macie extracts and analyzes for this type of archive.+--+-- -   FILE_EXCEEDS_SIZE_LIMIT - The storage size of the object exceeds the+--     size quota for this type of file.+--+-- -   INVALID_ENCRYPTION - The object is encrypted using server-side+--     encryption but Macie isn’t allowed to use the key. Macie can’t+--     decrypt and analyze the object.+--+-- -   INVALID_KMS_KEY - The object is encrypted with an KMS key that was+--     disabled or is being deleted. Macie can’t decrypt and analyze the+--     object.+--+-- -   INVALID_OBJECT_STATE - The object doesn’t use a supported Amazon S3+--     storage class. For more information, see+--     <https://docs.aws.amazon.com/macie/latest/user/data-classification.html Discovering sensitive data>+--     in the /Amazon Macie User Guide/.+--+-- -   JSON_NESTING_LEVEL_OVER_LIMIT - The object contains JSON data and+--     the nested depth of the data exceeds the quota for the number of+--     nested levels that Macie analyzes for this type of file.+--+-- -   MALFORMED_FILE - The object is a malformed or corrupted file. An+--     error occurred when Macie attempted to detect the file’s type or+--     extract data from the file.+--+-- -   OBJECT_VERSION_MISMATCH - The object was changed while Macie was+--     analyzing it.+--+-- -   NO_SUCH_BUCKET_AVAILABLE - The object was in a bucket that was+--     deleted shortly before or when Macie attempted to analyze the+--     object.+--+-- -   MALFORMED_OR_FILE_SIZE_EXCEEDS_LIMIT - The object is a Microsoft+--     Office file that is malformed or exceeds the size quota for this+--     type of file. If the file is malformed, an error occurred when Macie+--     attempted to extract data from the file.+--+-- -   OOXML_UNCOMPRESSED_SIZE_EXCEEDS_LIMIT - The object is an Office Open+--     XML file that exceeds the size quota for this type of file.+--+-- -   OOXML_UNCOMPRESSED_RATIO_EXCEEDS_LIMIT - The object is an Office+--     Open XML file whose compression ratio exceeds the compression quota+--     for this type of file.+--+-- -   PERMISSION_DENIED - Macie isn’t allowed to access the object. The+--     object’s permissions settings prevent Macie from analyzing the+--     object.+--+-- -   SOURCE_OBJECT_NO_LONGER_AVAILABLE - The object was deleted shortly+--     before or when Macie attempted to analyze it.+--+-- -   UNABLE_TO_PARSE_FILE - The object is a file that contains structured+--     data and an error occurred when Macie attempted to parse the data.+--+-- -   UNSUPPORTED_FILE_TYPE_EXCEPTION - The object is a file that uses an+--     unsupported file or storage format. For more information, see+--     <https://docs.aws.amazon.com/macie/latest/user/discovery-supported-formats.html Supported file and storage formats>+--     in the /Amazon Macie User Guide/.+--+-- For information about sensitive data discovery quotas for files, see+-- <https://docs.aws.amazon.com/macie/latest/user/macie-quotas.html Amazon Macie quotas>+-- in the /Amazon Macie User Guide/.+newClassificationResultStatus ::+  ClassificationResultStatus+newClassificationResultStatus =+  ClassificationResultStatus'+    { code = Prelude.Nothing,+      reason = Prelude.Nothing+    }++-- | The status of the finding. Possible values are:+--+-- -   COMPLETE - Amazon Macie successfully completed its analysis of the+--     S3 object that the finding applies to.+--+-- -   PARTIAL - Macie analyzed only a subset of the data in the S3 object+--     that the finding applies to. For example, the object is an archive+--     file that contains files in an unsupported format.+--+-- -   SKIPPED - Macie wasn\'t able to analyze the S3 object that the+--     finding applies to. For example, the object is a file that uses an+--     unsupported format.+classificationResultStatus_code :: Lens.Lens' ClassificationResultStatus (Prelude.Maybe Prelude.Text)+classificationResultStatus_code = Lens.lens (\ClassificationResultStatus' {code} -> code) (\s@ClassificationResultStatus' {} a -> s {code = a} :: ClassificationResultStatus)++-- | A brief description of the status of the finding. This value is null if+-- the status (code) of the finding is COMPLETE.+--+-- Amazon Macie uses this value to notify you of any errors, warnings, or+-- considerations that might impact your analysis of the finding and the+-- affected S3 object. Possible values are:+--+-- -   ARCHIVE_CONTAINS_UNPROCESSED_FILES - The object is an archive file+--     and Macie extracted and analyzed only some or none of the files in+--     the archive. To determine which files Macie analyzed, if any, you+--     can refer to the corresponding sensitive data discovery result for+--     the finding (ClassificationDetails.detailedResultsLocation).+--+-- -   ARCHIVE_EXCEEDS_SIZE_LIMIT - The object is an archive file whose+--     total storage size exceeds the size quota for this type of archive.+--+-- -   ARCHIVE_NESTING_LEVEL_OVER_LIMIT - The object is an archive file+--     whose nested depth exceeds the quota for the maximum number of+--     nested levels that Macie analyzes for this type of archive.+--+-- -   ARCHIVE_TOTAL_BYTES_EXTRACTED_OVER_LIMIT - The object is an archive+--     file that exceeds the quota for the maximum amount of data that+--     Macie extracts and analyzes for this type of archive.+--+-- -   ARCHIVE_TOTAL_DOCUMENTS_PROCESSED_OVER_LIMIT - The object is an+--     archive file that contains more than the maximum number of files+--     that Macie extracts and analyzes for this type of archive.+--+-- -   FILE_EXCEEDS_SIZE_LIMIT - The storage size of the object exceeds the+--     size quota for this type of file.+--+-- -   INVALID_ENCRYPTION - The object is encrypted using server-side+--     encryption but Macie isn’t allowed to use the key. Macie can’t+--     decrypt and analyze the object.+--+-- -   INVALID_KMS_KEY - The object is encrypted with an KMS key that was+--     disabled or is being deleted. Macie can’t decrypt and analyze the+--     object.+--+-- -   INVALID_OBJECT_STATE - The object doesn’t use a supported Amazon S3+--     storage class. For more information, see+--     <https://docs.aws.amazon.com/macie/latest/user/data-classification.html Discovering sensitive data>+--     in the /Amazon Macie User Guide/.+--+-- -   JSON_NESTING_LEVEL_OVER_LIMIT - The object contains JSON data and+--     the nested depth of the data exceeds the quota for the number of+--     nested levels that Macie analyzes for this type of file.+--+-- -   MALFORMED_FILE - The object is a malformed or corrupted file. An+--     error occurred when Macie attempted to detect the file’s type or+--     extract data from the file.+--+-- -   OBJECT_VERSION_MISMATCH - The object was changed while Macie was+--     analyzing it.+--+-- -   NO_SUCH_BUCKET_AVAILABLE - The object was in a bucket that was+--     deleted shortly before or when Macie attempted to analyze the+--     object.+--+-- -   MALFORMED_OR_FILE_SIZE_EXCEEDS_LIMIT - The object is a Microsoft+--     Office file that is malformed or exceeds the size quota for this+--     type of file. If the file is malformed, an error occurred when Macie+--     attempted to extract data from the file.+--+-- -   OOXML_UNCOMPRESSED_SIZE_EXCEEDS_LIMIT - The object is an Office Open+--     XML file that exceeds the size quota for this type of file.+--+-- -   OOXML_UNCOMPRESSED_RATIO_EXCEEDS_LIMIT - The object is an Office+--     Open XML file whose compression ratio exceeds the compression quota+--     for this type of file.+--+-- -   PERMISSION_DENIED - Macie isn’t allowed to access the object. The+--     object’s permissions settings prevent Macie from analyzing the+--     object.+--+-- -   SOURCE_OBJECT_NO_LONGER_AVAILABLE - The object was deleted shortly+--     before or when Macie attempted to analyze it.+--+-- -   UNABLE_TO_PARSE_FILE - The object is a file that contains structured+--     data and an error occurred when Macie attempted to parse the data.+--+-- -   UNSUPPORTED_FILE_TYPE_EXCEPTION - The object is a file that uses an+--     unsupported file or storage format. For more information, see+--     <https://docs.aws.amazon.com/macie/latest/user/discovery-supported-formats.html Supported file and storage formats>+--     in the /Amazon Macie User Guide/.+--+-- For information about sensitive data discovery quotas for files, see+-- <https://docs.aws.amazon.com/macie/latest/user/macie-quotas.html Amazon Macie quotas>+-- in the /Amazon Macie User Guide/.+classificationResultStatus_reason :: Lens.Lens' ClassificationResultStatus (Prelude.Maybe Prelude.Text)+classificationResultStatus_reason = Lens.lens (\ClassificationResultStatus' {reason} -> reason) (\s@ClassificationResultStatus' {} a -> s {reason = a} :: ClassificationResultStatus)++instance Data.FromJSON ClassificationResultStatus where+  parseJSON =+    Data.withObject+      "ClassificationResultStatus"+      ( \x ->+          ClassificationResultStatus'+            Prelude.<$> (x Data..:? "code")+            Prelude.<*> (x Data..:? "reason")+      )++instance Prelude.Hashable ClassificationResultStatus where+  hashWithSalt _salt ClassificationResultStatus' {..} =+    _salt+      `Prelude.hashWithSalt` code+      `Prelude.hashWithSalt` reason++instance Prelude.NFData ClassificationResultStatus where+  rnf ClassificationResultStatus' {..} =+    Prelude.rnf code `Prelude.seq` Prelude.rnf reason
+ gen/Amazonka/MacieV2/Types/ClassificationScopeSummary.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.MacieV2.Types.ClassificationScopeSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.ClassificationScopeSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the classification scope for an Amazon Macie+-- account. Macie uses the scope\'s settings when it performs automated+-- sensitive data discovery for the account.+--+-- /See:/ 'newClassificationScopeSummary' smart constructor.+data ClassificationScopeSummary = ClassificationScopeSummary'+  { -- | The unique identifier for the classification scope.+    id :: Prelude.Maybe Prelude.Text,+    -- | The name of the classification scope.+    name :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ClassificationScopeSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'classificationScopeSummary_id' - The unique identifier for the classification scope.+--+-- 'name', 'classificationScopeSummary_name' - The name of the classification scope.+newClassificationScopeSummary ::+  ClassificationScopeSummary+newClassificationScopeSummary =+  ClassificationScopeSummary'+    { id = Prelude.Nothing,+      name = Prelude.Nothing+    }++-- | The unique identifier for the classification scope.+classificationScopeSummary_id :: Lens.Lens' ClassificationScopeSummary (Prelude.Maybe Prelude.Text)+classificationScopeSummary_id = Lens.lens (\ClassificationScopeSummary' {id} -> id) (\s@ClassificationScopeSummary' {} a -> s {id = a} :: ClassificationScopeSummary)++-- | The name of the classification scope.+classificationScopeSummary_name :: Lens.Lens' ClassificationScopeSummary (Prelude.Maybe Prelude.Text)+classificationScopeSummary_name = Lens.lens (\ClassificationScopeSummary' {name} -> name) (\s@ClassificationScopeSummary' {} a -> s {name = a} :: ClassificationScopeSummary)++instance Data.FromJSON ClassificationScopeSummary where+  parseJSON =+    Data.withObject+      "ClassificationScopeSummary"+      ( \x ->+          ClassificationScopeSummary'+            Prelude.<$> (x Data..:? "id")+            Prelude.<*> (x Data..:? "name")+      )++instance Prelude.Hashable ClassificationScopeSummary where+  hashWithSalt _salt ClassificationScopeSummary' {..} =+    _salt+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` name++instance Prelude.NFData ClassificationScopeSummary where+  rnf ClassificationScopeSummary' {..} =+    Prelude.rnf id `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/MacieV2/Types/ClassificationScopeUpdateOperation.hs view
@@ -0,0 +1,79 @@+{-# 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.MacieV2.Types.ClassificationScopeUpdateOperation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.ClassificationScopeUpdateOperation+  ( ClassificationScopeUpdateOperation+      ( ..,+        ClassificationScopeUpdateOperation_ADD,+        ClassificationScopeUpdateOperation_REMOVE,+        ClassificationScopeUpdateOperation_REPLACE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Specifies how to apply changes to the S3 bucket exclusion list defined+-- by the classification scope for an Amazon Macie account. Valid values+-- are:+newtype ClassificationScopeUpdateOperation = ClassificationScopeUpdateOperation'+  { fromClassificationScopeUpdateOperation ::+      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 ClassificationScopeUpdateOperation_ADD :: ClassificationScopeUpdateOperation+pattern ClassificationScopeUpdateOperation_ADD = ClassificationScopeUpdateOperation' "ADD"++pattern ClassificationScopeUpdateOperation_REMOVE :: ClassificationScopeUpdateOperation+pattern ClassificationScopeUpdateOperation_REMOVE = ClassificationScopeUpdateOperation' "REMOVE"++pattern ClassificationScopeUpdateOperation_REPLACE :: ClassificationScopeUpdateOperation+pattern ClassificationScopeUpdateOperation_REPLACE = ClassificationScopeUpdateOperation' "REPLACE"++{-# COMPLETE+  ClassificationScopeUpdateOperation_ADD,+  ClassificationScopeUpdateOperation_REMOVE,+  ClassificationScopeUpdateOperation_REPLACE,+  ClassificationScopeUpdateOperation'+  #-}
+ gen/Amazonka/MacieV2/Types/CriteriaBlockForJob.hs view
@@ -0,0 +1,82 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.CriteriaBlockForJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.CriteriaBlockForJob where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.CriteriaForJob+import qualified Amazonka.Prelude as Prelude++-- | Specifies one or more property- and tag-based conditions that define+-- criteria for including or excluding S3 buckets from a classification+-- job.+--+-- /See:/ 'newCriteriaBlockForJob' smart constructor.+data CriteriaBlockForJob = CriteriaBlockForJob'+  { -- | An array of conditions, one for each condition that determines which+    -- buckets to include or exclude from the job. If you specify more than one+    -- condition, Amazon Macie uses AND logic to join the conditions.+    and :: Prelude.Maybe [CriteriaForJob]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CriteriaBlockForJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'and', 'criteriaBlockForJob_and' - An array of conditions, one for each condition that determines which+-- buckets to include or exclude from the job. If you specify more than one+-- condition, Amazon Macie uses AND logic to join the conditions.+newCriteriaBlockForJob ::+  CriteriaBlockForJob+newCriteriaBlockForJob =+  CriteriaBlockForJob' {and = Prelude.Nothing}++-- | An array of conditions, one for each condition that determines which+-- buckets to include or exclude from the job. If you specify more than one+-- condition, Amazon Macie uses AND logic to join the conditions.+criteriaBlockForJob_and :: Lens.Lens' CriteriaBlockForJob (Prelude.Maybe [CriteriaForJob])+criteriaBlockForJob_and = Lens.lens (\CriteriaBlockForJob' {and} -> and) (\s@CriteriaBlockForJob' {} a -> s {and = a} :: CriteriaBlockForJob) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON CriteriaBlockForJob where+  parseJSON =+    Data.withObject+      "CriteriaBlockForJob"+      ( \x ->+          CriteriaBlockForJob'+            Prelude.<$> (x Data..:? "and" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable CriteriaBlockForJob where+  hashWithSalt _salt CriteriaBlockForJob' {..} =+    _salt `Prelude.hashWithSalt` and++instance Prelude.NFData CriteriaBlockForJob where+  rnf CriteriaBlockForJob' {..} = Prelude.rnf and++instance Data.ToJSON CriteriaBlockForJob where+  toJSON CriteriaBlockForJob' {..} =+    Data.object+      (Prelude.catMaybes [("and" Data..=) Prelude.<$> and])
+ gen/Amazonka/MacieV2/Types/CriteriaForJob.hs view
@@ -0,0 +1,106 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.CriteriaForJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.CriteriaForJob where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.SimpleCriterionForJob+import Amazonka.MacieV2.Types.TagCriterionForJob+import qualified Amazonka.Prelude as Prelude++-- | Specifies a property- or tag-based condition that defines criteria for+-- including or excluding S3 buckets from a classification job.+--+-- /See:/ 'newCriteriaForJob' smart constructor.+data CriteriaForJob = CriteriaForJob'+  { -- | A property-based condition that defines a property, operator, and one or+    -- more values for including or excluding buckets from the job.+    simpleCriterion :: Prelude.Maybe SimpleCriterionForJob,+    -- | A tag-based condition that defines an operator and tag keys, tag values,+    -- or tag key and value pairs for including or excluding buckets from the+    -- job.+    tagCriterion :: Prelude.Maybe TagCriterionForJob+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CriteriaForJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'simpleCriterion', 'criteriaForJob_simpleCriterion' - A property-based condition that defines a property, operator, and one or+-- more values for including or excluding buckets from the job.+--+-- 'tagCriterion', 'criteriaForJob_tagCriterion' - A tag-based condition that defines an operator and tag keys, tag values,+-- or tag key and value pairs for including or excluding buckets from the+-- job.+newCriteriaForJob ::+  CriteriaForJob+newCriteriaForJob =+  CriteriaForJob'+    { simpleCriterion = Prelude.Nothing,+      tagCriterion = Prelude.Nothing+    }++-- | A property-based condition that defines a property, operator, and one or+-- more values for including or excluding buckets from the job.+criteriaForJob_simpleCriterion :: Lens.Lens' CriteriaForJob (Prelude.Maybe SimpleCriterionForJob)+criteriaForJob_simpleCriterion = Lens.lens (\CriteriaForJob' {simpleCriterion} -> simpleCriterion) (\s@CriteriaForJob' {} a -> s {simpleCriterion = a} :: CriteriaForJob)++-- | A tag-based condition that defines an operator and tag keys, tag values,+-- or tag key and value pairs for including or excluding buckets from the+-- job.+criteriaForJob_tagCriterion :: Lens.Lens' CriteriaForJob (Prelude.Maybe TagCriterionForJob)+criteriaForJob_tagCriterion = Lens.lens (\CriteriaForJob' {tagCriterion} -> tagCriterion) (\s@CriteriaForJob' {} a -> s {tagCriterion = a} :: CriteriaForJob)++instance Data.FromJSON CriteriaForJob where+  parseJSON =+    Data.withObject+      "CriteriaForJob"+      ( \x ->+          CriteriaForJob'+            Prelude.<$> (x Data..:? "simpleCriterion")+            Prelude.<*> (x Data..:? "tagCriterion")+      )++instance Prelude.Hashable CriteriaForJob where+  hashWithSalt _salt CriteriaForJob' {..} =+    _salt+      `Prelude.hashWithSalt` simpleCriterion+      `Prelude.hashWithSalt` tagCriterion++instance Prelude.NFData CriteriaForJob where+  rnf CriteriaForJob' {..} =+    Prelude.rnf simpleCriterion+      `Prelude.seq` Prelude.rnf tagCriterion++instance Data.ToJSON CriteriaForJob where+  toJSON CriteriaForJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("simpleCriterion" Data..=)+              Prelude.<$> simpleCriterion,+            ("tagCriterion" Data..=) Prelude.<$> tagCriterion+          ]+      )
+ gen/Amazonka/MacieV2/Types/CriterionAdditionalProperties.hs view
@@ -0,0 +1,211 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.CriterionAdditionalProperties+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.CriterionAdditionalProperties 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++-- | Specifies the operator to use in a property-based condition that filters+-- the results of a query for findings. For detailed information and+-- examples of each operator, see+-- <https://docs.aws.amazon.com/macie/latest/user/findings-filter-basics.html Fundamentals of filtering findings>+-- in the /Amazon Macie User Guide/.+--+-- /See:/ 'newCriterionAdditionalProperties' smart constructor.+data CriterionAdditionalProperties = CriterionAdditionalProperties'+  { -- | The value for the property matches (equals) the specified value. If you+    -- specify multiple values, Macie uses OR logic to join the values.+    eq :: Prelude.Maybe [Prelude.Text],+    -- | The value for the property exclusively matches (equals an exact match+    -- for) all the specified values. If you specify multiple values, Amazon+    -- Macie uses AND logic to join the values.+    --+    -- You can use this operator with the following properties:+    -- customDataIdentifiers.detections.arn,+    -- customDataIdentifiers.detections.name,+    -- resourcesAffected.s3Bucket.tags.key,+    -- resourcesAffected.s3Bucket.tags.value,+    -- resourcesAffected.s3Object.tags.key,+    -- resourcesAffected.s3Object.tags.value, sensitiveData.category, and+    -- sensitiveData.detections.type.+    eqExactMatch :: Prelude.Maybe [Prelude.Text],+    -- | The value for the property is greater than the specified value.+    gt :: Prelude.Maybe Prelude.Integer,+    -- | The value for the property is greater than or equal to the specified+    -- value.+    gte :: Prelude.Maybe Prelude.Integer,+    -- | The value for the property is less than the specified value.+    lt :: Prelude.Maybe Prelude.Integer,+    -- | The value for the property is less than or equal to the specified value.+    lte :: Prelude.Maybe Prelude.Integer,+    -- | The value for the property doesn\'t match (doesn\'t equal) the specified+    -- value. If you specify multiple values, Macie uses OR logic to join the+    -- values.+    neq :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CriterionAdditionalProperties' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eq', 'criterionAdditionalProperties_eq' - The value for the property matches (equals) the specified value. If you+-- specify multiple values, Macie uses OR logic to join the values.+--+-- 'eqExactMatch', 'criterionAdditionalProperties_eqExactMatch' - The value for the property exclusively matches (equals an exact match+-- for) all the specified values. If you specify multiple values, Amazon+-- Macie uses AND logic to join the values.+--+-- You can use this operator with the following properties:+-- customDataIdentifiers.detections.arn,+-- customDataIdentifiers.detections.name,+-- resourcesAffected.s3Bucket.tags.key,+-- resourcesAffected.s3Bucket.tags.value,+-- resourcesAffected.s3Object.tags.key,+-- resourcesAffected.s3Object.tags.value, sensitiveData.category, and+-- sensitiveData.detections.type.+--+-- 'gt', 'criterionAdditionalProperties_gt' - The value for the property is greater than the specified value.+--+-- 'gte', 'criterionAdditionalProperties_gte' - The value for the property is greater than or equal to the specified+-- value.+--+-- 'lt', 'criterionAdditionalProperties_lt' - The value for the property is less than the specified value.+--+-- 'lte', 'criterionAdditionalProperties_lte' - The value for the property is less than or equal to the specified value.+--+-- 'neq', 'criterionAdditionalProperties_neq' - The value for the property doesn\'t match (doesn\'t equal) the specified+-- value. If you specify multiple values, Macie uses OR logic to join the+-- values.+newCriterionAdditionalProperties ::+  CriterionAdditionalProperties+newCriterionAdditionalProperties =+  CriterionAdditionalProperties'+    { eq =+        Prelude.Nothing,+      eqExactMatch = Prelude.Nothing,+      gt = Prelude.Nothing,+      gte = Prelude.Nothing,+      lt = Prelude.Nothing,+      lte = Prelude.Nothing,+      neq = Prelude.Nothing+    }++-- | The value for the property matches (equals) the specified value. If you+-- specify multiple values, Macie uses OR logic to join the values.+criterionAdditionalProperties_eq :: Lens.Lens' CriterionAdditionalProperties (Prelude.Maybe [Prelude.Text])+criterionAdditionalProperties_eq = Lens.lens (\CriterionAdditionalProperties' {eq} -> eq) (\s@CriterionAdditionalProperties' {} a -> s {eq = a} :: CriterionAdditionalProperties) Prelude.. Lens.mapping Lens.coerced++-- | The value for the property exclusively matches (equals an exact match+-- for) all the specified values. If you specify multiple values, Amazon+-- Macie uses AND logic to join the values.+--+-- You can use this operator with the following properties:+-- customDataIdentifiers.detections.arn,+-- customDataIdentifiers.detections.name,+-- resourcesAffected.s3Bucket.tags.key,+-- resourcesAffected.s3Bucket.tags.value,+-- resourcesAffected.s3Object.tags.key,+-- resourcesAffected.s3Object.tags.value, sensitiveData.category, and+-- sensitiveData.detections.type.+criterionAdditionalProperties_eqExactMatch :: Lens.Lens' CriterionAdditionalProperties (Prelude.Maybe [Prelude.Text])+criterionAdditionalProperties_eqExactMatch = Lens.lens (\CriterionAdditionalProperties' {eqExactMatch} -> eqExactMatch) (\s@CriterionAdditionalProperties' {} a -> s {eqExactMatch = a} :: CriterionAdditionalProperties) Prelude.. Lens.mapping Lens.coerced++-- | The value for the property is greater than the specified value.+criterionAdditionalProperties_gt :: Lens.Lens' CriterionAdditionalProperties (Prelude.Maybe Prelude.Integer)+criterionAdditionalProperties_gt = Lens.lens (\CriterionAdditionalProperties' {gt} -> gt) (\s@CriterionAdditionalProperties' {} a -> s {gt = a} :: CriterionAdditionalProperties)++-- | The value for the property is greater than or equal to the specified+-- value.+criterionAdditionalProperties_gte :: Lens.Lens' CriterionAdditionalProperties (Prelude.Maybe Prelude.Integer)+criterionAdditionalProperties_gte = Lens.lens (\CriterionAdditionalProperties' {gte} -> gte) (\s@CriterionAdditionalProperties' {} a -> s {gte = a} :: CriterionAdditionalProperties)++-- | The value for the property is less than the specified value.+criterionAdditionalProperties_lt :: Lens.Lens' CriterionAdditionalProperties (Prelude.Maybe Prelude.Integer)+criterionAdditionalProperties_lt = Lens.lens (\CriterionAdditionalProperties' {lt} -> lt) (\s@CriterionAdditionalProperties' {} a -> s {lt = a} :: CriterionAdditionalProperties)++-- | The value for the property is less than or equal to the specified value.+criterionAdditionalProperties_lte :: Lens.Lens' CriterionAdditionalProperties (Prelude.Maybe Prelude.Integer)+criterionAdditionalProperties_lte = Lens.lens (\CriterionAdditionalProperties' {lte} -> lte) (\s@CriterionAdditionalProperties' {} a -> s {lte = a} :: CriterionAdditionalProperties)++-- | The value for the property doesn\'t match (doesn\'t equal) the specified+-- value. If you specify multiple values, Macie uses OR logic to join the+-- values.+criterionAdditionalProperties_neq :: Lens.Lens' CriterionAdditionalProperties (Prelude.Maybe [Prelude.Text])+criterionAdditionalProperties_neq = Lens.lens (\CriterionAdditionalProperties' {neq} -> neq) (\s@CriterionAdditionalProperties' {} a -> s {neq = a} :: CriterionAdditionalProperties) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON CriterionAdditionalProperties where+  parseJSON =+    Data.withObject+      "CriterionAdditionalProperties"+      ( \x ->+          CriterionAdditionalProperties'+            Prelude.<$> (x Data..:? "eq" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "eqExactMatch" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "gt")+            Prelude.<*> (x Data..:? "gte")+            Prelude.<*> (x Data..:? "lt")+            Prelude.<*> (x Data..:? "lte")+            Prelude.<*> (x Data..:? "neq" Data..!= Prelude.mempty)+      )++instance+  Prelude.Hashable+    CriterionAdditionalProperties+  where+  hashWithSalt _salt CriterionAdditionalProperties' {..} =+    _salt+      `Prelude.hashWithSalt` eq+      `Prelude.hashWithSalt` eqExactMatch+      `Prelude.hashWithSalt` gt+      `Prelude.hashWithSalt` gte+      `Prelude.hashWithSalt` lt+      `Prelude.hashWithSalt` lte+      `Prelude.hashWithSalt` neq++instance Prelude.NFData CriterionAdditionalProperties where+  rnf CriterionAdditionalProperties' {..} =+    Prelude.rnf eq+      `Prelude.seq` Prelude.rnf eqExactMatch+      `Prelude.seq` Prelude.rnf gt+      `Prelude.seq` Prelude.rnf gte+      `Prelude.seq` Prelude.rnf lt+      `Prelude.seq` Prelude.rnf lte+      `Prelude.seq` Prelude.rnf neq++instance Data.ToJSON CriterionAdditionalProperties where+  toJSON CriterionAdditionalProperties' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("eq" Data..=) Prelude.<$> eq,+            ("eqExactMatch" Data..=) Prelude.<$> eqExactMatch,+            ("gt" Data..=) Prelude.<$> gt,+            ("gte" Data..=) Prelude.<$> gte,+            ("lt" Data..=) Prelude.<$> lt,+            ("lte" Data..=) Prelude.<$> lte,+            ("neq" Data..=) Prelude.<$> neq+          ]+      )
+ gen/Amazonka/MacieV2/Types/Currency.hs view
@@ -0,0 +1,68 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.Currency+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.Currency+  ( Currency+      ( ..,+        Currency_USD+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The type of currency that the data for an Amazon Macie usage metric is+-- reported in. Possible values are:+newtype Currency = Currency'+  { fromCurrency ::+      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 Currency_USD :: Currency+pattern Currency_USD = Currency' "USD"++{-# COMPLETE+  Currency_USD,+  Currency'+  #-}
+ gen/Amazonka/MacieV2/Types/CustomDataIdentifierSummary.hs view
@@ -0,0 +1,123 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.CustomDataIdentifierSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.CustomDataIdentifierSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides information about a custom data identifier.+--+-- /See:/ 'newCustomDataIdentifierSummary' smart constructor.+data CustomDataIdentifierSummary = CustomDataIdentifierSummary'+  { -- | The Amazon Resource Name (ARN) of the custom data identifier.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The date and time, in UTC and extended ISO 8601 format, when the custom+    -- data identifier was created.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | The custom description of the custom data identifier.+    description :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the custom data identifier.+    id :: Prelude.Maybe Prelude.Text,+    -- | The custom name of the custom data identifier.+    name :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CustomDataIdentifierSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'customDataIdentifierSummary_arn' - The Amazon Resource Name (ARN) of the custom data identifier.+--+-- 'createdAt', 'customDataIdentifierSummary_createdAt' - The date and time, in UTC and extended ISO 8601 format, when the custom+-- data identifier was created.+--+-- 'description', 'customDataIdentifierSummary_description' - The custom description of the custom data identifier.+--+-- 'id', 'customDataIdentifierSummary_id' - The unique identifier for the custom data identifier.+--+-- 'name', 'customDataIdentifierSummary_name' - The custom name of the custom data identifier.+newCustomDataIdentifierSummary ::+  CustomDataIdentifierSummary+newCustomDataIdentifierSummary =+  CustomDataIdentifierSummary'+    { arn = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      description = Prelude.Nothing,+      id = Prelude.Nothing,+      name = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the custom data identifier.+customDataIdentifierSummary_arn :: Lens.Lens' CustomDataIdentifierSummary (Prelude.Maybe Prelude.Text)+customDataIdentifierSummary_arn = Lens.lens (\CustomDataIdentifierSummary' {arn} -> arn) (\s@CustomDataIdentifierSummary' {} a -> s {arn = a} :: CustomDataIdentifierSummary)++-- | The date and time, in UTC and extended ISO 8601 format, when the custom+-- data identifier was created.+customDataIdentifierSummary_createdAt :: Lens.Lens' CustomDataIdentifierSummary (Prelude.Maybe Prelude.UTCTime)+customDataIdentifierSummary_createdAt = Lens.lens (\CustomDataIdentifierSummary' {createdAt} -> createdAt) (\s@CustomDataIdentifierSummary' {} a -> s {createdAt = a} :: CustomDataIdentifierSummary) Prelude.. Lens.mapping Data._Time++-- | The custom description of the custom data identifier.+customDataIdentifierSummary_description :: Lens.Lens' CustomDataIdentifierSummary (Prelude.Maybe Prelude.Text)+customDataIdentifierSummary_description = Lens.lens (\CustomDataIdentifierSummary' {description} -> description) (\s@CustomDataIdentifierSummary' {} a -> s {description = a} :: CustomDataIdentifierSummary)++-- | The unique identifier for the custom data identifier.+customDataIdentifierSummary_id :: Lens.Lens' CustomDataIdentifierSummary (Prelude.Maybe Prelude.Text)+customDataIdentifierSummary_id = Lens.lens (\CustomDataIdentifierSummary' {id} -> id) (\s@CustomDataIdentifierSummary' {} a -> s {id = a} :: CustomDataIdentifierSummary)++-- | The custom name of the custom data identifier.+customDataIdentifierSummary_name :: Lens.Lens' CustomDataIdentifierSummary (Prelude.Maybe Prelude.Text)+customDataIdentifierSummary_name = Lens.lens (\CustomDataIdentifierSummary' {name} -> name) (\s@CustomDataIdentifierSummary' {} a -> s {name = a} :: CustomDataIdentifierSummary)++instance Data.FromJSON CustomDataIdentifierSummary where+  parseJSON =+    Data.withObject+      "CustomDataIdentifierSummary"+      ( \x ->+          CustomDataIdentifierSummary'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "createdAt")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "id")+            Prelude.<*> (x Data..:? "name")+      )++instance Prelude.Hashable CustomDataIdentifierSummary where+  hashWithSalt _salt CustomDataIdentifierSummary' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` name++instance Prelude.NFData CustomDataIdentifierSummary where+  rnf CustomDataIdentifierSummary' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/MacieV2/Types/CustomDataIdentifiers.hs view
@@ -0,0 +1,94 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.CustomDataIdentifiers+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.CustomDataIdentifiers where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.CustomDetection+import qualified Amazonka.Prelude as Prelude++-- | Provides information about custom data identifiers that produced a+-- sensitive data finding, and the number of occurrences of the data that+-- they detected for the finding.+--+-- /See:/ 'newCustomDataIdentifiers' smart constructor.+data CustomDataIdentifiers = CustomDataIdentifiers'+  { -- | The custom data identifiers that detected the data, and the number of+    -- occurrences of the data that each identifier detected.+    detections :: Prelude.Maybe [CustomDetection],+    -- | The total number of occurrences of the data that was detected by the+    -- custom data identifiers and produced the finding.+    totalCount :: Prelude.Maybe Prelude.Integer+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CustomDataIdentifiers' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'detections', 'customDataIdentifiers_detections' - The custom data identifiers that detected the data, and the number of+-- occurrences of the data that each identifier detected.+--+-- 'totalCount', 'customDataIdentifiers_totalCount' - The total number of occurrences of the data that was detected by the+-- custom data identifiers and produced the finding.+newCustomDataIdentifiers ::+  CustomDataIdentifiers+newCustomDataIdentifiers =+  CustomDataIdentifiers'+    { detections =+        Prelude.Nothing,+      totalCount = Prelude.Nothing+    }++-- | The custom data identifiers that detected the data, and the number of+-- occurrences of the data that each identifier detected.+customDataIdentifiers_detections :: Lens.Lens' CustomDataIdentifiers (Prelude.Maybe [CustomDetection])+customDataIdentifiers_detections = Lens.lens (\CustomDataIdentifiers' {detections} -> detections) (\s@CustomDataIdentifiers' {} a -> s {detections = a} :: CustomDataIdentifiers) Prelude.. Lens.mapping Lens.coerced++-- | The total number of occurrences of the data that was detected by the+-- custom data identifiers and produced the finding.+customDataIdentifiers_totalCount :: Lens.Lens' CustomDataIdentifiers (Prelude.Maybe Prelude.Integer)+customDataIdentifiers_totalCount = Lens.lens (\CustomDataIdentifiers' {totalCount} -> totalCount) (\s@CustomDataIdentifiers' {} a -> s {totalCount = a} :: CustomDataIdentifiers)++instance Data.FromJSON CustomDataIdentifiers where+  parseJSON =+    Data.withObject+      "CustomDataIdentifiers"+      ( \x ->+          CustomDataIdentifiers'+            Prelude.<$> (x Data..:? "detections" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "totalCount")+      )++instance Prelude.Hashable CustomDataIdentifiers where+  hashWithSalt _salt CustomDataIdentifiers' {..} =+    _salt+      `Prelude.hashWithSalt` detections+      `Prelude.hashWithSalt` totalCount++instance Prelude.NFData CustomDataIdentifiers where+  rnf CustomDataIdentifiers' {..} =+    Prelude.rnf detections+      `Prelude.seq` Prelude.rnf totalCount
+ gen/Amazonka/MacieV2/Types/CustomDetection.hs view
@@ -0,0 +1,120 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.CustomDetection+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.CustomDetection where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.Occurrences+import qualified Amazonka.Prelude as Prelude++-- | Provides information about a custom data identifier that produced a+-- sensitive data finding, and the sensitive data that it detected for the+-- finding.+--+-- /See:/ 'newCustomDetection' smart constructor.+data CustomDetection = CustomDetection'+  { -- | The Amazon Resource Name (ARN) of the custom data identifier.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The total number of occurrences of the sensitive data that the custom+    -- data identifier detected.+    count :: Prelude.Maybe Prelude.Integer,+    -- | The name of the custom data identifier.+    name :: Prelude.Maybe Prelude.Text,+    -- | The location of 1-15 occurrences of the sensitive data that the custom+    -- data identifier detected. A finding includes location data for a maximum+    -- of 15 occurrences of sensitive data.+    occurrences :: Prelude.Maybe Occurrences+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CustomDetection' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'customDetection_arn' - The Amazon Resource Name (ARN) of the custom data identifier.+--+-- 'count', 'customDetection_count' - The total number of occurrences of the sensitive data that the custom+-- data identifier detected.+--+-- 'name', 'customDetection_name' - The name of the custom data identifier.+--+-- 'occurrences', 'customDetection_occurrences' - The location of 1-15 occurrences of the sensitive data that the custom+-- data identifier detected. A finding includes location data for a maximum+-- of 15 occurrences of sensitive data.+newCustomDetection ::+  CustomDetection+newCustomDetection =+  CustomDetection'+    { arn = Prelude.Nothing,+      count = Prelude.Nothing,+      name = Prelude.Nothing,+      occurrences = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the custom data identifier.+customDetection_arn :: Lens.Lens' CustomDetection (Prelude.Maybe Prelude.Text)+customDetection_arn = Lens.lens (\CustomDetection' {arn} -> arn) (\s@CustomDetection' {} a -> s {arn = a} :: CustomDetection)++-- | The total number of occurrences of the sensitive data that the custom+-- data identifier detected.+customDetection_count :: Lens.Lens' CustomDetection (Prelude.Maybe Prelude.Integer)+customDetection_count = Lens.lens (\CustomDetection' {count} -> count) (\s@CustomDetection' {} a -> s {count = a} :: CustomDetection)++-- | The name of the custom data identifier.+customDetection_name :: Lens.Lens' CustomDetection (Prelude.Maybe Prelude.Text)+customDetection_name = Lens.lens (\CustomDetection' {name} -> name) (\s@CustomDetection' {} a -> s {name = a} :: CustomDetection)++-- | The location of 1-15 occurrences of the sensitive data that the custom+-- data identifier detected. A finding includes location data for a maximum+-- of 15 occurrences of sensitive data.+customDetection_occurrences :: Lens.Lens' CustomDetection (Prelude.Maybe Occurrences)+customDetection_occurrences = Lens.lens (\CustomDetection' {occurrences} -> occurrences) (\s@CustomDetection' {} a -> s {occurrences = a} :: CustomDetection)++instance Data.FromJSON CustomDetection where+  parseJSON =+    Data.withObject+      "CustomDetection"+      ( \x ->+          CustomDetection'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "count")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "occurrences")+      )++instance Prelude.Hashable CustomDetection where+  hashWithSalt _salt CustomDetection' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` count+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` occurrences++instance Prelude.NFData CustomDetection where+  rnf CustomDetection' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf count+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf occurrences
+ gen/Amazonka/MacieV2/Types/DailySchedule.hs view
@@ -0,0 +1,58 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.DailySchedule+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.DailySchedule 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++-- | Specifies that a classification job runs once a day, every day. This is+-- an empty object.+--+-- /See:/ 'newDailySchedule' smart constructor.+data DailySchedule = DailySchedule'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DailySchedule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDailySchedule ::+  DailySchedule+newDailySchedule = DailySchedule'++instance Data.FromJSON DailySchedule where+  parseJSON =+    Data.withObject+      "DailySchedule"+      (\x -> Prelude.pure DailySchedule')++instance Prelude.Hashable DailySchedule where+  hashWithSalt _salt _ =+    _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData DailySchedule where+  rnf _ = ()++instance Data.ToJSON DailySchedule where+  toJSON = Prelude.const (Data.Object Prelude.mempty)
+ gen/Amazonka/MacieV2/Types/DataIdentifierSeverity.hs view
@@ -0,0 +1,78 @@+{-# 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.MacieV2.Types.DataIdentifierSeverity+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.DataIdentifierSeverity+  ( DataIdentifierSeverity+      ( ..,+        DataIdentifierSeverity_HIGH,+        DataIdentifierSeverity_LOW,+        DataIdentifierSeverity_MEDIUM+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The severity of a finding, ranging from LOW, for least severe, to HIGH,+-- for most severe. Valid values are:+newtype DataIdentifierSeverity = DataIdentifierSeverity'+  { fromDataIdentifierSeverity ::+      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 DataIdentifierSeverity_HIGH :: DataIdentifierSeverity+pattern DataIdentifierSeverity_HIGH = DataIdentifierSeverity' "HIGH"++pattern DataIdentifierSeverity_LOW :: DataIdentifierSeverity+pattern DataIdentifierSeverity_LOW = DataIdentifierSeverity' "LOW"++pattern DataIdentifierSeverity_MEDIUM :: DataIdentifierSeverity+pattern DataIdentifierSeverity_MEDIUM = DataIdentifierSeverity' "MEDIUM"++{-# COMPLETE+  DataIdentifierSeverity_HIGH,+  DataIdentifierSeverity_LOW,+  DataIdentifierSeverity_MEDIUM,+  DataIdentifierSeverity'+  #-}
+ gen/Amazonka/MacieV2/Types/DataIdentifierType.hs view
@@ -0,0 +1,73 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.DataIdentifierType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.DataIdentifierType+  ( DataIdentifierType+      ( ..,+        DataIdentifierType_CUSTOM,+        DataIdentifierType_MANAGED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The type of data identifier that detected a specific type of sensitive+-- data in an S3 bucket. Possible values are:+newtype DataIdentifierType = DataIdentifierType'+  { fromDataIdentifierType ::+      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 DataIdentifierType_CUSTOM :: DataIdentifierType+pattern DataIdentifierType_CUSTOM = DataIdentifierType' "CUSTOM"++pattern DataIdentifierType_MANAGED :: DataIdentifierType+pattern DataIdentifierType_MANAGED = DataIdentifierType' "MANAGED"++{-# COMPLETE+  DataIdentifierType_CUSTOM,+  DataIdentifierType_MANAGED,+  DataIdentifierType'+  #-}
+ gen/Amazonka/MacieV2/Types/DayOfWeek.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.MacieV2.Types.DayOfWeek+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.DayOfWeek+  ( DayOfWeek+      ( ..,+        DayOfWeek_FRIDAY,+        DayOfWeek_MONDAY,+        DayOfWeek_SATURDAY,+        DayOfWeek_SUNDAY,+        DayOfWeek_THURSDAY,+        DayOfWeek_TUESDAY,+        DayOfWeek_WEDNESDAY+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DayOfWeek = DayOfWeek'+  { fromDayOfWeek ::+      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 DayOfWeek_FRIDAY :: DayOfWeek+pattern DayOfWeek_FRIDAY = DayOfWeek' "FRIDAY"++pattern DayOfWeek_MONDAY :: DayOfWeek+pattern DayOfWeek_MONDAY = DayOfWeek' "MONDAY"++pattern DayOfWeek_SATURDAY :: DayOfWeek+pattern DayOfWeek_SATURDAY = DayOfWeek' "SATURDAY"++pattern DayOfWeek_SUNDAY :: DayOfWeek+pattern DayOfWeek_SUNDAY = DayOfWeek' "SUNDAY"++pattern DayOfWeek_THURSDAY :: DayOfWeek+pattern DayOfWeek_THURSDAY = DayOfWeek' "THURSDAY"++pattern DayOfWeek_TUESDAY :: DayOfWeek+pattern DayOfWeek_TUESDAY = DayOfWeek' "TUESDAY"++pattern DayOfWeek_WEDNESDAY :: DayOfWeek+pattern DayOfWeek_WEDNESDAY = DayOfWeek' "WEDNESDAY"++{-# COMPLETE+  DayOfWeek_FRIDAY,+  DayOfWeek_MONDAY,+  DayOfWeek_SATURDAY,+  DayOfWeek_SUNDAY,+  DayOfWeek_THURSDAY,+  DayOfWeek_TUESDAY,+  DayOfWeek_WEDNESDAY,+  DayOfWeek'+  #-}
+ gen/Amazonka/MacieV2/Types/DefaultDetection.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.MacieV2.Types.DefaultDetection+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.DefaultDetection where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.Occurrences+import qualified Amazonka.Prelude as Prelude++-- | Provides information about a type of sensitive data that was detected by+-- a managed data identifier and produced a sensitive data finding.+--+-- /See:/ 'newDefaultDetection' smart constructor.+data DefaultDetection = DefaultDetection'+  { -- | The total number of occurrences of the type of sensitive data that was+    -- detected.+    count :: Prelude.Maybe Prelude.Integer,+    -- | The location of 1-15 occurrences of the sensitive data that was+    -- detected. A finding includes location data for a maximum of 15+    -- occurrences of sensitive data.+    occurrences :: Prelude.Maybe Occurrences,+    -- | The type of sensitive data that was detected. For example,+    -- AWS_CREDENTIALS, PHONE_NUMBER, or ADDRESS.+    type' :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DefaultDetection' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'count', 'defaultDetection_count' - The total number of occurrences of the type of sensitive data that was+-- detected.+--+-- 'occurrences', 'defaultDetection_occurrences' - The location of 1-15 occurrences of the sensitive data that was+-- detected. A finding includes location data for a maximum of 15+-- occurrences of sensitive data.+--+-- 'type'', 'defaultDetection_type' - The type of sensitive data that was detected. For example,+-- AWS_CREDENTIALS, PHONE_NUMBER, or ADDRESS.+newDefaultDetection ::+  DefaultDetection+newDefaultDetection =+  DefaultDetection'+    { count = Prelude.Nothing,+      occurrences = Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | The total number of occurrences of the type of sensitive data that was+-- detected.+defaultDetection_count :: Lens.Lens' DefaultDetection (Prelude.Maybe Prelude.Integer)+defaultDetection_count = Lens.lens (\DefaultDetection' {count} -> count) (\s@DefaultDetection' {} a -> s {count = a} :: DefaultDetection)++-- | The location of 1-15 occurrences of the sensitive data that was+-- detected. A finding includes location data for a maximum of 15+-- occurrences of sensitive data.+defaultDetection_occurrences :: Lens.Lens' DefaultDetection (Prelude.Maybe Occurrences)+defaultDetection_occurrences = Lens.lens (\DefaultDetection' {occurrences} -> occurrences) (\s@DefaultDetection' {} a -> s {occurrences = a} :: DefaultDetection)++-- | The type of sensitive data that was detected. For example,+-- AWS_CREDENTIALS, PHONE_NUMBER, or ADDRESS.+defaultDetection_type :: Lens.Lens' DefaultDetection (Prelude.Maybe Prelude.Text)+defaultDetection_type = Lens.lens (\DefaultDetection' {type'} -> type') (\s@DefaultDetection' {} a -> s {type' = a} :: DefaultDetection)++instance Data.FromJSON DefaultDetection where+  parseJSON =+    Data.withObject+      "DefaultDetection"+      ( \x ->+          DefaultDetection'+            Prelude.<$> (x Data..:? "count")+            Prelude.<*> (x Data..:? "occurrences")+            Prelude.<*> (x Data..:? "type")+      )++instance Prelude.Hashable DefaultDetection where+  hashWithSalt _salt DefaultDetection' {..} =+    _salt+      `Prelude.hashWithSalt` count+      `Prelude.hashWithSalt` occurrences+      `Prelude.hashWithSalt` type'++instance Prelude.NFData DefaultDetection where+  rnf DefaultDetection' {..} =+    Prelude.rnf count+      `Prelude.seq` Prelude.rnf occurrences+      `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/MacieV2/Types/DetectedDataDetails.hs view
@@ -0,0 +1,73 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.DetectedDataDetails+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.DetectedDataDetails 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++-- | Specifies 1-10 occurrences of a specific type of sensitive data reported+-- by a finding.+--+-- /See:/ 'newDetectedDataDetails' smart constructor.+data DetectedDataDetails = DetectedDataDetails'+  { -- | An occurrence of the specified type of sensitive data. Each occurrence+    -- can contain 1-128 characters.+    value :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DetectedDataDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'value', 'detectedDataDetails_value' - An occurrence of the specified type of sensitive data. Each occurrence+-- can contain 1-128 characters.+newDetectedDataDetails ::+  -- | 'value'+  Prelude.Text ->+  DetectedDataDetails+newDetectedDataDetails pValue_ =+  DetectedDataDetails' {value = pValue_}++-- | An occurrence of the specified type of sensitive data. Each occurrence+-- can contain 1-128 characters.+detectedDataDetails_value :: Lens.Lens' DetectedDataDetails Prelude.Text+detectedDataDetails_value = Lens.lens (\DetectedDataDetails' {value} -> value) (\s@DetectedDataDetails' {} a -> s {value = a} :: DetectedDataDetails)++instance Data.FromJSON DetectedDataDetails where+  parseJSON =+    Data.withObject+      "DetectedDataDetails"+      ( \x ->+          DetectedDataDetails' Prelude.<$> (x Data..: "value")+      )++instance Prelude.Hashable DetectedDataDetails where+  hashWithSalt _salt DetectedDataDetails' {..} =+    _salt `Prelude.hashWithSalt` value++instance Prelude.NFData DetectedDataDetails where+  rnf DetectedDataDetails' {..} = Prelude.rnf value
+ gen/Amazonka/MacieV2/Types/Detection.hs view
@@ -0,0 +1,171 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.Detection+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.Detection where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.DataIdentifierType+import qualified Amazonka.Prelude as Prelude++-- | Provides information about a type of sensitive data that Amazon Macie+-- found in an S3 bucket while performing automated sensitive data+-- discovery for the bucket. The information also specifies the custom data+-- identifier or managed data identifier that detected the data. This+-- information is available only if automated sensitive data discovery is+-- currently enabled for your account.+--+-- /See:/ 'newDetection' smart constructor.+data Detection = Detection'+  { -- | If the sensitive data was detected by a custom data identifier, the+    -- Amazon Resource Name (ARN) of the custom data identifier that detected+    -- the data. Otherwise, this value is null.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The total number of occurrences of the sensitive data.+    count :: Prelude.Maybe Prelude.Integer,+    -- | The unique identifier for the custom data identifier or managed data+    -- identifier that detected the sensitive data. For additional details+    -- about a specified managed data identifier, see+    -- <https://docs.aws.amazon.com/macie/latest/user/managed-data-identifiers.html Using managed data identifiers>+    -- in the /Amazon Macie User Guide/.+    id :: Prelude.Maybe Prelude.Text,+    -- | The name of the custom data identifier or managed data identifier that+    -- detected the sensitive data. For a managed data identifier, this value+    -- is the same as the unique identifier (id).+    name :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether occurrences of this type of sensitive data are+    -- excluded (true) or included (false) in the bucket\'s sensitivity score.+    suppressed :: Prelude.Maybe Prelude.Bool,+    -- | The type of data identifier that detected the sensitive data. Possible+    -- values are: CUSTOM, for a custom data identifier; and, MANAGED, for a+    -- managed data identifier.+    type' :: Prelude.Maybe DataIdentifierType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Detection' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'detection_arn' - If the sensitive data was detected by a custom data identifier, the+-- Amazon Resource Name (ARN) of the custom data identifier that detected+-- the data. Otherwise, this value is null.+--+-- 'count', 'detection_count' - The total number of occurrences of the sensitive data.+--+-- 'id', 'detection_id' - The unique identifier for the custom data identifier or managed data+-- identifier that detected the sensitive data. For additional details+-- about a specified managed data identifier, see+-- <https://docs.aws.amazon.com/macie/latest/user/managed-data-identifiers.html Using managed data identifiers>+-- in the /Amazon Macie User Guide/.+--+-- 'name', 'detection_name' - The name of the custom data identifier or managed data identifier that+-- detected the sensitive data. For a managed data identifier, this value+-- is the same as the unique identifier (id).+--+-- 'suppressed', 'detection_suppressed' - Specifies whether occurrences of this type of sensitive data are+-- excluded (true) or included (false) in the bucket\'s sensitivity score.+--+-- 'type'', 'detection_type' - The type of data identifier that detected the sensitive data. Possible+-- values are: CUSTOM, for a custom data identifier; and, MANAGED, for a+-- managed data identifier.+newDetection ::+  Detection+newDetection =+  Detection'+    { arn = Prelude.Nothing,+      count = Prelude.Nothing,+      id = Prelude.Nothing,+      name = Prelude.Nothing,+      suppressed = Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | If the sensitive data was detected by a custom data identifier, the+-- Amazon Resource Name (ARN) of the custom data identifier that detected+-- the data. Otherwise, this value is null.+detection_arn :: Lens.Lens' Detection (Prelude.Maybe Prelude.Text)+detection_arn = Lens.lens (\Detection' {arn} -> arn) (\s@Detection' {} a -> s {arn = a} :: Detection)++-- | The total number of occurrences of the sensitive data.+detection_count :: Lens.Lens' Detection (Prelude.Maybe Prelude.Integer)+detection_count = Lens.lens (\Detection' {count} -> count) (\s@Detection' {} a -> s {count = a} :: Detection)++-- | The unique identifier for the custom data identifier or managed data+-- identifier that detected the sensitive data. For additional details+-- about a specified managed data identifier, see+-- <https://docs.aws.amazon.com/macie/latest/user/managed-data-identifiers.html Using managed data identifiers>+-- in the /Amazon Macie User Guide/.+detection_id :: Lens.Lens' Detection (Prelude.Maybe Prelude.Text)+detection_id = Lens.lens (\Detection' {id} -> id) (\s@Detection' {} a -> s {id = a} :: Detection)++-- | The name of the custom data identifier or managed data identifier that+-- detected the sensitive data. For a managed data identifier, this value+-- is the same as the unique identifier (id).+detection_name :: Lens.Lens' Detection (Prelude.Maybe Prelude.Text)+detection_name = Lens.lens (\Detection' {name} -> name) (\s@Detection' {} a -> s {name = a} :: Detection)++-- | Specifies whether occurrences of this type of sensitive data are+-- excluded (true) or included (false) in the bucket\'s sensitivity score.+detection_suppressed :: Lens.Lens' Detection (Prelude.Maybe Prelude.Bool)+detection_suppressed = Lens.lens (\Detection' {suppressed} -> suppressed) (\s@Detection' {} a -> s {suppressed = a} :: Detection)++-- | The type of data identifier that detected the sensitive data. Possible+-- values are: CUSTOM, for a custom data identifier; and, MANAGED, for a+-- managed data identifier.+detection_type :: Lens.Lens' Detection (Prelude.Maybe DataIdentifierType)+detection_type = Lens.lens (\Detection' {type'} -> type') (\s@Detection' {} a -> s {type' = a} :: Detection)++instance Data.FromJSON Detection where+  parseJSON =+    Data.withObject+      "Detection"+      ( \x ->+          Detection'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "count")+            Prelude.<*> (x Data..:? "id")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "suppressed")+            Prelude.<*> (x Data..:? "type")+      )++instance Prelude.Hashable Detection where+  hashWithSalt _salt Detection' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` count+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` suppressed+      `Prelude.hashWithSalt` type'++instance Prelude.NFData Detection where+  rnf Detection' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf count+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf suppressed+      `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/MacieV2/Types/DomainDetails.hs view
@@ -0,0 +1,68 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.DomainDetails+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.DomainDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the domain name of the device that an entity+-- used to perform an action on an affected resource.+--+-- /See:/ 'newDomainDetails' smart constructor.+data DomainDetails = DomainDetails'+  { -- | The name of the domain.+    domainName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DomainDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'domainName', 'domainDetails_domainName' - The name of the domain.+newDomainDetails ::+  DomainDetails+newDomainDetails =+  DomainDetails' {domainName = Prelude.Nothing}++-- | The name of the domain.+domainDetails_domainName :: Lens.Lens' DomainDetails (Prelude.Maybe Prelude.Text)+domainDetails_domainName = Lens.lens (\DomainDetails' {domainName} -> domainName) (\s@DomainDetails' {} a -> s {domainName = a} :: DomainDetails)++instance Data.FromJSON DomainDetails where+  parseJSON =+    Data.withObject+      "DomainDetails"+      ( \x ->+          DomainDetails' Prelude.<$> (x Data..:? "domainName")+      )++instance Prelude.Hashable DomainDetails where+  hashWithSalt _salt DomainDetails' {..} =+    _salt `Prelude.hashWithSalt` domainName++instance Prelude.NFData DomainDetails where+  rnf DomainDetails' {..} = Prelude.rnf domainName
+ gen/Amazonka/MacieV2/Types/EffectivePermission.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.MacieV2.Types.EffectivePermission+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.EffectivePermission+  ( EffectivePermission+      ( ..,+        EffectivePermission_NOT_PUBLIC,+        EffectivePermission_PUBLIC,+        EffectivePermission_UNKNOWN+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype EffectivePermission = EffectivePermission'+  { fromEffectivePermission ::+      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 EffectivePermission_NOT_PUBLIC :: EffectivePermission+pattern EffectivePermission_NOT_PUBLIC = EffectivePermission' "NOT_PUBLIC"++pattern EffectivePermission_PUBLIC :: EffectivePermission+pattern EffectivePermission_PUBLIC = EffectivePermission' "PUBLIC"++pattern EffectivePermission_UNKNOWN :: EffectivePermission+pattern EffectivePermission_UNKNOWN = EffectivePermission' "UNKNOWN"++{-# COMPLETE+  EffectivePermission_NOT_PUBLIC,+  EffectivePermission_PUBLIC,+  EffectivePermission_UNKNOWN,+  EffectivePermission'+  #-}
+ gen/Amazonka/MacieV2/Types/EncryptionType.hs view
@@ -0,0 +1,83 @@+{-# 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.MacieV2.Types.EncryptionType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.EncryptionType+  ( EncryptionType+      ( ..,+        EncryptionType_AES256,+        EncryptionType_Aws_kms,+        EncryptionType_NONE,+        EncryptionType_UNKNOWN+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The type of server-side encryption that\'s used to encrypt an S3 object+-- or objects in an S3 bucket. Possible values are:+newtype EncryptionType = EncryptionType'+  { fromEncryptionType ::+      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 EncryptionType_AES256 :: EncryptionType+pattern EncryptionType_AES256 = EncryptionType' "AES256"++pattern EncryptionType_Aws_kms :: EncryptionType+pattern EncryptionType_Aws_kms = EncryptionType' "aws:kms"++pattern EncryptionType_NONE :: EncryptionType+pattern EncryptionType_NONE = EncryptionType' "NONE"++pattern EncryptionType_UNKNOWN :: EncryptionType+pattern EncryptionType_UNKNOWN = EncryptionType' "UNKNOWN"++{-# COMPLETE+  EncryptionType_AES256,+  EncryptionType_Aws_kms,+  EncryptionType_NONE,+  EncryptionType_UNKNOWN,+  EncryptionType'+  #-}
+ gen/Amazonka/MacieV2/Types/ErrorCode.hs view
@@ -0,0 +1,72 @@+{-# 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.MacieV2.Types.ErrorCode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.ErrorCode+  ( ErrorCode+      ( ..,+        ErrorCode_ClientError,+        ErrorCode_InternalError+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The source of an issue or delay. Possible values are:+newtype ErrorCode = ErrorCode'+  { fromErrorCode ::+      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 ErrorCode_ClientError :: ErrorCode+pattern ErrorCode_ClientError = ErrorCode' "ClientError"++pattern ErrorCode_InternalError :: ErrorCode+pattern ErrorCode_InternalError = ErrorCode' "InternalError"++{-# COMPLETE+  ErrorCode_ClientError,+  ErrorCode_InternalError,+  ErrorCode'+  #-}
+ gen/Amazonka/MacieV2/Types/FederatedUser.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.MacieV2.Types.FederatedUser+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.FederatedUser where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.SessionContext+import qualified Amazonka.Prelude as Prelude++-- | Provides information about an identity that performed an action on an+-- affected resource by using temporary security credentials. The+-- credentials were obtained using the GetFederationToken operation of the+-- Security Token Service (STS) API.+--+-- /See:/ 'newFederatedUser' smart constructor.+data FederatedUser = FederatedUser'+  { -- | The Amazon Web Services access key ID that identifies the credentials.+    accessKeyId :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the Amazon Web Services account that owns the+    -- entity that was used to get the credentials.+    accountId :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the entity that was used to get the+    -- credentials.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the entity that was used to get the+    -- credentials.+    principalId :: Prelude.Maybe Prelude.Text,+    -- | The details of the session that was created for the credentials,+    -- including the entity that issued the session.+    sessionContext :: Prelude.Maybe SessionContext+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FederatedUser' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accessKeyId', 'federatedUser_accessKeyId' - The Amazon Web Services access key ID that identifies the credentials.+--+-- 'accountId', 'federatedUser_accountId' - The unique identifier for the Amazon Web Services account that owns the+-- entity that was used to get the credentials.+--+-- 'arn', 'federatedUser_arn' - The Amazon Resource Name (ARN) of the entity that was used to get the+-- credentials.+--+-- 'principalId', 'federatedUser_principalId' - The unique identifier for the entity that was used to get the+-- credentials.+--+-- 'sessionContext', 'federatedUser_sessionContext' - The details of the session that was created for the credentials,+-- including the entity that issued the session.+newFederatedUser ::+  FederatedUser+newFederatedUser =+  FederatedUser'+    { accessKeyId = Prelude.Nothing,+      accountId = Prelude.Nothing,+      arn = Prelude.Nothing,+      principalId = Prelude.Nothing,+      sessionContext = Prelude.Nothing+    }++-- | The Amazon Web Services access key ID that identifies the credentials.+federatedUser_accessKeyId :: Lens.Lens' FederatedUser (Prelude.Maybe Prelude.Text)+federatedUser_accessKeyId = Lens.lens (\FederatedUser' {accessKeyId} -> accessKeyId) (\s@FederatedUser' {} a -> s {accessKeyId = a} :: FederatedUser)++-- | The unique identifier for the Amazon Web Services account that owns the+-- entity that was used to get the credentials.+federatedUser_accountId :: Lens.Lens' FederatedUser (Prelude.Maybe Prelude.Text)+federatedUser_accountId = Lens.lens (\FederatedUser' {accountId} -> accountId) (\s@FederatedUser' {} a -> s {accountId = a} :: FederatedUser)++-- | The Amazon Resource Name (ARN) of the entity that was used to get the+-- credentials.+federatedUser_arn :: Lens.Lens' FederatedUser (Prelude.Maybe Prelude.Text)+federatedUser_arn = Lens.lens (\FederatedUser' {arn} -> arn) (\s@FederatedUser' {} a -> s {arn = a} :: FederatedUser)++-- | The unique identifier for the entity that was used to get the+-- credentials.+federatedUser_principalId :: Lens.Lens' FederatedUser (Prelude.Maybe Prelude.Text)+federatedUser_principalId = Lens.lens (\FederatedUser' {principalId} -> principalId) (\s@FederatedUser' {} a -> s {principalId = a} :: FederatedUser)++-- | The details of the session that was created for the credentials,+-- including the entity that issued the session.+federatedUser_sessionContext :: Lens.Lens' FederatedUser (Prelude.Maybe SessionContext)+federatedUser_sessionContext = Lens.lens (\FederatedUser' {sessionContext} -> sessionContext) (\s@FederatedUser' {} a -> s {sessionContext = a} :: FederatedUser)++instance Data.FromJSON FederatedUser where+  parseJSON =+    Data.withObject+      "FederatedUser"+      ( \x ->+          FederatedUser'+            Prelude.<$> (x Data..:? "accessKeyId")+            Prelude.<*> (x Data..:? "accountId")+            Prelude.<*> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "principalId")+            Prelude.<*> (x Data..:? "sessionContext")+      )++instance Prelude.Hashable FederatedUser where+  hashWithSalt _salt FederatedUser' {..} =+    _salt+      `Prelude.hashWithSalt` accessKeyId+      `Prelude.hashWithSalt` accountId+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` principalId+      `Prelude.hashWithSalt` sessionContext++instance Prelude.NFData FederatedUser where+  rnf FederatedUser' {..} =+    Prelude.rnf accessKeyId+      `Prelude.seq` Prelude.rnf accountId+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf principalId+      `Prelude.seq` Prelude.rnf sessionContext
+ gen/Amazonka/MacieV2/Types/Finding.hs view
@@ -0,0 +1,333 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.Finding+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.Finding where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.ClassificationDetails+import Amazonka.MacieV2.Types.FindingCategory+import Amazonka.MacieV2.Types.FindingType+import Amazonka.MacieV2.Types.PolicyDetails+import Amazonka.MacieV2.Types.ResourcesAffected+import Amazonka.MacieV2.Types.Severity+import qualified Amazonka.Prelude as Prelude++-- | Provides the details of a finding.+--+-- /See:/ 'newFinding' smart constructor.+data Finding = Finding'+  { -- | The unique identifier for the Amazon Web Services account that the+    -- finding applies to. This is typically the account that owns the affected+    -- resource.+    accountId :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether the finding is archived (suppressed).+    archived :: Prelude.Maybe Prelude.Bool,+    -- | The category of the finding. Possible values are: CLASSIFICATION, for a+    -- sensitive data finding; and, POLICY, for a policy finding.+    category :: Prelude.Maybe FindingCategory,+    -- | The details of a sensitive data finding. This value is null for a policy+    -- finding.+    classificationDetails :: Prelude.Maybe ClassificationDetails,+    -- | The total number of occurrences of the finding. For sensitive data+    -- findings, this value is always 1. All sensitive data findings are+    -- considered unique.+    count :: Prelude.Maybe Prelude.Integer,+    -- | The date and time, in UTC and extended ISO 8601 format, when Amazon+    -- Macie created the finding.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | The description of the finding.+    description :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the finding. This is a random string that+    -- Amazon Macie generates and assigns to a finding when it creates the+    -- finding.+    id :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Web Services partition that Amazon Macie created the finding+    -- in.+    partition :: Prelude.Maybe Prelude.Text,+    -- | The details of a policy finding. This value is null for a sensitive data+    -- finding.+    policyDetails :: Prelude.Maybe PolicyDetails,+    -- | The Amazon Web Services Region that Amazon Macie created the finding in.+    region :: Prelude.Maybe Prelude.Text,+    -- | The resources that the finding applies to.+    resourcesAffected :: Prelude.Maybe ResourcesAffected,+    -- | Specifies whether the finding is a sample finding. A /sample finding/ is+    -- a finding that uses example data to demonstrate what a finding might+    -- contain.+    sample :: Prelude.Maybe Prelude.Bool,+    -- | The version of the schema that was used to define the data structures in+    -- the finding.+    schemaVersion :: Prelude.Maybe Prelude.Text,+    -- | The severity level and score for the finding.+    severity :: Prelude.Maybe Severity,+    -- | The brief description of the finding.+    title :: Prelude.Maybe Prelude.Text,+    -- | The type of the finding.+    type' :: Prelude.Maybe FindingType,+    -- | The date and time, in UTC and extended ISO 8601 format, when Amazon+    -- Macie last updated the finding. For sensitive data findings, this value+    -- is the same as the value for the createdAt property. All sensitive data+    -- findings are considered new.+    updatedAt :: Prelude.Maybe Data.ISO8601+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Finding' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'finding_accountId' - The unique identifier for the Amazon Web Services account that the+-- finding applies to. This is typically the account that owns the affected+-- resource.+--+-- 'archived', 'finding_archived' - Specifies whether the finding is archived (suppressed).+--+-- 'category', 'finding_category' - The category of the finding. Possible values are: CLASSIFICATION, for a+-- sensitive data finding; and, POLICY, for a policy finding.+--+-- 'classificationDetails', 'finding_classificationDetails' - The details of a sensitive data finding. This value is null for a policy+-- finding.+--+-- 'count', 'finding_count' - The total number of occurrences of the finding. For sensitive data+-- findings, this value is always 1. All sensitive data findings are+-- considered unique.+--+-- 'createdAt', 'finding_createdAt' - The date and time, in UTC and extended ISO 8601 format, when Amazon+-- Macie created the finding.+--+-- 'description', 'finding_description' - The description of the finding.+--+-- 'id', 'finding_id' - The unique identifier for the finding. This is a random string that+-- Amazon Macie generates and assigns to a finding when it creates the+-- finding.+--+-- 'partition', 'finding_partition' - The Amazon Web Services partition that Amazon Macie created the finding+-- in.+--+-- 'policyDetails', 'finding_policyDetails' - The details of a policy finding. This value is null for a sensitive data+-- finding.+--+-- 'region', 'finding_region' - The Amazon Web Services Region that Amazon Macie created the finding in.+--+-- 'resourcesAffected', 'finding_resourcesAffected' - The resources that the finding applies to.+--+-- 'sample', 'finding_sample' - Specifies whether the finding is a sample finding. A /sample finding/ is+-- a finding that uses example data to demonstrate what a finding might+-- contain.+--+-- 'schemaVersion', 'finding_schemaVersion' - The version of the schema that was used to define the data structures in+-- the finding.+--+-- 'severity', 'finding_severity' - The severity level and score for the finding.+--+-- 'title', 'finding_title' - The brief description of the finding.+--+-- 'type'', 'finding_type' - The type of the finding.+--+-- 'updatedAt', 'finding_updatedAt' - The date and time, in UTC and extended ISO 8601 format, when Amazon+-- Macie last updated the finding. For sensitive data findings, this value+-- is the same as the value for the createdAt property. All sensitive data+-- findings are considered new.+newFinding ::+  Finding+newFinding =+  Finding'+    { accountId = Prelude.Nothing,+      archived = Prelude.Nothing,+      category = Prelude.Nothing,+      classificationDetails = Prelude.Nothing,+      count = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      description = Prelude.Nothing,+      id = Prelude.Nothing,+      partition = Prelude.Nothing,+      policyDetails = Prelude.Nothing,+      region = Prelude.Nothing,+      resourcesAffected = Prelude.Nothing,+      sample = Prelude.Nothing,+      schemaVersion = Prelude.Nothing,+      severity = Prelude.Nothing,+      title = Prelude.Nothing,+      type' = Prelude.Nothing,+      updatedAt = Prelude.Nothing+    }++-- | The unique identifier for the Amazon Web Services account that the+-- finding applies to. This is typically the account that owns the affected+-- resource.+finding_accountId :: Lens.Lens' Finding (Prelude.Maybe Prelude.Text)+finding_accountId = Lens.lens (\Finding' {accountId} -> accountId) (\s@Finding' {} a -> s {accountId = a} :: Finding)++-- | Specifies whether the finding is archived (suppressed).+finding_archived :: Lens.Lens' Finding (Prelude.Maybe Prelude.Bool)+finding_archived = Lens.lens (\Finding' {archived} -> archived) (\s@Finding' {} a -> s {archived = a} :: Finding)++-- | The category of the finding. Possible values are: CLASSIFICATION, for a+-- sensitive data finding; and, POLICY, for a policy finding.+finding_category :: Lens.Lens' Finding (Prelude.Maybe FindingCategory)+finding_category = Lens.lens (\Finding' {category} -> category) (\s@Finding' {} a -> s {category = a} :: Finding)++-- | The details of a sensitive data finding. This value is null for a policy+-- finding.+finding_classificationDetails :: Lens.Lens' Finding (Prelude.Maybe ClassificationDetails)+finding_classificationDetails = Lens.lens (\Finding' {classificationDetails} -> classificationDetails) (\s@Finding' {} a -> s {classificationDetails = a} :: Finding)++-- | The total number of occurrences of the finding. For sensitive data+-- findings, this value is always 1. All sensitive data findings are+-- considered unique.+finding_count :: Lens.Lens' Finding (Prelude.Maybe Prelude.Integer)+finding_count = Lens.lens (\Finding' {count} -> count) (\s@Finding' {} a -> s {count = a} :: Finding)++-- | The date and time, in UTC and extended ISO 8601 format, when Amazon+-- Macie created the finding.+finding_createdAt :: Lens.Lens' Finding (Prelude.Maybe Prelude.UTCTime)+finding_createdAt = Lens.lens (\Finding' {createdAt} -> createdAt) (\s@Finding' {} a -> s {createdAt = a} :: Finding) Prelude.. Lens.mapping Data._Time++-- | The description of the finding.+finding_description :: Lens.Lens' Finding (Prelude.Maybe Prelude.Text)+finding_description = Lens.lens (\Finding' {description} -> description) (\s@Finding' {} a -> s {description = a} :: Finding)++-- | The unique identifier for the finding. This is a random string that+-- Amazon Macie generates and assigns to a finding when it creates the+-- finding.+finding_id :: Lens.Lens' Finding (Prelude.Maybe Prelude.Text)+finding_id = Lens.lens (\Finding' {id} -> id) (\s@Finding' {} a -> s {id = a} :: Finding)++-- | The Amazon Web Services partition that Amazon Macie created the finding+-- in.+finding_partition :: Lens.Lens' Finding (Prelude.Maybe Prelude.Text)+finding_partition = Lens.lens (\Finding' {partition} -> partition) (\s@Finding' {} a -> s {partition = a} :: Finding)++-- | The details of a policy finding. This value is null for a sensitive data+-- finding.+finding_policyDetails :: Lens.Lens' Finding (Prelude.Maybe PolicyDetails)+finding_policyDetails = Lens.lens (\Finding' {policyDetails} -> policyDetails) (\s@Finding' {} a -> s {policyDetails = a} :: Finding)++-- | The Amazon Web Services Region that Amazon Macie created the finding in.+finding_region :: Lens.Lens' Finding (Prelude.Maybe Prelude.Text)+finding_region = Lens.lens (\Finding' {region} -> region) (\s@Finding' {} a -> s {region = a} :: Finding)++-- | The resources that the finding applies to.+finding_resourcesAffected :: Lens.Lens' Finding (Prelude.Maybe ResourcesAffected)+finding_resourcesAffected = Lens.lens (\Finding' {resourcesAffected} -> resourcesAffected) (\s@Finding' {} a -> s {resourcesAffected = a} :: Finding)++-- | Specifies whether the finding is a sample finding. A /sample finding/ is+-- a finding that uses example data to demonstrate what a finding might+-- contain.+finding_sample :: Lens.Lens' Finding (Prelude.Maybe Prelude.Bool)+finding_sample = Lens.lens (\Finding' {sample} -> sample) (\s@Finding' {} a -> s {sample = a} :: Finding)++-- | The version of the schema that was used to define the data structures in+-- the finding.+finding_schemaVersion :: Lens.Lens' Finding (Prelude.Maybe Prelude.Text)+finding_schemaVersion = Lens.lens (\Finding' {schemaVersion} -> schemaVersion) (\s@Finding' {} a -> s {schemaVersion = a} :: Finding)++-- | The severity level and score for the finding.+finding_severity :: Lens.Lens' Finding (Prelude.Maybe Severity)+finding_severity = Lens.lens (\Finding' {severity} -> severity) (\s@Finding' {} a -> s {severity = a} :: Finding)++-- | The brief description of the finding.+finding_title :: Lens.Lens' Finding (Prelude.Maybe Prelude.Text)+finding_title = Lens.lens (\Finding' {title} -> title) (\s@Finding' {} a -> s {title = a} :: Finding)++-- | The type of the finding.+finding_type :: Lens.Lens' Finding (Prelude.Maybe FindingType)+finding_type = Lens.lens (\Finding' {type'} -> type') (\s@Finding' {} a -> s {type' = a} :: Finding)++-- | The date and time, in UTC and extended ISO 8601 format, when Amazon+-- Macie last updated the finding. For sensitive data findings, this value+-- is the same as the value for the createdAt property. All sensitive data+-- findings are considered new.+finding_updatedAt :: Lens.Lens' Finding (Prelude.Maybe Prelude.UTCTime)+finding_updatedAt = Lens.lens (\Finding' {updatedAt} -> updatedAt) (\s@Finding' {} a -> s {updatedAt = a} :: Finding) Prelude.. Lens.mapping Data._Time++instance Data.FromJSON Finding where+  parseJSON =+    Data.withObject+      "Finding"+      ( \x ->+          Finding'+            Prelude.<$> (x Data..:? "accountId")+            Prelude.<*> (x Data..:? "archived")+            Prelude.<*> (x Data..:? "category")+            Prelude.<*> (x Data..:? "classificationDetails")+            Prelude.<*> (x Data..:? "count")+            Prelude.<*> (x Data..:? "createdAt")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "id")+            Prelude.<*> (x Data..:? "partition")+            Prelude.<*> (x Data..:? "policyDetails")+            Prelude.<*> (x Data..:? "region")+            Prelude.<*> (x Data..:? "resourcesAffected")+            Prelude.<*> (x Data..:? "sample")+            Prelude.<*> (x Data..:? "schemaVersion")+            Prelude.<*> (x Data..:? "severity")+            Prelude.<*> (x Data..:? "title")+            Prelude.<*> (x Data..:? "type")+            Prelude.<*> (x Data..:? "updatedAt")+      )++instance Prelude.Hashable Finding where+  hashWithSalt _salt Finding' {..} =+    _salt+      `Prelude.hashWithSalt` accountId+      `Prelude.hashWithSalt` archived+      `Prelude.hashWithSalt` category+      `Prelude.hashWithSalt` classificationDetails+      `Prelude.hashWithSalt` count+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` partition+      `Prelude.hashWithSalt` policyDetails+      `Prelude.hashWithSalt` region+      `Prelude.hashWithSalt` resourcesAffected+      `Prelude.hashWithSalt` sample+      `Prelude.hashWithSalt` schemaVersion+      `Prelude.hashWithSalt` severity+      `Prelude.hashWithSalt` title+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` updatedAt++instance Prelude.NFData Finding where+  rnf Finding' {..} =+    Prelude.rnf accountId+      `Prelude.seq` Prelude.rnf archived+      `Prelude.seq` Prelude.rnf category+      `Prelude.seq` Prelude.rnf classificationDetails+      `Prelude.seq` Prelude.rnf count+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf partition+      `Prelude.seq` Prelude.rnf policyDetails+      `Prelude.seq` Prelude.rnf region+      `Prelude.seq` Prelude.rnf resourcesAffected+      `Prelude.seq` Prelude.rnf sample+      `Prelude.seq` Prelude.rnf schemaVersion+      `Prelude.seq` Prelude.rnf severity+      `Prelude.seq` Prelude.rnf title+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf updatedAt
+ gen/Amazonka/MacieV2/Types/FindingAction.hs view
@@ -0,0 +1,99 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.FindingAction+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.FindingAction where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.ApiCallDetails+import Amazonka.MacieV2.Types.FindingActionType+import qualified Amazonka.Prelude as Prelude++-- | Provides information about an action that occurred for a resource and+-- produced a policy finding.+--+-- /See:/ 'newFindingAction' smart constructor.+data FindingAction = FindingAction'+  { -- | The type of action that occurred for the affected resource. This value+    -- is typically AWS_API_CALL, which indicates that an entity invoked an API+    -- operation for the resource.+    actionType :: Prelude.Maybe FindingActionType,+    -- | The invocation details of the API operation that an entity invoked for+    -- the affected resource, if the value for the actionType property is+    -- AWS_API_CALL.+    apiCallDetails :: Prelude.Maybe ApiCallDetails+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FindingAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'actionType', 'findingAction_actionType' - The type of action that occurred for the affected resource. This value+-- is typically AWS_API_CALL, which indicates that an entity invoked an API+-- operation for the resource.+--+-- 'apiCallDetails', 'findingAction_apiCallDetails' - The invocation details of the API operation that an entity invoked for+-- the affected resource, if the value for the actionType property is+-- AWS_API_CALL.+newFindingAction ::+  FindingAction+newFindingAction =+  FindingAction'+    { actionType = Prelude.Nothing,+      apiCallDetails = Prelude.Nothing+    }++-- | The type of action that occurred for the affected resource. This value+-- is typically AWS_API_CALL, which indicates that an entity invoked an API+-- operation for the resource.+findingAction_actionType :: Lens.Lens' FindingAction (Prelude.Maybe FindingActionType)+findingAction_actionType = Lens.lens (\FindingAction' {actionType} -> actionType) (\s@FindingAction' {} a -> s {actionType = a} :: FindingAction)++-- | The invocation details of the API operation that an entity invoked for+-- the affected resource, if the value for the actionType property is+-- AWS_API_CALL.+findingAction_apiCallDetails :: Lens.Lens' FindingAction (Prelude.Maybe ApiCallDetails)+findingAction_apiCallDetails = Lens.lens (\FindingAction' {apiCallDetails} -> apiCallDetails) (\s@FindingAction' {} a -> s {apiCallDetails = a} :: FindingAction)++instance Data.FromJSON FindingAction where+  parseJSON =+    Data.withObject+      "FindingAction"+      ( \x ->+          FindingAction'+            Prelude.<$> (x Data..:? "actionType")+            Prelude.<*> (x Data..:? "apiCallDetails")+      )++instance Prelude.Hashable FindingAction where+  hashWithSalt _salt FindingAction' {..} =+    _salt+      `Prelude.hashWithSalt` actionType+      `Prelude.hashWithSalt` apiCallDetails++instance Prelude.NFData FindingAction where+  rnf FindingAction' {..} =+    Prelude.rnf actionType+      `Prelude.seq` Prelude.rnf apiCallDetails
+ gen/Amazonka/MacieV2/Types/FindingActionType.hs view
@@ -0,0 +1,68 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.FindingActionType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.FindingActionType+  ( FindingActionType+      ( ..,+        FindingActionType_AWS_API_CALL+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The type of action that occurred for the resource and produced the+-- policy finding:+newtype FindingActionType = FindingActionType'+  { fromFindingActionType ::+      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 FindingActionType_AWS_API_CALL :: FindingActionType+pattern FindingActionType_AWS_API_CALL = FindingActionType' "AWS_API_CALL"++{-# COMPLETE+  FindingActionType_AWS_API_CALL,+  FindingActionType'+  #-}
+ gen/Amazonka/MacieV2/Types/FindingActor.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.MacieV2.Types.FindingActor+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.FindingActor where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.DomainDetails+import Amazonka.MacieV2.Types.IpAddressDetails+import Amazonka.MacieV2.Types.UserIdentity+import qualified Amazonka.Prelude as Prelude++-- | Provides information about an entity that performed an action that+-- produced a policy finding for a resource.+--+-- /See:/ 'newFindingActor' smart constructor.+data FindingActor = FindingActor'+  { -- | The domain name of the device that the entity used to perform the action+    -- on the affected resource.+    domainDetails :: Prelude.Maybe DomainDetails,+    -- | The IP address of the device that the entity used to perform the action+    -- on the affected resource. This object also provides information such as+    -- the owner and geographic location for the IP address.+    ipAddressDetails :: Prelude.Maybe IpAddressDetails,+    -- | The type and other characteristics of the entity that performed the+    -- action on the affected resource.+    userIdentity :: Prelude.Maybe UserIdentity+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FindingActor' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'domainDetails', 'findingActor_domainDetails' - The domain name of the device that the entity used to perform the action+-- on the affected resource.+--+-- 'ipAddressDetails', 'findingActor_ipAddressDetails' - The IP address of the device that the entity used to perform the action+-- on the affected resource. This object also provides information such as+-- the owner and geographic location for the IP address.+--+-- 'userIdentity', 'findingActor_userIdentity' - The type and other characteristics of the entity that performed the+-- action on the affected resource.+newFindingActor ::+  FindingActor+newFindingActor =+  FindingActor'+    { domainDetails = Prelude.Nothing,+      ipAddressDetails = Prelude.Nothing,+      userIdentity = Prelude.Nothing+    }++-- | The domain name of the device that the entity used to perform the action+-- on the affected resource.+findingActor_domainDetails :: Lens.Lens' FindingActor (Prelude.Maybe DomainDetails)+findingActor_domainDetails = Lens.lens (\FindingActor' {domainDetails} -> domainDetails) (\s@FindingActor' {} a -> s {domainDetails = a} :: FindingActor)++-- | The IP address of the device that the entity used to perform the action+-- on the affected resource. This object also provides information such as+-- the owner and geographic location for the IP address.+findingActor_ipAddressDetails :: Lens.Lens' FindingActor (Prelude.Maybe IpAddressDetails)+findingActor_ipAddressDetails = Lens.lens (\FindingActor' {ipAddressDetails} -> ipAddressDetails) (\s@FindingActor' {} a -> s {ipAddressDetails = a} :: FindingActor)++-- | The type and other characteristics of the entity that performed the+-- action on the affected resource.+findingActor_userIdentity :: Lens.Lens' FindingActor (Prelude.Maybe UserIdentity)+findingActor_userIdentity = Lens.lens (\FindingActor' {userIdentity} -> userIdentity) (\s@FindingActor' {} a -> s {userIdentity = a} :: FindingActor)++instance Data.FromJSON FindingActor where+  parseJSON =+    Data.withObject+      "FindingActor"+      ( \x ->+          FindingActor'+            Prelude.<$> (x Data..:? "domainDetails")+            Prelude.<*> (x Data..:? "ipAddressDetails")+            Prelude.<*> (x Data..:? "userIdentity")+      )++instance Prelude.Hashable FindingActor where+  hashWithSalt _salt FindingActor' {..} =+    _salt+      `Prelude.hashWithSalt` domainDetails+      `Prelude.hashWithSalt` ipAddressDetails+      `Prelude.hashWithSalt` userIdentity++instance Prelude.NFData FindingActor where+  rnf FindingActor' {..} =+    Prelude.rnf domainDetails+      `Prelude.seq` Prelude.rnf ipAddressDetails+      `Prelude.seq` Prelude.rnf userIdentity
+ gen/Amazonka/MacieV2/Types/FindingCategory.hs view
@@ -0,0 +1,72 @@+{-# 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.MacieV2.Types.FindingCategory+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.FindingCategory+  ( FindingCategory+      ( ..,+        FindingCategory_CLASSIFICATION,+        FindingCategory_POLICY+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The category of the finding. Possible values are:+newtype FindingCategory = FindingCategory'+  { fromFindingCategory ::+      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 FindingCategory_CLASSIFICATION :: FindingCategory+pattern FindingCategory_CLASSIFICATION = FindingCategory' "CLASSIFICATION"++pattern FindingCategory_POLICY :: FindingCategory+pattern FindingCategory_POLICY = FindingCategory' "POLICY"++{-# COMPLETE+  FindingCategory_CLASSIFICATION,+  FindingCategory_POLICY,+  FindingCategory'+  #-}
+ gen/Amazonka/MacieV2/Types/FindingCriteria.hs view
@@ -0,0 +1,80 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.FindingCriteria+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.FindingCriteria where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.CriterionAdditionalProperties+import qualified Amazonka.Prelude as Prelude++-- | Specifies, as a map, one or more property-based conditions that filter+-- the results of a query for findings.+--+-- /See:/ 'newFindingCriteria' smart constructor.+data FindingCriteria = FindingCriteria'+  { -- | A condition that specifies the property, operator, and one or more+    -- values to use to filter the results.+    criterion :: Prelude.Maybe (Prelude.HashMap Prelude.Text CriterionAdditionalProperties)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FindingCriteria' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'criterion', 'findingCriteria_criterion' - A condition that specifies the property, operator, and one or more+-- values to use to filter the results.+newFindingCriteria ::+  FindingCriteria+newFindingCriteria =+  FindingCriteria' {criterion = Prelude.Nothing}++-- | A condition that specifies the property, operator, and one or more+-- values to use to filter the results.+findingCriteria_criterion :: Lens.Lens' FindingCriteria (Prelude.Maybe (Prelude.HashMap Prelude.Text CriterionAdditionalProperties))+findingCriteria_criterion = Lens.lens (\FindingCriteria' {criterion} -> criterion) (\s@FindingCriteria' {} a -> s {criterion = a} :: FindingCriteria) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON FindingCriteria where+  parseJSON =+    Data.withObject+      "FindingCriteria"+      ( \x ->+          FindingCriteria'+            Prelude.<$> (x Data..:? "criterion" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable FindingCriteria where+  hashWithSalt _salt FindingCriteria' {..} =+    _salt `Prelude.hashWithSalt` criterion++instance Prelude.NFData FindingCriteria where+  rnf FindingCriteria' {..} = Prelude.rnf criterion++instance Data.ToJSON FindingCriteria where+  toJSON FindingCriteria' {..} =+    Data.object+      ( Prelude.catMaybes+          [("criterion" Data..=) Prelude.<$> criterion]+      )
+ gen/Amazonka/MacieV2/Types/FindingPublishingFrequency.hs view
@@ -0,0 +1,82 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.FindingPublishingFrequency+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.FindingPublishingFrequency+  ( FindingPublishingFrequency+      ( ..,+        FindingPublishingFrequency_FIFTEEN_MINUTES,+        FindingPublishingFrequency_ONE_HOUR,+        FindingPublishingFrequency_SIX_HOURS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The frequency with which Amazon Macie publishes updates to policy+-- findings for an account. This includes publishing updates to Security+-- Hub and Amazon EventBridge (formerly Amazon CloudWatch Events). For more+-- information, see+-- <https://docs.aws.amazon.com/macie/latest/user/findings-monitor.html Monitoring and processing findings>+-- in the /Amazon Macie User Guide/. Valid values are:+newtype FindingPublishingFrequency = FindingPublishingFrequency'+  { fromFindingPublishingFrequency ::+      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 FindingPublishingFrequency_FIFTEEN_MINUTES :: FindingPublishingFrequency+pattern FindingPublishingFrequency_FIFTEEN_MINUTES = FindingPublishingFrequency' "FIFTEEN_MINUTES"++pattern FindingPublishingFrequency_ONE_HOUR :: FindingPublishingFrequency+pattern FindingPublishingFrequency_ONE_HOUR = FindingPublishingFrequency' "ONE_HOUR"++pattern FindingPublishingFrequency_SIX_HOURS :: FindingPublishingFrequency+pattern FindingPublishingFrequency_SIX_HOURS = FindingPublishingFrequency' "SIX_HOURS"++{-# COMPLETE+  FindingPublishingFrequency_FIFTEEN_MINUTES,+  FindingPublishingFrequency_ONE_HOUR,+  FindingPublishingFrequency_SIX_HOURS,+  FindingPublishingFrequency'+  #-}
+ gen/Amazonka/MacieV2/Types/FindingStatisticsSortAttributeName.hs view
@@ -0,0 +1,72 @@+{-# 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.MacieV2.Types.FindingStatisticsSortAttributeName+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.FindingStatisticsSortAttributeName+  ( FindingStatisticsSortAttributeName+      ( ..,+        FindingStatisticsSortAttributeName_Count,+        FindingStatisticsSortAttributeName_GroupKey+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The grouping to sort the results by. Valid values are:+newtype FindingStatisticsSortAttributeName = FindingStatisticsSortAttributeName'+  { fromFindingStatisticsSortAttributeName ::+      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 FindingStatisticsSortAttributeName_Count :: FindingStatisticsSortAttributeName+pattern FindingStatisticsSortAttributeName_Count = FindingStatisticsSortAttributeName' "count"++pattern FindingStatisticsSortAttributeName_GroupKey :: FindingStatisticsSortAttributeName+pattern FindingStatisticsSortAttributeName_GroupKey = FindingStatisticsSortAttributeName' "groupKey"++{-# COMPLETE+  FindingStatisticsSortAttributeName_Count,+  FindingStatisticsSortAttributeName_GroupKey,+  FindingStatisticsSortAttributeName'+  #-}
+ gen/Amazonka/MacieV2/Types/FindingStatisticsSortCriteria.hs view
@@ -0,0 +1,105 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.FindingStatisticsSortCriteria+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.FindingStatisticsSortCriteria where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.FindingStatisticsSortAttributeName+import Amazonka.MacieV2.Types.OrderBy+import qualified Amazonka.Prelude as Prelude++-- | Specifies criteria for sorting the results of a query that retrieves+-- aggregated statistical data about findings.+--+-- /See:/ 'newFindingStatisticsSortCriteria' smart constructor.+data FindingStatisticsSortCriteria = FindingStatisticsSortCriteria'+  { -- | The grouping to sort the results by. Valid values are: count, sort the+    -- results by the number of findings in each group of results; and,+    -- groupKey, sort the results by the name of each group of results.+    attributeName :: Prelude.Maybe FindingStatisticsSortAttributeName,+    -- | The sort order to apply to the results, based on the value for the+    -- property specified by the attributeName property. Valid values are: ASC,+    -- sort the results in ascending order; and, DESC, sort the results in+    -- descending order.+    orderBy :: Prelude.Maybe OrderBy+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FindingStatisticsSortCriteria' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attributeName', 'findingStatisticsSortCriteria_attributeName' - The grouping to sort the results by. Valid values are: count, sort the+-- results by the number of findings in each group of results; and,+-- groupKey, sort the results by the name of each group of results.+--+-- 'orderBy', 'findingStatisticsSortCriteria_orderBy' - The sort order to apply to the results, based on the value for the+-- property specified by the attributeName property. Valid values are: ASC,+-- sort the results in ascending order; and, DESC, sort the results in+-- descending order.+newFindingStatisticsSortCriteria ::+  FindingStatisticsSortCriteria+newFindingStatisticsSortCriteria =+  FindingStatisticsSortCriteria'+    { attributeName =+        Prelude.Nothing,+      orderBy = Prelude.Nothing+    }++-- | The grouping to sort the results by. Valid values are: count, sort the+-- results by the number of findings in each group of results; and,+-- groupKey, sort the results by the name of each group of results.+findingStatisticsSortCriteria_attributeName :: Lens.Lens' FindingStatisticsSortCriteria (Prelude.Maybe FindingStatisticsSortAttributeName)+findingStatisticsSortCriteria_attributeName = Lens.lens (\FindingStatisticsSortCriteria' {attributeName} -> attributeName) (\s@FindingStatisticsSortCriteria' {} a -> s {attributeName = a} :: FindingStatisticsSortCriteria)++-- | The sort order to apply to the results, based on the value for the+-- property specified by the attributeName property. Valid values are: ASC,+-- sort the results in ascending order; and, DESC, sort the results in+-- descending order.+findingStatisticsSortCriteria_orderBy :: Lens.Lens' FindingStatisticsSortCriteria (Prelude.Maybe OrderBy)+findingStatisticsSortCriteria_orderBy = Lens.lens (\FindingStatisticsSortCriteria' {orderBy} -> orderBy) (\s@FindingStatisticsSortCriteria' {} a -> s {orderBy = a} :: FindingStatisticsSortCriteria)++instance+  Prelude.Hashable+    FindingStatisticsSortCriteria+  where+  hashWithSalt _salt FindingStatisticsSortCriteria' {..} =+    _salt+      `Prelude.hashWithSalt` attributeName+      `Prelude.hashWithSalt` orderBy++instance Prelude.NFData FindingStatisticsSortCriteria where+  rnf FindingStatisticsSortCriteria' {..} =+    Prelude.rnf attributeName+      `Prelude.seq` Prelude.rnf orderBy++instance Data.ToJSON FindingStatisticsSortCriteria where+  toJSON FindingStatisticsSortCriteria' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("attributeName" Data..=) Prelude.<$> attributeName,+            ("orderBy" Data..=) Prelude.<$> orderBy+          ]+      )
+ gen/Amazonka/MacieV2/Types/FindingType.hs view
@@ -0,0 +1,114 @@+{-# 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.MacieV2.Types.FindingType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.FindingType+  ( FindingType+      ( ..,+        FindingType_Policy_IAMUser_S3BlockPublicAccessDisabled,+        FindingType_Policy_IAMUser_S3BucketEncryptionDisabled,+        FindingType_Policy_IAMUser_S3BucketPublic,+        FindingType_Policy_IAMUser_S3BucketReplicatedExternally,+        FindingType_Policy_IAMUser_S3BucketSharedExternally,+        FindingType_SensitiveData_S3Object_Credentials,+        FindingType_SensitiveData_S3Object_CustomIdentifier,+        FindingType_SensitiveData_S3Object_Financial,+        FindingType_SensitiveData_S3Object_Multiple,+        FindingType_SensitiveData_S3Object_Personal+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The type of finding. For details about each type, see+-- <https://docs.aws.amazon.com/macie/latest/user/findings-types.html Types of Amazon Macie findings>+-- in the /Amazon Macie User Guide/. Possible values are:+newtype FindingType = FindingType'+  { fromFindingType ::+      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 FindingType_Policy_IAMUser_S3BlockPublicAccessDisabled :: FindingType+pattern FindingType_Policy_IAMUser_S3BlockPublicAccessDisabled = FindingType' "Policy:IAMUser/S3BlockPublicAccessDisabled"++pattern FindingType_Policy_IAMUser_S3BucketEncryptionDisabled :: FindingType+pattern FindingType_Policy_IAMUser_S3BucketEncryptionDisabled = FindingType' "Policy:IAMUser/S3BucketEncryptionDisabled"++pattern FindingType_Policy_IAMUser_S3BucketPublic :: FindingType+pattern FindingType_Policy_IAMUser_S3BucketPublic = FindingType' "Policy:IAMUser/S3BucketPublic"++pattern FindingType_Policy_IAMUser_S3BucketReplicatedExternally :: FindingType+pattern FindingType_Policy_IAMUser_S3BucketReplicatedExternally = FindingType' "Policy:IAMUser/S3BucketReplicatedExternally"++pattern FindingType_Policy_IAMUser_S3BucketSharedExternally :: FindingType+pattern FindingType_Policy_IAMUser_S3BucketSharedExternally = FindingType' "Policy:IAMUser/S3BucketSharedExternally"++pattern FindingType_SensitiveData_S3Object_Credentials :: FindingType+pattern FindingType_SensitiveData_S3Object_Credentials = FindingType' "SensitiveData:S3Object/Credentials"++pattern FindingType_SensitiveData_S3Object_CustomIdentifier :: FindingType+pattern FindingType_SensitiveData_S3Object_CustomIdentifier = FindingType' "SensitiveData:S3Object/CustomIdentifier"++pattern FindingType_SensitiveData_S3Object_Financial :: FindingType+pattern FindingType_SensitiveData_S3Object_Financial = FindingType' "SensitiveData:S3Object/Financial"++pattern FindingType_SensitiveData_S3Object_Multiple :: FindingType+pattern FindingType_SensitiveData_S3Object_Multiple = FindingType' "SensitiveData:S3Object/Multiple"++pattern FindingType_SensitiveData_S3Object_Personal :: FindingType+pattern FindingType_SensitiveData_S3Object_Personal = FindingType' "SensitiveData:S3Object/Personal"++{-# COMPLETE+  FindingType_Policy_IAMUser_S3BlockPublicAccessDisabled,+  FindingType_Policy_IAMUser_S3BucketEncryptionDisabled,+  FindingType_Policy_IAMUser_S3BucketPublic,+  FindingType_Policy_IAMUser_S3BucketReplicatedExternally,+  FindingType_Policy_IAMUser_S3BucketSharedExternally,+  FindingType_SensitiveData_S3Object_Credentials,+  FindingType_SensitiveData_S3Object_CustomIdentifier,+  FindingType_SensitiveData_S3Object_Financial,+  FindingType_SensitiveData_S3Object_Multiple,+  FindingType_SensitiveData_S3Object_Personal,+  FindingType'+  #-}
+ gen/Amazonka/MacieV2/Types/FindingsFilterAction.hs view
@@ -0,0 +1,74 @@+{-# 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.MacieV2.Types.FindingsFilterAction+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.FindingsFilterAction+  ( FindingsFilterAction+      ( ..,+        FindingsFilterAction_ARCHIVE,+        FindingsFilterAction_NOOP+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The action to perform on findings that match the filter criteria. To+-- suppress (automatically archive) findings that match the criteria, set+-- this value to ARCHIVE. Valid values are:+newtype FindingsFilterAction = FindingsFilterAction'+  { fromFindingsFilterAction ::+      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 FindingsFilterAction_ARCHIVE :: FindingsFilterAction+pattern FindingsFilterAction_ARCHIVE = FindingsFilterAction' "ARCHIVE"++pattern FindingsFilterAction_NOOP :: FindingsFilterAction+pattern FindingsFilterAction_NOOP = FindingsFilterAction' "NOOP"++{-# COMPLETE+  FindingsFilterAction_ARCHIVE,+  FindingsFilterAction_NOOP,+  FindingsFilterAction'+  #-}
+ gen/Amazonka/MacieV2/Types/FindingsFilterListItem.hs view
@@ -0,0 +1,130 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.FindingsFilterListItem+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.FindingsFilterListItem where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.FindingsFilterAction+import qualified Amazonka.Prelude as Prelude++-- | Provides information about a findings filter.+--+-- /See:/ 'newFindingsFilterListItem' smart constructor.+data FindingsFilterListItem = FindingsFilterListItem'+  { -- | The action that\'s performed on findings that match the filter criteria.+    -- Possible values are: ARCHIVE, suppress (automatically archive) the+    -- findings; and, NOOP, don\'t perform any action on the findings.+    action :: Prelude.Maybe FindingsFilterAction,+    -- | The Amazon Resource Name (ARN) of the filter.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the filter.+    id :: Prelude.Maybe Prelude.Text,+    -- | The custom name of the filter.+    name :: Prelude.Maybe Prelude.Text,+    -- | A map of key-value pairs that specifies which tags (keys and values) are+    -- associated with the filter.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FindingsFilterListItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'findingsFilterListItem_action' - The action that\'s performed on findings that match the filter criteria.+-- Possible values are: ARCHIVE, suppress (automatically archive) the+-- findings; and, NOOP, don\'t perform any action on the findings.+--+-- 'arn', 'findingsFilterListItem_arn' - The Amazon Resource Name (ARN) of the filter.+--+-- 'id', 'findingsFilterListItem_id' - The unique identifier for the filter.+--+-- 'name', 'findingsFilterListItem_name' - The custom name of the filter.+--+-- 'tags', 'findingsFilterListItem_tags' - A map of key-value pairs that specifies which tags (keys and values) are+-- associated with the filter.+newFindingsFilterListItem ::+  FindingsFilterListItem+newFindingsFilterListItem =+  FindingsFilterListItem'+    { action = Prelude.Nothing,+      arn = Prelude.Nothing,+      id = Prelude.Nothing,+      name = Prelude.Nothing,+      tags = Prelude.Nothing+    }++-- | The action that\'s performed on findings that match the filter criteria.+-- Possible values are: ARCHIVE, suppress (automatically archive) the+-- findings; and, NOOP, don\'t perform any action on the findings.+findingsFilterListItem_action :: Lens.Lens' FindingsFilterListItem (Prelude.Maybe FindingsFilterAction)+findingsFilterListItem_action = Lens.lens (\FindingsFilterListItem' {action} -> action) (\s@FindingsFilterListItem' {} a -> s {action = a} :: FindingsFilterListItem)++-- | The Amazon Resource Name (ARN) of the filter.+findingsFilterListItem_arn :: Lens.Lens' FindingsFilterListItem (Prelude.Maybe Prelude.Text)+findingsFilterListItem_arn = Lens.lens (\FindingsFilterListItem' {arn} -> arn) (\s@FindingsFilterListItem' {} a -> s {arn = a} :: FindingsFilterListItem)++-- | The unique identifier for the filter.+findingsFilterListItem_id :: Lens.Lens' FindingsFilterListItem (Prelude.Maybe Prelude.Text)+findingsFilterListItem_id = Lens.lens (\FindingsFilterListItem' {id} -> id) (\s@FindingsFilterListItem' {} a -> s {id = a} :: FindingsFilterListItem)++-- | The custom name of the filter.+findingsFilterListItem_name :: Lens.Lens' FindingsFilterListItem (Prelude.Maybe Prelude.Text)+findingsFilterListItem_name = Lens.lens (\FindingsFilterListItem' {name} -> name) (\s@FindingsFilterListItem' {} a -> s {name = a} :: FindingsFilterListItem)++-- | A map of key-value pairs that specifies which tags (keys and values) are+-- associated with the filter.+findingsFilterListItem_tags :: Lens.Lens' FindingsFilterListItem (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+findingsFilterListItem_tags = Lens.lens (\FindingsFilterListItem' {tags} -> tags) (\s@FindingsFilterListItem' {} a -> s {tags = a} :: FindingsFilterListItem) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON FindingsFilterListItem where+  parseJSON =+    Data.withObject+      "FindingsFilterListItem"+      ( \x ->+          FindingsFilterListItem'+            Prelude.<$> (x Data..:? "action")+            Prelude.<*> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "id")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable FindingsFilterListItem where+  hashWithSalt _salt FindingsFilterListItem' {..} =+    _salt+      `Prelude.hashWithSalt` action+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` tags++instance Prelude.NFData FindingsFilterListItem where+  rnf FindingsFilterListItem' {..} =+    Prelude.rnf action+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf tags
+ gen/Amazonka/MacieV2/Types/GroupBy.hs view
@@ -0,0 +1,78 @@+{-# 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.MacieV2.Types.GroupBy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.GroupBy+  ( GroupBy+      ( ..,+        GroupBy_ClassificationDetails_jobId,+        GroupBy_ResourcesAffected_s3Bucket_name,+        GroupBy_Severity_description,+        GroupBy_Type+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype GroupBy = GroupBy' {fromGroupBy :: 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 GroupBy_ClassificationDetails_jobId :: GroupBy+pattern GroupBy_ClassificationDetails_jobId = GroupBy' "classificationDetails.jobId"++pattern GroupBy_ResourcesAffected_s3Bucket_name :: GroupBy+pattern GroupBy_ResourcesAffected_s3Bucket_name = GroupBy' "resourcesAffected.s3Bucket.name"++pattern GroupBy_Severity_description :: GroupBy+pattern GroupBy_Severity_description = GroupBy' "severity.description"++pattern GroupBy_Type :: GroupBy+pattern GroupBy_Type = GroupBy' "type"++{-# COMPLETE+  GroupBy_ClassificationDetails_jobId,+  GroupBy_ResourcesAffected_s3Bucket_name,+  GroupBy_Severity_description,+  GroupBy_Type,+  GroupBy'+  #-}
+ gen/Amazonka/MacieV2/Types/GroupCount.hs view
@@ -0,0 +1,88 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.GroupCount+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.GroupCount where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides a group of results for a query that retrieved aggregated+-- statistical data about findings.+--+-- /See:/ 'newGroupCount' smart constructor.+data GroupCount = GroupCount'+  { -- | The total number of findings in the group of query results.+    count :: Prelude.Maybe Prelude.Integer,+    -- | The name of the property that defines the group in the query results, as+    -- specified by the groupBy property in the query request.+    groupKey :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GroupCount' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'count', 'groupCount_count' - The total number of findings in the group of query results.+--+-- 'groupKey', 'groupCount_groupKey' - The name of the property that defines the group in the query results, as+-- specified by the groupBy property in the query request.+newGroupCount ::+  GroupCount+newGroupCount =+  GroupCount'+    { count = Prelude.Nothing,+      groupKey = Prelude.Nothing+    }++-- | The total number of findings in the group of query results.+groupCount_count :: Lens.Lens' GroupCount (Prelude.Maybe Prelude.Integer)+groupCount_count = Lens.lens (\GroupCount' {count} -> count) (\s@GroupCount' {} a -> s {count = a} :: GroupCount)++-- | The name of the property that defines the group in the query results, as+-- specified by the groupBy property in the query request.+groupCount_groupKey :: Lens.Lens' GroupCount (Prelude.Maybe Prelude.Text)+groupCount_groupKey = Lens.lens (\GroupCount' {groupKey} -> groupKey) (\s@GroupCount' {} a -> s {groupKey = a} :: GroupCount)++instance Data.FromJSON GroupCount where+  parseJSON =+    Data.withObject+      "GroupCount"+      ( \x ->+          GroupCount'+            Prelude.<$> (x Data..:? "count")+            Prelude.<*> (x Data..:? "groupKey")+      )++instance Prelude.Hashable GroupCount where+  hashWithSalt _salt GroupCount' {..} =+    _salt+      `Prelude.hashWithSalt` count+      `Prelude.hashWithSalt` groupKey++instance Prelude.NFData GroupCount where+  rnf GroupCount' {..} =+    Prelude.rnf count+      `Prelude.seq` Prelude.rnf groupKey
+ gen/Amazonka/MacieV2/Types/IamUser.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.MacieV2.Types.IamUser+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.IamUser where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides information about an Identity and Access Management (IAM) user+-- who performed an action on an affected resource.+--+-- /See:/ 'newIamUser' smart constructor.+data IamUser = IamUser'+  { -- | The unique identifier for the Amazon Web Services account that\'s+    -- associated with the IAM user who performed the action.+    accountId :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the principal that performed the+    -- action. The last section of the ARN contains the name of the user who+    -- performed the action.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the IAM user who performed the action.+    principalId :: Prelude.Maybe Prelude.Text,+    -- | The user name of the IAM user who performed the action.+    userName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IamUser' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'iamUser_accountId' - The unique identifier for the Amazon Web Services account that\'s+-- associated with the IAM user who performed the action.+--+-- 'arn', 'iamUser_arn' - The Amazon Resource Name (ARN) of the principal that performed the+-- action. The last section of the ARN contains the name of the user who+-- performed the action.+--+-- 'principalId', 'iamUser_principalId' - The unique identifier for the IAM user who performed the action.+--+-- 'userName', 'iamUser_userName' - The user name of the IAM user who performed the action.+newIamUser ::+  IamUser+newIamUser =+  IamUser'+    { accountId = Prelude.Nothing,+      arn = Prelude.Nothing,+      principalId = Prelude.Nothing,+      userName = Prelude.Nothing+    }++-- | The unique identifier for the Amazon Web Services account that\'s+-- associated with the IAM user who performed the action.+iamUser_accountId :: Lens.Lens' IamUser (Prelude.Maybe Prelude.Text)+iamUser_accountId = Lens.lens (\IamUser' {accountId} -> accountId) (\s@IamUser' {} a -> s {accountId = a} :: IamUser)++-- | The Amazon Resource Name (ARN) of the principal that performed the+-- action. The last section of the ARN contains the name of the user who+-- performed the action.+iamUser_arn :: Lens.Lens' IamUser (Prelude.Maybe Prelude.Text)+iamUser_arn = Lens.lens (\IamUser' {arn} -> arn) (\s@IamUser' {} a -> s {arn = a} :: IamUser)++-- | The unique identifier for the IAM user who performed the action.+iamUser_principalId :: Lens.Lens' IamUser (Prelude.Maybe Prelude.Text)+iamUser_principalId = Lens.lens (\IamUser' {principalId} -> principalId) (\s@IamUser' {} a -> s {principalId = a} :: IamUser)++-- | The user name of the IAM user who performed the action.+iamUser_userName :: Lens.Lens' IamUser (Prelude.Maybe Prelude.Text)+iamUser_userName = Lens.lens (\IamUser' {userName} -> userName) (\s@IamUser' {} a -> s {userName = a} :: IamUser)++instance Data.FromJSON IamUser where+  parseJSON =+    Data.withObject+      "IamUser"+      ( \x ->+          IamUser'+            Prelude.<$> (x Data..:? "accountId")+            Prelude.<*> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "principalId")+            Prelude.<*> (x Data..:? "userName")+      )++instance Prelude.Hashable IamUser where+  hashWithSalt _salt IamUser' {..} =+    _salt+      `Prelude.hashWithSalt` accountId+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` principalId+      `Prelude.hashWithSalt` userName++instance Prelude.NFData IamUser where+  rnf IamUser' {..} =+    Prelude.rnf accountId+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf principalId+      `Prelude.seq` Prelude.rnf userName
+ gen/Amazonka/MacieV2/Types/Invitation.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.MacieV2.Types.Invitation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.Invitation where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.RelationshipStatus+import qualified Amazonka.Prelude as Prelude++-- | Provides information about an Amazon Macie membership invitation.+--+-- /See:/ 'newInvitation' smart constructor.+data Invitation = Invitation'+  { -- | The Amazon Web Services account ID for the account that sent the+    -- invitation.+    accountId :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the invitation.+    invitationId :: Prelude.Maybe Prelude.Text,+    -- | The date and time, in UTC and extended ISO 8601 format, when the+    -- invitation was sent.+    invitedAt :: Prelude.Maybe Data.ISO8601,+    -- | The status of the relationship between the account that sent the+    -- invitation and the account that received the invitation.+    relationshipStatus :: Prelude.Maybe RelationshipStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Invitation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'invitation_accountId' - The Amazon Web Services account ID for the account that sent the+-- invitation.+--+-- 'invitationId', 'invitation_invitationId' - The unique identifier for the invitation.+--+-- 'invitedAt', 'invitation_invitedAt' - The date and time, in UTC and extended ISO 8601 format, when the+-- invitation was sent.+--+-- 'relationshipStatus', 'invitation_relationshipStatus' - The status of the relationship between the account that sent the+-- invitation and the account that received the invitation.+newInvitation ::+  Invitation+newInvitation =+  Invitation'+    { accountId = Prelude.Nothing,+      invitationId = Prelude.Nothing,+      invitedAt = Prelude.Nothing,+      relationshipStatus = Prelude.Nothing+    }++-- | The Amazon Web Services account ID for the account that sent the+-- invitation.+invitation_accountId :: Lens.Lens' Invitation (Prelude.Maybe Prelude.Text)+invitation_accountId = Lens.lens (\Invitation' {accountId} -> accountId) (\s@Invitation' {} a -> s {accountId = a} :: Invitation)++-- | The unique identifier for the invitation.+invitation_invitationId :: Lens.Lens' Invitation (Prelude.Maybe Prelude.Text)+invitation_invitationId = Lens.lens (\Invitation' {invitationId} -> invitationId) (\s@Invitation' {} a -> s {invitationId = a} :: Invitation)++-- | The date and time, in UTC and extended ISO 8601 format, when the+-- invitation was sent.+invitation_invitedAt :: Lens.Lens' Invitation (Prelude.Maybe Prelude.UTCTime)+invitation_invitedAt = Lens.lens (\Invitation' {invitedAt} -> invitedAt) (\s@Invitation' {} a -> s {invitedAt = a} :: Invitation) Prelude.. Lens.mapping Data._Time++-- | The status of the relationship between the account that sent the+-- invitation and the account that received the invitation.+invitation_relationshipStatus :: Lens.Lens' Invitation (Prelude.Maybe RelationshipStatus)+invitation_relationshipStatus = Lens.lens (\Invitation' {relationshipStatus} -> relationshipStatus) (\s@Invitation' {} a -> s {relationshipStatus = a} :: Invitation)++instance Data.FromJSON Invitation where+  parseJSON =+    Data.withObject+      "Invitation"+      ( \x ->+          Invitation'+            Prelude.<$> (x Data..:? "accountId")+            Prelude.<*> (x Data..:? "invitationId")+            Prelude.<*> (x Data..:? "invitedAt")+            Prelude.<*> (x Data..:? "relationshipStatus")+      )++instance Prelude.Hashable Invitation where+  hashWithSalt _salt Invitation' {..} =+    _salt+      `Prelude.hashWithSalt` accountId+      `Prelude.hashWithSalt` invitationId+      `Prelude.hashWithSalt` invitedAt+      `Prelude.hashWithSalt` relationshipStatus++instance Prelude.NFData Invitation where+  rnf Invitation' {..} =+    Prelude.rnf accountId+      `Prelude.seq` Prelude.rnf invitationId+      `Prelude.seq` Prelude.rnf invitedAt+      `Prelude.seq` Prelude.rnf relationshipStatus
+ gen/Amazonka/MacieV2/Types/IpAddressDetails.hs view
@@ -0,0 +1,128 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.IpAddressDetails+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.IpAddressDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.IpCity+import Amazonka.MacieV2.Types.IpCountry+import Amazonka.MacieV2.Types.IpGeoLocation+import Amazonka.MacieV2.Types.IpOwner+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the IP address of the device that an entity+-- used to perform an action on an affected resource.+--+-- /See:/ 'newIpAddressDetails' smart constructor.+data IpAddressDetails = IpAddressDetails'+  { -- | The Internet Protocol version 4 (IPv4) address of the device.+    ipAddressV4 :: Prelude.Maybe Prelude.Text,+    -- | The city that the IP address originated from.+    ipCity :: Prelude.Maybe IpCity,+    -- | The country that the IP address originated from.+    ipCountry :: Prelude.Maybe IpCountry,+    -- | The geographic coordinates of the location that the IP address+    -- originated from.+    ipGeoLocation :: Prelude.Maybe IpGeoLocation,+    -- | The registered owner of the IP address.+    ipOwner :: Prelude.Maybe IpOwner+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IpAddressDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'ipAddressV4', 'ipAddressDetails_ipAddressV4' - The Internet Protocol version 4 (IPv4) address of the device.+--+-- 'ipCity', 'ipAddressDetails_ipCity' - The city that the IP address originated from.+--+-- 'ipCountry', 'ipAddressDetails_ipCountry' - The country that the IP address originated from.+--+-- 'ipGeoLocation', 'ipAddressDetails_ipGeoLocation' - The geographic coordinates of the location that the IP address+-- originated from.+--+-- 'ipOwner', 'ipAddressDetails_ipOwner' - The registered owner of the IP address.+newIpAddressDetails ::+  IpAddressDetails+newIpAddressDetails =+  IpAddressDetails'+    { ipAddressV4 = Prelude.Nothing,+      ipCity = Prelude.Nothing,+      ipCountry = Prelude.Nothing,+      ipGeoLocation = Prelude.Nothing,+      ipOwner = Prelude.Nothing+    }++-- | The Internet Protocol version 4 (IPv4) address of the device.+ipAddressDetails_ipAddressV4 :: Lens.Lens' IpAddressDetails (Prelude.Maybe Prelude.Text)+ipAddressDetails_ipAddressV4 = Lens.lens (\IpAddressDetails' {ipAddressV4} -> ipAddressV4) (\s@IpAddressDetails' {} a -> s {ipAddressV4 = a} :: IpAddressDetails)++-- | The city that the IP address originated from.+ipAddressDetails_ipCity :: Lens.Lens' IpAddressDetails (Prelude.Maybe IpCity)+ipAddressDetails_ipCity = Lens.lens (\IpAddressDetails' {ipCity} -> ipCity) (\s@IpAddressDetails' {} a -> s {ipCity = a} :: IpAddressDetails)++-- | The country that the IP address originated from.+ipAddressDetails_ipCountry :: Lens.Lens' IpAddressDetails (Prelude.Maybe IpCountry)+ipAddressDetails_ipCountry = Lens.lens (\IpAddressDetails' {ipCountry} -> ipCountry) (\s@IpAddressDetails' {} a -> s {ipCountry = a} :: IpAddressDetails)++-- | The geographic coordinates of the location that the IP address+-- originated from.+ipAddressDetails_ipGeoLocation :: Lens.Lens' IpAddressDetails (Prelude.Maybe IpGeoLocation)+ipAddressDetails_ipGeoLocation = Lens.lens (\IpAddressDetails' {ipGeoLocation} -> ipGeoLocation) (\s@IpAddressDetails' {} a -> s {ipGeoLocation = a} :: IpAddressDetails)++-- | The registered owner of the IP address.+ipAddressDetails_ipOwner :: Lens.Lens' IpAddressDetails (Prelude.Maybe IpOwner)+ipAddressDetails_ipOwner = Lens.lens (\IpAddressDetails' {ipOwner} -> ipOwner) (\s@IpAddressDetails' {} a -> s {ipOwner = a} :: IpAddressDetails)++instance Data.FromJSON IpAddressDetails where+  parseJSON =+    Data.withObject+      "IpAddressDetails"+      ( \x ->+          IpAddressDetails'+            Prelude.<$> (x Data..:? "ipAddressV4")+            Prelude.<*> (x Data..:? "ipCity")+            Prelude.<*> (x Data..:? "ipCountry")+            Prelude.<*> (x Data..:? "ipGeoLocation")+            Prelude.<*> (x Data..:? "ipOwner")+      )++instance Prelude.Hashable IpAddressDetails where+  hashWithSalt _salt IpAddressDetails' {..} =+    _salt+      `Prelude.hashWithSalt` ipAddressV4+      `Prelude.hashWithSalt` ipCity+      `Prelude.hashWithSalt` ipCountry+      `Prelude.hashWithSalt` ipGeoLocation+      `Prelude.hashWithSalt` ipOwner++instance Prelude.NFData IpAddressDetails where+  rnf IpAddressDetails' {..} =+    Prelude.rnf ipAddressV4+      `Prelude.seq` Prelude.rnf ipCity+      `Prelude.seq` Prelude.rnf ipCountry+      `Prelude.seq` Prelude.rnf ipGeoLocation+      `Prelude.seq` Prelude.rnf ipOwner
+ gen/Amazonka/MacieV2/Types/IpCity.hs view
@@ -0,0 +1,64 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.IpCity+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.IpCity where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the city that an IP address originated from.+--+-- /See:/ 'newIpCity' smart constructor.+data IpCity = IpCity'+  { -- | The name of the city.+    name :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IpCity' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'ipCity_name' - The name of the city.+newIpCity ::+  IpCity+newIpCity = IpCity' {name = Prelude.Nothing}++-- | The name of the city.+ipCity_name :: Lens.Lens' IpCity (Prelude.Maybe Prelude.Text)+ipCity_name = Lens.lens (\IpCity' {name} -> name) (\s@IpCity' {} a -> s {name = a} :: IpCity)++instance Data.FromJSON IpCity where+  parseJSON =+    Data.withObject+      "IpCity"+      (\x -> IpCity' Prelude.<$> (x Data..:? "name"))++instance Prelude.Hashable IpCity where+  hashWithSalt _salt IpCity' {..} =+    _salt `Prelude.hashWithSalt` name++instance Prelude.NFData IpCity where+  rnf IpCity' {..} = Prelude.rnf name
+ gen/Amazonka/MacieV2/Types/IpCountry.hs view
@@ -0,0 +1,90 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.IpCountry+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.IpCountry where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the country that an IP address originated+-- from.+--+-- /See:/ 'newIpCountry' smart constructor.+data IpCountry = IpCountry'+  { -- | The two-character code, in ISO 3166-1 alpha-2 format, for the country+    -- that the IP address originated from. For example, US for the United+    -- States.+    code :: Prelude.Maybe Prelude.Text,+    -- | The name of the country that the IP address originated from.+    name :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IpCountry' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'code', 'ipCountry_code' - The two-character code, in ISO 3166-1 alpha-2 format, for the country+-- that the IP address originated from. For example, US for the United+-- States.+--+-- 'name', 'ipCountry_name' - The name of the country that the IP address originated from.+newIpCountry ::+  IpCountry+newIpCountry =+  IpCountry'+    { code = Prelude.Nothing,+      name = Prelude.Nothing+    }++-- | The two-character code, in ISO 3166-1 alpha-2 format, for the country+-- that the IP address originated from. For example, US for the United+-- States.+ipCountry_code :: Lens.Lens' IpCountry (Prelude.Maybe Prelude.Text)+ipCountry_code = Lens.lens (\IpCountry' {code} -> code) (\s@IpCountry' {} a -> s {code = a} :: IpCountry)++-- | The name of the country that the IP address originated from.+ipCountry_name :: Lens.Lens' IpCountry (Prelude.Maybe Prelude.Text)+ipCountry_name = Lens.lens (\IpCountry' {name} -> name) (\s@IpCountry' {} a -> s {name = a} :: IpCountry)++instance Data.FromJSON IpCountry where+  parseJSON =+    Data.withObject+      "IpCountry"+      ( \x ->+          IpCountry'+            Prelude.<$> (x Data..:? "code")+            Prelude.<*> (x Data..:? "name")+      )++instance Prelude.Hashable IpCountry where+  hashWithSalt _salt IpCountry' {..} =+    _salt+      `Prelude.hashWithSalt` code+      `Prelude.hashWithSalt` name++instance Prelude.NFData IpCountry where+  rnf IpCountry' {..} =+    Prelude.rnf code `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/MacieV2/Types/IpGeoLocation.hs view
@@ -0,0 +1,87 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.IpGeoLocation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.IpGeoLocation where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides geographic coordinates that indicate where a specified IP+-- address originated from.+--+-- /See:/ 'newIpGeoLocation' smart constructor.+data IpGeoLocation = IpGeoLocation'+  { -- | The latitude coordinate of the location, rounded to four decimal places.+    lat :: Prelude.Maybe Prelude.Double,+    -- | The longitude coordinate of the location, rounded to four decimal+    -- places.+    lon :: Prelude.Maybe Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IpGeoLocation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'lat', 'ipGeoLocation_lat' - The latitude coordinate of the location, rounded to four decimal places.+--+-- 'lon', 'ipGeoLocation_lon' - The longitude coordinate of the location, rounded to four decimal+-- places.+newIpGeoLocation ::+  IpGeoLocation+newIpGeoLocation =+  IpGeoLocation'+    { lat = Prelude.Nothing,+      lon = Prelude.Nothing+    }++-- | The latitude coordinate of the location, rounded to four decimal places.+ipGeoLocation_lat :: Lens.Lens' IpGeoLocation (Prelude.Maybe Prelude.Double)+ipGeoLocation_lat = Lens.lens (\IpGeoLocation' {lat} -> lat) (\s@IpGeoLocation' {} a -> s {lat = a} :: IpGeoLocation)++-- | The longitude coordinate of the location, rounded to four decimal+-- places.+ipGeoLocation_lon :: Lens.Lens' IpGeoLocation (Prelude.Maybe Prelude.Double)+ipGeoLocation_lon = Lens.lens (\IpGeoLocation' {lon} -> lon) (\s@IpGeoLocation' {} a -> s {lon = a} :: IpGeoLocation)++instance Data.FromJSON IpGeoLocation where+  parseJSON =+    Data.withObject+      "IpGeoLocation"+      ( \x ->+          IpGeoLocation'+            Prelude.<$> (x Data..:? "lat")+            Prelude.<*> (x Data..:? "lon")+      )++instance Prelude.Hashable IpGeoLocation where+  hashWithSalt _salt IpGeoLocation' {..} =+    _salt+      `Prelude.hashWithSalt` lat+      `Prelude.hashWithSalt` lon++instance Prelude.NFData IpGeoLocation where+  rnf IpGeoLocation' {..} =+    Prelude.rnf lat `Prelude.seq` Prelude.rnf lon
+ gen/Amazonka/MacieV2/Types/IpOwner.hs view
@@ -0,0 +1,120 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.IpOwner+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.IpOwner where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the registered owner of an IP address.+--+-- /See:/ 'newIpOwner' smart constructor.+data IpOwner = IpOwner'+  { -- | The autonomous system number (ASN) for the autonomous system that+    -- included the IP address.+    asn :: Prelude.Maybe Prelude.Text,+    -- | The organization identifier that\'s associated with the autonomous+    -- system number (ASN) for the autonomous system that included the IP+    -- address.+    asnOrg :: Prelude.Maybe Prelude.Text,+    -- | The name of the internet service provider (ISP) that owned the IP+    -- address.+    isp :: Prelude.Maybe Prelude.Text,+    -- | The name of the organization that owned the IP address.+    org :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IpOwner' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'asn', 'ipOwner_asn' - The autonomous system number (ASN) for the autonomous system that+-- included the IP address.+--+-- 'asnOrg', 'ipOwner_asnOrg' - The organization identifier that\'s associated with the autonomous+-- system number (ASN) for the autonomous system that included the IP+-- address.+--+-- 'isp', 'ipOwner_isp' - The name of the internet service provider (ISP) that owned the IP+-- address.+--+-- 'org', 'ipOwner_org' - The name of the organization that owned the IP address.+newIpOwner ::+  IpOwner+newIpOwner =+  IpOwner'+    { asn = Prelude.Nothing,+      asnOrg = Prelude.Nothing,+      isp = Prelude.Nothing,+      org = Prelude.Nothing+    }++-- | The autonomous system number (ASN) for the autonomous system that+-- included the IP address.+ipOwner_asn :: Lens.Lens' IpOwner (Prelude.Maybe Prelude.Text)+ipOwner_asn = Lens.lens (\IpOwner' {asn} -> asn) (\s@IpOwner' {} a -> s {asn = a} :: IpOwner)++-- | The organization identifier that\'s associated with the autonomous+-- system number (ASN) for the autonomous system that included the IP+-- address.+ipOwner_asnOrg :: Lens.Lens' IpOwner (Prelude.Maybe Prelude.Text)+ipOwner_asnOrg = Lens.lens (\IpOwner' {asnOrg} -> asnOrg) (\s@IpOwner' {} a -> s {asnOrg = a} :: IpOwner)++-- | The name of the internet service provider (ISP) that owned the IP+-- address.+ipOwner_isp :: Lens.Lens' IpOwner (Prelude.Maybe Prelude.Text)+ipOwner_isp = Lens.lens (\IpOwner' {isp} -> isp) (\s@IpOwner' {} a -> s {isp = a} :: IpOwner)++-- | The name of the organization that owned the IP address.+ipOwner_org :: Lens.Lens' IpOwner (Prelude.Maybe Prelude.Text)+ipOwner_org = Lens.lens (\IpOwner' {org} -> org) (\s@IpOwner' {} a -> s {org = a} :: IpOwner)++instance Data.FromJSON IpOwner where+  parseJSON =+    Data.withObject+      "IpOwner"+      ( \x ->+          IpOwner'+            Prelude.<$> (x Data..:? "asn")+            Prelude.<*> (x Data..:? "asnOrg")+            Prelude.<*> (x Data..:? "isp")+            Prelude.<*> (x Data..:? "org")+      )++instance Prelude.Hashable IpOwner where+  hashWithSalt _salt IpOwner' {..} =+    _salt+      `Prelude.hashWithSalt` asn+      `Prelude.hashWithSalt` asnOrg+      `Prelude.hashWithSalt` isp+      `Prelude.hashWithSalt` org++instance Prelude.NFData IpOwner where+  rnf IpOwner' {..} =+    Prelude.rnf asn+      `Prelude.seq` Prelude.rnf asnOrg+      `Prelude.seq` Prelude.rnf isp+      `Prelude.seq` Prelude.rnf org
+ gen/Amazonka/MacieV2/Types/IsDefinedInJob.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.MacieV2.Types.IsDefinedInJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.IsDefinedInJob+  ( IsDefinedInJob+      ( ..,+        IsDefinedInJob_FALSE,+        IsDefinedInJob_TRUE,+        IsDefinedInJob_UNKNOWN+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype IsDefinedInJob = IsDefinedInJob'+  { fromIsDefinedInJob ::+      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 IsDefinedInJob_FALSE :: IsDefinedInJob+pattern IsDefinedInJob_FALSE = IsDefinedInJob' "FALSE"++pattern IsDefinedInJob_TRUE :: IsDefinedInJob+pattern IsDefinedInJob_TRUE = IsDefinedInJob' "TRUE"++pattern IsDefinedInJob_UNKNOWN :: IsDefinedInJob+pattern IsDefinedInJob_UNKNOWN = IsDefinedInJob' "UNKNOWN"++{-# COMPLETE+  IsDefinedInJob_FALSE,+  IsDefinedInJob_TRUE,+  IsDefinedInJob_UNKNOWN,+  IsDefinedInJob'+  #-}
+ gen/Amazonka/MacieV2/Types/IsMonitoredByJob.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.MacieV2.Types.IsMonitoredByJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.IsMonitoredByJob+  ( IsMonitoredByJob+      ( ..,+        IsMonitoredByJob_FALSE,+        IsMonitoredByJob_TRUE,+        IsMonitoredByJob_UNKNOWN+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype IsMonitoredByJob = IsMonitoredByJob'+  { fromIsMonitoredByJob ::+      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 IsMonitoredByJob_FALSE :: IsMonitoredByJob+pattern IsMonitoredByJob_FALSE = IsMonitoredByJob' "FALSE"++pattern IsMonitoredByJob_TRUE :: IsMonitoredByJob+pattern IsMonitoredByJob_TRUE = IsMonitoredByJob' "TRUE"++pattern IsMonitoredByJob_UNKNOWN :: IsMonitoredByJob+pattern IsMonitoredByJob_UNKNOWN = IsMonitoredByJob' "UNKNOWN"++{-# COMPLETE+  IsMonitoredByJob_FALSE,+  IsMonitoredByJob_TRUE,+  IsMonitoredByJob_UNKNOWN,+  IsMonitoredByJob'+  #-}
+ gen/Amazonka/MacieV2/Types/JobComparator.hs view
@@ -0,0 +1,103 @@+{-# 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.MacieV2.Types.JobComparator+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.JobComparator+  ( JobComparator+      ( ..,+        JobComparator_CONTAINS,+        JobComparator_EQ,+        JobComparator_GT,+        JobComparator_GTE,+        JobComparator_LT,+        JobComparator_LTE,+        JobComparator_NE,+        JobComparator_STARTS_WITH+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The operator to use in a condition. Depending on the type of condition,+-- possible values are:+newtype JobComparator = JobComparator'+  { fromJobComparator ::+      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 JobComparator_CONTAINS :: JobComparator+pattern JobComparator_CONTAINS = JobComparator' "CONTAINS"++pattern JobComparator_EQ :: JobComparator+pattern JobComparator_EQ = JobComparator' "EQ"++pattern JobComparator_GT :: JobComparator+pattern JobComparator_GT = JobComparator' "GT"++pattern JobComparator_GTE :: JobComparator+pattern JobComparator_GTE = JobComparator' "GTE"++pattern JobComparator_LT :: JobComparator+pattern JobComparator_LT = JobComparator' "LT"++pattern JobComparator_LTE :: JobComparator+pattern JobComparator_LTE = JobComparator' "LTE"++pattern JobComparator_NE :: JobComparator+pattern JobComparator_NE = JobComparator' "NE"++pattern JobComparator_STARTS_WITH :: JobComparator+pattern JobComparator_STARTS_WITH = JobComparator' "STARTS_WITH"++{-# COMPLETE+  JobComparator_CONTAINS,+  JobComparator_EQ,+  JobComparator_GT,+  JobComparator_GTE,+  JobComparator_LT,+  JobComparator_LTE,+  JobComparator_NE,+  JobComparator_STARTS_WITH,+  JobComparator'+  #-}
+ gen/Amazonka/MacieV2/Types/JobDetails.hs view
@@ -0,0 +1,238 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.JobDetails+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.JobDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.IsDefinedInJob+import Amazonka.MacieV2.Types.IsMonitoredByJob+import qualified Amazonka.Prelude as Prelude++-- | Specifies whether any one-time or recurring classification jobs are+-- configured to analyze data in an S3 bucket, and, if so, the details of+-- the job that ran most recently.+--+-- /See:/ 'newJobDetails' smart constructor.+data JobDetails = JobDetails'+  { -- | Specifies whether any one-time or recurring jobs are configured to+    -- analyze data in the bucket. Possible values are:+    --+    -- -   TRUE - The bucket is explicitly included in the bucket definition+    --     (S3BucketDefinitionForJob) for one or more jobs and at least one of+    --     those jobs has a status other than CANCELLED. Or the bucket matched+    --     the bucket criteria (S3BucketCriteriaForJob) for at least one job+    --     that previously ran.+    --+    -- -   FALSE - The bucket isn\'t explicitly included in the bucket+    --     definition (S3BucketDefinitionForJob) for any jobs, all the jobs+    --     that explicitly include the bucket in their bucket definitions have+    --     a status of CANCELLED, or the bucket didn\'t match the bucket+    --     criteria (S3BucketCriteriaForJob) for any jobs that previously ran.+    --+    -- -   UNKNOWN - An exception occurred when Amazon Macie attempted to+    --     retrieve job data for the bucket.+    isDefinedInJob :: Prelude.Maybe IsDefinedInJob,+    -- | Specifies whether any recurring jobs are configured to analyze data in+    -- the bucket. Possible values are:+    --+    -- -   TRUE - The bucket is explicitly included in the bucket definition+    --     (S3BucketDefinitionForJob) for one or more recurring jobs or the+    --     bucket matches the bucket criteria (S3BucketCriteriaForJob) for one+    --     or more recurring jobs. At least one of those jobs has a status+    --     other than CANCELLED.+    --+    -- -   FALSE - The bucket isn\'t explicitly included in the bucket+    --     definition (S3BucketDefinitionForJob) for any recurring jobs, the+    --     bucket doesn\'t match the bucket criteria (S3BucketCriteriaForJob)+    --     for any recurring jobs, or all the recurring jobs that are+    --     configured to analyze data in the bucket have a status of CANCELLED.+    --+    -- -   UNKNOWN - An exception occurred when Amazon Macie attempted to+    --     retrieve job data for the bucket.+    isMonitoredByJob :: Prelude.Maybe IsMonitoredByJob,+    -- | The unique identifier for the job that ran most recently and is+    -- configured to analyze data in the bucket, either the latest run of a+    -- recurring job or the only run of a one-time job.+    --+    -- This value is typically null if the value for the isDefinedInJob+    -- property is FALSE or UNKNOWN.+    lastJobId :: Prelude.Maybe Prelude.Text,+    -- | The date and time, in UTC and extended ISO 8601 format, when the job+    -- (lastJobId) started. If the job is a recurring job, this value indicates+    -- when the most recent run started.+    --+    -- This value is typically null if the value for the isDefinedInJob+    -- property is FALSE or UNKNOWN.+    lastJobRunTime :: Prelude.Maybe Data.ISO8601+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'JobDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'isDefinedInJob', 'jobDetails_isDefinedInJob' - Specifies whether any one-time or recurring jobs are configured to+-- analyze data in the bucket. Possible values are:+--+-- -   TRUE - The bucket is explicitly included in the bucket definition+--     (S3BucketDefinitionForJob) for one or more jobs and at least one of+--     those jobs has a status other than CANCELLED. Or the bucket matched+--     the bucket criteria (S3BucketCriteriaForJob) for at least one job+--     that previously ran.+--+-- -   FALSE - The bucket isn\'t explicitly included in the bucket+--     definition (S3BucketDefinitionForJob) for any jobs, all the jobs+--     that explicitly include the bucket in their bucket definitions have+--     a status of CANCELLED, or the bucket didn\'t match the bucket+--     criteria (S3BucketCriteriaForJob) for any jobs that previously ran.+--+-- -   UNKNOWN - An exception occurred when Amazon Macie attempted to+--     retrieve job data for the bucket.+--+-- 'isMonitoredByJob', 'jobDetails_isMonitoredByJob' - Specifies whether any recurring jobs are configured to analyze data in+-- the bucket. Possible values are:+--+-- -   TRUE - The bucket is explicitly included in the bucket definition+--     (S3BucketDefinitionForJob) for one or more recurring jobs or the+--     bucket matches the bucket criteria (S3BucketCriteriaForJob) for one+--     or more recurring jobs. At least one of those jobs has a status+--     other than CANCELLED.+--+-- -   FALSE - The bucket isn\'t explicitly included in the bucket+--     definition (S3BucketDefinitionForJob) for any recurring jobs, the+--     bucket doesn\'t match the bucket criteria (S3BucketCriteriaForJob)+--     for any recurring jobs, or all the recurring jobs that are+--     configured to analyze data in the bucket have a status of CANCELLED.+--+-- -   UNKNOWN - An exception occurred when Amazon Macie attempted to+--     retrieve job data for the bucket.+--+-- 'lastJobId', 'jobDetails_lastJobId' - The unique identifier for the job that ran most recently and is+-- configured to analyze data in the bucket, either the latest run of a+-- recurring job or the only run of a one-time job.+--+-- This value is typically null if the value for the isDefinedInJob+-- property is FALSE or UNKNOWN.+--+-- 'lastJobRunTime', 'jobDetails_lastJobRunTime' - The date and time, in UTC and extended ISO 8601 format, when the job+-- (lastJobId) started. If the job is a recurring job, this value indicates+-- when the most recent run started.+--+-- This value is typically null if the value for the isDefinedInJob+-- property is FALSE or UNKNOWN.+newJobDetails ::+  JobDetails+newJobDetails =+  JobDetails'+    { isDefinedInJob = Prelude.Nothing,+      isMonitoredByJob = Prelude.Nothing,+      lastJobId = Prelude.Nothing,+      lastJobRunTime = Prelude.Nothing+    }++-- | Specifies whether any one-time or recurring jobs are configured to+-- analyze data in the bucket. Possible values are:+--+-- -   TRUE - The bucket is explicitly included in the bucket definition+--     (S3BucketDefinitionForJob) for one or more jobs and at least one of+--     those jobs has a status other than CANCELLED. Or the bucket matched+--     the bucket criteria (S3BucketCriteriaForJob) for at least one job+--     that previously ran.+--+-- -   FALSE - The bucket isn\'t explicitly included in the bucket+--     definition (S3BucketDefinitionForJob) for any jobs, all the jobs+--     that explicitly include the bucket in their bucket definitions have+--     a status of CANCELLED, or the bucket didn\'t match the bucket+--     criteria (S3BucketCriteriaForJob) for any jobs that previously ran.+--+-- -   UNKNOWN - An exception occurred when Amazon Macie attempted to+--     retrieve job data for the bucket.+jobDetails_isDefinedInJob :: Lens.Lens' JobDetails (Prelude.Maybe IsDefinedInJob)+jobDetails_isDefinedInJob = Lens.lens (\JobDetails' {isDefinedInJob} -> isDefinedInJob) (\s@JobDetails' {} a -> s {isDefinedInJob = a} :: JobDetails)++-- | Specifies whether any recurring jobs are configured to analyze data in+-- the bucket. Possible values are:+--+-- -   TRUE - The bucket is explicitly included in the bucket definition+--     (S3BucketDefinitionForJob) for one or more recurring jobs or the+--     bucket matches the bucket criteria (S3BucketCriteriaForJob) for one+--     or more recurring jobs. At least one of those jobs has a status+--     other than CANCELLED.+--+-- -   FALSE - The bucket isn\'t explicitly included in the bucket+--     definition (S3BucketDefinitionForJob) for any recurring jobs, the+--     bucket doesn\'t match the bucket criteria (S3BucketCriteriaForJob)+--     for any recurring jobs, or all the recurring jobs that are+--     configured to analyze data in the bucket have a status of CANCELLED.+--+-- -   UNKNOWN - An exception occurred when Amazon Macie attempted to+--     retrieve job data for the bucket.+jobDetails_isMonitoredByJob :: Lens.Lens' JobDetails (Prelude.Maybe IsMonitoredByJob)+jobDetails_isMonitoredByJob = Lens.lens (\JobDetails' {isMonitoredByJob} -> isMonitoredByJob) (\s@JobDetails' {} a -> s {isMonitoredByJob = a} :: JobDetails)++-- | The unique identifier for the job that ran most recently and is+-- configured to analyze data in the bucket, either the latest run of a+-- recurring job or the only run of a one-time job.+--+-- This value is typically null if the value for the isDefinedInJob+-- property is FALSE or UNKNOWN.+jobDetails_lastJobId :: Lens.Lens' JobDetails (Prelude.Maybe Prelude.Text)+jobDetails_lastJobId = Lens.lens (\JobDetails' {lastJobId} -> lastJobId) (\s@JobDetails' {} a -> s {lastJobId = a} :: JobDetails)++-- | The date and time, in UTC and extended ISO 8601 format, when the job+-- (lastJobId) started. If the job is a recurring job, this value indicates+-- when the most recent run started.+--+-- This value is typically null if the value for the isDefinedInJob+-- property is FALSE or UNKNOWN.+jobDetails_lastJobRunTime :: Lens.Lens' JobDetails (Prelude.Maybe Prelude.UTCTime)+jobDetails_lastJobRunTime = Lens.lens (\JobDetails' {lastJobRunTime} -> lastJobRunTime) (\s@JobDetails' {} a -> s {lastJobRunTime = a} :: JobDetails) Prelude.. Lens.mapping Data._Time++instance Data.FromJSON JobDetails where+  parseJSON =+    Data.withObject+      "JobDetails"+      ( \x ->+          JobDetails'+            Prelude.<$> (x Data..:? "isDefinedInJob")+            Prelude.<*> (x Data..:? "isMonitoredByJob")+            Prelude.<*> (x Data..:? "lastJobId")+            Prelude.<*> (x Data..:? "lastJobRunTime")+      )++instance Prelude.Hashable JobDetails where+  hashWithSalt _salt JobDetails' {..} =+    _salt+      `Prelude.hashWithSalt` isDefinedInJob+      `Prelude.hashWithSalt` isMonitoredByJob+      `Prelude.hashWithSalt` lastJobId+      `Prelude.hashWithSalt` lastJobRunTime++instance Prelude.NFData JobDetails where+  rnf JobDetails' {..} =+    Prelude.rnf isDefinedInJob+      `Prelude.seq` Prelude.rnf isMonitoredByJob+      `Prelude.seq` Prelude.rnf lastJobId+      `Prelude.seq` Prelude.rnf lastJobRunTime
+ gen/Amazonka/MacieV2/Types/JobScheduleFrequency.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.MacieV2.Types.JobScheduleFrequency+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.JobScheduleFrequency where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.DailySchedule+import Amazonka.MacieV2.Types.MonthlySchedule+import Amazonka.MacieV2.Types.WeeklySchedule+import qualified Amazonka.Prelude as Prelude++-- | Specifies the recurrence pattern for running a classification job.+--+-- /See:/ 'newJobScheduleFrequency' smart constructor.+data JobScheduleFrequency = JobScheduleFrequency'+  { -- | Specifies a daily recurrence pattern for running the job.+    dailySchedule :: Prelude.Maybe DailySchedule,+    -- | Specifies a monthly recurrence pattern for running the job.+    monthlySchedule :: Prelude.Maybe MonthlySchedule,+    -- | Specifies a weekly recurrence pattern for running the job.+    weeklySchedule :: Prelude.Maybe WeeklySchedule+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'JobScheduleFrequency' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dailySchedule', 'jobScheduleFrequency_dailySchedule' - Specifies a daily recurrence pattern for running the job.+--+-- 'monthlySchedule', 'jobScheduleFrequency_monthlySchedule' - Specifies a monthly recurrence pattern for running the job.+--+-- 'weeklySchedule', 'jobScheduleFrequency_weeklySchedule' - Specifies a weekly recurrence pattern for running the job.+newJobScheduleFrequency ::+  JobScheduleFrequency+newJobScheduleFrequency =+  JobScheduleFrequency'+    { dailySchedule =+        Prelude.Nothing,+      monthlySchedule = Prelude.Nothing,+      weeklySchedule = Prelude.Nothing+    }++-- | Specifies a daily recurrence pattern for running the job.+jobScheduleFrequency_dailySchedule :: Lens.Lens' JobScheduleFrequency (Prelude.Maybe DailySchedule)+jobScheduleFrequency_dailySchedule = Lens.lens (\JobScheduleFrequency' {dailySchedule} -> dailySchedule) (\s@JobScheduleFrequency' {} a -> s {dailySchedule = a} :: JobScheduleFrequency)++-- | Specifies a monthly recurrence pattern for running the job.+jobScheduleFrequency_monthlySchedule :: Lens.Lens' JobScheduleFrequency (Prelude.Maybe MonthlySchedule)+jobScheduleFrequency_monthlySchedule = Lens.lens (\JobScheduleFrequency' {monthlySchedule} -> monthlySchedule) (\s@JobScheduleFrequency' {} a -> s {monthlySchedule = a} :: JobScheduleFrequency)++-- | Specifies a weekly recurrence pattern for running the job.+jobScheduleFrequency_weeklySchedule :: Lens.Lens' JobScheduleFrequency (Prelude.Maybe WeeklySchedule)+jobScheduleFrequency_weeklySchedule = Lens.lens (\JobScheduleFrequency' {weeklySchedule} -> weeklySchedule) (\s@JobScheduleFrequency' {} a -> s {weeklySchedule = a} :: JobScheduleFrequency)++instance Data.FromJSON JobScheduleFrequency where+  parseJSON =+    Data.withObject+      "JobScheduleFrequency"+      ( \x ->+          JobScheduleFrequency'+            Prelude.<$> (x Data..:? "dailySchedule")+            Prelude.<*> (x Data..:? "monthlySchedule")+            Prelude.<*> (x Data..:? "weeklySchedule")+      )++instance Prelude.Hashable JobScheduleFrequency where+  hashWithSalt _salt JobScheduleFrequency' {..} =+    _salt+      `Prelude.hashWithSalt` dailySchedule+      `Prelude.hashWithSalt` monthlySchedule+      `Prelude.hashWithSalt` weeklySchedule++instance Prelude.NFData JobScheduleFrequency where+  rnf JobScheduleFrequency' {..} =+    Prelude.rnf dailySchedule+      `Prelude.seq` Prelude.rnf monthlySchedule+      `Prelude.seq` Prelude.rnf weeklySchedule++instance Data.ToJSON JobScheduleFrequency where+  toJSON JobScheduleFrequency' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("dailySchedule" Data..=) Prelude.<$> dailySchedule,+            ("monthlySchedule" Data..=)+              Prelude.<$> monthlySchedule,+            ("weeklySchedule" Data..=)+              Prelude.<$> weeklySchedule+          ]+      )
+ gen/Amazonka/MacieV2/Types/JobScopeTerm.hs view
@@ -0,0 +1,105 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.JobScopeTerm+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.JobScopeTerm where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.SimpleScopeTerm+import Amazonka.MacieV2.Types.TagScopeTerm+import qualified Amazonka.Prelude as Prelude++-- | Specifies a property- or tag-based condition that defines criteria for+-- including or excluding S3 objects from a classification job. A+-- JobScopeTerm object can contain only one simpleScopeTerm object or one+-- tagScopeTerm object.+--+-- /See:/ 'newJobScopeTerm' smart constructor.+data JobScopeTerm = JobScopeTerm'+  { -- | A property-based condition that defines a property, operator, and one or+    -- more values for including or excluding objects from the job.+    simpleScopeTerm :: Prelude.Maybe SimpleScopeTerm,+    -- | A tag-based condition that defines the operator and tag keys or tag key+    -- and value pairs for including or excluding objects from the job.+    tagScopeTerm :: Prelude.Maybe TagScopeTerm+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'JobScopeTerm' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'simpleScopeTerm', 'jobScopeTerm_simpleScopeTerm' - A property-based condition that defines a property, operator, and one or+-- more values for including or excluding objects from the job.+--+-- 'tagScopeTerm', 'jobScopeTerm_tagScopeTerm' - A tag-based condition that defines the operator and tag keys or tag key+-- and value pairs for including or excluding objects from the job.+newJobScopeTerm ::+  JobScopeTerm+newJobScopeTerm =+  JobScopeTerm'+    { simpleScopeTerm = Prelude.Nothing,+      tagScopeTerm = Prelude.Nothing+    }++-- | A property-based condition that defines a property, operator, and one or+-- more values for including or excluding objects from the job.+jobScopeTerm_simpleScopeTerm :: Lens.Lens' JobScopeTerm (Prelude.Maybe SimpleScopeTerm)+jobScopeTerm_simpleScopeTerm = Lens.lens (\JobScopeTerm' {simpleScopeTerm} -> simpleScopeTerm) (\s@JobScopeTerm' {} a -> s {simpleScopeTerm = a} :: JobScopeTerm)++-- | A tag-based condition that defines the operator and tag keys or tag key+-- and value pairs for including or excluding objects from the job.+jobScopeTerm_tagScopeTerm :: Lens.Lens' JobScopeTerm (Prelude.Maybe TagScopeTerm)+jobScopeTerm_tagScopeTerm = Lens.lens (\JobScopeTerm' {tagScopeTerm} -> tagScopeTerm) (\s@JobScopeTerm' {} a -> s {tagScopeTerm = a} :: JobScopeTerm)++instance Data.FromJSON JobScopeTerm where+  parseJSON =+    Data.withObject+      "JobScopeTerm"+      ( \x ->+          JobScopeTerm'+            Prelude.<$> (x Data..:? "simpleScopeTerm")+            Prelude.<*> (x Data..:? "tagScopeTerm")+      )++instance Prelude.Hashable JobScopeTerm where+  hashWithSalt _salt JobScopeTerm' {..} =+    _salt+      `Prelude.hashWithSalt` simpleScopeTerm+      `Prelude.hashWithSalt` tagScopeTerm++instance Prelude.NFData JobScopeTerm where+  rnf JobScopeTerm' {..} =+    Prelude.rnf simpleScopeTerm+      `Prelude.seq` Prelude.rnf tagScopeTerm++instance Data.ToJSON JobScopeTerm where+  toJSON JobScopeTerm' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("simpleScopeTerm" Data..=)+              Prelude.<$> simpleScopeTerm,+            ("tagScopeTerm" Data..=) Prelude.<$> tagScopeTerm+          ]+      )
+ gen/Amazonka/MacieV2/Types/JobScopingBlock.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.MacieV2.Types.JobScopingBlock+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.JobScopingBlock where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.JobScopeTerm+import qualified Amazonka.Prelude as Prelude++-- | Specifies one or more property- and tag-based conditions that define+-- criteria for including or excluding S3 objects from a classification+-- job.+--+-- /See:/ 'newJobScopingBlock' smart constructor.+data JobScopingBlock = JobScopingBlock'+  { -- | An array of conditions, one for each property- or tag-based condition+    -- that determines which objects to include or exclude from the job. If you+    -- specify more than one condition, Amazon Macie uses AND logic to join the+    -- conditions.+    and :: Prelude.Maybe [JobScopeTerm]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'JobScopingBlock' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'and', 'jobScopingBlock_and' - An array of conditions, one for each property- or tag-based condition+-- that determines which objects to include or exclude from the job. If you+-- specify more than one condition, Amazon Macie uses AND logic to join the+-- conditions.+newJobScopingBlock ::+  JobScopingBlock+newJobScopingBlock =+  JobScopingBlock' {and = Prelude.Nothing}++-- | An array of conditions, one for each property- or tag-based condition+-- that determines which objects to include or exclude from the job. If you+-- specify more than one condition, Amazon Macie uses AND logic to join the+-- conditions.+jobScopingBlock_and :: Lens.Lens' JobScopingBlock (Prelude.Maybe [JobScopeTerm])+jobScopingBlock_and = Lens.lens (\JobScopingBlock' {and} -> and) (\s@JobScopingBlock' {} a -> s {and = a} :: JobScopingBlock) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON JobScopingBlock where+  parseJSON =+    Data.withObject+      "JobScopingBlock"+      ( \x ->+          JobScopingBlock'+            Prelude.<$> (x Data..:? "and" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable JobScopingBlock where+  hashWithSalt _salt JobScopingBlock' {..} =+    _salt `Prelude.hashWithSalt` and++instance Prelude.NFData JobScopingBlock where+  rnf JobScopingBlock' {..} = Prelude.rnf and++instance Data.ToJSON JobScopingBlock where+  toJSON JobScopingBlock' {..} =+    Data.object+      (Prelude.catMaybes [("and" Data..=) Prelude.<$> and])
+ gen/Amazonka/MacieV2/Types/JobStatus.hs view
@@ -0,0 +1,92 @@+{-# 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.MacieV2.Types.JobStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.JobStatus+  ( JobStatus+      ( ..,+        JobStatus_CANCELLED,+        JobStatus_COMPLETE,+        JobStatus_IDLE,+        JobStatus_PAUSED,+        JobStatus_RUNNING,+        JobStatus_USER_PAUSED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The status of a classification job. Possible values are:+newtype JobStatus = JobStatus'+  { fromJobStatus ::+      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 JobStatus_CANCELLED :: JobStatus+pattern JobStatus_CANCELLED = JobStatus' "CANCELLED"++pattern JobStatus_COMPLETE :: JobStatus+pattern JobStatus_COMPLETE = JobStatus' "COMPLETE"++pattern JobStatus_IDLE :: JobStatus+pattern JobStatus_IDLE = JobStatus' "IDLE"++pattern JobStatus_PAUSED :: JobStatus+pattern JobStatus_PAUSED = JobStatus' "PAUSED"++pattern JobStatus_RUNNING :: JobStatus+pattern JobStatus_RUNNING = JobStatus' "RUNNING"++pattern JobStatus_USER_PAUSED :: JobStatus+pattern JobStatus_USER_PAUSED = JobStatus' "USER_PAUSED"++{-# COMPLETE+  JobStatus_CANCELLED,+  JobStatus_COMPLETE,+  JobStatus_IDLE,+  JobStatus_PAUSED,+  JobStatus_RUNNING,+  JobStatus_USER_PAUSED,+  JobStatus'+  #-}
+ gen/Amazonka/MacieV2/Types/JobSummary.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.MacieV2.Types.JobSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.JobSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.JobStatus+import Amazonka.MacieV2.Types.JobType+import Amazonka.MacieV2.Types.LastRunErrorStatus+import Amazonka.MacieV2.Types.S3BucketCriteriaForJob+import Amazonka.MacieV2.Types.S3BucketDefinitionForJob+import Amazonka.MacieV2.Types.UserPausedDetails+import qualified Amazonka.Prelude as Prelude++-- | Provides information about a classification job, including the current+-- status of the job.+--+-- /See:/ 'newJobSummary' smart constructor.+data JobSummary = JobSummary'+  { -- | The property- and tag-based conditions that determine which S3 buckets+    -- are included or excluded from the job\'s analysis. Each time the job+    -- runs, the job uses these criteria to determine which buckets to analyze.+    -- A job\'s definition can contain a bucketCriteria object or a+    -- bucketDefinitions array, not both.+    bucketCriteria :: Prelude.Maybe S3BucketCriteriaForJob,+    -- | An array of objects, one for each Amazon Web Services account that owns+    -- specific S3 buckets for the job to analyze. Each object specifies the+    -- account ID for an account and one or more buckets to analyze for that+    -- account. A job\'s definition can contain a bucketDefinitions array or a+    -- bucketCriteria object, not both.+    bucketDefinitions :: Prelude.Maybe [S3BucketDefinitionForJob],+    -- | The date and time, in UTC and extended ISO 8601 format, when the job was+    -- created.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | The unique identifier for the job.+    jobId :: Prelude.Maybe Prelude.Text,+    -- | The current status of the job. Possible values are:+    --+    -- -   CANCELLED - You cancelled the job or, if it\'s a one-time job, you+    --     paused the job and didn\'t resume it within 30 days.+    --+    -- -   COMPLETE - For a one-time job, Amazon Macie finished processing the+    --     data specified for the job. This value doesn\'t apply to recurring+    --     jobs.+    --+    -- -   IDLE - For a recurring job, the previous scheduled run is complete+    --     and the next scheduled run is pending. This value doesn\'t apply to+    --     one-time jobs.+    --+    -- -   PAUSED - Macie started running the job but additional processing+    --     would exceed the monthly sensitive data discovery quota for your+    --     account or one or more member accounts that the job analyzes data+    --     for.+    --+    -- -   RUNNING - For a one-time job, the job is in progress. For a+    --     recurring job, a scheduled run is in progress.+    --+    -- -   USER_PAUSED - You paused the job. If you paused the job while it had+    --     a status of RUNNING and you don\'t resume it within 30 days of+    --     pausing it, the job or job run will expire and be cancelled,+    --     depending on the job\'s type. To check the expiration date, refer to+    --     the UserPausedDetails.jobExpiresAt property.+    jobStatus :: Prelude.Maybe JobStatus,+    -- | The schedule for running the job. Possible values are:+    --+    -- -   ONE_TIME - The job runs only once.+    --+    -- -   SCHEDULED - The job runs on a daily, weekly, or monthly basis.+    jobType :: Prelude.Maybe JobType,+    -- | Specifies whether any account- or bucket-level access errors occurred+    -- when the job ran. For a recurring job, this value indicates the error+    -- status of the job\'s most recent run.+    lastRunErrorStatus :: Prelude.Maybe LastRunErrorStatus,+    -- | The custom name of the job.+    name :: Prelude.Maybe Prelude.Text,+    -- | If the current status of the job is USER_PAUSED, specifies when the job+    -- was paused and when the job or job run will expire and be cancelled if+    -- it isn\'t resumed. This value is present only if the value for jobStatus+    -- is USER_PAUSED.+    userPausedDetails :: Prelude.Maybe UserPausedDetails+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'JobSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'bucketCriteria', 'jobSummary_bucketCriteria' - The property- and tag-based conditions that determine which S3 buckets+-- are included or excluded from the job\'s analysis. Each time the job+-- runs, the job uses these criteria to determine which buckets to analyze.+-- A job\'s definition can contain a bucketCriteria object or a+-- bucketDefinitions array, not both.+--+-- 'bucketDefinitions', 'jobSummary_bucketDefinitions' - An array of objects, one for each Amazon Web Services account that owns+-- specific S3 buckets for the job to analyze. Each object specifies the+-- account ID for an account and one or more buckets to analyze for that+-- account. A job\'s definition can contain a bucketDefinitions array or a+-- bucketCriteria object, not both.+--+-- 'createdAt', 'jobSummary_createdAt' - The date and time, in UTC and extended ISO 8601 format, when the job was+-- created.+--+-- 'jobId', 'jobSummary_jobId' - The unique identifier for the job.+--+-- 'jobStatus', 'jobSummary_jobStatus' - The current status of the job. Possible values are:+--+-- -   CANCELLED - You cancelled the job or, if it\'s a one-time job, you+--     paused the job and didn\'t resume it within 30 days.+--+-- -   COMPLETE - For a one-time job, Amazon Macie finished processing the+--     data specified for the job. This value doesn\'t apply to recurring+--     jobs.+--+-- -   IDLE - For a recurring job, the previous scheduled run is complete+--     and the next scheduled run is pending. This value doesn\'t apply to+--     one-time jobs.+--+-- -   PAUSED - Macie started running the job but additional processing+--     would exceed the monthly sensitive data discovery quota for your+--     account or one or more member accounts that the job analyzes data+--     for.+--+-- -   RUNNING - For a one-time job, the job is in progress. For a+--     recurring job, a scheduled run is in progress.+--+-- -   USER_PAUSED - You paused the job. If you paused the job while it had+--     a status of RUNNING and you don\'t resume it within 30 days of+--     pausing it, the job or job run will expire and be cancelled,+--     depending on the job\'s type. To check the expiration date, refer to+--     the UserPausedDetails.jobExpiresAt property.+--+-- 'jobType', 'jobSummary_jobType' - The schedule for running the job. Possible values are:+--+-- -   ONE_TIME - The job runs only once.+--+-- -   SCHEDULED - The job runs on a daily, weekly, or monthly basis.+--+-- 'lastRunErrorStatus', 'jobSummary_lastRunErrorStatus' - Specifies whether any account- or bucket-level access errors occurred+-- when the job ran. For a recurring job, this value indicates the error+-- status of the job\'s most recent run.+--+-- 'name', 'jobSummary_name' - The custom name of the job.+--+-- 'userPausedDetails', 'jobSummary_userPausedDetails' - If the current status of the job is USER_PAUSED, specifies when the job+-- was paused and when the job or job run will expire and be cancelled if+-- it isn\'t resumed. This value is present only if the value for jobStatus+-- is USER_PAUSED.+newJobSummary ::+  JobSummary+newJobSummary =+  JobSummary'+    { bucketCriteria = Prelude.Nothing,+      bucketDefinitions = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      jobId = Prelude.Nothing,+      jobStatus = Prelude.Nothing,+      jobType = Prelude.Nothing,+      lastRunErrorStatus = Prelude.Nothing,+      name = Prelude.Nothing,+      userPausedDetails = Prelude.Nothing+    }++-- | The property- and tag-based conditions that determine which S3 buckets+-- are included or excluded from the job\'s analysis. Each time the job+-- runs, the job uses these criteria to determine which buckets to analyze.+-- A job\'s definition can contain a bucketCriteria object or a+-- bucketDefinitions array, not both.+jobSummary_bucketCriteria :: Lens.Lens' JobSummary (Prelude.Maybe S3BucketCriteriaForJob)+jobSummary_bucketCriteria = Lens.lens (\JobSummary' {bucketCriteria} -> bucketCriteria) (\s@JobSummary' {} a -> s {bucketCriteria = a} :: JobSummary)++-- | An array of objects, one for each Amazon Web Services account that owns+-- specific S3 buckets for the job to analyze. Each object specifies the+-- account ID for an account and one or more buckets to analyze for that+-- account. A job\'s definition can contain a bucketDefinitions array or a+-- bucketCriteria object, not both.+jobSummary_bucketDefinitions :: Lens.Lens' JobSummary (Prelude.Maybe [S3BucketDefinitionForJob])+jobSummary_bucketDefinitions = Lens.lens (\JobSummary' {bucketDefinitions} -> bucketDefinitions) (\s@JobSummary' {} a -> s {bucketDefinitions = a} :: JobSummary) Prelude.. Lens.mapping Lens.coerced++-- | The date and time, in UTC and extended ISO 8601 format, when the job was+-- created.+jobSummary_createdAt :: Lens.Lens' JobSummary (Prelude.Maybe Prelude.UTCTime)+jobSummary_createdAt = Lens.lens (\JobSummary' {createdAt} -> createdAt) (\s@JobSummary' {} a -> s {createdAt = a} :: JobSummary) Prelude.. Lens.mapping Data._Time++-- | The unique identifier for the job.+jobSummary_jobId :: Lens.Lens' JobSummary (Prelude.Maybe Prelude.Text)+jobSummary_jobId = Lens.lens (\JobSummary' {jobId} -> jobId) (\s@JobSummary' {} a -> s {jobId = a} :: JobSummary)++-- | The current status of the job. Possible values are:+--+-- -   CANCELLED - You cancelled the job or, if it\'s a one-time job, you+--     paused the job and didn\'t resume it within 30 days.+--+-- -   COMPLETE - For a one-time job, Amazon Macie finished processing the+--     data specified for the job. This value doesn\'t apply to recurring+--     jobs.+--+-- -   IDLE - For a recurring job, the previous scheduled run is complete+--     and the next scheduled run is pending. This value doesn\'t apply to+--     one-time jobs.+--+-- -   PAUSED - Macie started running the job but additional processing+--     would exceed the monthly sensitive data discovery quota for your+--     account or one or more member accounts that the job analyzes data+--     for.+--+-- -   RUNNING - For a one-time job, the job is in progress. For a+--     recurring job, a scheduled run is in progress.+--+-- -   USER_PAUSED - You paused the job. If you paused the job while it had+--     a status of RUNNING and you don\'t resume it within 30 days of+--     pausing it, the job or job run will expire and be cancelled,+--     depending on the job\'s type. To check the expiration date, refer to+--     the UserPausedDetails.jobExpiresAt property.+jobSummary_jobStatus :: Lens.Lens' JobSummary (Prelude.Maybe JobStatus)+jobSummary_jobStatus = Lens.lens (\JobSummary' {jobStatus} -> jobStatus) (\s@JobSummary' {} a -> s {jobStatus = a} :: JobSummary)++-- | The schedule for running the job. Possible values are:+--+-- -   ONE_TIME - The job runs only once.+--+-- -   SCHEDULED - The job runs on a daily, weekly, or monthly basis.+jobSummary_jobType :: Lens.Lens' JobSummary (Prelude.Maybe JobType)+jobSummary_jobType = Lens.lens (\JobSummary' {jobType} -> jobType) (\s@JobSummary' {} a -> s {jobType = a} :: JobSummary)++-- | Specifies whether any account- or bucket-level access errors occurred+-- when the job ran. For a recurring job, this value indicates the error+-- status of the job\'s most recent run.+jobSummary_lastRunErrorStatus :: Lens.Lens' JobSummary (Prelude.Maybe LastRunErrorStatus)+jobSummary_lastRunErrorStatus = Lens.lens (\JobSummary' {lastRunErrorStatus} -> lastRunErrorStatus) (\s@JobSummary' {} a -> s {lastRunErrorStatus = a} :: JobSummary)++-- | The custom name of the job.+jobSummary_name :: Lens.Lens' JobSummary (Prelude.Maybe Prelude.Text)+jobSummary_name = Lens.lens (\JobSummary' {name} -> name) (\s@JobSummary' {} a -> s {name = a} :: JobSummary)++-- | If the current status of the job is USER_PAUSED, specifies when the job+-- was paused and when the job or job run will expire and be cancelled if+-- it isn\'t resumed. This value is present only if the value for jobStatus+-- is USER_PAUSED.+jobSummary_userPausedDetails :: Lens.Lens' JobSummary (Prelude.Maybe UserPausedDetails)+jobSummary_userPausedDetails = Lens.lens (\JobSummary' {userPausedDetails} -> userPausedDetails) (\s@JobSummary' {} a -> s {userPausedDetails = a} :: JobSummary)++instance Data.FromJSON JobSummary where+  parseJSON =+    Data.withObject+      "JobSummary"+      ( \x ->+          JobSummary'+            Prelude.<$> (x Data..:? "bucketCriteria")+            Prelude.<*> ( x+                            Data..:? "bucketDefinitions"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "createdAt")+            Prelude.<*> (x Data..:? "jobId")+            Prelude.<*> (x Data..:? "jobStatus")+            Prelude.<*> (x Data..:? "jobType")+            Prelude.<*> (x Data..:? "lastRunErrorStatus")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "userPausedDetails")+      )++instance Prelude.Hashable JobSummary where+  hashWithSalt _salt JobSummary' {..} =+    _salt+      `Prelude.hashWithSalt` bucketCriteria+      `Prelude.hashWithSalt` bucketDefinitions+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` jobId+      `Prelude.hashWithSalt` jobStatus+      `Prelude.hashWithSalt` jobType+      `Prelude.hashWithSalt` lastRunErrorStatus+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` userPausedDetails++instance Prelude.NFData JobSummary where+  rnf JobSummary' {..} =+    Prelude.rnf bucketCriteria+      `Prelude.seq` Prelude.rnf bucketDefinitions+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf jobId+      `Prelude.seq` Prelude.rnf jobStatus+      `Prelude.seq` Prelude.rnf jobType+      `Prelude.seq` Prelude.rnf lastRunErrorStatus+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf userPausedDetails
+ gen/Amazonka/MacieV2/Types/JobType.hs view
@@ -0,0 +1,69 @@+{-# 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.MacieV2.Types.JobType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.JobType+  ( JobType+      ( ..,+        JobType_ONE_TIME,+        JobType_SCHEDULED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The schedule for running a classification job. Valid values are:+newtype JobType = JobType' {fromJobType :: 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 JobType_ONE_TIME :: JobType+pattern JobType_ONE_TIME = JobType' "ONE_TIME"++pattern JobType_SCHEDULED :: JobType+pattern JobType_SCHEDULED = JobType' "SCHEDULED"++{-# COMPLETE+  JobType_ONE_TIME,+  JobType_SCHEDULED,+  JobType'+  #-}
+ gen/Amazonka/MacieV2/Types/KeyValuePair.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.KeyValuePair+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.KeyValuePair where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the tags that are associated with an S3+-- bucket or object. Each tag consists of a required tag key and an+-- associated tag value.+--+-- /See:/ 'newKeyValuePair' smart constructor.+data KeyValuePair = KeyValuePair'+  { -- | One part of a key-value pair that comprises a tag. A tag key is a+    -- general label that acts as a category for more specific tag values.+    key :: Prelude.Maybe Prelude.Text,+    -- | One part of a key-value pair that comprises a tag. A tag value acts as a+    -- descriptor for a tag key. A tag value can be an empty string.+    value :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'KeyValuePair' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'key', 'keyValuePair_key' - One part of a key-value pair that comprises a tag. A tag key is a+-- general label that acts as a category for more specific tag values.+--+-- 'value', 'keyValuePair_value' - One part of a key-value pair that comprises a tag. A tag value acts as a+-- descriptor for a tag key. A tag value can be an empty string.+newKeyValuePair ::+  KeyValuePair+newKeyValuePair =+  KeyValuePair'+    { key = Prelude.Nothing,+      value = Prelude.Nothing+    }++-- | One part of a key-value pair that comprises a tag. A tag key is a+-- general label that acts as a category for more specific tag values.+keyValuePair_key :: Lens.Lens' KeyValuePair (Prelude.Maybe Prelude.Text)+keyValuePair_key = Lens.lens (\KeyValuePair' {key} -> key) (\s@KeyValuePair' {} a -> s {key = a} :: KeyValuePair)++-- | One part of a key-value pair that comprises a tag. A tag value acts as a+-- descriptor for a tag key. A tag value can be an empty string.+keyValuePair_value :: Lens.Lens' KeyValuePair (Prelude.Maybe Prelude.Text)+keyValuePair_value = Lens.lens (\KeyValuePair' {value} -> value) (\s@KeyValuePair' {} a -> s {value = a} :: KeyValuePair)++instance Data.FromJSON KeyValuePair where+  parseJSON =+    Data.withObject+      "KeyValuePair"+      ( \x ->+          KeyValuePair'+            Prelude.<$> (x Data..:? "key")+            Prelude.<*> (x Data..:? "value")+      )++instance Prelude.Hashable KeyValuePair where+  hashWithSalt _salt KeyValuePair' {..} =+    _salt+      `Prelude.hashWithSalt` key+      `Prelude.hashWithSalt` value++instance Prelude.NFData KeyValuePair where+  rnf KeyValuePair' {..} =+    Prelude.rnf key `Prelude.seq` Prelude.rnf value
+ gen/Amazonka/MacieV2/Types/LastRunErrorStatus.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.LastRunErrorStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.LastRunErrorStatus where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.LastRunErrorStatusCode+import qualified Amazonka.Prelude as Prelude++-- | Specifies whether any account- or bucket-level access errors occurred+-- when a classification job ran. For information about using logging data+-- to investigate these errors, see+-- <https://docs.aws.amazon.com/macie/latest/user/discovery-jobs-monitor-cw-logs.html Monitoring sensitive data discovery jobs>+-- in the /Amazon Macie User Guide/.+--+-- /See:/ 'newLastRunErrorStatus' smart constructor.+data LastRunErrorStatus = LastRunErrorStatus'+  { -- | Specifies whether any account- or bucket-level access errors occurred+    -- when the job ran. For a recurring job, this value indicates the error+    -- status of the job\'s most recent run. Possible values are:+    --+    -- -   ERROR - One or more errors occurred. Amazon Macie didn\'t process+    --     all the data specified for the job.+    --+    -- -   NONE - No errors occurred. Macie processed all the data specified+    --     for the job.+    code :: Prelude.Maybe LastRunErrorStatusCode+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LastRunErrorStatus' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'code', 'lastRunErrorStatus_code' - Specifies whether any account- or bucket-level access errors occurred+-- when the job ran. For a recurring job, this value indicates the error+-- status of the job\'s most recent run. Possible values are:+--+-- -   ERROR - One or more errors occurred. Amazon Macie didn\'t process+--     all the data specified for the job.+--+-- -   NONE - No errors occurred. Macie processed all the data specified+--     for the job.+newLastRunErrorStatus ::+  LastRunErrorStatus+newLastRunErrorStatus =+  LastRunErrorStatus' {code = Prelude.Nothing}++-- | Specifies whether any account- or bucket-level access errors occurred+-- when the job ran. For a recurring job, this value indicates the error+-- status of the job\'s most recent run. Possible values are:+--+-- -   ERROR - One or more errors occurred. Amazon Macie didn\'t process+--     all the data specified for the job.+--+-- -   NONE - No errors occurred. Macie processed all the data specified+--     for the job.+lastRunErrorStatus_code :: Lens.Lens' LastRunErrorStatus (Prelude.Maybe LastRunErrorStatusCode)+lastRunErrorStatus_code = Lens.lens (\LastRunErrorStatus' {code} -> code) (\s@LastRunErrorStatus' {} a -> s {code = a} :: LastRunErrorStatus)++instance Data.FromJSON LastRunErrorStatus where+  parseJSON =+    Data.withObject+      "LastRunErrorStatus"+      ( \x ->+          LastRunErrorStatus' Prelude.<$> (x Data..:? "code")+      )++instance Prelude.Hashable LastRunErrorStatus where+  hashWithSalt _salt LastRunErrorStatus' {..} =+    _salt `Prelude.hashWithSalt` code++instance Prelude.NFData LastRunErrorStatus where+  rnf LastRunErrorStatus' {..} = Prelude.rnf code
+ gen/Amazonka/MacieV2/Types/LastRunErrorStatusCode.hs view
@@ -0,0 +1,74 @@+{-# 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.MacieV2.Types.LastRunErrorStatusCode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.LastRunErrorStatusCode+  ( LastRunErrorStatusCode+      ( ..,+        LastRunErrorStatusCode_ERROR,+        LastRunErrorStatusCode_NONE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Specifies whether any account- or bucket-level access errors occurred+-- during the run of a one-time classification job or the most recent run+-- of a recurring classification job. Possible values are:+newtype LastRunErrorStatusCode = LastRunErrorStatusCode'+  { fromLastRunErrorStatusCode ::+      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 LastRunErrorStatusCode_ERROR :: LastRunErrorStatusCode+pattern LastRunErrorStatusCode_ERROR = LastRunErrorStatusCode' "ERROR"++pattern LastRunErrorStatusCode_NONE :: LastRunErrorStatusCode+pattern LastRunErrorStatusCode_NONE = LastRunErrorStatusCode' "NONE"++{-# COMPLETE+  LastRunErrorStatusCode_ERROR,+  LastRunErrorStatusCode_NONE,+  LastRunErrorStatusCode'+  #-}
+ gen/Amazonka/MacieV2/Types/ListJobsFilterCriteria.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.ListJobsFilterCriteria+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.ListJobsFilterCriteria where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.ListJobsFilterTerm+import qualified Amazonka.Prelude as Prelude++-- | Specifies criteria for filtering the results of a request for+-- information about classification jobs.+--+-- /See:/ 'newListJobsFilterCriteria' smart constructor.+data ListJobsFilterCriteria = ListJobsFilterCriteria'+  { -- | An array of objects, one for each condition that determines which jobs+    -- to exclude from the results.+    excludes :: Prelude.Maybe [ListJobsFilterTerm],+    -- | An array of objects, one for each condition that determines which jobs+    -- to include in the results.+    includes :: Prelude.Maybe [ListJobsFilterTerm]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListJobsFilterCriteria' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'excludes', 'listJobsFilterCriteria_excludes' - An array of objects, one for each condition that determines which jobs+-- to exclude from the results.+--+-- 'includes', 'listJobsFilterCriteria_includes' - An array of objects, one for each condition that determines which jobs+-- to include in the results.+newListJobsFilterCriteria ::+  ListJobsFilterCriteria+newListJobsFilterCriteria =+  ListJobsFilterCriteria'+    { excludes = Prelude.Nothing,+      includes = Prelude.Nothing+    }++-- | An array of objects, one for each condition that determines which jobs+-- to exclude from the results.+listJobsFilterCriteria_excludes :: Lens.Lens' ListJobsFilterCriteria (Prelude.Maybe [ListJobsFilterTerm])+listJobsFilterCriteria_excludes = Lens.lens (\ListJobsFilterCriteria' {excludes} -> excludes) (\s@ListJobsFilterCriteria' {} a -> s {excludes = a} :: ListJobsFilterCriteria) Prelude.. Lens.mapping Lens.coerced++-- | An array of objects, one for each condition that determines which jobs+-- to include in the results.+listJobsFilterCriteria_includes :: Lens.Lens' ListJobsFilterCriteria (Prelude.Maybe [ListJobsFilterTerm])+listJobsFilterCriteria_includes = Lens.lens (\ListJobsFilterCriteria' {includes} -> includes) (\s@ListJobsFilterCriteria' {} a -> s {includes = a} :: ListJobsFilterCriteria) Prelude.. Lens.mapping Lens.coerced++instance Prelude.Hashable ListJobsFilterCriteria where+  hashWithSalt _salt ListJobsFilterCriteria' {..} =+    _salt+      `Prelude.hashWithSalt` excludes+      `Prelude.hashWithSalt` includes++instance Prelude.NFData ListJobsFilterCriteria where+  rnf ListJobsFilterCriteria' {..} =+    Prelude.rnf excludes+      `Prelude.seq` Prelude.rnf includes++instance Data.ToJSON ListJobsFilterCriteria where+  toJSON ListJobsFilterCriteria' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("excludes" Data..=) Prelude.<$> excludes,+            ("includes" Data..=) Prelude.<$> includes+          ]+      )
+ gen/Amazonka/MacieV2/Types/ListJobsFilterKey.hs view
@@ -0,0 +1,82 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.ListJobsFilterKey+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.ListJobsFilterKey+  ( ListJobsFilterKey+      ( ..,+        ListJobsFilterKey_CreatedAt,+        ListJobsFilterKey_JobStatus,+        ListJobsFilterKey_JobType,+        ListJobsFilterKey_Name+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The property to use to filter the results. Valid values are:+newtype ListJobsFilterKey = ListJobsFilterKey'+  { fromListJobsFilterKey ::+      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 ListJobsFilterKey_CreatedAt :: ListJobsFilterKey+pattern ListJobsFilterKey_CreatedAt = ListJobsFilterKey' "createdAt"++pattern ListJobsFilterKey_JobStatus :: ListJobsFilterKey+pattern ListJobsFilterKey_JobStatus = ListJobsFilterKey' "jobStatus"++pattern ListJobsFilterKey_JobType :: ListJobsFilterKey+pattern ListJobsFilterKey_JobType = ListJobsFilterKey' "jobType"++pattern ListJobsFilterKey_Name :: ListJobsFilterKey+pattern ListJobsFilterKey_Name = ListJobsFilterKey' "name"++{-# COMPLETE+  ListJobsFilterKey_CreatedAt,+  ListJobsFilterKey_JobStatus,+  ListJobsFilterKey_JobType,+  ListJobsFilterKey_Name,+  ListJobsFilterKey'+  #-}
+ gen/Amazonka/MacieV2/Types/ListJobsFilterTerm.hs view
@@ -0,0 +1,99 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.ListJobsFilterTerm+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.ListJobsFilterTerm where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.JobComparator+import Amazonka.MacieV2.Types.ListJobsFilterKey+import qualified Amazonka.Prelude as Prelude++-- | Specifies a condition that filters the results of a request for+-- information about classification jobs. Each condition consists of a+-- property, an operator, and one or more values.+--+-- /See:/ 'newListJobsFilterTerm' smart constructor.+data ListJobsFilterTerm = ListJobsFilterTerm'+  { -- | The operator to use to filter the results.+    comparator :: Prelude.Maybe JobComparator,+    -- | The property to use to filter the results.+    key :: Prelude.Maybe ListJobsFilterKey,+    -- | An array that lists one or more values to use to filter the results.+    values :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListJobsFilterTerm' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'comparator', 'listJobsFilterTerm_comparator' - The operator to use to filter the results.+--+-- 'key', 'listJobsFilterTerm_key' - The property to use to filter the results.+--+-- 'values', 'listJobsFilterTerm_values' - An array that lists one or more values to use to filter the results.+newListJobsFilterTerm ::+  ListJobsFilterTerm+newListJobsFilterTerm =+  ListJobsFilterTerm'+    { comparator = Prelude.Nothing,+      key = Prelude.Nothing,+      values = Prelude.Nothing+    }++-- | The operator to use to filter the results.+listJobsFilterTerm_comparator :: Lens.Lens' ListJobsFilterTerm (Prelude.Maybe JobComparator)+listJobsFilterTerm_comparator = Lens.lens (\ListJobsFilterTerm' {comparator} -> comparator) (\s@ListJobsFilterTerm' {} a -> s {comparator = a} :: ListJobsFilterTerm)++-- | The property to use to filter the results.+listJobsFilterTerm_key :: Lens.Lens' ListJobsFilterTerm (Prelude.Maybe ListJobsFilterKey)+listJobsFilterTerm_key = Lens.lens (\ListJobsFilterTerm' {key} -> key) (\s@ListJobsFilterTerm' {} a -> s {key = a} :: ListJobsFilterTerm)++-- | An array that lists one or more values to use to filter the results.+listJobsFilterTerm_values :: Lens.Lens' ListJobsFilterTerm (Prelude.Maybe [Prelude.Text])+listJobsFilterTerm_values = Lens.lens (\ListJobsFilterTerm' {values} -> values) (\s@ListJobsFilterTerm' {} a -> s {values = a} :: ListJobsFilterTerm) Prelude.. Lens.mapping Lens.coerced++instance Prelude.Hashable ListJobsFilterTerm where+  hashWithSalt _salt ListJobsFilterTerm' {..} =+    _salt+      `Prelude.hashWithSalt` comparator+      `Prelude.hashWithSalt` key+      `Prelude.hashWithSalt` values++instance Prelude.NFData ListJobsFilterTerm where+  rnf ListJobsFilterTerm' {..} =+    Prelude.rnf comparator+      `Prelude.seq` Prelude.rnf key+      `Prelude.seq` Prelude.rnf values++instance Data.ToJSON ListJobsFilterTerm where+  toJSON ListJobsFilterTerm' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("comparator" Data..=) Prelude.<$> comparator,+            ("key" Data..=) Prelude.<$> key,+            ("values" Data..=) Prelude.<$> values+          ]+      )
+ gen/Amazonka/MacieV2/Types/ListJobsSortAttributeName.hs view
@@ -0,0 +1,82 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.ListJobsSortAttributeName+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.ListJobsSortAttributeName+  ( ListJobsSortAttributeName+      ( ..,+        ListJobsSortAttributeName_CreatedAt,+        ListJobsSortAttributeName_JobStatus,+        ListJobsSortAttributeName_JobType,+        ListJobsSortAttributeName_Name+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The property to sort the results by. Valid values are:+newtype ListJobsSortAttributeName = ListJobsSortAttributeName'+  { fromListJobsSortAttributeName ::+      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 ListJobsSortAttributeName_CreatedAt :: ListJobsSortAttributeName+pattern ListJobsSortAttributeName_CreatedAt = ListJobsSortAttributeName' "createdAt"++pattern ListJobsSortAttributeName_JobStatus :: ListJobsSortAttributeName+pattern ListJobsSortAttributeName_JobStatus = ListJobsSortAttributeName' "jobStatus"++pattern ListJobsSortAttributeName_JobType :: ListJobsSortAttributeName+pattern ListJobsSortAttributeName_JobType = ListJobsSortAttributeName' "jobType"++pattern ListJobsSortAttributeName_Name :: ListJobsSortAttributeName+pattern ListJobsSortAttributeName_Name = ListJobsSortAttributeName' "name"++{-# COMPLETE+  ListJobsSortAttributeName_CreatedAt,+  ListJobsSortAttributeName_JobStatus,+  ListJobsSortAttributeName_JobType,+  ListJobsSortAttributeName_Name,+  ListJobsSortAttributeName'+  #-}
+ gen/Amazonka/MacieV2/Types/ListJobsSortCriteria.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.ListJobsSortCriteria+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.ListJobsSortCriteria where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.ListJobsSortAttributeName+import Amazonka.MacieV2.Types.OrderBy+import qualified Amazonka.Prelude as Prelude++-- | Specifies criteria for sorting the results of a request for information+-- about classification jobs.+--+-- /See:/ 'newListJobsSortCriteria' smart constructor.+data ListJobsSortCriteria = ListJobsSortCriteria'+  { -- | The property to sort the results by.+    attributeName :: Prelude.Maybe ListJobsSortAttributeName,+    -- | The sort order to apply to the results, based on the value for the+    -- property specified by the attributeName property. Valid values are: ASC,+    -- sort the results in ascending order; and, DESC, sort the results in+    -- descending order.+    orderBy :: Prelude.Maybe OrderBy+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListJobsSortCriteria' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attributeName', 'listJobsSortCriteria_attributeName' - The property to sort the results by.+--+-- 'orderBy', 'listJobsSortCriteria_orderBy' - The sort order to apply to the results, based on the value for the+-- property specified by the attributeName property. Valid values are: ASC,+-- sort the results in ascending order; and, DESC, sort the results in+-- descending order.+newListJobsSortCriteria ::+  ListJobsSortCriteria+newListJobsSortCriteria =+  ListJobsSortCriteria'+    { attributeName =+        Prelude.Nothing,+      orderBy = Prelude.Nothing+    }++-- | The property to sort the results by.+listJobsSortCriteria_attributeName :: Lens.Lens' ListJobsSortCriteria (Prelude.Maybe ListJobsSortAttributeName)+listJobsSortCriteria_attributeName = Lens.lens (\ListJobsSortCriteria' {attributeName} -> attributeName) (\s@ListJobsSortCriteria' {} a -> s {attributeName = a} :: ListJobsSortCriteria)++-- | The sort order to apply to the results, based on the value for the+-- property specified by the attributeName property. Valid values are: ASC,+-- sort the results in ascending order; and, DESC, sort the results in+-- descending order.+listJobsSortCriteria_orderBy :: Lens.Lens' ListJobsSortCriteria (Prelude.Maybe OrderBy)+listJobsSortCriteria_orderBy = Lens.lens (\ListJobsSortCriteria' {orderBy} -> orderBy) (\s@ListJobsSortCriteria' {} a -> s {orderBy = a} :: ListJobsSortCriteria)++instance Prelude.Hashable ListJobsSortCriteria where+  hashWithSalt _salt ListJobsSortCriteria' {..} =+    _salt+      `Prelude.hashWithSalt` attributeName+      `Prelude.hashWithSalt` orderBy++instance Prelude.NFData ListJobsSortCriteria where+  rnf ListJobsSortCriteria' {..} =+    Prelude.rnf attributeName+      `Prelude.seq` Prelude.rnf orderBy++instance Data.ToJSON ListJobsSortCriteria where+  toJSON ListJobsSortCriteria' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("attributeName" Data..=) Prelude.<$> attributeName,+            ("orderBy" Data..=) Prelude.<$> orderBy+          ]+      )
+ gen/Amazonka/MacieV2/Types/MacieStatus.hs view
@@ -0,0 +1,72 @@+{-# 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.MacieV2.Types.MacieStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.MacieStatus+  ( MacieStatus+      ( ..,+        MacieStatus_ENABLED,+        MacieStatus_PAUSED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The status of an Amazon Macie account. Valid values are:+newtype MacieStatus = MacieStatus'+  { fromMacieStatus ::+      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 MacieStatus_ENABLED :: MacieStatus+pattern MacieStatus_ENABLED = MacieStatus' "ENABLED"++pattern MacieStatus_PAUSED :: MacieStatus+pattern MacieStatus_PAUSED = MacieStatus' "PAUSED"++{-# COMPLETE+  MacieStatus_ENABLED,+  MacieStatus_PAUSED,+  MacieStatus'+  #-}
+ gen/Amazonka/MacieV2/Types/ManagedDataIdentifierSelector.hs view
@@ -0,0 +1,83 @@+{-# 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.MacieV2.Types.ManagedDataIdentifierSelector+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.ManagedDataIdentifierSelector+  ( ManagedDataIdentifierSelector+      ( ..,+        ManagedDataIdentifierSelector_ALL,+        ManagedDataIdentifierSelector_EXCLUDE,+        ManagedDataIdentifierSelector_INCLUDE,+        ManagedDataIdentifierSelector_NONE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The selection type that determines which managed data identifiers a+-- classification job uses to analyze data. Valid values are:+newtype ManagedDataIdentifierSelector = ManagedDataIdentifierSelector'+  { fromManagedDataIdentifierSelector ::+      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 ManagedDataIdentifierSelector_ALL :: ManagedDataIdentifierSelector+pattern ManagedDataIdentifierSelector_ALL = ManagedDataIdentifierSelector' "ALL"++pattern ManagedDataIdentifierSelector_EXCLUDE :: ManagedDataIdentifierSelector+pattern ManagedDataIdentifierSelector_EXCLUDE = ManagedDataIdentifierSelector' "EXCLUDE"++pattern ManagedDataIdentifierSelector_INCLUDE :: ManagedDataIdentifierSelector+pattern ManagedDataIdentifierSelector_INCLUDE = ManagedDataIdentifierSelector' "INCLUDE"++pattern ManagedDataIdentifierSelector_NONE :: ManagedDataIdentifierSelector+pattern ManagedDataIdentifierSelector_NONE = ManagedDataIdentifierSelector' "NONE"++{-# COMPLETE+  ManagedDataIdentifierSelector_ALL,+  ManagedDataIdentifierSelector_EXCLUDE,+  ManagedDataIdentifierSelector_INCLUDE,+  ManagedDataIdentifierSelector_NONE,+  ManagedDataIdentifierSelector'+  #-}
+ gen/Amazonka/MacieV2/Types/ManagedDataIdentifierSummary.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.MacieV2.Types.ManagedDataIdentifierSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.ManagedDataIdentifierSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.SensitiveDataItemCategory+import qualified Amazonka.Prelude as Prelude++-- | Provides information about a managed data identifier. For additional+-- information, see+-- <https://docs.aws.amazon.com/macie/latest/user/managed-data-identifiers.html Using managed data identifiers>+-- in the /Amazon Macie User Guide/.+--+-- /See:/ 'newManagedDataIdentifierSummary' smart constructor.+data ManagedDataIdentifierSummary = ManagedDataIdentifierSummary'+  { -- | The category of sensitive data that the managed data identifier detects:+    -- CREDENTIALS, for credentials data such as private keys or Amazon Web+    -- Services secret access keys; FINANCIAL_INFORMATION, for financial data+    -- such as credit card numbers; or, PERSONAL_INFORMATION, for personal+    -- health information, such as health insurance identification numbers, or+    -- personally identifiable information, such as passport numbers.+    category :: Prelude.Maybe SensitiveDataItemCategory,+    -- | The unique identifier for the managed data identifier. This is a string+    -- that describes the type of sensitive data that the managed data+    -- identifier detects. For example: OPENSSH_PRIVATE_KEY for OpenSSH private+    -- keys, CREDIT_CARD_NUMBER for credit card numbers, or USA_PASSPORT_NUMBER+    -- for US passport numbers.+    id :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ManagedDataIdentifierSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'managedDataIdentifierSummary_category' - The category of sensitive data that the managed data identifier detects:+-- CREDENTIALS, for credentials data such as private keys or Amazon Web+-- Services secret access keys; FINANCIAL_INFORMATION, for financial data+-- such as credit card numbers; or, PERSONAL_INFORMATION, for personal+-- health information, such as health insurance identification numbers, or+-- personally identifiable information, such as passport numbers.+--+-- 'id', 'managedDataIdentifierSummary_id' - The unique identifier for the managed data identifier. This is a string+-- that describes the type of sensitive data that the managed data+-- identifier detects. For example: OPENSSH_PRIVATE_KEY for OpenSSH private+-- keys, CREDIT_CARD_NUMBER for credit card numbers, or USA_PASSPORT_NUMBER+-- for US passport numbers.+newManagedDataIdentifierSummary ::+  ManagedDataIdentifierSummary+newManagedDataIdentifierSummary =+  ManagedDataIdentifierSummary'+    { category =+        Prelude.Nothing,+      id = Prelude.Nothing+    }++-- | The category of sensitive data that the managed data identifier detects:+-- CREDENTIALS, for credentials data such as private keys or Amazon Web+-- Services secret access keys; FINANCIAL_INFORMATION, for financial data+-- such as credit card numbers; or, PERSONAL_INFORMATION, for personal+-- health information, such as health insurance identification numbers, or+-- personally identifiable information, such as passport numbers.+managedDataIdentifierSummary_category :: Lens.Lens' ManagedDataIdentifierSummary (Prelude.Maybe SensitiveDataItemCategory)+managedDataIdentifierSummary_category = Lens.lens (\ManagedDataIdentifierSummary' {category} -> category) (\s@ManagedDataIdentifierSummary' {} a -> s {category = a} :: ManagedDataIdentifierSummary)++-- | The unique identifier for the managed data identifier. This is a string+-- that describes the type of sensitive data that the managed data+-- identifier detects. For example: OPENSSH_PRIVATE_KEY for OpenSSH private+-- keys, CREDIT_CARD_NUMBER for credit card numbers, or USA_PASSPORT_NUMBER+-- for US passport numbers.+managedDataIdentifierSummary_id :: Lens.Lens' ManagedDataIdentifierSummary (Prelude.Maybe Prelude.Text)+managedDataIdentifierSummary_id = Lens.lens (\ManagedDataIdentifierSummary' {id} -> id) (\s@ManagedDataIdentifierSummary' {} a -> s {id = a} :: ManagedDataIdentifierSummary)++instance Data.FromJSON ManagedDataIdentifierSummary where+  parseJSON =+    Data.withObject+      "ManagedDataIdentifierSummary"+      ( \x ->+          ManagedDataIdentifierSummary'+            Prelude.<$> (x Data..:? "category")+            Prelude.<*> (x Data..:? "id")+      )++instance+  Prelude.Hashable+    ManagedDataIdentifierSummary+  where+  hashWithSalt _salt ManagedDataIdentifierSummary' {..} =+    _salt+      `Prelude.hashWithSalt` category+      `Prelude.hashWithSalt` id++instance Prelude.NFData ManagedDataIdentifierSummary where+  rnf ManagedDataIdentifierSummary' {..} =+    Prelude.rnf category `Prelude.seq` Prelude.rnf id
+ gen/Amazonka/MacieV2/Types/MatchingBucket.hs view
@@ -0,0 +1,382 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.MatchingBucket+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.MatchingBucket where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.BucketMetadataErrorCode+import Amazonka.MacieV2.Types.JobDetails+import Amazonka.MacieV2.Types.ObjectCountByEncryptionType+import Amazonka.MacieV2.Types.ObjectLevelStatistics+import qualified Amazonka.Prelude as Prelude++-- | Provides statistical data and other information about an S3 bucket that+-- Amazon Macie monitors and analyzes for your account. If an error occurs+-- when Macie attempts to retrieve and process information about the bucket+-- or the bucket\'s objects, the value for most of these properties is+-- null. Key exceptions are accountId and bucketName. To identify the cause+-- of the error, refer to the errorCode and errorMessage values.+--+-- /See:/ 'newMatchingBucket' smart constructor.+data MatchingBucket = MatchingBucket'+  { -- | The unique identifier for the Amazon Web Services account that owns the+    -- bucket.+    accountId :: Prelude.Maybe Prelude.Text,+    -- | The name of the bucket.+    bucketName :: Prelude.Maybe Prelude.Text,+    -- | The total number of objects that Amazon Macie can analyze in the bucket.+    -- These objects use a supported storage class and have a file name+    -- extension for a supported file or storage format.+    classifiableObjectCount :: Prelude.Maybe Prelude.Integer,+    -- | The total storage size, in bytes, of the objects that Amazon Macie can+    -- analyze in the bucket. These objects use a supported storage class and+    -- have a file name extension for a supported file or storage format.+    --+    -- If versioning is enabled for the bucket, Macie calculates this value+    -- based on the size of the latest version of each applicable object in the+    -- bucket. This value doesn\'t reflect the storage size of all versions of+    -- each applicable object in the bucket.+    classifiableSizeInBytes :: Prelude.Maybe Prelude.Integer,+    -- | Specifies the error code for an error that prevented Amazon Macie from+    -- retrieving and processing information about the bucket and the bucket\'s+    -- objects. If this value is ACCESS_DENIED, Macie doesn\'t have permission+    -- to retrieve the information. For example, the bucket has a restrictive+    -- bucket policy and Amazon S3 denied the request. If this value is null,+    -- Macie was able to retrieve and process the information.+    errorCode :: Prelude.Maybe BucketMetadataErrorCode,+    -- | A brief description of the error (errorCode) that prevented Amazon Macie+    -- from retrieving and processing information about the bucket and the+    -- bucket\'s objects. This value is null if Macie was able to retrieve and+    -- process the information.+    errorMessage :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether any one-time or recurring classification jobs are+    -- configured to analyze objects in the bucket, and, if so, the details of+    -- the job that ran most recently.+    jobDetails :: Prelude.Maybe JobDetails,+    -- | The date and time, in UTC and extended ISO 8601 format, when Amazon+    -- Macie most recently performed automated sensitive data discovery for the+    -- bucket. This value is null if automated sensitive data discovery is+    -- currently disabled for your account.+    lastAutomatedDiscoveryTime :: Prelude.Maybe Data.ISO8601,+    -- | The total number of objects in the bucket.+    objectCount :: Prelude.Maybe Prelude.Integer,+    -- | The total number of objects in the bucket, grouped by server-side+    -- encryption type. This includes a grouping that reports the total number+    -- of objects that aren\'t encrypted or use client-side encryption.+    objectCountByEncryptionType :: Prelude.Maybe ObjectCountByEncryptionType,+    -- | The current sensitivity score for the bucket, ranging from -1 (no+    -- analysis due to an error) to 100 (sensitive). This value is null if+    -- automated sensitive data discovery is currently disabled for your+    -- account.+    sensitivityScore :: Prelude.Maybe Prelude.Int,+    -- | The total storage size, in bytes, of the bucket.+    --+    -- If versioning is enabled for the bucket, Amazon Macie calculates this+    -- value based on the size of the latest version of each object in the+    -- bucket. This value doesn\'t reflect the storage size of all versions of+    -- each object in the bucket.+    sizeInBytes :: Prelude.Maybe Prelude.Integer,+    -- | The total storage size, in bytes, of the objects that are compressed+    -- (.gz, .gzip, .zip) files in the bucket.+    --+    -- If versioning is enabled for the bucket, Amazon Macie calculates this+    -- value based on the size of the latest version of each applicable object+    -- in the bucket. This value doesn\'t reflect the storage size of all+    -- versions of each applicable object in the bucket.+    sizeInBytesCompressed :: Prelude.Maybe Prelude.Integer,+    -- | The total number of objects that Amazon Macie can\'t analyze in the+    -- bucket. These objects don\'t use a supported storage class or don\'t+    -- have a file name extension for a supported file or storage format.+    unclassifiableObjectCount :: Prelude.Maybe ObjectLevelStatistics,+    -- | The total storage size, in bytes, of the objects that Amazon Macie+    -- can\'t analyze in the bucket. These objects don\'t use a supported+    -- storage class or don\'t have a file name extension for a supported file+    -- or storage format.+    unclassifiableObjectSizeInBytes :: Prelude.Maybe ObjectLevelStatistics+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MatchingBucket' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'matchingBucket_accountId' - The unique identifier for the Amazon Web Services account that owns the+-- bucket.+--+-- 'bucketName', 'matchingBucket_bucketName' - The name of the bucket.+--+-- 'classifiableObjectCount', 'matchingBucket_classifiableObjectCount' - The total number of objects that Amazon Macie can analyze in the bucket.+-- These objects use a supported storage class and have a file name+-- extension for a supported file or storage format.+--+-- 'classifiableSizeInBytes', 'matchingBucket_classifiableSizeInBytes' - The total storage size, in bytes, of the objects that Amazon Macie can+-- analyze in the bucket. These objects use a supported storage class and+-- have a file name extension for a supported file or storage format.+--+-- If versioning is enabled for the bucket, Macie calculates this value+-- based on the size of the latest version of each applicable object in the+-- bucket. This value doesn\'t reflect the storage size of all versions of+-- each applicable object in the bucket.+--+-- 'errorCode', 'matchingBucket_errorCode' - Specifies the error code for an error that prevented Amazon Macie from+-- retrieving and processing information about the bucket and the bucket\'s+-- objects. If this value is ACCESS_DENIED, Macie doesn\'t have permission+-- to retrieve the information. For example, the bucket has a restrictive+-- bucket policy and Amazon S3 denied the request. If this value is null,+-- Macie was able to retrieve and process the information.+--+-- 'errorMessage', 'matchingBucket_errorMessage' - A brief description of the error (errorCode) that prevented Amazon Macie+-- from retrieving and processing information about the bucket and the+-- bucket\'s objects. This value is null if Macie was able to retrieve and+-- process the information.+--+-- 'jobDetails', 'matchingBucket_jobDetails' - Specifies whether any one-time or recurring classification jobs are+-- configured to analyze objects in the bucket, and, if so, the details of+-- the job that ran most recently.+--+-- 'lastAutomatedDiscoveryTime', 'matchingBucket_lastAutomatedDiscoveryTime' - The date and time, in UTC and extended ISO 8601 format, when Amazon+-- Macie most recently performed automated sensitive data discovery for the+-- bucket. This value is null if automated sensitive data discovery is+-- currently disabled for your account.+--+-- 'objectCount', 'matchingBucket_objectCount' - The total number of objects in the bucket.+--+-- 'objectCountByEncryptionType', 'matchingBucket_objectCountByEncryptionType' - The total number of objects in the bucket, grouped by server-side+-- encryption type. This includes a grouping that reports the total number+-- of objects that aren\'t encrypted or use client-side encryption.+--+-- 'sensitivityScore', 'matchingBucket_sensitivityScore' - The current sensitivity score for the bucket, ranging from -1 (no+-- analysis due to an error) to 100 (sensitive). This value is null if+-- automated sensitive data discovery is currently disabled for your+-- account.+--+-- 'sizeInBytes', 'matchingBucket_sizeInBytes' - The total storage size, in bytes, of the bucket.+--+-- If versioning is enabled for the bucket, Amazon Macie calculates this+-- value based on the size of the latest version of each object in the+-- bucket. This value doesn\'t reflect the storage size of all versions of+-- each object in the bucket.+--+-- 'sizeInBytesCompressed', 'matchingBucket_sizeInBytesCompressed' - The total storage size, in bytes, of the objects that are compressed+-- (.gz, .gzip, .zip) files in the bucket.+--+-- If versioning is enabled for the bucket, Amazon Macie calculates this+-- value based on the size of the latest version of each applicable object+-- in the bucket. This value doesn\'t reflect the storage size of all+-- versions of each applicable object in the bucket.+--+-- 'unclassifiableObjectCount', 'matchingBucket_unclassifiableObjectCount' - The total number of objects that Amazon Macie can\'t analyze in the+-- bucket. These objects don\'t use a supported storage class or don\'t+-- have a file name extension for a supported file or storage format.+--+-- 'unclassifiableObjectSizeInBytes', 'matchingBucket_unclassifiableObjectSizeInBytes' - The total storage size, in bytes, of the objects that Amazon Macie+-- can\'t analyze in the bucket. These objects don\'t use a supported+-- storage class or don\'t have a file name extension for a supported file+-- or storage format.+newMatchingBucket ::+  MatchingBucket+newMatchingBucket =+  MatchingBucket'+    { accountId = Prelude.Nothing,+      bucketName = Prelude.Nothing,+      classifiableObjectCount = Prelude.Nothing,+      classifiableSizeInBytes = Prelude.Nothing,+      errorCode = Prelude.Nothing,+      errorMessage = Prelude.Nothing,+      jobDetails = Prelude.Nothing,+      lastAutomatedDiscoveryTime = Prelude.Nothing,+      objectCount = Prelude.Nothing,+      objectCountByEncryptionType = Prelude.Nothing,+      sensitivityScore = Prelude.Nothing,+      sizeInBytes = Prelude.Nothing,+      sizeInBytesCompressed = Prelude.Nothing,+      unclassifiableObjectCount = Prelude.Nothing,+      unclassifiableObjectSizeInBytes = Prelude.Nothing+    }++-- | The unique identifier for the Amazon Web Services account that owns the+-- bucket.+matchingBucket_accountId :: Lens.Lens' MatchingBucket (Prelude.Maybe Prelude.Text)+matchingBucket_accountId = Lens.lens (\MatchingBucket' {accountId} -> accountId) (\s@MatchingBucket' {} a -> s {accountId = a} :: MatchingBucket)++-- | The name of the bucket.+matchingBucket_bucketName :: Lens.Lens' MatchingBucket (Prelude.Maybe Prelude.Text)+matchingBucket_bucketName = Lens.lens (\MatchingBucket' {bucketName} -> bucketName) (\s@MatchingBucket' {} a -> s {bucketName = a} :: MatchingBucket)++-- | The total number of objects that Amazon Macie can analyze in the bucket.+-- These objects use a supported storage class and have a file name+-- extension for a supported file or storage format.+matchingBucket_classifiableObjectCount :: Lens.Lens' MatchingBucket (Prelude.Maybe Prelude.Integer)+matchingBucket_classifiableObjectCount = Lens.lens (\MatchingBucket' {classifiableObjectCount} -> classifiableObjectCount) (\s@MatchingBucket' {} a -> s {classifiableObjectCount = a} :: MatchingBucket)++-- | The total storage size, in bytes, of the objects that Amazon Macie can+-- analyze in the bucket. These objects use a supported storage class and+-- have a file name extension for a supported file or storage format.+--+-- If versioning is enabled for the bucket, Macie calculates this value+-- based on the size of the latest version of each applicable object in the+-- bucket. This value doesn\'t reflect the storage size of all versions of+-- each applicable object in the bucket.+matchingBucket_classifiableSizeInBytes :: Lens.Lens' MatchingBucket (Prelude.Maybe Prelude.Integer)+matchingBucket_classifiableSizeInBytes = Lens.lens (\MatchingBucket' {classifiableSizeInBytes} -> classifiableSizeInBytes) (\s@MatchingBucket' {} a -> s {classifiableSizeInBytes = a} :: MatchingBucket)++-- | Specifies the error code for an error that prevented Amazon Macie from+-- retrieving and processing information about the bucket and the bucket\'s+-- objects. If this value is ACCESS_DENIED, Macie doesn\'t have permission+-- to retrieve the information. For example, the bucket has a restrictive+-- bucket policy and Amazon S3 denied the request. If this value is null,+-- Macie was able to retrieve and process the information.+matchingBucket_errorCode :: Lens.Lens' MatchingBucket (Prelude.Maybe BucketMetadataErrorCode)+matchingBucket_errorCode = Lens.lens (\MatchingBucket' {errorCode} -> errorCode) (\s@MatchingBucket' {} a -> s {errorCode = a} :: MatchingBucket)++-- | A brief description of the error (errorCode) that prevented Amazon Macie+-- from retrieving and processing information about the bucket and the+-- bucket\'s objects. This value is null if Macie was able to retrieve and+-- process the information.+matchingBucket_errorMessage :: Lens.Lens' MatchingBucket (Prelude.Maybe Prelude.Text)+matchingBucket_errorMessage = Lens.lens (\MatchingBucket' {errorMessage} -> errorMessage) (\s@MatchingBucket' {} a -> s {errorMessage = a} :: MatchingBucket)++-- | Specifies whether any one-time or recurring classification jobs are+-- configured to analyze objects in the bucket, and, if so, the details of+-- the job that ran most recently.+matchingBucket_jobDetails :: Lens.Lens' MatchingBucket (Prelude.Maybe JobDetails)+matchingBucket_jobDetails = Lens.lens (\MatchingBucket' {jobDetails} -> jobDetails) (\s@MatchingBucket' {} a -> s {jobDetails = a} :: MatchingBucket)++-- | The date and time, in UTC and extended ISO 8601 format, when Amazon+-- Macie most recently performed automated sensitive data discovery for the+-- bucket. This value is null if automated sensitive data discovery is+-- currently disabled for your account.+matchingBucket_lastAutomatedDiscoveryTime :: Lens.Lens' MatchingBucket (Prelude.Maybe Prelude.UTCTime)+matchingBucket_lastAutomatedDiscoveryTime = Lens.lens (\MatchingBucket' {lastAutomatedDiscoveryTime} -> lastAutomatedDiscoveryTime) (\s@MatchingBucket' {} a -> s {lastAutomatedDiscoveryTime = a} :: MatchingBucket) Prelude.. Lens.mapping Data._Time++-- | The total number of objects in the bucket.+matchingBucket_objectCount :: Lens.Lens' MatchingBucket (Prelude.Maybe Prelude.Integer)+matchingBucket_objectCount = Lens.lens (\MatchingBucket' {objectCount} -> objectCount) (\s@MatchingBucket' {} a -> s {objectCount = a} :: MatchingBucket)++-- | The total number of objects in the bucket, grouped by server-side+-- encryption type. This includes a grouping that reports the total number+-- of objects that aren\'t encrypted or use client-side encryption.+matchingBucket_objectCountByEncryptionType :: Lens.Lens' MatchingBucket (Prelude.Maybe ObjectCountByEncryptionType)+matchingBucket_objectCountByEncryptionType = Lens.lens (\MatchingBucket' {objectCountByEncryptionType} -> objectCountByEncryptionType) (\s@MatchingBucket' {} a -> s {objectCountByEncryptionType = a} :: MatchingBucket)++-- | The current sensitivity score for the bucket, ranging from -1 (no+-- analysis due to an error) to 100 (sensitive). This value is null if+-- automated sensitive data discovery is currently disabled for your+-- account.+matchingBucket_sensitivityScore :: Lens.Lens' MatchingBucket (Prelude.Maybe Prelude.Int)+matchingBucket_sensitivityScore = Lens.lens (\MatchingBucket' {sensitivityScore} -> sensitivityScore) (\s@MatchingBucket' {} a -> s {sensitivityScore = a} :: MatchingBucket)++-- | The total storage size, in bytes, of the bucket.+--+-- If versioning is enabled for the bucket, Amazon Macie calculates this+-- value based on the size of the latest version of each object in the+-- bucket. This value doesn\'t reflect the storage size of all versions of+-- each object in the bucket.+matchingBucket_sizeInBytes :: Lens.Lens' MatchingBucket (Prelude.Maybe Prelude.Integer)+matchingBucket_sizeInBytes = Lens.lens (\MatchingBucket' {sizeInBytes} -> sizeInBytes) (\s@MatchingBucket' {} a -> s {sizeInBytes = a} :: MatchingBucket)++-- | The total storage size, in bytes, of the objects that are compressed+-- (.gz, .gzip, .zip) files in the bucket.+--+-- If versioning is enabled for the bucket, Amazon Macie calculates this+-- value based on the size of the latest version of each applicable object+-- in the bucket. This value doesn\'t reflect the storage size of all+-- versions of each applicable object in the bucket.+matchingBucket_sizeInBytesCompressed :: Lens.Lens' MatchingBucket (Prelude.Maybe Prelude.Integer)+matchingBucket_sizeInBytesCompressed = Lens.lens (\MatchingBucket' {sizeInBytesCompressed} -> sizeInBytesCompressed) (\s@MatchingBucket' {} a -> s {sizeInBytesCompressed = a} :: MatchingBucket)++-- | The total number of objects that Amazon Macie can\'t analyze in the+-- bucket. These objects don\'t use a supported storage class or don\'t+-- have a file name extension for a supported file or storage format.+matchingBucket_unclassifiableObjectCount :: Lens.Lens' MatchingBucket (Prelude.Maybe ObjectLevelStatistics)+matchingBucket_unclassifiableObjectCount = Lens.lens (\MatchingBucket' {unclassifiableObjectCount} -> unclassifiableObjectCount) (\s@MatchingBucket' {} a -> s {unclassifiableObjectCount = a} :: MatchingBucket)++-- | The total storage size, in bytes, of the objects that Amazon Macie+-- can\'t analyze in the bucket. These objects don\'t use a supported+-- storage class or don\'t have a file name extension for a supported file+-- or storage format.+matchingBucket_unclassifiableObjectSizeInBytes :: Lens.Lens' MatchingBucket (Prelude.Maybe ObjectLevelStatistics)+matchingBucket_unclassifiableObjectSizeInBytes = Lens.lens (\MatchingBucket' {unclassifiableObjectSizeInBytes} -> unclassifiableObjectSizeInBytes) (\s@MatchingBucket' {} a -> s {unclassifiableObjectSizeInBytes = a} :: MatchingBucket)++instance Data.FromJSON MatchingBucket where+  parseJSON =+    Data.withObject+      "MatchingBucket"+      ( \x ->+          MatchingBucket'+            Prelude.<$> (x Data..:? "accountId")+            Prelude.<*> (x Data..:? "bucketName")+            Prelude.<*> (x Data..:? "classifiableObjectCount")+            Prelude.<*> (x Data..:? "classifiableSizeInBytes")+            Prelude.<*> (x Data..:? "errorCode")+            Prelude.<*> (x Data..:? "errorMessage")+            Prelude.<*> (x Data..:? "jobDetails")+            Prelude.<*> (x Data..:? "lastAutomatedDiscoveryTime")+            Prelude.<*> (x Data..:? "objectCount")+            Prelude.<*> (x Data..:? "objectCountByEncryptionType")+            Prelude.<*> (x Data..:? "sensitivityScore")+            Prelude.<*> (x Data..:? "sizeInBytes")+            Prelude.<*> (x Data..:? "sizeInBytesCompressed")+            Prelude.<*> (x Data..:? "unclassifiableObjectCount")+            Prelude.<*> (x Data..:? "unclassifiableObjectSizeInBytes")+      )++instance Prelude.Hashable MatchingBucket where+  hashWithSalt _salt MatchingBucket' {..} =+    _salt+      `Prelude.hashWithSalt` accountId+      `Prelude.hashWithSalt` bucketName+      `Prelude.hashWithSalt` classifiableObjectCount+      `Prelude.hashWithSalt` classifiableSizeInBytes+      `Prelude.hashWithSalt` errorCode+      `Prelude.hashWithSalt` errorMessage+      `Prelude.hashWithSalt` jobDetails+      `Prelude.hashWithSalt` lastAutomatedDiscoveryTime+      `Prelude.hashWithSalt` objectCount+      `Prelude.hashWithSalt` objectCountByEncryptionType+      `Prelude.hashWithSalt` sensitivityScore+      `Prelude.hashWithSalt` sizeInBytes+      `Prelude.hashWithSalt` sizeInBytesCompressed+      `Prelude.hashWithSalt` unclassifiableObjectCount+      `Prelude.hashWithSalt` unclassifiableObjectSizeInBytes++instance Prelude.NFData MatchingBucket where+  rnf MatchingBucket' {..} =+    Prelude.rnf accountId+      `Prelude.seq` Prelude.rnf bucketName+      `Prelude.seq` Prelude.rnf classifiableObjectCount+      `Prelude.seq` Prelude.rnf classifiableSizeInBytes+      `Prelude.seq` Prelude.rnf errorCode+      `Prelude.seq` Prelude.rnf errorMessage+      `Prelude.seq` Prelude.rnf jobDetails+      `Prelude.seq` Prelude.rnf lastAutomatedDiscoveryTime+      `Prelude.seq` Prelude.rnf objectCount+      `Prelude.seq` Prelude.rnf objectCountByEncryptionType+      `Prelude.seq` Prelude.rnf sensitivityScore+      `Prelude.seq` Prelude.rnf sizeInBytes+      `Prelude.seq` Prelude.rnf sizeInBytesCompressed+      `Prelude.seq` Prelude.rnf unclassifiableObjectCount+      `Prelude.seq` Prelude.rnf+        unclassifiableObjectSizeInBytes
+ gen/Amazonka/MacieV2/Types/MatchingResource.hs view
@@ -0,0 +1,72 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.MatchingResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.MatchingResource where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.MatchingBucket+import qualified Amazonka.Prelude as Prelude++-- | Provides statistical data and other information about an Amazon Web+-- Services resource that Amazon Macie monitors and analyzes for your+-- account.+--+-- /See:/ 'newMatchingResource' smart constructor.+data MatchingResource = MatchingResource'+  { -- | The details of an S3 bucket that Amazon Macie monitors and analyzes.+    matchingBucket :: Prelude.Maybe MatchingBucket+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MatchingResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'matchingBucket', 'matchingResource_matchingBucket' - The details of an S3 bucket that Amazon Macie monitors and analyzes.+newMatchingResource ::+  MatchingResource+newMatchingResource =+  MatchingResource' {matchingBucket = Prelude.Nothing}++-- | The details of an S3 bucket that Amazon Macie monitors and analyzes.+matchingResource_matchingBucket :: Lens.Lens' MatchingResource (Prelude.Maybe MatchingBucket)+matchingResource_matchingBucket = Lens.lens (\MatchingResource' {matchingBucket} -> matchingBucket) (\s@MatchingResource' {} a -> s {matchingBucket = a} :: MatchingResource)++instance Data.FromJSON MatchingResource where+  parseJSON =+    Data.withObject+      "MatchingResource"+      ( \x ->+          MatchingResource'+            Prelude.<$> (x Data..:? "matchingBucket")+      )++instance Prelude.Hashable MatchingResource where+  hashWithSalt _salt MatchingResource' {..} =+    _salt `Prelude.hashWithSalt` matchingBucket++instance Prelude.NFData MatchingResource where+  rnf MatchingResource' {..} =+    Prelude.rnf matchingBucket
+ gen/Amazonka/MacieV2/Types/Member.hs view
@@ -0,0 +1,194 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.Member+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.Member where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.RelationshipStatus+import qualified Amazonka.Prelude as Prelude++-- | Provides information about an account that\'s associated with an Amazon+-- Macie administrator account.+--+-- /See:/ 'newMember' smart constructor.+data Member = Member'+  { -- | The Amazon Web Services account ID for the account.+    accountId :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Web Services account ID for the administrator account.+    administratorAccountId :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the account.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The email address for the account.+    email :: Prelude.Maybe Prelude.Text,+    -- | The date and time, in UTC and extended ISO 8601 format, when an Amazon+    -- Macie membership invitation was last sent to the account. This value is+    -- null if an invitation hasn\'t been sent to the account.+    invitedAt :: Prelude.Maybe Data.ISO8601,+    -- | (Deprecated) The Amazon Web Services account ID for the administrator+    -- account. This property has been replaced by the administratorAccountId+    -- property and is retained only for backward compatibility.+    masterAccountId :: Prelude.Maybe Prelude.Text,+    -- | The current status of the relationship between the account and the+    -- administrator account.+    relationshipStatus :: Prelude.Maybe RelationshipStatus,+    -- | A map of key-value pairs that specifies which tags (keys and values) are+    -- associated with the account in Amazon Macie.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The date and time, in UTC and extended ISO 8601 format, of the most+    -- recent change to the status of the relationship between the account and+    -- the administrator account.+    updatedAt :: Prelude.Maybe Data.ISO8601+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Member' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'member_accountId' - The Amazon Web Services account ID for the account.+--+-- 'administratorAccountId', 'member_administratorAccountId' - The Amazon Web Services account ID for the administrator account.+--+-- 'arn', 'member_arn' - The Amazon Resource Name (ARN) of the account.+--+-- 'email', 'member_email' - The email address for the account.+--+-- 'invitedAt', 'member_invitedAt' - The date and time, in UTC and extended ISO 8601 format, when an Amazon+-- Macie membership invitation was last sent to the account. This value is+-- null if an invitation hasn\'t been sent to the account.+--+-- 'masterAccountId', 'member_masterAccountId' - (Deprecated) The Amazon Web Services account ID for the administrator+-- account. This property has been replaced by the administratorAccountId+-- property and is retained only for backward compatibility.+--+-- 'relationshipStatus', 'member_relationshipStatus' - The current status of the relationship between the account and the+-- administrator account.+--+-- 'tags', 'member_tags' - A map of key-value pairs that specifies which tags (keys and values) are+-- associated with the account in Amazon Macie.+--+-- 'updatedAt', 'member_updatedAt' - The date and time, in UTC and extended ISO 8601 format, of the most+-- recent change to the status of the relationship between the account and+-- the administrator account.+newMember ::+  Member+newMember =+  Member'+    { accountId = Prelude.Nothing,+      administratorAccountId = Prelude.Nothing,+      arn = Prelude.Nothing,+      email = Prelude.Nothing,+      invitedAt = Prelude.Nothing,+      masterAccountId = Prelude.Nothing,+      relationshipStatus = Prelude.Nothing,+      tags = Prelude.Nothing,+      updatedAt = Prelude.Nothing+    }++-- | The Amazon Web Services account ID for the account.+member_accountId :: Lens.Lens' Member (Prelude.Maybe Prelude.Text)+member_accountId = Lens.lens (\Member' {accountId} -> accountId) (\s@Member' {} a -> s {accountId = a} :: Member)++-- | The Amazon Web Services account ID for the administrator account.+member_administratorAccountId :: Lens.Lens' Member (Prelude.Maybe Prelude.Text)+member_administratorAccountId = Lens.lens (\Member' {administratorAccountId} -> administratorAccountId) (\s@Member' {} a -> s {administratorAccountId = a} :: Member)++-- | The Amazon Resource Name (ARN) of the account.+member_arn :: Lens.Lens' Member (Prelude.Maybe Prelude.Text)+member_arn = Lens.lens (\Member' {arn} -> arn) (\s@Member' {} a -> s {arn = a} :: Member)++-- | The email address for the account.+member_email :: Lens.Lens' Member (Prelude.Maybe Prelude.Text)+member_email = Lens.lens (\Member' {email} -> email) (\s@Member' {} a -> s {email = a} :: Member)++-- | The date and time, in UTC and extended ISO 8601 format, when an Amazon+-- Macie membership invitation was last sent to the account. This value is+-- null if an invitation hasn\'t been sent to the account.+member_invitedAt :: Lens.Lens' Member (Prelude.Maybe Prelude.UTCTime)+member_invitedAt = Lens.lens (\Member' {invitedAt} -> invitedAt) (\s@Member' {} a -> s {invitedAt = a} :: Member) Prelude.. Lens.mapping Data._Time++-- | (Deprecated) The Amazon Web Services account ID for the administrator+-- account. This property has been replaced by the administratorAccountId+-- property and is retained only for backward compatibility.+member_masterAccountId :: Lens.Lens' Member (Prelude.Maybe Prelude.Text)+member_masterAccountId = Lens.lens (\Member' {masterAccountId} -> masterAccountId) (\s@Member' {} a -> s {masterAccountId = a} :: Member)++-- | The current status of the relationship between the account and the+-- administrator account.+member_relationshipStatus :: Lens.Lens' Member (Prelude.Maybe RelationshipStatus)+member_relationshipStatus = Lens.lens (\Member' {relationshipStatus} -> relationshipStatus) (\s@Member' {} a -> s {relationshipStatus = a} :: Member)++-- | A map of key-value pairs that specifies which tags (keys and values) are+-- associated with the account in Amazon Macie.+member_tags :: Lens.Lens' Member (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+member_tags = Lens.lens (\Member' {tags} -> tags) (\s@Member' {} a -> s {tags = a} :: Member) Prelude.. Lens.mapping Lens.coerced++-- | The date and time, in UTC and extended ISO 8601 format, of the most+-- recent change to the status of the relationship between the account and+-- the administrator account.+member_updatedAt :: Lens.Lens' Member (Prelude.Maybe Prelude.UTCTime)+member_updatedAt = Lens.lens (\Member' {updatedAt} -> updatedAt) (\s@Member' {} a -> s {updatedAt = a} :: Member) Prelude.. Lens.mapping Data._Time++instance Data.FromJSON Member where+  parseJSON =+    Data.withObject+      "Member"+      ( \x ->+          Member'+            Prelude.<$> (x Data..:? "accountId")+            Prelude.<*> (x Data..:? "administratorAccountId")+            Prelude.<*> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "email")+            Prelude.<*> (x Data..:? "invitedAt")+            Prelude.<*> (x Data..:? "masterAccountId")+            Prelude.<*> (x Data..:? "relationshipStatus")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "updatedAt")+      )++instance Prelude.Hashable Member where+  hashWithSalt _salt Member' {..} =+    _salt+      `Prelude.hashWithSalt` accountId+      `Prelude.hashWithSalt` administratorAccountId+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` email+      `Prelude.hashWithSalt` invitedAt+      `Prelude.hashWithSalt` masterAccountId+      `Prelude.hashWithSalt` relationshipStatus+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` updatedAt++instance Prelude.NFData Member where+  rnf Member' {..} =+    Prelude.rnf accountId+      `Prelude.seq` Prelude.rnf administratorAccountId+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf email+      `Prelude.seq` Prelude.rnf invitedAt+      `Prelude.seq` Prelude.rnf masterAccountId+      `Prelude.seq` Prelude.rnf relationshipStatus+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf updatedAt
+ gen/Amazonka/MacieV2/Types/MonthlySchedule.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.MonthlySchedule+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.MonthlySchedule 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++-- | Specifies a monthly recurrence pattern for running a classification job.+--+-- /See:/ 'newMonthlySchedule' smart constructor.+data MonthlySchedule = MonthlySchedule'+  { -- | The numeric day of the month when Amazon Macie runs the job. This value+    -- can be an integer from 1 through 31.+    --+    -- If this value exceeds the number of days in a certain month, Macie+    -- doesn\'t run the job that month. Macie runs the job only during months+    -- that have the specified day. For example, if this value is 31 and a+    -- month has only 30 days, Macie doesn\'t run the job that month. To run+    -- the job every month, specify a value that\'s less than 29.+    dayOfMonth :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MonthlySchedule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dayOfMonth', 'monthlySchedule_dayOfMonth' - The numeric day of the month when Amazon Macie runs the job. This value+-- can be an integer from 1 through 31.+--+-- If this value exceeds the number of days in a certain month, Macie+-- doesn\'t run the job that month. Macie runs the job only during months+-- that have the specified day. For example, if this value is 31 and a+-- month has only 30 days, Macie doesn\'t run the job that month. To run+-- the job every month, specify a value that\'s less than 29.+newMonthlySchedule ::+  MonthlySchedule+newMonthlySchedule =+  MonthlySchedule' {dayOfMonth = Prelude.Nothing}++-- | The numeric day of the month when Amazon Macie runs the job. This value+-- can be an integer from 1 through 31.+--+-- If this value exceeds the number of days in a certain month, Macie+-- doesn\'t run the job that month. Macie runs the job only during months+-- that have the specified day. For example, if this value is 31 and a+-- month has only 30 days, Macie doesn\'t run the job that month. To run+-- the job every month, specify a value that\'s less than 29.+monthlySchedule_dayOfMonth :: Lens.Lens' MonthlySchedule (Prelude.Maybe Prelude.Int)+monthlySchedule_dayOfMonth = Lens.lens (\MonthlySchedule' {dayOfMonth} -> dayOfMonth) (\s@MonthlySchedule' {} a -> s {dayOfMonth = a} :: MonthlySchedule)++instance Data.FromJSON MonthlySchedule where+  parseJSON =+    Data.withObject+      "MonthlySchedule"+      ( \x ->+          MonthlySchedule'+            Prelude.<$> (x Data..:? "dayOfMonth")+      )++instance Prelude.Hashable MonthlySchedule where+  hashWithSalt _salt MonthlySchedule' {..} =+    _salt `Prelude.hashWithSalt` dayOfMonth++instance Prelude.NFData MonthlySchedule where+  rnf MonthlySchedule' {..} = Prelude.rnf dayOfMonth++instance Data.ToJSON MonthlySchedule where+  toJSON MonthlySchedule' {..} =+    Data.object+      ( Prelude.catMaybes+          [("dayOfMonth" Data..=) Prelude.<$> dayOfMonth]+      )
+ gen/Amazonka/MacieV2/Types/ObjectCountByEncryptionType.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.MacieV2.Types.ObjectCountByEncryptionType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.ObjectCountByEncryptionType where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the number of objects that are in an S3+-- bucket and use certain types of server-side encryption, use client-side+-- encryption, or aren\'t encrypted.+--+-- /See:/ 'newObjectCountByEncryptionType' smart constructor.+data ObjectCountByEncryptionType = ObjectCountByEncryptionType'+  { -- | The total number of objects that are encrypted with a customer-provided+    -- key. The objects use customer-provided server-side encryption (SSE-C).+    customerManaged :: Prelude.Maybe Prelude.Integer,+    -- | The total number of objects that are encrypted with an KMS key, either+    -- an Amazon Web Services managed key or a customer managed key. The+    -- objects use KMS encryption (SSE-KMS).+    kmsManaged :: Prelude.Maybe Prelude.Integer,+    -- | The total number of objects that are encrypted with an Amazon S3 managed+    -- key. The objects use Amazon S3 managed encryption (SSE-S3).+    s3Managed :: Prelude.Maybe Prelude.Integer,+    -- | The total number of objects that aren\'t encrypted or use client-side+    -- encryption.+    unencrypted :: Prelude.Maybe Prelude.Integer,+    -- | The total number of objects that Amazon Macie doesn\'t have current+    -- encryption metadata for. Macie can\'t provide current data about the+    -- encryption settings for these objects.+    unknown :: Prelude.Maybe Prelude.Integer+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ObjectCountByEncryptionType' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'customerManaged', 'objectCountByEncryptionType_customerManaged' - The total number of objects that are encrypted with a customer-provided+-- key. The objects use customer-provided server-side encryption (SSE-C).+--+-- 'kmsManaged', 'objectCountByEncryptionType_kmsManaged' - The total number of objects that are encrypted with an KMS key, either+-- an Amazon Web Services managed key or a customer managed key. The+-- objects use KMS encryption (SSE-KMS).+--+-- 's3Managed', 'objectCountByEncryptionType_s3Managed' - The total number of objects that are encrypted with an Amazon S3 managed+-- key. The objects use Amazon S3 managed encryption (SSE-S3).+--+-- 'unencrypted', 'objectCountByEncryptionType_unencrypted' - The total number of objects that aren\'t encrypted or use client-side+-- encryption.+--+-- 'unknown', 'objectCountByEncryptionType_unknown' - The total number of objects that Amazon Macie doesn\'t have current+-- encryption metadata for. Macie can\'t provide current data about the+-- encryption settings for these objects.+newObjectCountByEncryptionType ::+  ObjectCountByEncryptionType+newObjectCountByEncryptionType =+  ObjectCountByEncryptionType'+    { customerManaged =+        Prelude.Nothing,+      kmsManaged = Prelude.Nothing,+      s3Managed = Prelude.Nothing,+      unencrypted = Prelude.Nothing,+      unknown = Prelude.Nothing+    }++-- | The total number of objects that are encrypted with a customer-provided+-- key. The objects use customer-provided server-side encryption (SSE-C).+objectCountByEncryptionType_customerManaged :: Lens.Lens' ObjectCountByEncryptionType (Prelude.Maybe Prelude.Integer)+objectCountByEncryptionType_customerManaged = Lens.lens (\ObjectCountByEncryptionType' {customerManaged} -> customerManaged) (\s@ObjectCountByEncryptionType' {} a -> s {customerManaged = a} :: ObjectCountByEncryptionType)++-- | The total number of objects that are encrypted with an KMS key, either+-- an Amazon Web Services managed key or a customer managed key. The+-- objects use KMS encryption (SSE-KMS).+objectCountByEncryptionType_kmsManaged :: Lens.Lens' ObjectCountByEncryptionType (Prelude.Maybe Prelude.Integer)+objectCountByEncryptionType_kmsManaged = Lens.lens (\ObjectCountByEncryptionType' {kmsManaged} -> kmsManaged) (\s@ObjectCountByEncryptionType' {} a -> s {kmsManaged = a} :: ObjectCountByEncryptionType)++-- | The total number of objects that are encrypted with an Amazon S3 managed+-- key. The objects use Amazon S3 managed encryption (SSE-S3).+objectCountByEncryptionType_s3Managed :: Lens.Lens' ObjectCountByEncryptionType (Prelude.Maybe Prelude.Integer)+objectCountByEncryptionType_s3Managed = Lens.lens (\ObjectCountByEncryptionType' {s3Managed} -> s3Managed) (\s@ObjectCountByEncryptionType' {} a -> s {s3Managed = a} :: ObjectCountByEncryptionType)++-- | The total number of objects that aren\'t encrypted or use client-side+-- encryption.+objectCountByEncryptionType_unencrypted :: Lens.Lens' ObjectCountByEncryptionType (Prelude.Maybe Prelude.Integer)+objectCountByEncryptionType_unencrypted = Lens.lens (\ObjectCountByEncryptionType' {unencrypted} -> unencrypted) (\s@ObjectCountByEncryptionType' {} a -> s {unencrypted = a} :: ObjectCountByEncryptionType)++-- | The total number of objects that Amazon Macie doesn\'t have current+-- encryption metadata for. Macie can\'t provide current data about the+-- encryption settings for these objects.+objectCountByEncryptionType_unknown :: Lens.Lens' ObjectCountByEncryptionType (Prelude.Maybe Prelude.Integer)+objectCountByEncryptionType_unknown = Lens.lens (\ObjectCountByEncryptionType' {unknown} -> unknown) (\s@ObjectCountByEncryptionType' {} a -> s {unknown = a} :: ObjectCountByEncryptionType)++instance Data.FromJSON ObjectCountByEncryptionType where+  parseJSON =+    Data.withObject+      "ObjectCountByEncryptionType"+      ( \x ->+          ObjectCountByEncryptionType'+            Prelude.<$> (x Data..:? "customerManaged")+            Prelude.<*> (x Data..:? "kmsManaged")+            Prelude.<*> (x Data..:? "s3Managed")+            Prelude.<*> (x Data..:? "unencrypted")+            Prelude.<*> (x Data..:? "unknown")+      )++instance Prelude.Hashable ObjectCountByEncryptionType where+  hashWithSalt _salt ObjectCountByEncryptionType' {..} =+    _salt+      `Prelude.hashWithSalt` customerManaged+      `Prelude.hashWithSalt` kmsManaged+      `Prelude.hashWithSalt` s3Managed+      `Prelude.hashWithSalt` unencrypted+      `Prelude.hashWithSalt` unknown++instance Prelude.NFData ObjectCountByEncryptionType where+  rnf ObjectCountByEncryptionType' {..} =+    Prelude.rnf customerManaged+      `Prelude.seq` Prelude.rnf kmsManaged+      `Prelude.seq` Prelude.rnf s3Managed+      `Prelude.seq` Prelude.rnf unencrypted+      `Prelude.seq` Prelude.rnf unknown
+ gen/Amazonka/MacieV2/Types/ObjectLevelStatistics.hs view
@@ -0,0 +1,120 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.ObjectLevelStatistics+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.ObjectLevelStatistics where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the total storage size (in bytes) or number+-- of objects that Amazon Macie can\'t analyze in one or more S3 buckets.+-- In a BucketMetadata or MatchingBucket object, this data is for a+-- specific bucket. In a GetBucketStatisticsResponse object, this data is+-- aggregated for all the buckets in the query results. If versioning is+-- enabled for a bucket, storage size values are based on the size of the+-- latest version of each applicable object in the bucket.+--+-- /See:/ 'newObjectLevelStatistics' smart constructor.+data ObjectLevelStatistics = ObjectLevelStatistics'+  { -- | The total storage size (in bytes) or number of objects that Amazon Macie+    -- can\'t analyze because the objects don\'t have a file name extension for+    -- a supported file or storage format.+    fileType :: Prelude.Maybe Prelude.Integer,+    -- | The total storage size (in bytes) or number of objects that Amazon Macie+    -- can\'t analyze because the objects use an unsupported storage class.+    storageClass :: Prelude.Maybe Prelude.Integer,+    -- | The total storage size (in bytes) or number of objects that Amazon Macie+    -- can\'t analyze because the objects use an unsupported storage class or+    -- don\'t have a file name extension for a supported file or storage+    -- format.+    total :: Prelude.Maybe Prelude.Integer+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ObjectLevelStatistics' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'fileType', 'objectLevelStatistics_fileType' - The total storage size (in bytes) or number of objects that Amazon Macie+-- can\'t analyze because the objects don\'t have a file name extension for+-- a supported file or storage format.+--+-- 'storageClass', 'objectLevelStatistics_storageClass' - The total storage size (in bytes) or number of objects that Amazon Macie+-- can\'t analyze because the objects use an unsupported storage class.+--+-- 'total', 'objectLevelStatistics_total' - The total storage size (in bytes) or number of objects that Amazon Macie+-- can\'t analyze because the objects use an unsupported storage class or+-- don\'t have a file name extension for a supported file or storage+-- format.+newObjectLevelStatistics ::+  ObjectLevelStatistics+newObjectLevelStatistics =+  ObjectLevelStatistics'+    { fileType = Prelude.Nothing,+      storageClass = Prelude.Nothing,+      total = Prelude.Nothing+    }++-- | The total storage size (in bytes) or number of objects that Amazon Macie+-- can\'t analyze because the objects don\'t have a file name extension for+-- a supported file or storage format.+objectLevelStatistics_fileType :: Lens.Lens' ObjectLevelStatistics (Prelude.Maybe Prelude.Integer)+objectLevelStatistics_fileType = Lens.lens (\ObjectLevelStatistics' {fileType} -> fileType) (\s@ObjectLevelStatistics' {} a -> s {fileType = a} :: ObjectLevelStatistics)++-- | The total storage size (in bytes) or number of objects that Amazon Macie+-- can\'t analyze because the objects use an unsupported storage class.+objectLevelStatistics_storageClass :: Lens.Lens' ObjectLevelStatistics (Prelude.Maybe Prelude.Integer)+objectLevelStatistics_storageClass = Lens.lens (\ObjectLevelStatistics' {storageClass} -> storageClass) (\s@ObjectLevelStatistics' {} a -> s {storageClass = a} :: ObjectLevelStatistics)++-- | The total storage size (in bytes) or number of objects that Amazon Macie+-- can\'t analyze because the objects use an unsupported storage class or+-- don\'t have a file name extension for a supported file or storage+-- format.+objectLevelStatistics_total :: Lens.Lens' ObjectLevelStatistics (Prelude.Maybe Prelude.Integer)+objectLevelStatistics_total = Lens.lens (\ObjectLevelStatistics' {total} -> total) (\s@ObjectLevelStatistics' {} a -> s {total = a} :: ObjectLevelStatistics)++instance Data.FromJSON ObjectLevelStatistics where+  parseJSON =+    Data.withObject+      "ObjectLevelStatistics"+      ( \x ->+          ObjectLevelStatistics'+            Prelude.<$> (x Data..:? "fileType")+            Prelude.<*> (x Data..:? "storageClass")+            Prelude.<*> (x Data..:? "total")+      )++instance Prelude.Hashable ObjectLevelStatistics where+  hashWithSalt _salt ObjectLevelStatistics' {..} =+    _salt+      `Prelude.hashWithSalt` fileType+      `Prelude.hashWithSalt` storageClass+      `Prelude.hashWithSalt` total++instance Prelude.NFData ObjectLevelStatistics where+  rnf ObjectLevelStatistics' {..} =+    Prelude.rnf fileType+      `Prelude.seq` Prelude.rnf storageClass+      `Prelude.seq` Prelude.rnf total
+ gen/Amazonka/MacieV2/Types/Occurrences.hs view
@@ -0,0 +1,213 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.Occurrences+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.Occurrences where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.Cell+import Amazonka.MacieV2.Types.Page+import Amazonka.MacieV2.Types.Range+import Amazonka.MacieV2.Types.Record+import qualified Amazonka.Prelude as Prelude++-- | Specifies the location of 1-15 occurrences of sensitive data that was+-- detected by a managed data identifier or a custom data identifier and+-- produced a sensitive data finding.+--+-- /See:/ 'newOccurrences' smart constructor.+data Occurrences = Occurrences'+  { -- | An array of objects, one for each occurrence of sensitive data in a+    -- Microsoft Excel workbook, CSV file, or TSV file. This value is null for+    -- all other types of files.+    --+    -- Each Cell object specifies a cell or field that contains the sensitive+    -- data.+    cells :: Prelude.Maybe [Cell],+    -- | An array of objects, one for each occurrence of sensitive data in a+    -- non-binary text file, such as an HTML, TXT, or XML file. Each Range+    -- object specifies a line or inclusive range of lines that contains the+    -- sensitive data, and the position of the data on the specified line or+    -- lines.+    --+    -- This value is often null for file types that are supported by Cell,+    -- Page, or Record objects. Exceptions are the location of sensitive data+    -- in: unstructured sections of an otherwise structured file, such as a+    -- comment in a file; a malformed file that Amazon Macie analyzes as plain+    -- text; and, a CSV or TSV file that has any column names that contain+    -- sensitive data.+    lineRanges :: Prelude.Maybe [Range],+    -- | Reserved for future use.+    offsetRanges :: Prelude.Maybe [Range],+    -- | An array of objects, one for each occurrence of sensitive data in an+    -- Adobe Portable Document Format file. This value is null for all other+    -- types of files.+    --+    -- Each Page object specifies a page that contains the sensitive data.+    pages :: Prelude.Maybe [Page],+    -- | An array of objects, one for each occurrence of sensitive data in an+    -- Apache Avro object container, Apache Parquet file, JSON file, or JSON+    -- Lines file. This value is null for all other types of files.+    --+    -- For an Avro object container or Parquet file, each Record object+    -- specifies a record index and the path to a field in a record that+    -- contains the sensitive data. For a JSON or JSON Lines file, each Record+    -- object specifies the path to a field or array that contains the+    -- sensitive data. For a JSON Lines file, it also specifies the index of+    -- the line that contains the data.+    records :: Prelude.Maybe [Record]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Occurrences' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cells', 'occurrences_cells' - An array of objects, one for each occurrence of sensitive data in a+-- Microsoft Excel workbook, CSV file, or TSV file. This value is null for+-- all other types of files.+--+-- Each Cell object specifies a cell or field that contains the sensitive+-- data.+--+-- 'lineRanges', 'occurrences_lineRanges' - An array of objects, one for each occurrence of sensitive data in a+-- non-binary text file, such as an HTML, TXT, or XML file. Each Range+-- object specifies a line or inclusive range of lines that contains the+-- sensitive data, and the position of the data on the specified line or+-- lines.+--+-- This value is often null for file types that are supported by Cell,+-- Page, or Record objects. Exceptions are the location of sensitive data+-- in: unstructured sections of an otherwise structured file, such as a+-- comment in a file; a malformed file that Amazon Macie analyzes as plain+-- text; and, a CSV or TSV file that has any column names that contain+-- sensitive data.+--+-- 'offsetRanges', 'occurrences_offsetRanges' - Reserved for future use.+--+-- 'pages', 'occurrences_pages' - An array of objects, one for each occurrence of sensitive data in an+-- Adobe Portable Document Format file. This value is null for all other+-- types of files.+--+-- Each Page object specifies a page that contains the sensitive data.+--+-- 'records', 'occurrences_records' - An array of objects, one for each occurrence of sensitive data in an+-- Apache Avro object container, Apache Parquet file, JSON file, or JSON+-- Lines file. This value is null for all other types of files.+--+-- For an Avro object container or Parquet file, each Record object+-- specifies a record index and the path to a field in a record that+-- contains the sensitive data. For a JSON or JSON Lines file, each Record+-- object specifies the path to a field or array that contains the+-- sensitive data. For a JSON Lines file, it also specifies the index of+-- the line that contains the data.+newOccurrences ::+  Occurrences+newOccurrences =+  Occurrences'+    { cells = Prelude.Nothing,+      lineRanges = Prelude.Nothing,+      offsetRanges = Prelude.Nothing,+      pages = Prelude.Nothing,+      records = Prelude.Nothing+    }++-- | An array of objects, one for each occurrence of sensitive data in a+-- Microsoft Excel workbook, CSV file, or TSV file. This value is null for+-- all other types of files.+--+-- Each Cell object specifies a cell or field that contains the sensitive+-- data.+occurrences_cells :: Lens.Lens' Occurrences (Prelude.Maybe [Cell])+occurrences_cells = Lens.lens (\Occurrences' {cells} -> cells) (\s@Occurrences' {} a -> s {cells = a} :: Occurrences) Prelude.. Lens.mapping Lens.coerced++-- | An array of objects, one for each occurrence of sensitive data in a+-- non-binary text file, such as an HTML, TXT, or XML file. Each Range+-- object specifies a line or inclusive range of lines that contains the+-- sensitive data, and the position of the data on the specified line or+-- lines.+--+-- This value is often null for file types that are supported by Cell,+-- Page, or Record objects. Exceptions are the location of sensitive data+-- in: unstructured sections of an otherwise structured file, such as a+-- comment in a file; a malformed file that Amazon Macie analyzes as plain+-- text; and, a CSV or TSV file that has any column names that contain+-- sensitive data.+occurrences_lineRanges :: Lens.Lens' Occurrences (Prelude.Maybe [Range])+occurrences_lineRanges = Lens.lens (\Occurrences' {lineRanges} -> lineRanges) (\s@Occurrences' {} a -> s {lineRanges = a} :: Occurrences) Prelude.. Lens.mapping Lens.coerced++-- | Reserved for future use.+occurrences_offsetRanges :: Lens.Lens' Occurrences (Prelude.Maybe [Range])+occurrences_offsetRanges = Lens.lens (\Occurrences' {offsetRanges} -> offsetRanges) (\s@Occurrences' {} a -> s {offsetRanges = a} :: Occurrences) Prelude.. Lens.mapping Lens.coerced++-- | An array of objects, one for each occurrence of sensitive data in an+-- Adobe Portable Document Format file. This value is null for all other+-- types of files.+--+-- Each Page object specifies a page that contains the sensitive data.+occurrences_pages :: Lens.Lens' Occurrences (Prelude.Maybe [Page])+occurrences_pages = Lens.lens (\Occurrences' {pages} -> pages) (\s@Occurrences' {} a -> s {pages = a} :: Occurrences) Prelude.. Lens.mapping Lens.coerced++-- | An array of objects, one for each occurrence of sensitive data in an+-- Apache Avro object container, Apache Parquet file, JSON file, or JSON+-- Lines file. This value is null for all other types of files.+--+-- For an Avro object container or Parquet file, each Record object+-- specifies a record index and the path to a field in a record that+-- contains the sensitive data. For a JSON or JSON Lines file, each Record+-- object specifies the path to a field or array that contains the+-- sensitive data. For a JSON Lines file, it also specifies the index of+-- the line that contains the data.+occurrences_records :: Lens.Lens' Occurrences (Prelude.Maybe [Record])+occurrences_records = Lens.lens (\Occurrences' {records} -> records) (\s@Occurrences' {} a -> s {records = a} :: Occurrences) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON Occurrences where+  parseJSON =+    Data.withObject+      "Occurrences"+      ( \x ->+          Occurrences'+            Prelude.<$> (x Data..:? "cells" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "lineRanges" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "offsetRanges" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "pages" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "records" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable Occurrences where+  hashWithSalt _salt Occurrences' {..} =+    _salt+      `Prelude.hashWithSalt` cells+      `Prelude.hashWithSalt` lineRanges+      `Prelude.hashWithSalt` offsetRanges+      `Prelude.hashWithSalt` pages+      `Prelude.hashWithSalt` records++instance Prelude.NFData Occurrences where+  rnf Occurrences' {..} =+    Prelude.rnf cells+      `Prelude.seq` Prelude.rnf lineRanges+      `Prelude.seq` Prelude.rnf offsetRanges+      `Prelude.seq` Prelude.rnf pages+      `Prelude.seq` Prelude.rnf records
+ gen/Amazonka/MacieV2/Types/OrderBy.hs view
@@ -0,0 +1,68 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.OrderBy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.OrderBy+  ( OrderBy+      ( ..,+        OrderBy_ASC,+        OrderBy_DESC+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype OrderBy = OrderBy' {fromOrderBy :: 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 OrderBy_ASC :: OrderBy+pattern OrderBy_ASC = OrderBy' "ASC"++pattern OrderBy_DESC :: OrderBy+pattern OrderBy_DESC = OrderBy' "DESC"++{-# COMPLETE+  OrderBy_ASC,+  OrderBy_DESC,+  OrderBy'+  #-}
+ gen/Amazonka/MacieV2/Types/OriginType.hs view
@@ -0,0 +1,73 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.OriginType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.OriginType+  ( OriginType+      ( ..,+        OriginType_AUTOMATED_SENSITIVE_DATA_DISCOVERY,+        OriginType_SENSITIVE_DATA_DISCOVERY_JOB+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Specifies how Amazon Macie found the sensitive data that produced a+-- finding. Possible values are:+newtype OriginType = OriginType'+  { fromOriginType ::+      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 OriginType_AUTOMATED_SENSITIVE_DATA_DISCOVERY :: OriginType+pattern OriginType_AUTOMATED_SENSITIVE_DATA_DISCOVERY = OriginType' "AUTOMATED_SENSITIVE_DATA_DISCOVERY"++pattern OriginType_SENSITIVE_DATA_DISCOVERY_JOB :: OriginType+pattern OriginType_SENSITIVE_DATA_DISCOVERY_JOB = OriginType' "SENSITIVE_DATA_DISCOVERY_JOB"++{-# COMPLETE+  OriginType_AUTOMATED_SENSITIVE_DATA_DISCOVERY,+  OriginType_SENSITIVE_DATA_DISCOVERY_JOB,+  OriginType'+  #-}
+ gen/Amazonka/MacieV2/Types/Page.hs view
@@ -0,0 +1,98 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.Page+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.Page where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.Range+import qualified Amazonka.Prelude as Prelude++-- | Specifies the location of an occurrence of sensitive data in an Adobe+-- Portable Document Format file.+--+-- /See:/ 'newPage' smart constructor.+data Page = Page'+  { -- | Reserved for future use.+    lineRange :: Prelude.Maybe Range,+    -- | Reserved for future use.+    offsetRange :: Prelude.Maybe Range,+    -- | The page number of the page that contains the sensitive data.+    pageNumber :: Prelude.Maybe Prelude.Integer+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Page' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'lineRange', 'page_lineRange' - Reserved for future use.+--+-- 'offsetRange', 'page_offsetRange' - Reserved for future use.+--+-- 'pageNumber', 'page_pageNumber' - The page number of the page that contains the sensitive data.+newPage ::+  Page+newPage =+  Page'+    { lineRange = Prelude.Nothing,+      offsetRange = Prelude.Nothing,+      pageNumber = Prelude.Nothing+    }++-- | Reserved for future use.+page_lineRange :: Lens.Lens' Page (Prelude.Maybe Range)+page_lineRange = Lens.lens (\Page' {lineRange} -> lineRange) (\s@Page' {} a -> s {lineRange = a} :: Page)++-- | Reserved for future use.+page_offsetRange :: Lens.Lens' Page (Prelude.Maybe Range)+page_offsetRange = Lens.lens (\Page' {offsetRange} -> offsetRange) (\s@Page' {} a -> s {offsetRange = a} :: Page)++-- | The page number of the page that contains the sensitive data.+page_pageNumber :: Lens.Lens' Page (Prelude.Maybe Prelude.Integer)+page_pageNumber = Lens.lens (\Page' {pageNumber} -> pageNumber) (\s@Page' {} a -> s {pageNumber = a} :: Page)++instance Data.FromJSON Page where+  parseJSON =+    Data.withObject+      "Page"+      ( \x ->+          Page'+            Prelude.<$> (x Data..:? "lineRange")+            Prelude.<*> (x Data..:? "offsetRange")+            Prelude.<*> (x Data..:? "pageNumber")+      )++instance Prelude.Hashable Page where+  hashWithSalt _salt Page' {..} =+    _salt+      `Prelude.hashWithSalt` lineRange+      `Prelude.hashWithSalt` offsetRange+      `Prelude.hashWithSalt` pageNumber++instance Prelude.NFData Page where+  rnf Page' {..} =+    Prelude.rnf lineRange+      `Prelude.seq` Prelude.rnf offsetRange+      `Prelude.seq` Prelude.rnf pageNumber
+ gen/Amazonka/MacieV2/Types/PolicyDetails.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.MacieV2.Types.PolicyDetails+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.PolicyDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.FindingAction+import Amazonka.MacieV2.Types.FindingActor+import qualified Amazonka.Prelude as Prelude++-- | Provides the details of a policy finding.+--+-- /See:/ 'newPolicyDetails' smart constructor.+data PolicyDetails = PolicyDetails'+  { -- | The action that produced the finding.+    action :: Prelude.Maybe FindingAction,+    -- | The entity that performed the action that produced the finding.+    actor :: Prelude.Maybe FindingActor+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PolicyDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'policyDetails_action' - The action that produced the finding.+--+-- 'actor', 'policyDetails_actor' - The entity that performed the action that produced the finding.+newPolicyDetails ::+  PolicyDetails+newPolicyDetails =+  PolicyDetails'+    { action = Prelude.Nothing,+      actor = Prelude.Nothing+    }++-- | The action that produced the finding.+policyDetails_action :: Lens.Lens' PolicyDetails (Prelude.Maybe FindingAction)+policyDetails_action = Lens.lens (\PolicyDetails' {action} -> action) (\s@PolicyDetails' {} a -> s {action = a} :: PolicyDetails)++-- | The entity that performed the action that produced the finding.+policyDetails_actor :: Lens.Lens' PolicyDetails (Prelude.Maybe FindingActor)+policyDetails_actor = Lens.lens (\PolicyDetails' {actor} -> actor) (\s@PolicyDetails' {} a -> s {actor = a} :: PolicyDetails)++instance Data.FromJSON PolicyDetails where+  parseJSON =+    Data.withObject+      "PolicyDetails"+      ( \x ->+          PolicyDetails'+            Prelude.<$> (x Data..:? "action")+            Prelude.<*> (x Data..:? "actor")+      )++instance Prelude.Hashable PolicyDetails where+  hashWithSalt _salt PolicyDetails' {..} =+    _salt+      `Prelude.hashWithSalt` action+      `Prelude.hashWithSalt` actor++instance Prelude.NFData PolicyDetails where+  rnf PolicyDetails' {..} =+    Prelude.rnf action `Prelude.seq` Prelude.rnf actor
+ gen/Amazonka/MacieV2/Types/Range.hs view
@@ -0,0 +1,109 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.Range+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.Range 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++-- | Specifies the location of an occurrence of sensitive data in a+-- non-binary text file, such as an HTML, TXT, or XML file.+--+-- /See:/ 'newRange' smart constructor.+data Range = Range'+  { -- | The number of lines from the beginning of the file to the end of the+    -- sensitive data.+    end :: Prelude.Maybe Prelude.Integer,+    -- | The number of lines from the beginning of the file to the beginning of+    -- the sensitive data.+    start :: Prelude.Maybe Prelude.Integer,+    -- | The number of characters, with spaces and starting from 1, from the+    -- beginning of the first line that contains the sensitive data (start) to+    -- the beginning of the sensitive data.+    startColumn :: Prelude.Maybe Prelude.Integer+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Range' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'end', 'range_end' - The number of lines from the beginning of the file to the end of the+-- sensitive data.+--+-- 'start', 'range_start' - The number of lines from the beginning of the file to the beginning of+-- the sensitive data.+--+-- 'startColumn', 'range_startColumn' - The number of characters, with spaces and starting from 1, from the+-- beginning of the first line that contains the sensitive data (start) to+-- the beginning of the sensitive data.+newRange ::+  Range+newRange =+  Range'+    { end = Prelude.Nothing,+      start = Prelude.Nothing,+      startColumn = Prelude.Nothing+    }++-- | The number of lines from the beginning of the file to the end of the+-- sensitive data.+range_end :: Lens.Lens' Range (Prelude.Maybe Prelude.Integer)+range_end = Lens.lens (\Range' {end} -> end) (\s@Range' {} a -> s {end = a} :: Range)++-- | The number of lines from the beginning of the file to the beginning of+-- the sensitive data.+range_start :: Lens.Lens' Range (Prelude.Maybe Prelude.Integer)+range_start = Lens.lens (\Range' {start} -> start) (\s@Range' {} a -> s {start = a} :: Range)++-- | The number of characters, with spaces and starting from 1, from the+-- beginning of the first line that contains the sensitive data (start) to+-- the beginning of the sensitive data.+range_startColumn :: Lens.Lens' Range (Prelude.Maybe Prelude.Integer)+range_startColumn = Lens.lens (\Range' {startColumn} -> startColumn) (\s@Range' {} a -> s {startColumn = a} :: Range)++instance Data.FromJSON Range where+  parseJSON =+    Data.withObject+      "Range"+      ( \x ->+          Range'+            Prelude.<$> (x Data..:? "end")+            Prelude.<*> (x Data..:? "start")+            Prelude.<*> (x Data..:? "startColumn")+      )++instance Prelude.Hashable Range where+  hashWithSalt _salt Range' {..} =+    _salt+      `Prelude.hashWithSalt` end+      `Prelude.hashWithSalt` start+      `Prelude.hashWithSalt` startColumn++instance Prelude.NFData Range where+  rnf Range' {..} =+    Prelude.rnf end+      `Prelude.seq` Prelude.rnf start+      `Prelude.seq` Prelude.rnf startColumn
+ gen/Amazonka/MacieV2/Types/Record.hs view
@@ -0,0 +1,131 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.Record+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.Record 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++-- | Specifies the location of an occurrence of sensitive data in an Apache+-- Avro object container, Apache Parquet file, JSON file, or JSON Lines+-- file.+--+-- /See:/ 'newRecord' smart constructor.+data Record = Record'+  { -- | The path, as a JSONPath expression, to the sensitive data. For an Avro+    -- object container or Parquet file, this is the path to the field in the+    -- record (recordIndex) that contains the data. For a JSON or JSON Lines+    -- file, this is the path to the field or array that contains the data. If+    -- the data is a value in an array, the path also indicates which value+    -- contains the data.+    --+    -- If Amazon Macie detects sensitive data in the name of any element in the+    -- path, Macie omits this field. If the name of an element exceeds 20+    -- characters, Macie truncates the name by removing characters from the+    -- beginning of the name. If the resulting full path exceeds 250+    -- characters, Macie also truncates the path, starting with the first+    -- element in the path, until the path contains 250 or fewer characters.+    jsonPath :: Prelude.Maybe Prelude.Text,+    -- | For an Avro object container or Parquet file, the record index, starting+    -- from 0, for the record that contains the sensitive data. For a JSON+    -- Lines file, the line index, starting from 0, for the line that contains+    -- the sensitive data. This value is always 0 for JSON files.+    recordIndex :: Prelude.Maybe Prelude.Integer+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Record' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'jsonPath', 'record_jsonPath' - The path, as a JSONPath expression, to the sensitive data. For an Avro+-- object container or Parquet file, this is the path to the field in the+-- record (recordIndex) that contains the data. For a JSON or JSON Lines+-- file, this is the path to the field or array that contains the data. If+-- the data is a value in an array, the path also indicates which value+-- contains the data.+--+-- If Amazon Macie detects sensitive data in the name of any element in the+-- path, Macie omits this field. If the name of an element exceeds 20+-- characters, Macie truncates the name by removing characters from the+-- beginning of the name. If the resulting full path exceeds 250+-- characters, Macie also truncates the path, starting with the first+-- element in the path, until the path contains 250 or fewer characters.+--+-- 'recordIndex', 'record_recordIndex' - For an Avro object container or Parquet file, the record index, starting+-- from 0, for the record that contains the sensitive data. For a JSON+-- Lines file, the line index, starting from 0, for the line that contains+-- the sensitive data. This value is always 0 for JSON files.+newRecord ::+  Record+newRecord =+  Record'+    { jsonPath = Prelude.Nothing,+      recordIndex = Prelude.Nothing+    }++-- | The path, as a JSONPath expression, to the sensitive data. For an Avro+-- object container or Parquet file, this is the path to the field in the+-- record (recordIndex) that contains the data. For a JSON or JSON Lines+-- file, this is the path to the field or array that contains the data. If+-- the data is a value in an array, the path also indicates which value+-- contains the data.+--+-- If Amazon Macie detects sensitive data in the name of any element in the+-- path, Macie omits this field. If the name of an element exceeds 20+-- characters, Macie truncates the name by removing characters from the+-- beginning of the name. If the resulting full path exceeds 250+-- characters, Macie also truncates the path, starting with the first+-- element in the path, until the path contains 250 or fewer characters.+record_jsonPath :: Lens.Lens' Record (Prelude.Maybe Prelude.Text)+record_jsonPath = Lens.lens (\Record' {jsonPath} -> jsonPath) (\s@Record' {} a -> s {jsonPath = a} :: Record)++-- | For an Avro object container or Parquet file, the record index, starting+-- from 0, for the record that contains the sensitive data. For a JSON+-- Lines file, the line index, starting from 0, for the line that contains+-- the sensitive data. This value is always 0 for JSON files.+record_recordIndex :: Lens.Lens' Record (Prelude.Maybe Prelude.Integer)+record_recordIndex = Lens.lens (\Record' {recordIndex} -> recordIndex) (\s@Record' {} a -> s {recordIndex = a} :: Record)++instance Data.FromJSON Record where+  parseJSON =+    Data.withObject+      "Record"+      ( \x ->+          Record'+            Prelude.<$> (x Data..:? "jsonPath")+            Prelude.<*> (x Data..:? "recordIndex")+      )++instance Prelude.Hashable Record where+  hashWithSalt _salt Record' {..} =+    _salt+      `Prelude.hashWithSalt` jsonPath+      `Prelude.hashWithSalt` recordIndex++instance Prelude.NFData Record where+  rnf Record' {..} =+    Prelude.rnf jsonPath+      `Prelude.seq` Prelude.rnf recordIndex
+ gen/Amazonka/MacieV2/Types/RelationshipStatus.hs view
@@ -0,0 +1,113 @@+{-# 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.MacieV2.Types.RelationshipStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.RelationshipStatus+  ( RelationshipStatus+      ( ..,+        RelationshipStatus_AccountSuspended,+        RelationshipStatus_Created,+        RelationshipStatus_EmailVerificationFailed,+        RelationshipStatus_EmailVerificationInProgress,+        RelationshipStatus_Enabled,+        RelationshipStatus_Invited,+        RelationshipStatus_Paused,+        RelationshipStatus_RegionDisabled,+        RelationshipStatus_Removed,+        RelationshipStatus_Resigned+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The current status of the relationship between an account and an+-- associated Amazon Macie administrator account. Possible values are:+newtype RelationshipStatus = RelationshipStatus'+  { fromRelationshipStatus ::+      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 RelationshipStatus_AccountSuspended :: RelationshipStatus+pattern RelationshipStatus_AccountSuspended = RelationshipStatus' "AccountSuspended"++pattern RelationshipStatus_Created :: RelationshipStatus+pattern RelationshipStatus_Created = RelationshipStatus' "Created"++pattern RelationshipStatus_EmailVerificationFailed :: RelationshipStatus+pattern RelationshipStatus_EmailVerificationFailed = RelationshipStatus' "EmailVerificationFailed"++pattern RelationshipStatus_EmailVerificationInProgress :: RelationshipStatus+pattern RelationshipStatus_EmailVerificationInProgress = RelationshipStatus' "EmailVerificationInProgress"++pattern RelationshipStatus_Enabled :: RelationshipStatus+pattern RelationshipStatus_Enabled = RelationshipStatus' "Enabled"++pattern RelationshipStatus_Invited :: RelationshipStatus+pattern RelationshipStatus_Invited = RelationshipStatus' "Invited"++pattern RelationshipStatus_Paused :: RelationshipStatus+pattern RelationshipStatus_Paused = RelationshipStatus' "Paused"++pattern RelationshipStatus_RegionDisabled :: RelationshipStatus+pattern RelationshipStatus_RegionDisabled = RelationshipStatus' "RegionDisabled"++pattern RelationshipStatus_Removed :: RelationshipStatus+pattern RelationshipStatus_Removed = RelationshipStatus' "Removed"++pattern RelationshipStatus_Resigned :: RelationshipStatus+pattern RelationshipStatus_Resigned = RelationshipStatus' "Resigned"++{-# COMPLETE+  RelationshipStatus_AccountSuspended,+  RelationshipStatus_Created,+  RelationshipStatus_EmailVerificationFailed,+  RelationshipStatus_EmailVerificationInProgress,+  RelationshipStatus_Enabled,+  RelationshipStatus_Invited,+  RelationshipStatus_Paused,+  RelationshipStatus_RegionDisabled,+  RelationshipStatus_Removed,+  RelationshipStatus_Resigned,+  RelationshipStatus'+  #-}
+ gen/Amazonka/MacieV2/Types/ReplicationDetails.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.MacieV2.Types.ReplicationDetails+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.ReplicationDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides information about settings that define whether one or more+-- objects in an S3 bucket are replicated to S3 buckets for other Amazon+-- Web Services accounts and, if so, which accounts.+--+-- /See:/ 'newReplicationDetails' smart constructor.+data ReplicationDetails = ReplicationDetails'+  { -- | Specifies whether the bucket is configured to replicate one or more+    -- objects to any destination.+    replicated :: Prelude.Maybe Prelude.Bool,+    -- | Specifies whether the bucket is configured to replicate one or more+    -- objects to an Amazon Web Services account that isn\'t part of the same+    -- Amazon Macie organization.+    replicatedExternally :: Prelude.Maybe Prelude.Bool,+    -- | An array of Amazon Web Services account IDs, one for each Amazon Web+    -- Services account that the bucket is configured to replicate one or more+    -- objects to.+    replicationAccounts :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ReplicationDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'replicated', 'replicationDetails_replicated' - Specifies whether the bucket is configured to replicate one or more+-- objects to any destination.+--+-- 'replicatedExternally', 'replicationDetails_replicatedExternally' - Specifies whether the bucket is configured to replicate one or more+-- objects to an Amazon Web Services account that isn\'t part of the same+-- Amazon Macie organization.+--+-- 'replicationAccounts', 'replicationDetails_replicationAccounts' - An array of Amazon Web Services account IDs, one for each Amazon Web+-- Services account that the bucket is configured to replicate one or more+-- objects to.+newReplicationDetails ::+  ReplicationDetails+newReplicationDetails =+  ReplicationDetails'+    { replicated = Prelude.Nothing,+      replicatedExternally = Prelude.Nothing,+      replicationAccounts = Prelude.Nothing+    }++-- | Specifies whether the bucket is configured to replicate one or more+-- objects to any destination.+replicationDetails_replicated :: Lens.Lens' ReplicationDetails (Prelude.Maybe Prelude.Bool)+replicationDetails_replicated = Lens.lens (\ReplicationDetails' {replicated} -> replicated) (\s@ReplicationDetails' {} a -> s {replicated = a} :: ReplicationDetails)++-- | Specifies whether the bucket is configured to replicate one or more+-- objects to an Amazon Web Services account that isn\'t part of the same+-- Amazon Macie organization.+replicationDetails_replicatedExternally :: Lens.Lens' ReplicationDetails (Prelude.Maybe Prelude.Bool)+replicationDetails_replicatedExternally = Lens.lens (\ReplicationDetails' {replicatedExternally} -> replicatedExternally) (\s@ReplicationDetails' {} a -> s {replicatedExternally = a} :: ReplicationDetails)++-- | An array of Amazon Web Services account IDs, one for each Amazon Web+-- Services account that the bucket is configured to replicate one or more+-- objects to.+replicationDetails_replicationAccounts :: Lens.Lens' ReplicationDetails (Prelude.Maybe [Prelude.Text])+replicationDetails_replicationAccounts = Lens.lens (\ReplicationDetails' {replicationAccounts} -> replicationAccounts) (\s@ReplicationDetails' {} a -> s {replicationAccounts = a} :: ReplicationDetails) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ReplicationDetails where+  parseJSON =+    Data.withObject+      "ReplicationDetails"+      ( \x ->+          ReplicationDetails'+            Prelude.<$> (x Data..:? "replicated")+            Prelude.<*> (x Data..:? "replicatedExternally")+            Prelude.<*> ( x+                            Data..:? "replicationAccounts"+                            Data..!= Prelude.mempty+                        )+      )++instance Prelude.Hashable ReplicationDetails where+  hashWithSalt _salt ReplicationDetails' {..} =+    _salt+      `Prelude.hashWithSalt` replicated+      `Prelude.hashWithSalt` replicatedExternally+      `Prelude.hashWithSalt` replicationAccounts++instance Prelude.NFData ReplicationDetails where+  rnf ReplicationDetails' {..} =+    Prelude.rnf replicated+      `Prelude.seq` Prelude.rnf replicatedExternally+      `Prelude.seq` Prelude.rnf replicationAccounts
+ gen/Amazonka/MacieV2/Types/ResourceProfileArtifact.hs view
@@ -0,0 +1,138 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.ResourceProfileArtifact+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.ResourceProfileArtifact where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides information about an S3 object that Amazon Macie selected for+-- analysis while performing automated sensitive data discovery for an S3+-- bucket, and the status and results of the analysis. This information is+-- available only if automated sensitive data discovery is currently+-- enabled for your account.+--+-- /See:/ 'newResourceProfileArtifact' smart constructor.+data ResourceProfileArtifact = ResourceProfileArtifact'+  { -- | Specifies whether Amazon Macie found sensitive data in the object.+    sensitive :: Prelude.Maybe Prelude.Bool,+    -- | The status of the analysis. Possible values are:+    --+    -- -   COMPLETE - Amazon Macie successfully completed its analysis of the+    --     object.+    --+    -- -   PARTIAL - Macie analyzed only a subset of data in the object. For+    --     example, the object is an archive file that contains files in an+    --     unsupported format.+    --+    -- -   SKIPPED - Macie wasn\'t able to analyze the object. For example, the+    --     object is a malformed file.+    classificationResultStatus :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the object.+    arn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResourceProfileArtifact' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'sensitive', 'resourceProfileArtifact_sensitive' - Specifies whether Amazon Macie found sensitive data in the object.+--+-- 'classificationResultStatus', 'resourceProfileArtifact_classificationResultStatus' - The status of the analysis. Possible values are:+--+-- -   COMPLETE - Amazon Macie successfully completed its analysis of the+--     object.+--+-- -   PARTIAL - Macie analyzed only a subset of data in the object. For+--     example, the object is an archive file that contains files in an+--     unsupported format.+--+-- -   SKIPPED - Macie wasn\'t able to analyze the object. For example, the+--     object is a malformed file.+--+-- 'arn', 'resourceProfileArtifact_arn' - The Amazon Resource Name (ARN) of the object.+newResourceProfileArtifact ::+  -- | 'classificationResultStatus'+  Prelude.Text ->+  -- | 'arn'+  Prelude.Text ->+  ResourceProfileArtifact+newResourceProfileArtifact+  pClassificationResultStatus_+  pArn_ =+    ResourceProfileArtifact'+      { sensitive =+          Prelude.Nothing,+        classificationResultStatus =+          pClassificationResultStatus_,+        arn = pArn_+      }++-- | Specifies whether Amazon Macie found sensitive data in the object.+resourceProfileArtifact_sensitive :: Lens.Lens' ResourceProfileArtifact (Prelude.Maybe Prelude.Bool)+resourceProfileArtifact_sensitive = Lens.lens (\ResourceProfileArtifact' {sensitive} -> sensitive) (\s@ResourceProfileArtifact' {} a -> s {sensitive = a} :: ResourceProfileArtifact)++-- | The status of the analysis. Possible values are:+--+-- -   COMPLETE - Amazon Macie successfully completed its analysis of the+--     object.+--+-- -   PARTIAL - Macie analyzed only a subset of data in the object. For+--     example, the object is an archive file that contains files in an+--     unsupported format.+--+-- -   SKIPPED - Macie wasn\'t able to analyze the object. For example, the+--     object is a malformed file.+resourceProfileArtifact_classificationResultStatus :: Lens.Lens' ResourceProfileArtifact Prelude.Text+resourceProfileArtifact_classificationResultStatus = Lens.lens (\ResourceProfileArtifact' {classificationResultStatus} -> classificationResultStatus) (\s@ResourceProfileArtifact' {} a -> s {classificationResultStatus = a} :: ResourceProfileArtifact)++-- | The Amazon Resource Name (ARN) of the object.+resourceProfileArtifact_arn :: Lens.Lens' ResourceProfileArtifact Prelude.Text+resourceProfileArtifact_arn = Lens.lens (\ResourceProfileArtifact' {arn} -> arn) (\s@ResourceProfileArtifact' {} a -> s {arn = a} :: ResourceProfileArtifact)++instance Data.FromJSON ResourceProfileArtifact where+  parseJSON =+    Data.withObject+      "ResourceProfileArtifact"+      ( \x ->+          ResourceProfileArtifact'+            Prelude.<$> (x Data..:? "sensitive")+            Prelude.<*> (x Data..: "classificationResultStatus")+            Prelude.<*> (x Data..: "arn")+      )++instance Prelude.Hashable ResourceProfileArtifact where+  hashWithSalt _salt ResourceProfileArtifact' {..} =+    _salt+      `Prelude.hashWithSalt` sensitive+      `Prelude.hashWithSalt` classificationResultStatus+      `Prelude.hashWithSalt` arn++instance Prelude.NFData ResourceProfileArtifact where+  rnf ResourceProfileArtifact' {..} =+    Prelude.rnf sensitive+      `Prelude.seq` Prelude.rnf classificationResultStatus+      `Prelude.seq` Prelude.rnf arn
+ gen/Amazonka/MacieV2/Types/ResourceStatistics.hs view
@@ -0,0 +1,231 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.ResourceStatistics+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.ResourceStatistics where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides statistical data for sensitive data discovery metrics that+-- apply to an S3 bucket that Amazon Macie monitors and analyzes for your+-- account. The statistics capture the results of automated sensitive data+-- discovery activities that Macie has performed for the bucket. The data+-- is available only if automated sensitive data discovery is currently+-- enabled for your account.+--+-- /See:/ 'newResourceStatistics' smart constructor.+data ResourceStatistics = ResourceStatistics'+  { -- | The total amount of data, in bytes, that Amazon Macie has analyzed in+    -- the bucket.+    totalBytesClassified :: Prelude.Maybe Prelude.Integer,+    -- | The total number of occurrences of sensitive data that Amazon Macie has+    -- found in the bucket\'s objects. This includes occurrences that are+    -- currently suppressed by the sensitivity scoring settings for the bucket+    -- (totalDetectionsSuppressed).+    totalDetections :: Prelude.Maybe Prelude.Integer,+    -- | The total number of occurrences of sensitive data that are currently+    -- suppressed by the sensitivity scoring settings for the bucket. These+    -- represent occurrences of sensitive data that Amazon Macie found in the+    -- bucket\'s objects, but the occurrences were manually suppressed. By+    -- default, suppressed occurrences are excluded from the bucket\'s+    -- sensitivity score.+    totalDetectionsSuppressed :: Prelude.Maybe Prelude.Integer,+    -- | The total number of objects that Amazon Macie has analyzed in the+    -- bucket.+    totalItemsClassified :: Prelude.Maybe Prelude.Integer,+    -- | The total number of the bucket\'s objects that Amazon Macie has found+    -- sensitive data in.+    totalItemsSensitive :: Prelude.Maybe Prelude.Integer,+    -- | The total number of objects that Amazon Macie hasn\'t analyzed in the+    -- bucket due to an error or issue. For example, the object is a malformed+    -- file. This value includes objects that Macie hasn\'t analyzed for+    -- reasons reported by other statistics in the ResourceStatistics object.+    totalItemsSkipped :: Prelude.Maybe Prelude.Integer,+    -- | The total number of objects that Amazon Macie hasn\'t analyzed in the+    -- bucket because the objects are encrypted with a key that Macie isn\'t+    -- allowed to use.+    totalItemsSkippedInvalidEncryption :: Prelude.Maybe Prelude.Integer,+    -- | The total number of objects that Amazon Macie hasn\'t analyzed in the+    -- bucket because the objects are encrypted with an KMS key that was+    -- disabled or deleted.+    totalItemsSkippedInvalidKms :: Prelude.Maybe Prelude.Integer,+    -- | The total number of objects that Amazon Macie hasn\'t analyzed in the+    -- bucket because Macie isn\'t allowed to access the objects.+    totalItemsSkippedPermissionDenied :: Prelude.Maybe Prelude.Integer+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResourceStatistics' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'totalBytesClassified', 'resourceStatistics_totalBytesClassified' - The total amount of data, in bytes, that Amazon Macie has analyzed in+-- the bucket.+--+-- 'totalDetections', 'resourceStatistics_totalDetections' - The total number of occurrences of sensitive data that Amazon Macie has+-- found in the bucket\'s objects. This includes occurrences that are+-- currently suppressed by the sensitivity scoring settings for the bucket+-- (totalDetectionsSuppressed).+--+-- 'totalDetectionsSuppressed', 'resourceStatistics_totalDetectionsSuppressed' - The total number of occurrences of sensitive data that are currently+-- suppressed by the sensitivity scoring settings for the bucket. These+-- represent occurrences of sensitive data that Amazon Macie found in the+-- bucket\'s objects, but the occurrences were manually suppressed. By+-- default, suppressed occurrences are excluded from the bucket\'s+-- sensitivity score.+--+-- 'totalItemsClassified', 'resourceStatistics_totalItemsClassified' - The total number of objects that Amazon Macie has analyzed in the+-- bucket.+--+-- 'totalItemsSensitive', 'resourceStatistics_totalItemsSensitive' - The total number of the bucket\'s objects that Amazon Macie has found+-- sensitive data in.+--+-- 'totalItemsSkipped', 'resourceStatistics_totalItemsSkipped' - The total number of objects that Amazon Macie hasn\'t analyzed in the+-- bucket due to an error or issue. For example, the object is a malformed+-- file. This value includes objects that Macie hasn\'t analyzed for+-- reasons reported by other statistics in the ResourceStatistics object.+--+-- 'totalItemsSkippedInvalidEncryption', 'resourceStatistics_totalItemsSkippedInvalidEncryption' - The total number of objects that Amazon Macie hasn\'t analyzed in the+-- bucket because the objects are encrypted with a key that Macie isn\'t+-- allowed to use.+--+-- 'totalItemsSkippedInvalidKms', 'resourceStatistics_totalItemsSkippedInvalidKms' - The total number of objects that Amazon Macie hasn\'t analyzed in the+-- bucket because the objects are encrypted with an KMS key that was+-- disabled or deleted.+--+-- 'totalItemsSkippedPermissionDenied', 'resourceStatistics_totalItemsSkippedPermissionDenied' - The total number of objects that Amazon Macie hasn\'t analyzed in the+-- bucket because Macie isn\'t allowed to access the objects.+newResourceStatistics ::+  ResourceStatistics+newResourceStatistics =+  ResourceStatistics'+    { totalBytesClassified =+        Prelude.Nothing,+      totalDetections = Prelude.Nothing,+      totalDetectionsSuppressed = Prelude.Nothing,+      totalItemsClassified = Prelude.Nothing,+      totalItemsSensitive = Prelude.Nothing,+      totalItemsSkipped = Prelude.Nothing,+      totalItemsSkippedInvalidEncryption = Prelude.Nothing,+      totalItemsSkippedInvalidKms = Prelude.Nothing,+      totalItemsSkippedPermissionDenied = Prelude.Nothing+    }++-- | The total amount of data, in bytes, that Amazon Macie has analyzed in+-- the bucket.+resourceStatistics_totalBytesClassified :: Lens.Lens' ResourceStatistics (Prelude.Maybe Prelude.Integer)+resourceStatistics_totalBytesClassified = Lens.lens (\ResourceStatistics' {totalBytesClassified} -> totalBytesClassified) (\s@ResourceStatistics' {} a -> s {totalBytesClassified = a} :: ResourceStatistics)++-- | The total number of occurrences of sensitive data that Amazon Macie has+-- found in the bucket\'s objects. This includes occurrences that are+-- currently suppressed by the sensitivity scoring settings for the bucket+-- (totalDetectionsSuppressed).+resourceStatistics_totalDetections :: Lens.Lens' ResourceStatistics (Prelude.Maybe Prelude.Integer)+resourceStatistics_totalDetections = Lens.lens (\ResourceStatistics' {totalDetections} -> totalDetections) (\s@ResourceStatistics' {} a -> s {totalDetections = a} :: ResourceStatistics)++-- | The total number of occurrences of sensitive data that are currently+-- suppressed by the sensitivity scoring settings for the bucket. These+-- represent occurrences of sensitive data that Amazon Macie found in the+-- bucket\'s objects, but the occurrences were manually suppressed. By+-- default, suppressed occurrences are excluded from the bucket\'s+-- sensitivity score.+resourceStatistics_totalDetectionsSuppressed :: Lens.Lens' ResourceStatistics (Prelude.Maybe Prelude.Integer)+resourceStatistics_totalDetectionsSuppressed = Lens.lens (\ResourceStatistics' {totalDetectionsSuppressed} -> totalDetectionsSuppressed) (\s@ResourceStatistics' {} a -> s {totalDetectionsSuppressed = a} :: ResourceStatistics)++-- | The total number of objects that Amazon Macie has analyzed in the+-- bucket.+resourceStatistics_totalItemsClassified :: Lens.Lens' ResourceStatistics (Prelude.Maybe Prelude.Integer)+resourceStatistics_totalItemsClassified = Lens.lens (\ResourceStatistics' {totalItemsClassified} -> totalItemsClassified) (\s@ResourceStatistics' {} a -> s {totalItemsClassified = a} :: ResourceStatistics)++-- | The total number of the bucket\'s objects that Amazon Macie has found+-- sensitive data in.+resourceStatistics_totalItemsSensitive :: Lens.Lens' ResourceStatistics (Prelude.Maybe Prelude.Integer)+resourceStatistics_totalItemsSensitive = Lens.lens (\ResourceStatistics' {totalItemsSensitive} -> totalItemsSensitive) (\s@ResourceStatistics' {} a -> s {totalItemsSensitive = a} :: ResourceStatistics)++-- | The total number of objects that Amazon Macie hasn\'t analyzed in the+-- bucket due to an error or issue. For example, the object is a malformed+-- file. This value includes objects that Macie hasn\'t analyzed for+-- reasons reported by other statistics in the ResourceStatistics object.+resourceStatistics_totalItemsSkipped :: Lens.Lens' ResourceStatistics (Prelude.Maybe Prelude.Integer)+resourceStatistics_totalItemsSkipped = Lens.lens (\ResourceStatistics' {totalItemsSkipped} -> totalItemsSkipped) (\s@ResourceStatistics' {} a -> s {totalItemsSkipped = a} :: ResourceStatistics)++-- | The total number of objects that Amazon Macie hasn\'t analyzed in the+-- bucket because the objects are encrypted with a key that Macie isn\'t+-- allowed to use.+resourceStatistics_totalItemsSkippedInvalidEncryption :: Lens.Lens' ResourceStatistics (Prelude.Maybe Prelude.Integer)+resourceStatistics_totalItemsSkippedInvalidEncryption = Lens.lens (\ResourceStatistics' {totalItemsSkippedInvalidEncryption} -> totalItemsSkippedInvalidEncryption) (\s@ResourceStatistics' {} a -> s {totalItemsSkippedInvalidEncryption = a} :: ResourceStatistics)++-- | The total number of objects that Amazon Macie hasn\'t analyzed in the+-- bucket because the objects are encrypted with an KMS key that was+-- disabled or deleted.+resourceStatistics_totalItemsSkippedInvalidKms :: Lens.Lens' ResourceStatistics (Prelude.Maybe Prelude.Integer)+resourceStatistics_totalItemsSkippedInvalidKms = Lens.lens (\ResourceStatistics' {totalItemsSkippedInvalidKms} -> totalItemsSkippedInvalidKms) (\s@ResourceStatistics' {} a -> s {totalItemsSkippedInvalidKms = a} :: ResourceStatistics)++-- | The total number of objects that Amazon Macie hasn\'t analyzed in the+-- bucket because Macie isn\'t allowed to access the objects.+resourceStatistics_totalItemsSkippedPermissionDenied :: Lens.Lens' ResourceStatistics (Prelude.Maybe Prelude.Integer)+resourceStatistics_totalItemsSkippedPermissionDenied = Lens.lens (\ResourceStatistics' {totalItemsSkippedPermissionDenied} -> totalItemsSkippedPermissionDenied) (\s@ResourceStatistics' {} a -> s {totalItemsSkippedPermissionDenied = a} :: ResourceStatistics)++instance Data.FromJSON ResourceStatistics where+  parseJSON =+    Data.withObject+      "ResourceStatistics"+      ( \x ->+          ResourceStatistics'+            Prelude.<$> (x Data..:? "totalBytesClassified")+            Prelude.<*> (x Data..:? "totalDetections")+            Prelude.<*> (x Data..:? "totalDetectionsSuppressed")+            Prelude.<*> (x Data..:? "totalItemsClassified")+            Prelude.<*> (x Data..:? "totalItemsSensitive")+            Prelude.<*> (x Data..:? "totalItemsSkipped")+            Prelude.<*> (x Data..:? "totalItemsSkippedInvalidEncryption")+            Prelude.<*> (x Data..:? "totalItemsSkippedInvalidKms")+            Prelude.<*> (x Data..:? "totalItemsSkippedPermissionDenied")+      )++instance Prelude.Hashable ResourceStatistics where+  hashWithSalt _salt ResourceStatistics' {..} =+    _salt+      `Prelude.hashWithSalt` totalBytesClassified+      `Prelude.hashWithSalt` totalDetections+      `Prelude.hashWithSalt` totalDetectionsSuppressed+      `Prelude.hashWithSalt` totalItemsClassified+      `Prelude.hashWithSalt` totalItemsSensitive+      `Prelude.hashWithSalt` totalItemsSkipped+      `Prelude.hashWithSalt` totalItemsSkippedInvalidEncryption+      `Prelude.hashWithSalt` totalItemsSkippedInvalidKms+      `Prelude.hashWithSalt` totalItemsSkippedPermissionDenied++instance Prelude.NFData ResourceStatistics where+  rnf ResourceStatistics' {..} =+    Prelude.rnf totalBytesClassified+      `Prelude.seq` Prelude.rnf totalDetections+      `Prelude.seq` Prelude.rnf totalDetectionsSuppressed+      `Prelude.seq` Prelude.rnf totalItemsClassified+      `Prelude.seq` Prelude.rnf totalItemsSensitive+      `Prelude.seq` Prelude.rnf totalItemsSkipped+      `Prelude.seq` Prelude.rnf totalItemsSkippedInvalidEncryption+      `Prelude.seq` Prelude.rnf totalItemsSkippedInvalidKms+      `Prelude.seq` Prelude.rnf totalItemsSkippedPermissionDenied
+ gen/Amazonka/MacieV2/Types/ResourcesAffected.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.ResourcesAffected+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.ResourcesAffected where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.S3Bucket+import Amazonka.MacieV2.Types.S3Object+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the resources that a finding applies to.+--+-- /See:/ 'newResourcesAffected' smart constructor.+data ResourcesAffected = ResourcesAffected'+  { -- | The details of the S3 bucket that the finding applies to.+    s3Bucket :: Prelude.Maybe S3Bucket,+    -- | The details of the S3 object that the finding applies to.+    s3Object :: Prelude.Maybe S3Object+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResourcesAffected' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 's3Bucket', 'resourcesAffected_s3Bucket' - The details of the S3 bucket that the finding applies to.+--+-- 's3Object', 'resourcesAffected_s3Object' - The details of the S3 object that the finding applies to.+newResourcesAffected ::+  ResourcesAffected+newResourcesAffected =+  ResourcesAffected'+    { s3Bucket = Prelude.Nothing,+      s3Object = Prelude.Nothing+    }++-- | The details of the S3 bucket that the finding applies to.+resourcesAffected_s3Bucket :: Lens.Lens' ResourcesAffected (Prelude.Maybe S3Bucket)+resourcesAffected_s3Bucket = Lens.lens (\ResourcesAffected' {s3Bucket} -> s3Bucket) (\s@ResourcesAffected' {} a -> s {s3Bucket = a} :: ResourcesAffected)++-- | The details of the S3 object that the finding applies to.+resourcesAffected_s3Object :: Lens.Lens' ResourcesAffected (Prelude.Maybe S3Object)+resourcesAffected_s3Object = Lens.lens (\ResourcesAffected' {s3Object} -> s3Object) (\s@ResourcesAffected' {} a -> s {s3Object = a} :: ResourcesAffected)++instance Data.FromJSON ResourcesAffected where+  parseJSON =+    Data.withObject+      "ResourcesAffected"+      ( \x ->+          ResourcesAffected'+            Prelude.<$> (x Data..:? "s3Bucket")+            Prelude.<*> (x Data..:? "s3Object")+      )++instance Prelude.Hashable ResourcesAffected where+  hashWithSalt _salt ResourcesAffected' {..} =+    _salt+      `Prelude.hashWithSalt` s3Bucket+      `Prelude.hashWithSalt` s3Object++instance Prelude.NFData ResourcesAffected where+  rnf ResourcesAffected' {..} =+    Prelude.rnf s3Bucket+      `Prelude.seq` Prelude.rnf s3Object
+ gen/Amazonka/MacieV2/Types/RevealConfiguration.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.MacieV2.Types.RevealConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.RevealConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.RevealStatus+import qualified Amazonka.Prelude as Prelude++-- | Specifies the configuration settings for retrieving occurrences of+-- sensitive data reported by findings, and the status of the configuration+-- for an Amazon Macie account. When you enable the configuration for the+-- first time, your request must specify an Key Management Service (KMS)+-- key. Otherwise, an error occurs. Macie uses the specified key to encrypt+-- the sensitive data that you retrieve.+--+-- /See:/ 'newRevealConfiguration' smart constructor.+data RevealConfiguration = RevealConfiguration'+  { -- | The Amazon Resource Name (ARN), ID, or alias of the KMS key to use to+    -- encrypt sensitive data that\'s retrieved. The key must be an existing,+    -- customer managed, symmetric encryption key that\'s in the same Amazon+    -- Web Services Region as the Amazon Macie account.+    --+    -- If this value specifies an alias, it must include the following prefix:+    -- alias\/. If this value specifies a key that\'s owned by another Amazon+    -- Web Services account, it must specify the ARN of the key or the ARN of+    -- the key\'s alias.+    kmsKeyId :: Prelude.Maybe Prelude.Text,+    -- | The status of the configuration for the Amazon Macie account. In a+    -- request, valid values are: ENABLED, enable the configuration for the+    -- account; and, DISABLED, disable the configuration for the account. In a+    -- response, possible values are: ENABLED, the configuration is currently+    -- enabled for the account; and, DISABLED, the configuration is currently+    -- disabled for the account.+    status :: RevealStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RevealConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'kmsKeyId', 'revealConfiguration_kmsKeyId' - The Amazon Resource Name (ARN), ID, or alias of the KMS key to use to+-- encrypt sensitive data that\'s retrieved. The key must be an existing,+-- customer managed, symmetric encryption key that\'s in the same Amazon+-- Web Services Region as the Amazon Macie account.+--+-- If this value specifies an alias, it must include the following prefix:+-- alias\/. If this value specifies a key that\'s owned by another Amazon+-- Web Services account, it must specify the ARN of the key or the ARN of+-- the key\'s alias.+--+-- 'status', 'revealConfiguration_status' - The status of the configuration for the Amazon Macie account. In a+-- request, valid values are: ENABLED, enable the configuration for the+-- account; and, DISABLED, disable the configuration for the account. In a+-- response, possible values are: ENABLED, the configuration is currently+-- enabled for the account; and, DISABLED, the configuration is currently+-- disabled for the account.+newRevealConfiguration ::+  -- | 'status'+  RevealStatus ->+  RevealConfiguration+newRevealConfiguration pStatus_ =+  RevealConfiguration'+    { kmsKeyId = Prelude.Nothing,+      status = pStatus_+    }++-- | The Amazon Resource Name (ARN), ID, or alias of the KMS key to use to+-- encrypt sensitive data that\'s retrieved. The key must be an existing,+-- customer managed, symmetric encryption key that\'s in the same Amazon+-- Web Services Region as the Amazon Macie account.+--+-- If this value specifies an alias, it must include the following prefix:+-- alias\/. If this value specifies a key that\'s owned by another Amazon+-- Web Services account, it must specify the ARN of the key or the ARN of+-- the key\'s alias.+revealConfiguration_kmsKeyId :: Lens.Lens' RevealConfiguration (Prelude.Maybe Prelude.Text)+revealConfiguration_kmsKeyId = Lens.lens (\RevealConfiguration' {kmsKeyId} -> kmsKeyId) (\s@RevealConfiguration' {} a -> s {kmsKeyId = a} :: RevealConfiguration)++-- | The status of the configuration for the Amazon Macie account. In a+-- request, valid values are: ENABLED, enable the configuration for the+-- account; and, DISABLED, disable the configuration for the account. In a+-- response, possible values are: ENABLED, the configuration is currently+-- enabled for the account; and, DISABLED, the configuration is currently+-- disabled for the account.+revealConfiguration_status :: Lens.Lens' RevealConfiguration RevealStatus+revealConfiguration_status = Lens.lens (\RevealConfiguration' {status} -> status) (\s@RevealConfiguration' {} a -> s {status = a} :: RevealConfiguration)++instance Data.FromJSON RevealConfiguration where+  parseJSON =+    Data.withObject+      "RevealConfiguration"+      ( \x ->+          RevealConfiguration'+            Prelude.<$> (x Data..:? "kmsKeyId")+            Prelude.<*> (x Data..: "status")+      )++instance Prelude.Hashable RevealConfiguration where+  hashWithSalt _salt RevealConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` kmsKeyId+      `Prelude.hashWithSalt` status++instance Prelude.NFData RevealConfiguration where+  rnf RevealConfiguration' {..} =+    Prelude.rnf kmsKeyId+      `Prelude.seq` Prelude.rnf status++instance Data.ToJSON RevealConfiguration where+  toJSON RevealConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("kmsKeyId" Data..=) Prelude.<$> kmsKeyId,+            Prelude.Just ("status" Data..= status)+          ]+      )
+ gen/Amazonka/MacieV2/Types/RevealRequestStatus.hs view
@@ -0,0 +1,78 @@+{-# 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.MacieV2.Types.RevealRequestStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.RevealRequestStatus+  ( RevealRequestStatus+      ( ..,+        RevealRequestStatus_ERROR,+        RevealRequestStatus_PROCESSING,+        RevealRequestStatus_SUCCESS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The status of a request to retrieve occurrences of sensitive data+-- reported by a finding. Possible values are:+newtype RevealRequestStatus = RevealRequestStatus'+  { fromRevealRequestStatus ::+      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 RevealRequestStatus_ERROR :: RevealRequestStatus+pattern RevealRequestStatus_ERROR = RevealRequestStatus' "ERROR"++pattern RevealRequestStatus_PROCESSING :: RevealRequestStatus+pattern RevealRequestStatus_PROCESSING = RevealRequestStatus' "PROCESSING"++pattern RevealRequestStatus_SUCCESS :: RevealRequestStatus+pattern RevealRequestStatus_SUCCESS = RevealRequestStatus' "SUCCESS"++{-# COMPLETE+  RevealRequestStatus_ERROR,+  RevealRequestStatus_PROCESSING,+  RevealRequestStatus_SUCCESS,+  RevealRequestStatus'+  #-}
+ gen/Amazonka/MacieV2/Types/RevealStatus.hs view
@@ -0,0 +1,73 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.RevealStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.RevealStatus+  ( RevealStatus+      ( ..,+        RevealStatus_DISABLED,+        RevealStatus_ENABLED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The status of the configuration for retrieving occurrences of sensitive+-- data reported by findings. Valid values are:+newtype RevealStatus = RevealStatus'+  { fromRevealStatus ::+      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 RevealStatus_DISABLED :: RevealStatus+pattern RevealStatus_DISABLED = RevealStatus' "DISABLED"++pattern RevealStatus_ENABLED :: RevealStatus+pattern RevealStatus_ENABLED = RevealStatus' "ENABLED"++{-# COMPLETE+  RevealStatus_DISABLED,+  RevealStatus_ENABLED,+  RevealStatus'+  #-}
+ gen/Amazonka/MacieV2/Types/S3Bucket.hs view
@@ -0,0 +1,228 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.S3Bucket+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.S3Bucket where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.AllowsUnencryptedObjectUploads+import Amazonka.MacieV2.Types.BucketPublicAccess+import Amazonka.MacieV2.Types.KeyValuePair+import Amazonka.MacieV2.Types.S3BucketOwner+import Amazonka.MacieV2.Types.ServerSideEncryption+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the S3 bucket that a finding applies to.+--+-- /See:/ 'newS3Bucket' smart constructor.+data S3Bucket = S3Bucket'+  { -- | Specifies whether the bucket policy for the bucket requires server-side+    -- encryption of objects when objects are uploaded to the bucket. Possible+    -- values are:+    --+    -- -   FALSE - The bucket policy requires server-side encryption of new+    --     objects. PutObject requests must include a valid server-side+    --     encryption header.+    --+    -- -   TRUE - The bucket doesn\'t have a bucket policy or it has a bucket+    --     policy that doesn\'t require server-side encryption of new objects.+    --     If a bucket policy exists, it doesn\'t require PutObject requests to+    --     include a valid server-side encryption header.+    --+    -- -   UNKNOWN - Amazon Macie can\'t determine whether the bucket policy+    --     requires server-side encryption of new objects.+    --+    -- Valid server-side encryption headers are: x-amz-server-side-encryption+    -- with a value of AES256 or aws:kms, and+    -- x-amz-server-side-encryption-customer-algorithm with a value of AES256.+    allowsUnencryptedObjectUploads :: Prelude.Maybe AllowsUnencryptedObjectUploads,+    -- | The Amazon Resource Name (ARN) of the bucket.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The date and time, in UTC and extended ISO 8601 format, when the bucket+    -- was created.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | The type of server-side encryption that\'s used by default to encrypt+    -- objects in the bucket.+    defaultServerSideEncryption :: Prelude.Maybe ServerSideEncryption,+    -- | The name of the bucket.+    name :: Prelude.Maybe Prelude.Text,+    -- | The display name and canonical user ID for the Amazon Web Services+    -- account that owns the bucket.+    owner :: Prelude.Maybe S3BucketOwner,+    -- | The permissions settings that determine whether the bucket is publicly+    -- accessible.+    publicAccess :: Prelude.Maybe BucketPublicAccess,+    -- | The tags that are associated with the bucket.+    tags :: Prelude.Maybe [KeyValuePair]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3Bucket' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'allowsUnencryptedObjectUploads', 's3Bucket_allowsUnencryptedObjectUploads' - Specifies whether the bucket policy for the bucket requires server-side+-- encryption of objects when objects are uploaded to the bucket. Possible+-- values are:+--+-- -   FALSE - The bucket policy requires server-side encryption of new+--     objects. PutObject requests must include a valid server-side+--     encryption header.+--+-- -   TRUE - The bucket doesn\'t have a bucket policy or it has a bucket+--     policy that doesn\'t require server-side encryption of new objects.+--     If a bucket policy exists, it doesn\'t require PutObject requests to+--     include a valid server-side encryption header.+--+-- -   UNKNOWN - Amazon Macie can\'t determine whether the bucket policy+--     requires server-side encryption of new objects.+--+-- Valid server-side encryption headers are: x-amz-server-side-encryption+-- with a value of AES256 or aws:kms, and+-- x-amz-server-side-encryption-customer-algorithm with a value of AES256.+--+-- 'arn', 's3Bucket_arn' - The Amazon Resource Name (ARN) of the bucket.+--+-- 'createdAt', 's3Bucket_createdAt' - The date and time, in UTC and extended ISO 8601 format, when the bucket+-- was created.+--+-- 'defaultServerSideEncryption', 's3Bucket_defaultServerSideEncryption' - The type of server-side encryption that\'s used by default to encrypt+-- objects in the bucket.+--+-- 'name', 's3Bucket_name' - The name of the bucket.+--+-- 'owner', 's3Bucket_owner' - The display name and canonical user ID for the Amazon Web Services+-- account that owns the bucket.+--+-- 'publicAccess', 's3Bucket_publicAccess' - The permissions settings that determine whether the bucket is publicly+-- accessible.+--+-- 'tags', 's3Bucket_tags' - The tags that are associated with the bucket.+newS3Bucket ::+  S3Bucket+newS3Bucket =+  S3Bucket'+    { allowsUnencryptedObjectUploads =+        Prelude.Nothing,+      arn = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      defaultServerSideEncryption = Prelude.Nothing,+      name = Prelude.Nothing,+      owner = Prelude.Nothing,+      publicAccess = Prelude.Nothing,+      tags = Prelude.Nothing+    }++-- | Specifies whether the bucket policy for the bucket requires server-side+-- encryption of objects when objects are uploaded to the bucket. Possible+-- values are:+--+-- -   FALSE - The bucket policy requires server-side encryption of new+--     objects. PutObject requests must include a valid server-side+--     encryption header.+--+-- -   TRUE - The bucket doesn\'t have a bucket policy or it has a bucket+--     policy that doesn\'t require server-side encryption of new objects.+--     If a bucket policy exists, it doesn\'t require PutObject requests to+--     include a valid server-side encryption header.+--+-- -   UNKNOWN - Amazon Macie can\'t determine whether the bucket policy+--     requires server-side encryption of new objects.+--+-- Valid server-side encryption headers are: x-amz-server-side-encryption+-- with a value of AES256 or aws:kms, and+-- x-amz-server-side-encryption-customer-algorithm with a value of AES256.+s3Bucket_allowsUnencryptedObjectUploads :: Lens.Lens' S3Bucket (Prelude.Maybe AllowsUnencryptedObjectUploads)+s3Bucket_allowsUnencryptedObjectUploads = Lens.lens (\S3Bucket' {allowsUnencryptedObjectUploads} -> allowsUnencryptedObjectUploads) (\s@S3Bucket' {} a -> s {allowsUnencryptedObjectUploads = a} :: S3Bucket)++-- | The Amazon Resource Name (ARN) of the bucket.+s3Bucket_arn :: Lens.Lens' S3Bucket (Prelude.Maybe Prelude.Text)+s3Bucket_arn = Lens.lens (\S3Bucket' {arn} -> arn) (\s@S3Bucket' {} a -> s {arn = a} :: S3Bucket)++-- | The date and time, in UTC and extended ISO 8601 format, when the bucket+-- was created.+s3Bucket_createdAt :: Lens.Lens' S3Bucket (Prelude.Maybe Prelude.UTCTime)+s3Bucket_createdAt = Lens.lens (\S3Bucket' {createdAt} -> createdAt) (\s@S3Bucket' {} a -> s {createdAt = a} :: S3Bucket) Prelude.. Lens.mapping Data._Time++-- | The type of server-side encryption that\'s used by default to encrypt+-- objects in the bucket.+s3Bucket_defaultServerSideEncryption :: Lens.Lens' S3Bucket (Prelude.Maybe ServerSideEncryption)+s3Bucket_defaultServerSideEncryption = Lens.lens (\S3Bucket' {defaultServerSideEncryption} -> defaultServerSideEncryption) (\s@S3Bucket' {} a -> s {defaultServerSideEncryption = a} :: S3Bucket)++-- | The name of the bucket.+s3Bucket_name :: Lens.Lens' S3Bucket (Prelude.Maybe Prelude.Text)+s3Bucket_name = Lens.lens (\S3Bucket' {name} -> name) (\s@S3Bucket' {} a -> s {name = a} :: S3Bucket)++-- | The display name and canonical user ID for the Amazon Web Services+-- account that owns the bucket.+s3Bucket_owner :: Lens.Lens' S3Bucket (Prelude.Maybe S3BucketOwner)+s3Bucket_owner = Lens.lens (\S3Bucket' {owner} -> owner) (\s@S3Bucket' {} a -> s {owner = a} :: S3Bucket)++-- | The permissions settings that determine whether the bucket is publicly+-- accessible.+s3Bucket_publicAccess :: Lens.Lens' S3Bucket (Prelude.Maybe BucketPublicAccess)+s3Bucket_publicAccess = Lens.lens (\S3Bucket' {publicAccess} -> publicAccess) (\s@S3Bucket' {} a -> s {publicAccess = a} :: S3Bucket)++-- | The tags that are associated with the bucket.+s3Bucket_tags :: Lens.Lens' S3Bucket (Prelude.Maybe [KeyValuePair])+s3Bucket_tags = Lens.lens (\S3Bucket' {tags} -> tags) (\s@S3Bucket' {} a -> s {tags = a} :: S3Bucket) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON S3Bucket where+  parseJSON =+    Data.withObject+      "S3Bucket"+      ( \x ->+          S3Bucket'+            Prelude.<$> (x Data..:? "allowsUnencryptedObjectUploads")+            Prelude.<*> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "createdAt")+            Prelude.<*> (x Data..:? "defaultServerSideEncryption")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "owner")+            Prelude.<*> (x Data..:? "publicAccess")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable S3Bucket where+  hashWithSalt _salt S3Bucket' {..} =+    _salt+      `Prelude.hashWithSalt` allowsUnencryptedObjectUploads+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` defaultServerSideEncryption+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` owner+      `Prelude.hashWithSalt` publicAccess+      `Prelude.hashWithSalt` tags++instance Prelude.NFData S3Bucket where+  rnf S3Bucket' {..} =+    Prelude.rnf allowsUnencryptedObjectUploads+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf defaultServerSideEncryption+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf owner+      `Prelude.seq` Prelude.rnf publicAccess+      `Prelude.seq` Prelude.rnf tags
+ gen/Amazonka/MacieV2/Types/S3BucketCriteriaForJob.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.MacieV2.Types.S3BucketCriteriaForJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.S3BucketCriteriaForJob where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.CriteriaBlockForJob+import qualified Amazonka.Prelude as Prelude++-- | Specifies property- and tag-based conditions that define criteria for+-- including or excluding S3 buckets from a classification job. Exclude+-- conditions take precedence over include conditions.+--+-- /See:/ 'newS3BucketCriteriaForJob' smart constructor.+data S3BucketCriteriaForJob = S3BucketCriteriaForJob'+  { -- | The property- and tag-based conditions that determine which buckets to+    -- exclude from the job.+    excludes :: Prelude.Maybe CriteriaBlockForJob,+    -- | The property- and tag-based conditions that determine which buckets to+    -- include in the job.+    includes :: Prelude.Maybe CriteriaBlockForJob+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3BucketCriteriaForJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'excludes', 's3BucketCriteriaForJob_excludes' - The property- and tag-based conditions that determine which buckets to+-- exclude from the job.+--+-- 'includes', 's3BucketCriteriaForJob_includes' - The property- and tag-based conditions that determine which buckets to+-- include in the job.+newS3BucketCriteriaForJob ::+  S3BucketCriteriaForJob+newS3BucketCriteriaForJob =+  S3BucketCriteriaForJob'+    { excludes = Prelude.Nothing,+      includes = Prelude.Nothing+    }++-- | The property- and tag-based conditions that determine which buckets to+-- exclude from the job.+s3BucketCriteriaForJob_excludes :: Lens.Lens' S3BucketCriteriaForJob (Prelude.Maybe CriteriaBlockForJob)+s3BucketCriteriaForJob_excludes = Lens.lens (\S3BucketCriteriaForJob' {excludes} -> excludes) (\s@S3BucketCriteriaForJob' {} a -> s {excludes = a} :: S3BucketCriteriaForJob)++-- | The property- and tag-based conditions that determine which buckets to+-- include in the job.+s3BucketCriteriaForJob_includes :: Lens.Lens' S3BucketCriteriaForJob (Prelude.Maybe CriteriaBlockForJob)+s3BucketCriteriaForJob_includes = Lens.lens (\S3BucketCriteriaForJob' {includes} -> includes) (\s@S3BucketCriteriaForJob' {} a -> s {includes = a} :: S3BucketCriteriaForJob)++instance Data.FromJSON S3BucketCriteriaForJob where+  parseJSON =+    Data.withObject+      "S3BucketCriteriaForJob"+      ( \x ->+          S3BucketCriteriaForJob'+            Prelude.<$> (x Data..:? "excludes")+            Prelude.<*> (x Data..:? "includes")+      )++instance Prelude.Hashable S3BucketCriteriaForJob where+  hashWithSalt _salt S3BucketCriteriaForJob' {..} =+    _salt+      `Prelude.hashWithSalt` excludes+      `Prelude.hashWithSalt` includes++instance Prelude.NFData S3BucketCriteriaForJob where+  rnf S3BucketCriteriaForJob' {..} =+    Prelude.rnf excludes+      `Prelude.seq` Prelude.rnf includes++instance Data.ToJSON S3BucketCriteriaForJob where+  toJSON S3BucketCriteriaForJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("excludes" Data..=) Prelude.<$> excludes,+            ("includes" Data..=) Prelude.<$> includes+          ]+      )
+ gen/Amazonka/MacieV2/Types/S3BucketDefinitionForJob.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.MacieV2.Types.S3BucketDefinitionForJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.S3BucketDefinitionForJob 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++-- | Specifies an Amazon Web Services account that owns S3 buckets for a+-- classification job to analyze, and one or more specific buckets to+-- analyze for that account.+--+-- /See:/ 'newS3BucketDefinitionForJob' smart constructor.+data S3BucketDefinitionForJob = S3BucketDefinitionForJob'+  { -- | The unique identifier for the Amazon Web Services account that owns the+    -- buckets.+    accountId :: Prelude.Text,+    -- | An array that lists the names of the buckets.+    buckets :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3BucketDefinitionForJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 's3BucketDefinitionForJob_accountId' - The unique identifier for the Amazon Web Services account that owns the+-- buckets.+--+-- 'buckets', 's3BucketDefinitionForJob_buckets' - An array that lists the names of the buckets.+newS3BucketDefinitionForJob ::+  -- | 'accountId'+  Prelude.Text ->+  S3BucketDefinitionForJob+newS3BucketDefinitionForJob pAccountId_ =+  S3BucketDefinitionForJob'+    { accountId = pAccountId_,+      buckets = Prelude.mempty+    }++-- | The unique identifier for the Amazon Web Services account that owns the+-- buckets.+s3BucketDefinitionForJob_accountId :: Lens.Lens' S3BucketDefinitionForJob Prelude.Text+s3BucketDefinitionForJob_accountId = Lens.lens (\S3BucketDefinitionForJob' {accountId} -> accountId) (\s@S3BucketDefinitionForJob' {} a -> s {accountId = a} :: S3BucketDefinitionForJob)++-- | An array that lists the names of the buckets.+s3BucketDefinitionForJob_buckets :: Lens.Lens' S3BucketDefinitionForJob [Prelude.Text]+s3BucketDefinitionForJob_buckets = Lens.lens (\S3BucketDefinitionForJob' {buckets} -> buckets) (\s@S3BucketDefinitionForJob' {} a -> s {buckets = a} :: S3BucketDefinitionForJob) Prelude.. Lens.coerced++instance Data.FromJSON S3BucketDefinitionForJob where+  parseJSON =+    Data.withObject+      "S3BucketDefinitionForJob"+      ( \x ->+          S3BucketDefinitionForJob'+            Prelude.<$> (x Data..: "accountId")+            Prelude.<*> (x Data..:? "buckets" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable S3BucketDefinitionForJob where+  hashWithSalt _salt S3BucketDefinitionForJob' {..} =+    _salt+      `Prelude.hashWithSalt` accountId+      `Prelude.hashWithSalt` buckets++instance Prelude.NFData S3BucketDefinitionForJob where+  rnf S3BucketDefinitionForJob' {..} =+    Prelude.rnf accountId+      `Prelude.seq` Prelude.rnf buckets++instance Data.ToJSON S3BucketDefinitionForJob where+  toJSON S3BucketDefinitionForJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("accountId" Data..= accountId),+            Prelude.Just ("buckets" Data..= buckets)+          ]+      )
+ gen/Amazonka/MacieV2/Types/S3BucketOwner.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.MacieV2.Types.S3BucketOwner+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.S3BucketOwner where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the Amazon Web Services account that owns an+-- S3 bucket.+--+-- /See:/ 'newS3BucketOwner' smart constructor.+data S3BucketOwner = S3BucketOwner'+  { -- | The display name of the account that owns the bucket.+    displayName :: Prelude.Maybe Prelude.Text,+    -- | The canonical user ID for the account that owns the bucket.+    id :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3BucketOwner' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'displayName', 's3BucketOwner_displayName' - The display name of the account that owns the bucket.+--+-- 'id', 's3BucketOwner_id' - The canonical user ID for the account that owns the bucket.+newS3BucketOwner ::+  S3BucketOwner+newS3BucketOwner =+  S3BucketOwner'+    { displayName = Prelude.Nothing,+      id = Prelude.Nothing+    }++-- | The display name of the account that owns the bucket.+s3BucketOwner_displayName :: Lens.Lens' S3BucketOwner (Prelude.Maybe Prelude.Text)+s3BucketOwner_displayName = Lens.lens (\S3BucketOwner' {displayName} -> displayName) (\s@S3BucketOwner' {} a -> s {displayName = a} :: S3BucketOwner)++-- | The canonical user ID for the account that owns the bucket.+s3BucketOwner_id :: Lens.Lens' S3BucketOwner (Prelude.Maybe Prelude.Text)+s3BucketOwner_id = Lens.lens (\S3BucketOwner' {id} -> id) (\s@S3BucketOwner' {} a -> s {id = a} :: S3BucketOwner)++instance Data.FromJSON S3BucketOwner where+  parseJSON =+    Data.withObject+      "S3BucketOwner"+      ( \x ->+          S3BucketOwner'+            Prelude.<$> (x Data..:? "displayName")+            Prelude.<*> (x Data..:? "id")+      )++instance Prelude.Hashable S3BucketOwner where+  hashWithSalt _salt S3BucketOwner' {..} =+    _salt+      `Prelude.hashWithSalt` displayName+      `Prelude.hashWithSalt` id++instance Prelude.NFData S3BucketOwner where+  rnf S3BucketOwner' {..} =+    Prelude.rnf displayName+      `Prelude.seq` Prelude.rnf id
+ gen/Amazonka/MacieV2/Types/S3ClassificationScope.hs view
@@ -0,0 +1,72 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.S3ClassificationScope+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.S3ClassificationScope where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.S3ClassificationScopeExclusion+import qualified Amazonka.Prelude as Prelude++-- | Specifies the S3 buckets that are excluded from automated sensitive data+-- discovery for an Amazon Macie account.+--+-- /See:/ 'newS3ClassificationScope' smart constructor.+data S3ClassificationScope = S3ClassificationScope'+  { -- | The S3 buckets that are excluded.+    excludes :: S3ClassificationScopeExclusion+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3ClassificationScope' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'excludes', 's3ClassificationScope_excludes' - The S3 buckets that are excluded.+newS3ClassificationScope ::+  -- | 'excludes'+  S3ClassificationScopeExclusion ->+  S3ClassificationScope+newS3ClassificationScope pExcludes_ =+  S3ClassificationScope' {excludes = pExcludes_}++-- | The S3 buckets that are excluded.+s3ClassificationScope_excludes :: Lens.Lens' S3ClassificationScope S3ClassificationScopeExclusion+s3ClassificationScope_excludes = Lens.lens (\S3ClassificationScope' {excludes} -> excludes) (\s@S3ClassificationScope' {} a -> s {excludes = a} :: S3ClassificationScope)++instance Data.FromJSON S3ClassificationScope where+  parseJSON =+    Data.withObject+      "S3ClassificationScope"+      ( \x ->+          S3ClassificationScope'+            Prelude.<$> (x Data..: "excludes")+      )++instance Prelude.Hashable S3ClassificationScope where+  hashWithSalt _salt S3ClassificationScope' {..} =+    _salt `Prelude.hashWithSalt` excludes++instance Prelude.NFData S3ClassificationScope where+  rnf S3ClassificationScope' {..} = Prelude.rnf excludes
+ gen/Amazonka/MacieV2/Types/S3ClassificationScopeExclusion.hs view
@@ -0,0 +1,84 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.S3ClassificationScopeExclusion+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.S3ClassificationScopeExclusion 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++-- | Specifies the names of the S3 buckets that are excluded from automated+-- sensitive data discovery.+--+-- /See:/ 'newS3ClassificationScopeExclusion' smart constructor.+data S3ClassificationScopeExclusion = S3ClassificationScopeExclusion'+  { -- | An array of strings, one for each S3 bucket that is excluded. Each+    -- string is the full name of an excluded bucket.+    bucketNames :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3ClassificationScopeExclusion' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'bucketNames', 's3ClassificationScopeExclusion_bucketNames' - An array of strings, one for each S3 bucket that is excluded. Each+-- string is the full name of an excluded bucket.+newS3ClassificationScopeExclusion ::+  S3ClassificationScopeExclusion+newS3ClassificationScopeExclusion =+  S3ClassificationScopeExclusion'+    { bucketNames =+        Prelude.mempty+    }++-- | An array of strings, one for each S3 bucket that is excluded. Each+-- string is the full name of an excluded bucket.+s3ClassificationScopeExclusion_bucketNames :: Lens.Lens' S3ClassificationScopeExclusion [Prelude.Text]+s3ClassificationScopeExclusion_bucketNames = Lens.lens (\S3ClassificationScopeExclusion' {bucketNames} -> bucketNames) (\s@S3ClassificationScopeExclusion' {} a -> s {bucketNames = a} :: S3ClassificationScopeExclusion) Prelude.. Lens.coerced++instance Data.FromJSON S3ClassificationScopeExclusion where+  parseJSON =+    Data.withObject+      "S3ClassificationScopeExclusion"+      ( \x ->+          S3ClassificationScopeExclusion'+            Prelude.<$> (x Data..:? "bucketNames" Data..!= Prelude.mempty)+      )++instance+  Prelude.Hashable+    S3ClassificationScopeExclusion+  where+  hashWithSalt+    _salt+    S3ClassificationScopeExclusion' {..} =+      _salt `Prelude.hashWithSalt` bucketNames++instance+  Prelude.NFData+    S3ClassificationScopeExclusion+  where+  rnf S3ClassificationScopeExclusion' {..} =+    Prelude.rnf bucketNames
+ gen/Amazonka/MacieV2/Types/S3ClassificationScopeExclusionUpdate.hs view
@@ -0,0 +1,141 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.S3ClassificationScopeExclusionUpdate+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.S3ClassificationScopeExclusionUpdate where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.ClassificationScopeUpdateOperation+import qualified Amazonka.Prelude as Prelude++-- | Specifies S3 buckets to add or remove from the exclusion list defined by+-- the classification scope for an Amazon Macie account.+--+-- /See:/ 'newS3ClassificationScopeExclusionUpdate' smart constructor.+data S3ClassificationScopeExclusionUpdate = S3ClassificationScopeExclusionUpdate'+  { -- | Depending on the value specified for the update operation+    -- (ClassificationScopeUpdateOperation), an array of strings that: lists+    -- the names of buckets to add or remove from the list, or specifies a new+    -- set of bucket names that overwrites all existing names in the list. Each+    -- string must be the full name of an S3 bucket. Values are case sensitive.+    bucketNames :: [Prelude.Text],+    -- | Specifies how to apply the changes to the exclusion list. Valid values+    -- are:+    --+    -- -   ADD - Append the specified bucket names to the current list.+    --+    -- -   REMOVE - Remove the specified bucket names from the current list.+    --+    -- -   REPLACE - Overwrite the current list with the specified list of+    --     bucket names. If you specify this value, Amazon Macie removes all+    --     existing names from the list and adds all the specified names to the+    --     list.+    operation :: ClassificationScopeUpdateOperation+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3ClassificationScopeExclusionUpdate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'bucketNames', 's3ClassificationScopeExclusionUpdate_bucketNames' - Depending on the value specified for the update operation+-- (ClassificationScopeUpdateOperation), an array of strings that: lists+-- the names of buckets to add or remove from the list, or specifies a new+-- set of bucket names that overwrites all existing names in the list. Each+-- string must be the full name of an S3 bucket. Values are case sensitive.+--+-- 'operation', 's3ClassificationScopeExclusionUpdate_operation' - Specifies how to apply the changes to the exclusion list. Valid values+-- are:+--+-- -   ADD - Append the specified bucket names to the current list.+--+-- -   REMOVE - Remove the specified bucket names from the current list.+--+-- -   REPLACE - Overwrite the current list with the specified list of+--     bucket names. If you specify this value, Amazon Macie removes all+--     existing names from the list and adds all the specified names to the+--     list.+newS3ClassificationScopeExclusionUpdate ::+  -- | 'operation'+  ClassificationScopeUpdateOperation ->+  S3ClassificationScopeExclusionUpdate+newS3ClassificationScopeExclusionUpdate pOperation_ =+  S3ClassificationScopeExclusionUpdate'+    { bucketNames =+        Prelude.mempty,+      operation = pOperation_+    }++-- | Depending on the value specified for the update operation+-- (ClassificationScopeUpdateOperation), an array of strings that: lists+-- the names of buckets to add or remove from the list, or specifies a new+-- set of bucket names that overwrites all existing names in the list. Each+-- string must be the full name of an S3 bucket. Values are case sensitive.+s3ClassificationScopeExclusionUpdate_bucketNames :: Lens.Lens' S3ClassificationScopeExclusionUpdate [Prelude.Text]+s3ClassificationScopeExclusionUpdate_bucketNames = Lens.lens (\S3ClassificationScopeExclusionUpdate' {bucketNames} -> bucketNames) (\s@S3ClassificationScopeExclusionUpdate' {} a -> s {bucketNames = a} :: S3ClassificationScopeExclusionUpdate) Prelude.. Lens.coerced++-- | Specifies how to apply the changes to the exclusion list. Valid values+-- are:+--+-- -   ADD - Append the specified bucket names to the current list.+--+-- -   REMOVE - Remove the specified bucket names from the current list.+--+-- -   REPLACE - Overwrite the current list with the specified list of+--     bucket names. If you specify this value, Amazon Macie removes all+--     existing names from the list and adds all the specified names to the+--     list.+s3ClassificationScopeExclusionUpdate_operation :: Lens.Lens' S3ClassificationScopeExclusionUpdate ClassificationScopeUpdateOperation+s3ClassificationScopeExclusionUpdate_operation = Lens.lens (\S3ClassificationScopeExclusionUpdate' {operation} -> operation) (\s@S3ClassificationScopeExclusionUpdate' {} a -> s {operation = a} :: S3ClassificationScopeExclusionUpdate)++instance+  Prelude.Hashable+    S3ClassificationScopeExclusionUpdate+  where+  hashWithSalt+    _salt+    S3ClassificationScopeExclusionUpdate' {..} =+      _salt+        `Prelude.hashWithSalt` bucketNames+        `Prelude.hashWithSalt` operation++instance+  Prelude.NFData+    S3ClassificationScopeExclusionUpdate+  where+  rnf S3ClassificationScopeExclusionUpdate' {..} =+    Prelude.rnf bucketNames+      `Prelude.seq` Prelude.rnf operation++instance+  Data.ToJSON+    S3ClassificationScopeExclusionUpdate+  where+  toJSON S3ClassificationScopeExclusionUpdate' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("bucketNames" Data..= bucketNames),+            Prelude.Just ("operation" Data..= operation)+          ]+      )
+ gen/Amazonka/MacieV2/Types/S3ClassificationScopeUpdate.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.S3ClassificationScopeUpdate+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.S3ClassificationScopeUpdate where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.S3ClassificationScopeExclusionUpdate+import qualified Amazonka.Prelude as Prelude++-- | Specifies changes to the list of S3 buckets that are excluded from+-- automated sensitive data discovery for an Amazon Macie account.+--+-- /See:/ 'newS3ClassificationScopeUpdate' smart constructor.+data S3ClassificationScopeUpdate = S3ClassificationScopeUpdate'+  { -- | The names of the S3 buckets to add or remove from the list.+    excludes :: S3ClassificationScopeExclusionUpdate+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3ClassificationScopeUpdate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'excludes', 's3ClassificationScopeUpdate_excludes' - The names of the S3 buckets to add or remove from the list.+newS3ClassificationScopeUpdate ::+  -- | 'excludes'+  S3ClassificationScopeExclusionUpdate ->+  S3ClassificationScopeUpdate+newS3ClassificationScopeUpdate pExcludes_ =+  S3ClassificationScopeUpdate' {excludes = pExcludes_}++-- | The names of the S3 buckets to add or remove from the list.+s3ClassificationScopeUpdate_excludes :: Lens.Lens' S3ClassificationScopeUpdate S3ClassificationScopeExclusionUpdate+s3ClassificationScopeUpdate_excludes = Lens.lens (\S3ClassificationScopeUpdate' {excludes} -> excludes) (\s@S3ClassificationScopeUpdate' {} a -> s {excludes = a} :: S3ClassificationScopeUpdate)++instance Prelude.Hashable S3ClassificationScopeUpdate where+  hashWithSalt _salt S3ClassificationScopeUpdate' {..} =+    _salt `Prelude.hashWithSalt` excludes++instance Prelude.NFData S3ClassificationScopeUpdate where+  rnf S3ClassificationScopeUpdate' {..} =+    Prelude.rnf excludes++instance Data.ToJSON S3ClassificationScopeUpdate where+  toJSON S3ClassificationScopeUpdate' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("excludes" Data..= excludes)]+      )
+ gen/Amazonka/MacieV2/Types/S3Destination.hs view
@@ -0,0 +1,123 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.S3Destination+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.S3Destination 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++-- | Specifies an S3 bucket to store data classification results in, and the+-- encryption settings to use when storing results in that bucket.+--+-- /See:/ 'newS3Destination' smart constructor.+data S3Destination = S3Destination'+  { -- | The path prefix to use in the path to the location in the bucket. This+    -- prefix specifies where to store classification results in the bucket.+    keyPrefix :: Prelude.Maybe Prelude.Text,+    -- | The name of the bucket.+    bucketName :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the customer managed KMS key to use+    -- for encryption of the results. This must be the ARN of an existing,+    -- symmetric encryption KMS key that\'s in the same Amazon Web Services+    -- Region as the bucket.+    kmsKeyArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3Destination' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'keyPrefix', 's3Destination_keyPrefix' - The path prefix to use in the path to the location in the bucket. This+-- prefix specifies where to store classification results in the bucket.+--+-- 'bucketName', 's3Destination_bucketName' - The name of the bucket.+--+-- 'kmsKeyArn', 's3Destination_kmsKeyArn' - The Amazon Resource Name (ARN) of the customer managed KMS key to use+-- for encryption of the results. This must be the ARN of an existing,+-- symmetric encryption KMS key that\'s in the same Amazon Web Services+-- Region as the bucket.+newS3Destination ::+  -- | 'bucketName'+  Prelude.Text ->+  -- | 'kmsKeyArn'+  Prelude.Text ->+  S3Destination+newS3Destination pBucketName_ pKmsKeyArn_ =+  S3Destination'+    { keyPrefix = Prelude.Nothing,+      bucketName = pBucketName_,+      kmsKeyArn = pKmsKeyArn_+    }++-- | The path prefix to use in the path to the location in the bucket. This+-- prefix specifies where to store classification results in the bucket.+s3Destination_keyPrefix :: Lens.Lens' S3Destination (Prelude.Maybe Prelude.Text)+s3Destination_keyPrefix = Lens.lens (\S3Destination' {keyPrefix} -> keyPrefix) (\s@S3Destination' {} a -> s {keyPrefix = a} :: S3Destination)++-- | The name of the bucket.+s3Destination_bucketName :: Lens.Lens' S3Destination Prelude.Text+s3Destination_bucketName = Lens.lens (\S3Destination' {bucketName} -> bucketName) (\s@S3Destination' {} a -> s {bucketName = a} :: S3Destination)++-- | The Amazon Resource Name (ARN) of the customer managed KMS key to use+-- for encryption of the results. This must be the ARN of an existing,+-- symmetric encryption KMS key that\'s in the same Amazon Web Services+-- Region as the bucket.+s3Destination_kmsKeyArn :: Lens.Lens' S3Destination Prelude.Text+s3Destination_kmsKeyArn = Lens.lens (\S3Destination' {kmsKeyArn} -> kmsKeyArn) (\s@S3Destination' {} a -> s {kmsKeyArn = a} :: S3Destination)++instance Data.FromJSON S3Destination where+  parseJSON =+    Data.withObject+      "S3Destination"+      ( \x ->+          S3Destination'+            Prelude.<$> (x Data..:? "keyPrefix")+            Prelude.<*> (x Data..: "bucketName")+            Prelude.<*> (x Data..: "kmsKeyArn")+      )++instance Prelude.Hashable S3Destination where+  hashWithSalt _salt S3Destination' {..} =+    _salt+      `Prelude.hashWithSalt` keyPrefix+      `Prelude.hashWithSalt` bucketName+      `Prelude.hashWithSalt` kmsKeyArn++instance Prelude.NFData S3Destination where+  rnf S3Destination' {..} =+    Prelude.rnf keyPrefix+      `Prelude.seq` Prelude.rnf bucketName+      `Prelude.seq` Prelude.rnf kmsKeyArn++instance Data.ToJSON S3Destination where+  toJSON S3Destination' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("keyPrefix" Data..=) Prelude.<$> keyPrefix,+            Prelude.Just ("bucketName" Data..= bucketName),+            Prelude.Just ("kmsKeyArn" Data..= kmsKeyArn)+          ]+      )
+ gen/Amazonka/MacieV2/Types/S3JobDefinition.hs view
@@ -0,0 +1,150 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.S3JobDefinition+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.S3JobDefinition where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.S3BucketCriteriaForJob+import Amazonka.MacieV2.Types.S3BucketDefinitionForJob+import Amazonka.MacieV2.Types.Scoping+import qualified Amazonka.Prelude as Prelude++-- | Specifies which S3 buckets contain the objects that a classification job+-- analyzes, and the scope of that analysis. The bucket specification can+-- be static (bucketDefinitions) or dynamic (bucketCriteria). If it\'s+-- static, the job analyzes objects in the same predefined set of buckets+-- each time the job runs. If it\'s dynamic, the job analyzes objects in+-- any buckets that match the specified criteria each time the job starts+-- to run.+--+-- /See:/ 'newS3JobDefinition' smart constructor.+data S3JobDefinition = S3JobDefinition'+  { -- | The property- and tag-based conditions that determine which S3 buckets+    -- to include or exclude from the analysis. Each time the job runs, the job+    -- uses these criteria to determine which buckets contain objects to+    -- analyze. A job\'s definition can contain a bucketCriteria object or a+    -- bucketDefinitions array, not both.+    bucketCriteria :: Prelude.Maybe S3BucketCriteriaForJob,+    -- | An array of objects, one for each Amazon Web Services account that owns+    -- specific S3 buckets to analyze. Each object specifies the account ID for+    -- an account and one or more buckets to analyze for that account. A job\'s+    -- definition can contain a bucketDefinitions array or a bucketCriteria+    -- object, not both.+    bucketDefinitions :: Prelude.Maybe [S3BucketDefinitionForJob],+    -- | The property- and tag-based conditions that determine which S3 objects+    -- to include or exclude from the analysis. Each time the job runs, the job+    -- uses these criteria to determine which objects to analyze.+    scoping :: Prelude.Maybe Scoping+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3JobDefinition' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'bucketCriteria', 's3JobDefinition_bucketCriteria' - The property- and tag-based conditions that determine which S3 buckets+-- to include or exclude from the analysis. Each time the job runs, the job+-- uses these criteria to determine which buckets contain objects to+-- analyze. A job\'s definition can contain a bucketCriteria object or a+-- bucketDefinitions array, not both.+--+-- 'bucketDefinitions', 's3JobDefinition_bucketDefinitions' - An array of objects, one for each Amazon Web Services account that owns+-- specific S3 buckets to analyze. Each object specifies the account ID for+-- an account and one or more buckets to analyze for that account. A job\'s+-- definition can contain a bucketDefinitions array or a bucketCriteria+-- object, not both.+--+-- 'scoping', 's3JobDefinition_scoping' - The property- and tag-based conditions that determine which S3 objects+-- to include or exclude from the analysis. Each time the job runs, the job+-- uses these criteria to determine which objects to analyze.+newS3JobDefinition ::+  S3JobDefinition+newS3JobDefinition =+  S3JobDefinition'+    { bucketCriteria = Prelude.Nothing,+      bucketDefinitions = Prelude.Nothing,+      scoping = Prelude.Nothing+    }++-- | The property- and tag-based conditions that determine which S3 buckets+-- to include or exclude from the analysis. Each time the job runs, the job+-- uses these criteria to determine which buckets contain objects to+-- analyze. A job\'s definition can contain a bucketCriteria object or a+-- bucketDefinitions array, not both.+s3JobDefinition_bucketCriteria :: Lens.Lens' S3JobDefinition (Prelude.Maybe S3BucketCriteriaForJob)+s3JobDefinition_bucketCriteria = Lens.lens (\S3JobDefinition' {bucketCriteria} -> bucketCriteria) (\s@S3JobDefinition' {} a -> s {bucketCriteria = a} :: S3JobDefinition)++-- | An array of objects, one for each Amazon Web Services account that owns+-- specific S3 buckets to analyze. Each object specifies the account ID for+-- an account and one or more buckets to analyze for that account. A job\'s+-- definition can contain a bucketDefinitions array or a bucketCriteria+-- object, not both.+s3JobDefinition_bucketDefinitions :: Lens.Lens' S3JobDefinition (Prelude.Maybe [S3BucketDefinitionForJob])+s3JobDefinition_bucketDefinitions = Lens.lens (\S3JobDefinition' {bucketDefinitions} -> bucketDefinitions) (\s@S3JobDefinition' {} a -> s {bucketDefinitions = a} :: S3JobDefinition) Prelude.. Lens.mapping Lens.coerced++-- | The property- and tag-based conditions that determine which S3 objects+-- to include or exclude from the analysis. Each time the job runs, the job+-- uses these criteria to determine which objects to analyze.+s3JobDefinition_scoping :: Lens.Lens' S3JobDefinition (Prelude.Maybe Scoping)+s3JobDefinition_scoping = Lens.lens (\S3JobDefinition' {scoping} -> scoping) (\s@S3JobDefinition' {} a -> s {scoping = a} :: S3JobDefinition)++instance Data.FromJSON S3JobDefinition where+  parseJSON =+    Data.withObject+      "S3JobDefinition"+      ( \x ->+          S3JobDefinition'+            Prelude.<$> (x Data..:? "bucketCriteria")+            Prelude.<*> ( x+                            Data..:? "bucketDefinitions"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "scoping")+      )++instance Prelude.Hashable S3JobDefinition where+  hashWithSalt _salt S3JobDefinition' {..} =+    _salt+      `Prelude.hashWithSalt` bucketCriteria+      `Prelude.hashWithSalt` bucketDefinitions+      `Prelude.hashWithSalt` scoping++instance Prelude.NFData S3JobDefinition where+  rnf S3JobDefinition' {..} =+    Prelude.rnf bucketCriteria+      `Prelude.seq` Prelude.rnf bucketDefinitions+      `Prelude.seq` Prelude.rnf scoping++instance Data.ToJSON S3JobDefinition where+  toJSON S3JobDefinition' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("bucketCriteria" Data..=)+              Prelude.<$> bucketCriteria,+            ("bucketDefinitions" Data..=)+              Prelude.<$> bucketDefinitions,+            ("scoping" Data..=) Prelude.<$> scoping+          ]+      )
+ gen/Amazonka/MacieV2/Types/S3Object.hs view
@@ -0,0 +1,225 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.S3Object+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.S3Object where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.KeyValuePair+import Amazonka.MacieV2.Types.ServerSideEncryption+import Amazonka.MacieV2.Types.StorageClass+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the S3 object that a finding applies to.+--+-- /See:/ 'newS3Object' smart constructor.+data S3Object = S3Object'+  { -- | The Amazon Resource Name (ARN) of the bucket that contains the object.+    bucketArn :: Prelude.Maybe Prelude.Text,+    -- | The entity tag (ETag) that identifies the affected version of the+    -- object. If the object was overwritten or changed after Amazon Macie+    -- produced the finding, this value might be different from the current+    -- ETag for the object.+    eTag :: Prelude.Maybe Prelude.Text,+    -- | The file name extension of the object. If the object doesn\'t have a+    -- file name extension, this value is \"\".+    extension :: Prelude.Maybe Prelude.Text,+    -- | The full key (name) that\'s assigned to the object.+    key :: Prelude.Maybe Prelude.Text,+    -- | The date and time, in UTC and extended ISO 8601 format, when the object+    -- was last modified.+    lastModified :: Prelude.Maybe Data.ISO8601,+    -- | The path to the object, including the full key (name).+    path :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether the object is publicly accessible due to the+    -- combination of permissions settings that apply to the object.+    publicAccess :: Prelude.Maybe Prelude.Bool,+    -- | The type of server-side encryption that\'s used to encrypt the object.+    serverSideEncryption :: Prelude.Maybe ServerSideEncryption,+    -- | The total storage size, in bytes, of the object.+    size :: Prelude.Maybe Prelude.Integer,+    -- | The storage class of the object.+    storageClass :: Prelude.Maybe StorageClass,+    -- | The tags that are associated with the object.+    tags :: Prelude.Maybe [KeyValuePair],+    -- | The identifier for the affected version of the object.+    versionId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3Object' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'bucketArn', 's3Object_bucketArn' - The Amazon Resource Name (ARN) of the bucket that contains the object.+--+-- 'eTag', 's3Object_eTag' - The entity tag (ETag) that identifies the affected version of the+-- object. If the object was overwritten or changed after Amazon Macie+-- produced the finding, this value might be different from the current+-- ETag for the object.+--+-- 'extension', 's3Object_extension' - The file name extension of the object. If the object doesn\'t have a+-- file name extension, this value is \"\".+--+-- 'key', 's3Object_key' - The full key (name) that\'s assigned to the object.+--+-- 'lastModified', 's3Object_lastModified' - The date and time, in UTC and extended ISO 8601 format, when the object+-- was last modified.+--+-- 'path', 's3Object_path' - The path to the object, including the full key (name).+--+-- 'publicAccess', 's3Object_publicAccess' - Specifies whether the object is publicly accessible due to the+-- combination of permissions settings that apply to the object.+--+-- 'serverSideEncryption', 's3Object_serverSideEncryption' - The type of server-side encryption that\'s used to encrypt the object.+--+-- 'size', 's3Object_size' - The total storage size, in bytes, of the object.+--+-- 'storageClass', 's3Object_storageClass' - The storage class of the object.+--+-- 'tags', 's3Object_tags' - The tags that are associated with the object.+--+-- 'versionId', 's3Object_versionId' - The identifier for the affected version of the object.+newS3Object ::+  S3Object+newS3Object =+  S3Object'+    { bucketArn = Prelude.Nothing,+      eTag = Prelude.Nothing,+      extension = Prelude.Nothing,+      key = Prelude.Nothing,+      lastModified = Prelude.Nothing,+      path = Prelude.Nothing,+      publicAccess = Prelude.Nothing,+      serverSideEncryption = Prelude.Nothing,+      size = Prelude.Nothing,+      storageClass = Prelude.Nothing,+      tags = Prelude.Nothing,+      versionId = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the bucket that contains the object.+s3Object_bucketArn :: Lens.Lens' S3Object (Prelude.Maybe Prelude.Text)+s3Object_bucketArn = Lens.lens (\S3Object' {bucketArn} -> bucketArn) (\s@S3Object' {} a -> s {bucketArn = a} :: S3Object)++-- | The entity tag (ETag) that identifies the affected version of the+-- object. If the object was overwritten or changed after Amazon Macie+-- produced the finding, this value might be different from the current+-- ETag for the object.+s3Object_eTag :: Lens.Lens' S3Object (Prelude.Maybe Prelude.Text)+s3Object_eTag = Lens.lens (\S3Object' {eTag} -> eTag) (\s@S3Object' {} a -> s {eTag = a} :: S3Object)++-- | The file name extension of the object. If the object doesn\'t have a+-- file name extension, this value is \"\".+s3Object_extension :: Lens.Lens' S3Object (Prelude.Maybe Prelude.Text)+s3Object_extension = Lens.lens (\S3Object' {extension} -> extension) (\s@S3Object' {} a -> s {extension = a} :: S3Object)++-- | The full key (name) that\'s assigned to the object.+s3Object_key :: Lens.Lens' S3Object (Prelude.Maybe Prelude.Text)+s3Object_key = Lens.lens (\S3Object' {key} -> key) (\s@S3Object' {} a -> s {key = a} :: S3Object)++-- | The date and time, in UTC and extended ISO 8601 format, when the object+-- was last modified.+s3Object_lastModified :: Lens.Lens' S3Object (Prelude.Maybe Prelude.UTCTime)+s3Object_lastModified = Lens.lens (\S3Object' {lastModified} -> lastModified) (\s@S3Object' {} a -> s {lastModified = a} :: S3Object) Prelude.. Lens.mapping Data._Time++-- | The path to the object, including the full key (name).+s3Object_path :: Lens.Lens' S3Object (Prelude.Maybe Prelude.Text)+s3Object_path = Lens.lens (\S3Object' {path} -> path) (\s@S3Object' {} a -> s {path = a} :: S3Object)++-- | Specifies whether the object is publicly accessible due to the+-- combination of permissions settings that apply to the object.+s3Object_publicAccess :: Lens.Lens' S3Object (Prelude.Maybe Prelude.Bool)+s3Object_publicAccess = Lens.lens (\S3Object' {publicAccess} -> publicAccess) (\s@S3Object' {} a -> s {publicAccess = a} :: S3Object)++-- | The type of server-side encryption that\'s used to encrypt the object.+s3Object_serverSideEncryption :: Lens.Lens' S3Object (Prelude.Maybe ServerSideEncryption)+s3Object_serverSideEncryption = Lens.lens (\S3Object' {serverSideEncryption} -> serverSideEncryption) (\s@S3Object' {} a -> s {serverSideEncryption = a} :: S3Object)++-- | The total storage size, in bytes, of the object.+s3Object_size :: Lens.Lens' S3Object (Prelude.Maybe Prelude.Integer)+s3Object_size = Lens.lens (\S3Object' {size} -> size) (\s@S3Object' {} a -> s {size = a} :: S3Object)++-- | The storage class of the object.+s3Object_storageClass :: Lens.Lens' S3Object (Prelude.Maybe StorageClass)+s3Object_storageClass = Lens.lens (\S3Object' {storageClass} -> storageClass) (\s@S3Object' {} a -> s {storageClass = a} :: S3Object)++-- | The tags that are associated with the object.+s3Object_tags :: Lens.Lens' S3Object (Prelude.Maybe [KeyValuePair])+s3Object_tags = Lens.lens (\S3Object' {tags} -> tags) (\s@S3Object' {} a -> s {tags = a} :: S3Object) Prelude.. Lens.mapping Lens.coerced++-- | The identifier for the affected version of the object.+s3Object_versionId :: Lens.Lens' S3Object (Prelude.Maybe Prelude.Text)+s3Object_versionId = Lens.lens (\S3Object' {versionId} -> versionId) (\s@S3Object' {} a -> s {versionId = a} :: S3Object)++instance Data.FromJSON S3Object where+  parseJSON =+    Data.withObject+      "S3Object"+      ( \x ->+          S3Object'+            Prelude.<$> (x Data..:? "bucketArn")+            Prelude.<*> (x Data..:? "eTag")+            Prelude.<*> (x Data..:? "extension")+            Prelude.<*> (x Data..:? "key")+            Prelude.<*> (x Data..:? "lastModified")+            Prelude.<*> (x Data..:? "path")+            Prelude.<*> (x Data..:? "publicAccess")+            Prelude.<*> (x Data..:? "serverSideEncryption")+            Prelude.<*> (x Data..:? "size")+            Prelude.<*> (x Data..:? "storageClass")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "versionId")+      )++instance Prelude.Hashable S3Object where+  hashWithSalt _salt S3Object' {..} =+    _salt+      `Prelude.hashWithSalt` bucketArn+      `Prelude.hashWithSalt` eTag+      `Prelude.hashWithSalt` extension+      `Prelude.hashWithSalt` key+      `Prelude.hashWithSalt` lastModified+      `Prelude.hashWithSalt` path+      `Prelude.hashWithSalt` publicAccess+      `Prelude.hashWithSalt` serverSideEncryption+      `Prelude.hashWithSalt` size+      `Prelude.hashWithSalt` storageClass+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` versionId++instance Prelude.NFData S3Object where+  rnf S3Object' {..} =+    Prelude.rnf bucketArn+      `Prelude.seq` Prelude.rnf eTag+      `Prelude.seq` Prelude.rnf extension+      `Prelude.seq` Prelude.rnf key+      `Prelude.seq` Prelude.rnf lastModified+      `Prelude.seq` Prelude.rnf path+      `Prelude.seq` Prelude.rnf publicAccess+      `Prelude.seq` Prelude.rnf serverSideEncryption+      `Prelude.seq` Prelude.rnf size+      `Prelude.seq` Prelude.rnf storageClass+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf versionId
+ gen/Amazonka/MacieV2/Types/S3WordsList.hs view
@@ -0,0 +1,98 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.S3WordsList+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.S3WordsList where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides information about an S3 object that lists specific text to+-- ignore.+--+-- /See:/ 'newS3WordsList' smart constructor.+data S3WordsList = S3WordsList'+  { -- | The full name of the S3 bucket that contains the object.+    bucketName :: Prelude.Text,+    -- | The full name (key) of the object.+    objectKey :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3WordsList' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'bucketName', 's3WordsList_bucketName' - The full name of the S3 bucket that contains the object.+--+-- 'objectKey', 's3WordsList_objectKey' - The full name (key) of the object.+newS3WordsList ::+  -- | 'bucketName'+  Prelude.Text ->+  -- | 'objectKey'+  Prelude.Text ->+  S3WordsList+newS3WordsList pBucketName_ pObjectKey_ =+  S3WordsList'+    { bucketName = pBucketName_,+      objectKey = pObjectKey_+    }++-- | The full name of the S3 bucket that contains the object.+s3WordsList_bucketName :: Lens.Lens' S3WordsList Prelude.Text+s3WordsList_bucketName = Lens.lens (\S3WordsList' {bucketName} -> bucketName) (\s@S3WordsList' {} a -> s {bucketName = a} :: S3WordsList)++-- | The full name (key) of the object.+s3WordsList_objectKey :: Lens.Lens' S3WordsList Prelude.Text+s3WordsList_objectKey = Lens.lens (\S3WordsList' {objectKey} -> objectKey) (\s@S3WordsList' {} a -> s {objectKey = a} :: S3WordsList)++instance Data.FromJSON S3WordsList where+  parseJSON =+    Data.withObject+      "S3WordsList"+      ( \x ->+          S3WordsList'+            Prelude.<$> (x Data..: "bucketName")+            Prelude.<*> (x Data..: "objectKey")+      )++instance Prelude.Hashable S3WordsList where+  hashWithSalt _salt S3WordsList' {..} =+    _salt+      `Prelude.hashWithSalt` bucketName+      `Prelude.hashWithSalt` objectKey++instance Prelude.NFData S3WordsList where+  rnf S3WordsList' {..} =+    Prelude.rnf bucketName+      `Prelude.seq` Prelude.rnf objectKey++instance Data.ToJSON S3WordsList where+  toJSON S3WordsList' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("bucketName" Data..= bucketName),+            Prelude.Just ("objectKey" Data..= objectKey)+          ]+      )
+ gen/Amazonka/MacieV2/Types/ScopeFilterKey.hs view
@@ -0,0 +1,83 @@+{-# 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.MacieV2.Types.ScopeFilterKey+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.ScopeFilterKey+  ( ScopeFilterKey+      ( ..,+        ScopeFilterKey_OBJECT_EXTENSION,+        ScopeFilterKey_OBJECT_KEY,+        ScopeFilterKey_OBJECT_LAST_MODIFIED_DATE,+        ScopeFilterKey_OBJECT_SIZE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The property to use in a condition that determines whether an S3 object+-- is included or excluded from a classification job. Valid values are:+newtype ScopeFilterKey = ScopeFilterKey'+  { fromScopeFilterKey ::+      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 ScopeFilterKey_OBJECT_EXTENSION :: ScopeFilterKey+pattern ScopeFilterKey_OBJECT_EXTENSION = ScopeFilterKey' "OBJECT_EXTENSION"++pattern ScopeFilterKey_OBJECT_KEY :: ScopeFilterKey+pattern ScopeFilterKey_OBJECT_KEY = ScopeFilterKey' "OBJECT_KEY"++pattern ScopeFilterKey_OBJECT_LAST_MODIFIED_DATE :: ScopeFilterKey+pattern ScopeFilterKey_OBJECT_LAST_MODIFIED_DATE = ScopeFilterKey' "OBJECT_LAST_MODIFIED_DATE"++pattern ScopeFilterKey_OBJECT_SIZE :: ScopeFilterKey+pattern ScopeFilterKey_OBJECT_SIZE = ScopeFilterKey' "OBJECT_SIZE"++{-# COMPLETE+  ScopeFilterKey_OBJECT_EXTENSION,+  ScopeFilterKey_OBJECT_KEY,+  ScopeFilterKey_OBJECT_LAST_MODIFIED_DATE,+  ScopeFilterKey_OBJECT_SIZE,+  ScopeFilterKey'+  #-}
+ gen/Amazonka/MacieV2/Types/Scoping.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.MacieV2.Types.Scoping+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.Scoping where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.JobScopingBlock+import qualified Amazonka.Prelude as Prelude++-- | Specifies one or more property- and tag-based conditions that define+-- criteria for including or excluding S3 objects from a classification+-- job. Exclude conditions take precedence over include conditions.+--+-- /See:/ 'newScoping' smart constructor.+data Scoping = Scoping'+  { -- | The property- and tag-based conditions that determine which objects to+    -- exclude from the analysis.+    excludes :: Prelude.Maybe JobScopingBlock,+    -- | The property- and tag-based conditions that determine which objects to+    -- include in the analysis.+    includes :: Prelude.Maybe JobScopingBlock+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Scoping' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'excludes', 'scoping_excludes' - The property- and tag-based conditions that determine which objects to+-- exclude from the analysis.+--+-- 'includes', 'scoping_includes' - The property- and tag-based conditions that determine which objects to+-- include in the analysis.+newScoping ::+  Scoping+newScoping =+  Scoping'+    { excludes = Prelude.Nothing,+      includes = Prelude.Nothing+    }++-- | The property- and tag-based conditions that determine which objects to+-- exclude from the analysis.+scoping_excludes :: Lens.Lens' Scoping (Prelude.Maybe JobScopingBlock)+scoping_excludes = Lens.lens (\Scoping' {excludes} -> excludes) (\s@Scoping' {} a -> s {excludes = a} :: Scoping)++-- | The property- and tag-based conditions that determine which objects to+-- include in the analysis.+scoping_includes :: Lens.Lens' Scoping (Prelude.Maybe JobScopingBlock)+scoping_includes = Lens.lens (\Scoping' {includes} -> includes) (\s@Scoping' {} a -> s {includes = a} :: Scoping)++instance Data.FromJSON Scoping where+  parseJSON =+    Data.withObject+      "Scoping"+      ( \x ->+          Scoping'+            Prelude.<$> (x Data..:? "excludes")+            Prelude.<*> (x Data..:? "includes")+      )++instance Prelude.Hashable Scoping where+  hashWithSalt _salt Scoping' {..} =+    _salt+      `Prelude.hashWithSalt` excludes+      `Prelude.hashWithSalt` includes++instance Prelude.NFData Scoping where+  rnf Scoping' {..} =+    Prelude.rnf excludes+      `Prelude.seq` Prelude.rnf includes++instance Data.ToJSON Scoping where+  toJSON Scoping' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("excludes" Data..=) Prelude.<$> excludes,+            ("includes" Data..=) Prelude.<$> includes+          ]+      )
+ gen/Amazonka/MacieV2/Types/SearchResourcesBucketCriteria.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.SearchResourcesBucketCriteria+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.SearchResourcesBucketCriteria where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.SearchResourcesCriteriaBlock+import qualified Amazonka.Prelude as Prelude++-- | Specifies property- and tag-based conditions that define filter criteria+-- for including or excluding S3 buckets from the query results. Exclude+-- conditions take precedence over include conditions.+--+-- /See:/ 'newSearchResourcesBucketCriteria' smart constructor.+data SearchResourcesBucketCriteria = SearchResourcesBucketCriteria'+  { -- | The property- and tag-based conditions that determine which buckets to+    -- exclude from the results.+    excludes :: Prelude.Maybe SearchResourcesCriteriaBlock,+    -- | The property- and tag-based conditions that determine which buckets to+    -- include in the results.+    includes :: Prelude.Maybe SearchResourcesCriteriaBlock+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SearchResourcesBucketCriteria' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'excludes', 'searchResourcesBucketCriteria_excludes' - The property- and tag-based conditions that determine which buckets to+-- exclude from the results.+--+-- 'includes', 'searchResourcesBucketCriteria_includes' - The property- and tag-based conditions that determine which buckets to+-- include in the results.+newSearchResourcesBucketCriteria ::+  SearchResourcesBucketCriteria+newSearchResourcesBucketCriteria =+  SearchResourcesBucketCriteria'+    { excludes =+        Prelude.Nothing,+      includes = Prelude.Nothing+    }++-- | The property- and tag-based conditions that determine which buckets to+-- exclude from the results.+searchResourcesBucketCriteria_excludes :: Lens.Lens' SearchResourcesBucketCriteria (Prelude.Maybe SearchResourcesCriteriaBlock)+searchResourcesBucketCriteria_excludes = Lens.lens (\SearchResourcesBucketCriteria' {excludes} -> excludes) (\s@SearchResourcesBucketCriteria' {} a -> s {excludes = a} :: SearchResourcesBucketCriteria)++-- | The property- and tag-based conditions that determine which buckets to+-- include in the results.+searchResourcesBucketCriteria_includes :: Lens.Lens' SearchResourcesBucketCriteria (Prelude.Maybe SearchResourcesCriteriaBlock)+searchResourcesBucketCriteria_includes = Lens.lens (\SearchResourcesBucketCriteria' {includes} -> includes) (\s@SearchResourcesBucketCriteria' {} a -> s {includes = a} :: SearchResourcesBucketCriteria)++instance+  Prelude.Hashable+    SearchResourcesBucketCriteria+  where+  hashWithSalt _salt SearchResourcesBucketCriteria' {..} =+    _salt+      `Prelude.hashWithSalt` excludes+      `Prelude.hashWithSalt` includes++instance Prelude.NFData SearchResourcesBucketCriteria where+  rnf SearchResourcesBucketCriteria' {..} =+    Prelude.rnf excludes+      `Prelude.seq` Prelude.rnf includes++instance Data.ToJSON SearchResourcesBucketCriteria where+  toJSON SearchResourcesBucketCriteria' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("excludes" Data..=) Prelude.<$> excludes,+            ("includes" Data..=) Prelude.<$> includes+          ]+      )
+ gen/Amazonka/MacieV2/Types/SearchResourcesComparator.hs view
@@ -0,0 +1,73 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.SearchResourcesComparator+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.SearchResourcesComparator+  ( SearchResourcesComparator+      ( ..,+        SearchResourcesComparator_EQ,+        SearchResourcesComparator_NE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The operator to use in a condition that filters the results of a query.+-- Valid values are:+newtype SearchResourcesComparator = SearchResourcesComparator'+  { fromSearchResourcesComparator ::+      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 SearchResourcesComparator_EQ :: SearchResourcesComparator+pattern SearchResourcesComparator_EQ = SearchResourcesComparator' "EQ"++pattern SearchResourcesComparator_NE :: SearchResourcesComparator+pattern SearchResourcesComparator_NE = SearchResourcesComparator' "NE"++{-# COMPLETE+  SearchResourcesComparator_EQ,+  SearchResourcesComparator_NE,+  SearchResourcesComparator'+  #-}
+ gen/Amazonka/MacieV2/Types/SearchResourcesCriteria.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.MacieV2.Types.SearchResourcesCriteria+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.SearchResourcesCriteria where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.SearchResourcesSimpleCriterion+import Amazonka.MacieV2.Types.SearchResourcesTagCriterion+import qualified Amazonka.Prelude as Prelude++-- | Specifies a property- or tag-based filter condition for including or+-- excluding Amazon Web Services resources from the query results.+--+-- /See:/ 'newSearchResourcesCriteria' smart constructor.+data SearchResourcesCriteria = SearchResourcesCriteria'+  { -- | A property-based condition that defines a property, operator, and one or+    -- more values for including or excluding resources from the results.+    simpleCriterion :: Prelude.Maybe SearchResourcesSimpleCriterion,+    -- | A tag-based condition that defines an operator and tag keys, tag values,+    -- or tag key and value pairs for including or excluding resources from the+    -- results.+    tagCriterion :: Prelude.Maybe SearchResourcesTagCriterion+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SearchResourcesCriteria' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'simpleCriterion', 'searchResourcesCriteria_simpleCriterion' - A property-based condition that defines a property, operator, and one or+-- more values for including or excluding resources from the results.+--+-- 'tagCriterion', 'searchResourcesCriteria_tagCriterion' - A tag-based condition that defines an operator and tag keys, tag values,+-- or tag key and value pairs for including or excluding resources from the+-- results.+newSearchResourcesCriteria ::+  SearchResourcesCriteria+newSearchResourcesCriteria =+  SearchResourcesCriteria'+    { simpleCriterion =+        Prelude.Nothing,+      tagCriterion = Prelude.Nothing+    }++-- | A property-based condition that defines a property, operator, and one or+-- more values for including or excluding resources from the results.+searchResourcesCriteria_simpleCriterion :: Lens.Lens' SearchResourcesCriteria (Prelude.Maybe SearchResourcesSimpleCriterion)+searchResourcesCriteria_simpleCriterion = Lens.lens (\SearchResourcesCriteria' {simpleCriterion} -> simpleCriterion) (\s@SearchResourcesCriteria' {} a -> s {simpleCriterion = a} :: SearchResourcesCriteria)++-- | A tag-based condition that defines an operator and tag keys, tag values,+-- or tag key and value pairs for including or excluding resources from the+-- results.+searchResourcesCriteria_tagCriterion :: Lens.Lens' SearchResourcesCriteria (Prelude.Maybe SearchResourcesTagCriterion)+searchResourcesCriteria_tagCriterion = Lens.lens (\SearchResourcesCriteria' {tagCriterion} -> tagCriterion) (\s@SearchResourcesCriteria' {} a -> s {tagCriterion = a} :: SearchResourcesCriteria)++instance Prelude.Hashable SearchResourcesCriteria where+  hashWithSalt _salt SearchResourcesCriteria' {..} =+    _salt+      `Prelude.hashWithSalt` simpleCriterion+      `Prelude.hashWithSalt` tagCriterion++instance Prelude.NFData SearchResourcesCriteria where+  rnf SearchResourcesCriteria' {..} =+    Prelude.rnf simpleCriterion+      `Prelude.seq` Prelude.rnf tagCriterion++instance Data.ToJSON SearchResourcesCriteria where+  toJSON SearchResourcesCriteria' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("simpleCriterion" Data..=)+              Prelude.<$> simpleCriterion,+            ("tagCriterion" Data..=) Prelude.<$> tagCriterion+          ]+      )
+ gen/Amazonka/MacieV2/Types/SearchResourcesCriteriaBlock.hs view
@@ -0,0 +1,83 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.SearchResourcesCriteriaBlock+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.SearchResourcesCriteriaBlock where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.SearchResourcesCriteria+import qualified Amazonka.Prelude as Prelude++-- | Specifies property- and tag-based conditions that define filter criteria+-- for including or excluding Amazon Web Services resources from the query+-- results.+--+-- /See:/ 'newSearchResourcesCriteriaBlock' smart constructor.+data SearchResourcesCriteriaBlock = SearchResourcesCriteriaBlock'+  { -- | An array of objects, one for each property- or tag-based condition that+    -- includes or excludes resources from the query results. If you specify+    -- more than one condition, Amazon Macie uses AND logic to join the+    -- conditions.+    and :: Prelude.Maybe [SearchResourcesCriteria]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SearchResourcesCriteriaBlock' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'and', 'searchResourcesCriteriaBlock_and' - An array of objects, one for each property- or tag-based condition that+-- includes or excludes resources from the query results. If you specify+-- more than one condition, Amazon Macie uses AND logic to join the+-- conditions.+newSearchResourcesCriteriaBlock ::+  SearchResourcesCriteriaBlock+newSearchResourcesCriteriaBlock =+  SearchResourcesCriteriaBlock'+    { and =+        Prelude.Nothing+    }++-- | An array of objects, one for each property- or tag-based condition that+-- includes or excludes resources from the query results. If you specify+-- more than one condition, Amazon Macie uses AND logic to join the+-- conditions.+searchResourcesCriteriaBlock_and :: Lens.Lens' SearchResourcesCriteriaBlock (Prelude.Maybe [SearchResourcesCriteria])+searchResourcesCriteriaBlock_and = Lens.lens (\SearchResourcesCriteriaBlock' {and} -> and) (\s@SearchResourcesCriteriaBlock' {} a -> s {and = a} :: SearchResourcesCriteriaBlock) Prelude.. Lens.mapping Lens.coerced++instance+  Prelude.Hashable+    SearchResourcesCriteriaBlock+  where+  hashWithSalt _salt SearchResourcesCriteriaBlock' {..} =+    _salt `Prelude.hashWithSalt` and++instance Prelude.NFData SearchResourcesCriteriaBlock where+  rnf SearchResourcesCriteriaBlock' {..} =+    Prelude.rnf and++instance Data.ToJSON SearchResourcesCriteriaBlock where+  toJSON SearchResourcesCriteriaBlock' {..} =+    Data.object+      (Prelude.catMaybes [("and" Data..=) Prelude.<$> and])
+ gen/Amazonka/MacieV2/Types/SearchResourcesSimpleCriterion.hs view
@@ -0,0 +1,170 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.SearchResourcesSimpleCriterion+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.SearchResourcesSimpleCriterion where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.SearchResourcesComparator+import Amazonka.MacieV2.Types.SearchResourcesSimpleCriterionKey+import qualified Amazonka.Prelude as Prelude++-- | Specifies a property-based filter condition that determines which Amazon+-- Web Services resources are included or excluded from the query results.+--+-- /See:/ 'newSearchResourcesSimpleCriterion' smart constructor.+data SearchResourcesSimpleCriterion = SearchResourcesSimpleCriterion'+  { -- | The operator to use in the condition. Valid values are EQ (equals) and+    -- NE (not equals).+    comparator :: Prelude.Maybe SearchResourcesComparator,+    -- | The property to use in the condition.+    key :: Prelude.Maybe SearchResourcesSimpleCriterionKey,+    -- | An array that lists one or more values to use in the condition. If you+    -- specify multiple values, Amazon Macie uses OR logic to join the values.+    -- Valid values for each supported property (key) are:+    --+    -- -   ACCOUNT_ID - A string that represents the unique identifier for the+    --     Amazon Web Services account that owns the resource.+    --+    -- -   S3_BUCKET_EFFECTIVE_PERMISSION - A string that represents an+    --     enumerated value that Macie defines for the+    --     <https://docs.aws.amazon.com/macie/latest/APIReference/datasources-s3.html#datasources-s3-prop-bucketpublicaccess-effectivepermission BucketPublicAccess.effectivePermission>+    --     property of an S3 bucket.+    --+    -- -   S3_BUCKET_NAME - A string that represents the name of an S3 bucket.+    --+    -- -   S3_BUCKET_SHARED_ACCESS - A string that represents an enumerated+    --     value that Macie defines for the+    --     <https://docs.aws.amazon.com/macie/latest/APIReference/datasources-s3.html#datasources-s3-prop-bucketmetadata-sharedaccess BucketMetadata.sharedAccess>+    --     property of an S3 bucket.+    --+    -- Values are case sensitive. Also, Macie doesn\'t support use of partial+    -- values or wildcard characters in values.+    values :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SearchResourcesSimpleCriterion' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'comparator', 'searchResourcesSimpleCriterion_comparator' - The operator to use in the condition. Valid values are EQ (equals) and+-- NE (not equals).+--+-- 'key', 'searchResourcesSimpleCriterion_key' - The property to use in the condition.+--+-- 'values', 'searchResourcesSimpleCriterion_values' - An array that lists one or more values to use in the condition. If you+-- specify multiple values, Amazon Macie uses OR logic to join the values.+-- Valid values for each supported property (key) are:+--+-- -   ACCOUNT_ID - A string that represents the unique identifier for the+--     Amazon Web Services account that owns the resource.+--+-- -   S3_BUCKET_EFFECTIVE_PERMISSION - A string that represents an+--     enumerated value that Macie defines for the+--     <https://docs.aws.amazon.com/macie/latest/APIReference/datasources-s3.html#datasources-s3-prop-bucketpublicaccess-effectivepermission BucketPublicAccess.effectivePermission>+--     property of an S3 bucket.+--+-- -   S3_BUCKET_NAME - A string that represents the name of an S3 bucket.+--+-- -   S3_BUCKET_SHARED_ACCESS - A string that represents an enumerated+--     value that Macie defines for the+--     <https://docs.aws.amazon.com/macie/latest/APIReference/datasources-s3.html#datasources-s3-prop-bucketmetadata-sharedaccess BucketMetadata.sharedAccess>+--     property of an S3 bucket.+--+-- Values are case sensitive. Also, Macie doesn\'t support use of partial+-- values or wildcard characters in values.+newSearchResourcesSimpleCriterion ::+  SearchResourcesSimpleCriterion+newSearchResourcesSimpleCriterion =+  SearchResourcesSimpleCriterion'+    { comparator =+        Prelude.Nothing,+      key = Prelude.Nothing,+      values = Prelude.Nothing+    }++-- | The operator to use in the condition. Valid values are EQ (equals) and+-- NE (not equals).+searchResourcesSimpleCriterion_comparator :: Lens.Lens' SearchResourcesSimpleCriterion (Prelude.Maybe SearchResourcesComparator)+searchResourcesSimpleCriterion_comparator = Lens.lens (\SearchResourcesSimpleCriterion' {comparator} -> comparator) (\s@SearchResourcesSimpleCriterion' {} a -> s {comparator = a} :: SearchResourcesSimpleCriterion)++-- | The property to use in the condition.+searchResourcesSimpleCriterion_key :: Lens.Lens' SearchResourcesSimpleCriterion (Prelude.Maybe SearchResourcesSimpleCriterionKey)+searchResourcesSimpleCriterion_key = Lens.lens (\SearchResourcesSimpleCriterion' {key} -> key) (\s@SearchResourcesSimpleCriterion' {} a -> s {key = a} :: SearchResourcesSimpleCriterion)++-- | An array that lists one or more values to use in the condition. If you+-- specify multiple values, Amazon Macie uses OR logic to join the values.+-- Valid values for each supported property (key) are:+--+-- -   ACCOUNT_ID - A string that represents the unique identifier for the+--     Amazon Web Services account that owns the resource.+--+-- -   S3_BUCKET_EFFECTIVE_PERMISSION - A string that represents an+--     enumerated value that Macie defines for the+--     <https://docs.aws.amazon.com/macie/latest/APIReference/datasources-s3.html#datasources-s3-prop-bucketpublicaccess-effectivepermission BucketPublicAccess.effectivePermission>+--     property of an S3 bucket.+--+-- -   S3_BUCKET_NAME - A string that represents the name of an S3 bucket.+--+-- -   S3_BUCKET_SHARED_ACCESS - A string that represents an enumerated+--     value that Macie defines for the+--     <https://docs.aws.amazon.com/macie/latest/APIReference/datasources-s3.html#datasources-s3-prop-bucketmetadata-sharedaccess BucketMetadata.sharedAccess>+--     property of an S3 bucket.+--+-- Values are case sensitive. Also, Macie doesn\'t support use of partial+-- values or wildcard characters in values.+searchResourcesSimpleCriterion_values :: Lens.Lens' SearchResourcesSimpleCriterion (Prelude.Maybe [Prelude.Text])+searchResourcesSimpleCriterion_values = Lens.lens (\SearchResourcesSimpleCriterion' {values} -> values) (\s@SearchResourcesSimpleCriterion' {} a -> s {values = a} :: SearchResourcesSimpleCriterion) Prelude.. Lens.mapping Lens.coerced++instance+  Prelude.Hashable+    SearchResourcesSimpleCriterion+  where+  hashWithSalt+    _salt+    SearchResourcesSimpleCriterion' {..} =+      _salt+        `Prelude.hashWithSalt` comparator+        `Prelude.hashWithSalt` key+        `Prelude.hashWithSalt` values++instance+  Prelude.NFData+    SearchResourcesSimpleCriterion+  where+  rnf SearchResourcesSimpleCriterion' {..} =+    Prelude.rnf comparator+      `Prelude.seq` Prelude.rnf key+      `Prelude.seq` Prelude.rnf values++instance Data.ToJSON SearchResourcesSimpleCriterion where+  toJSON SearchResourcesSimpleCriterion' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("comparator" Data..=) Prelude.<$> comparator,+            ("key" Data..=) Prelude.<$> key,+            ("values" Data..=) Prelude.<$> values+          ]+      )
+ gen/Amazonka/MacieV2/Types/SearchResourcesSimpleCriterionKey.hs view
@@ -0,0 +1,83 @@+{-# 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.MacieV2.Types.SearchResourcesSimpleCriterionKey+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.SearchResourcesSimpleCriterionKey+  ( SearchResourcesSimpleCriterionKey+      ( ..,+        SearchResourcesSimpleCriterionKey_ACCOUNT_ID,+        SearchResourcesSimpleCriterionKey_S3_BUCKET_EFFECTIVE_PERMISSION,+        SearchResourcesSimpleCriterionKey_S3_BUCKET_NAME,+        SearchResourcesSimpleCriterionKey_S3_BUCKET_SHARED_ACCESS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The property to use in a condition that filters the query results. Valid+-- values are:+newtype SearchResourcesSimpleCriterionKey = SearchResourcesSimpleCriterionKey'+  { fromSearchResourcesSimpleCriterionKey ::+      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 SearchResourcesSimpleCriterionKey_ACCOUNT_ID :: SearchResourcesSimpleCriterionKey+pattern SearchResourcesSimpleCriterionKey_ACCOUNT_ID = SearchResourcesSimpleCriterionKey' "ACCOUNT_ID"++pattern SearchResourcesSimpleCriterionKey_S3_BUCKET_EFFECTIVE_PERMISSION :: SearchResourcesSimpleCriterionKey+pattern SearchResourcesSimpleCriterionKey_S3_BUCKET_EFFECTIVE_PERMISSION = SearchResourcesSimpleCriterionKey' "S3_BUCKET_EFFECTIVE_PERMISSION"++pattern SearchResourcesSimpleCriterionKey_S3_BUCKET_NAME :: SearchResourcesSimpleCriterionKey+pattern SearchResourcesSimpleCriterionKey_S3_BUCKET_NAME = SearchResourcesSimpleCriterionKey' "S3_BUCKET_NAME"++pattern SearchResourcesSimpleCriterionKey_S3_BUCKET_SHARED_ACCESS :: SearchResourcesSimpleCriterionKey+pattern SearchResourcesSimpleCriterionKey_S3_BUCKET_SHARED_ACCESS = SearchResourcesSimpleCriterionKey' "S3_BUCKET_SHARED_ACCESS"++{-# COMPLETE+  SearchResourcesSimpleCriterionKey_ACCOUNT_ID,+  SearchResourcesSimpleCriterionKey_S3_BUCKET_EFFECTIVE_PERMISSION,+  SearchResourcesSimpleCriterionKey_S3_BUCKET_NAME,+  SearchResourcesSimpleCriterionKey_S3_BUCKET_SHARED_ACCESS,+  SearchResourcesSimpleCriterionKey'+  #-}
+ gen/Amazonka/MacieV2/Types/SearchResourcesSortAttributeName.hs view
@@ -0,0 +1,82 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.SearchResourcesSortAttributeName+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.SearchResourcesSortAttributeName+  ( SearchResourcesSortAttributeName+      ( ..,+        SearchResourcesSortAttributeName_ACCOUNT_ID,+        SearchResourcesSortAttributeName_RESOURCE_NAME,+        SearchResourcesSortAttributeName_S3_CLASSIFIABLE_OBJECT_COUNT,+        SearchResourcesSortAttributeName_S3_CLASSIFIABLE_SIZE_IN_BYTES+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The property to sort the query results by. Valid values are:+newtype SearchResourcesSortAttributeName = SearchResourcesSortAttributeName'+  { fromSearchResourcesSortAttributeName ::+      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 SearchResourcesSortAttributeName_ACCOUNT_ID :: SearchResourcesSortAttributeName+pattern SearchResourcesSortAttributeName_ACCOUNT_ID = SearchResourcesSortAttributeName' "ACCOUNT_ID"++pattern SearchResourcesSortAttributeName_RESOURCE_NAME :: SearchResourcesSortAttributeName+pattern SearchResourcesSortAttributeName_RESOURCE_NAME = SearchResourcesSortAttributeName' "RESOURCE_NAME"++pattern SearchResourcesSortAttributeName_S3_CLASSIFIABLE_OBJECT_COUNT :: SearchResourcesSortAttributeName+pattern SearchResourcesSortAttributeName_S3_CLASSIFIABLE_OBJECT_COUNT = SearchResourcesSortAttributeName' "S3_CLASSIFIABLE_OBJECT_COUNT"++pattern SearchResourcesSortAttributeName_S3_CLASSIFIABLE_SIZE_IN_BYTES :: SearchResourcesSortAttributeName+pattern SearchResourcesSortAttributeName_S3_CLASSIFIABLE_SIZE_IN_BYTES = SearchResourcesSortAttributeName' "S3_CLASSIFIABLE_SIZE_IN_BYTES"++{-# COMPLETE+  SearchResourcesSortAttributeName_ACCOUNT_ID,+  SearchResourcesSortAttributeName_RESOURCE_NAME,+  SearchResourcesSortAttributeName_S3_CLASSIFIABLE_OBJECT_COUNT,+  SearchResourcesSortAttributeName_S3_CLASSIFIABLE_SIZE_IN_BYTES,+  SearchResourcesSortAttributeName'+  #-}
+ gen/Amazonka/MacieV2/Types/SearchResourcesSortCriteria.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.MacieV2.Types.SearchResourcesSortCriteria+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.SearchResourcesSortCriteria where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.OrderBy+import Amazonka.MacieV2.Types.SearchResourcesSortAttributeName+import qualified Amazonka.Prelude as Prelude++-- | Specifies criteria for sorting the results of a query for information+-- about Amazon Web Services resources that Amazon Macie monitors and+-- analyzes.+--+-- /See:/ 'newSearchResourcesSortCriteria' smart constructor.+data SearchResourcesSortCriteria = SearchResourcesSortCriteria'+  { -- | The property to sort the results by.+    attributeName :: Prelude.Maybe SearchResourcesSortAttributeName,+    -- | The sort order to apply to the results, based on the value for the+    -- property specified by the attributeName property. Valid values are: ASC,+    -- sort the results in ascending order; and, DESC, sort the results in+    -- descending order.+    orderBy :: Prelude.Maybe OrderBy+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SearchResourcesSortCriteria' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attributeName', 'searchResourcesSortCriteria_attributeName' - The property to sort the results by.+--+-- 'orderBy', 'searchResourcesSortCriteria_orderBy' - The sort order to apply to the results, based on the value for the+-- property specified by the attributeName property. Valid values are: ASC,+-- sort the results in ascending order; and, DESC, sort the results in+-- descending order.+newSearchResourcesSortCriteria ::+  SearchResourcesSortCriteria+newSearchResourcesSortCriteria =+  SearchResourcesSortCriteria'+    { attributeName =+        Prelude.Nothing,+      orderBy = Prelude.Nothing+    }++-- | The property to sort the results by.+searchResourcesSortCriteria_attributeName :: Lens.Lens' SearchResourcesSortCriteria (Prelude.Maybe SearchResourcesSortAttributeName)+searchResourcesSortCriteria_attributeName = Lens.lens (\SearchResourcesSortCriteria' {attributeName} -> attributeName) (\s@SearchResourcesSortCriteria' {} a -> s {attributeName = a} :: SearchResourcesSortCriteria)++-- | The sort order to apply to the results, based on the value for the+-- property specified by the attributeName property. Valid values are: ASC,+-- sort the results in ascending order; and, DESC, sort the results in+-- descending order.+searchResourcesSortCriteria_orderBy :: Lens.Lens' SearchResourcesSortCriteria (Prelude.Maybe OrderBy)+searchResourcesSortCriteria_orderBy = Lens.lens (\SearchResourcesSortCriteria' {orderBy} -> orderBy) (\s@SearchResourcesSortCriteria' {} a -> s {orderBy = a} :: SearchResourcesSortCriteria)++instance Prelude.Hashable SearchResourcesSortCriteria where+  hashWithSalt _salt SearchResourcesSortCriteria' {..} =+    _salt+      `Prelude.hashWithSalt` attributeName+      `Prelude.hashWithSalt` orderBy++instance Prelude.NFData SearchResourcesSortCriteria where+  rnf SearchResourcesSortCriteria' {..} =+    Prelude.rnf attributeName+      `Prelude.seq` Prelude.rnf orderBy++instance Data.ToJSON SearchResourcesSortCriteria where+  toJSON SearchResourcesSortCriteria' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("attributeName" Data..=) Prelude.<$> attributeName,+            ("orderBy" Data..=) Prelude.<$> orderBy+          ]+      )
+ gen/Amazonka/MacieV2/Types/SearchResourcesTagCriterion.hs view
@@ -0,0 +1,93 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.SearchResourcesTagCriterion+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.SearchResourcesTagCriterion where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.SearchResourcesComparator+import Amazonka.MacieV2.Types.SearchResourcesTagCriterionPair+import qualified Amazonka.Prelude as Prelude++-- | Specifies a tag-based filter condition that determines which Amazon Web+-- Services resources are included or excluded from the query results.+--+-- /See:/ 'newSearchResourcesTagCriterion' smart constructor.+data SearchResourcesTagCriterion = SearchResourcesTagCriterion'+  { -- | The operator to use in the condition. Valid values are EQ (equals) and+    -- NE (not equals).+    comparator :: Prelude.Maybe SearchResourcesComparator,+    -- | The tag keys, tag values, or tag key and value pairs to use in the+    -- condition.+    tagValues :: Prelude.Maybe [SearchResourcesTagCriterionPair]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SearchResourcesTagCriterion' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'comparator', 'searchResourcesTagCriterion_comparator' - The operator to use in the condition. Valid values are EQ (equals) and+-- NE (not equals).+--+-- 'tagValues', 'searchResourcesTagCriterion_tagValues' - The tag keys, tag values, or tag key and value pairs to use in the+-- condition.+newSearchResourcesTagCriterion ::+  SearchResourcesTagCriterion+newSearchResourcesTagCriterion =+  SearchResourcesTagCriterion'+    { comparator =+        Prelude.Nothing,+      tagValues = Prelude.Nothing+    }++-- | The operator to use in the condition. Valid values are EQ (equals) and+-- NE (not equals).+searchResourcesTagCriterion_comparator :: Lens.Lens' SearchResourcesTagCriterion (Prelude.Maybe SearchResourcesComparator)+searchResourcesTagCriterion_comparator = Lens.lens (\SearchResourcesTagCriterion' {comparator} -> comparator) (\s@SearchResourcesTagCriterion' {} a -> s {comparator = a} :: SearchResourcesTagCriterion)++-- | The tag keys, tag values, or tag key and value pairs to use in the+-- condition.+searchResourcesTagCriterion_tagValues :: Lens.Lens' SearchResourcesTagCriterion (Prelude.Maybe [SearchResourcesTagCriterionPair])+searchResourcesTagCriterion_tagValues = Lens.lens (\SearchResourcesTagCriterion' {tagValues} -> tagValues) (\s@SearchResourcesTagCriterion' {} a -> s {tagValues = a} :: SearchResourcesTagCriterion) Prelude.. Lens.mapping Lens.coerced++instance Prelude.Hashable SearchResourcesTagCriterion where+  hashWithSalt _salt SearchResourcesTagCriterion' {..} =+    _salt+      `Prelude.hashWithSalt` comparator+      `Prelude.hashWithSalt` tagValues++instance Prelude.NFData SearchResourcesTagCriterion where+  rnf SearchResourcesTagCriterion' {..} =+    Prelude.rnf comparator+      `Prelude.seq` Prelude.rnf tagValues++instance Data.ToJSON SearchResourcesTagCriterion where+  toJSON SearchResourcesTagCriterion' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("comparator" Data..=) Prelude.<$> comparator,+            ("tagValues" Data..=) Prelude.<$> tagValues+          ]+      )
+ gen/Amazonka/MacieV2/Types/SearchResourcesTagCriterionPair.hs view
@@ -0,0 +1,94 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.SearchResourcesTagCriterionPair+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.SearchResourcesTagCriterionPair 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++-- | Specifies a tag key, a tag value, or a tag key and value (as a pair) to+-- use in a tag-based filter condition for a query. Tag keys and values are+-- case sensitive. Also, Amazon Macie doesn\'t support use of partial+-- values or wildcard characters in tag-based filter conditions.+--+-- /See:/ 'newSearchResourcesTagCriterionPair' smart constructor.+data SearchResourcesTagCriterionPair = SearchResourcesTagCriterionPair'+  { -- | The value for the tag key to use in the condition.+    key :: Prelude.Maybe Prelude.Text,+    -- | The tag value to use in the condition.+    value :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SearchResourcesTagCriterionPair' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'key', 'searchResourcesTagCriterionPair_key' - The value for the tag key to use in the condition.+--+-- 'value', 'searchResourcesTagCriterionPair_value' - The tag value to use in the condition.+newSearchResourcesTagCriterionPair ::+  SearchResourcesTagCriterionPair+newSearchResourcesTagCriterionPair =+  SearchResourcesTagCriterionPair'+    { key =+        Prelude.Nothing,+      value = Prelude.Nothing+    }++-- | The value for the tag key to use in the condition.+searchResourcesTagCriterionPair_key :: Lens.Lens' SearchResourcesTagCriterionPair (Prelude.Maybe Prelude.Text)+searchResourcesTagCriterionPair_key = Lens.lens (\SearchResourcesTagCriterionPair' {key} -> key) (\s@SearchResourcesTagCriterionPair' {} a -> s {key = a} :: SearchResourcesTagCriterionPair)++-- | The tag value to use in the condition.+searchResourcesTagCriterionPair_value :: Lens.Lens' SearchResourcesTagCriterionPair (Prelude.Maybe Prelude.Text)+searchResourcesTagCriterionPair_value = Lens.lens (\SearchResourcesTagCriterionPair' {value} -> value) (\s@SearchResourcesTagCriterionPair' {} a -> s {value = a} :: SearchResourcesTagCriterionPair)++instance+  Prelude.Hashable+    SearchResourcesTagCriterionPair+  where+  hashWithSalt+    _salt+    SearchResourcesTagCriterionPair' {..} =+      _salt+        `Prelude.hashWithSalt` key+        `Prelude.hashWithSalt` value++instance+  Prelude.NFData+    SearchResourcesTagCriterionPair+  where+  rnf SearchResourcesTagCriterionPair' {..} =+    Prelude.rnf key `Prelude.seq` Prelude.rnf value++instance Data.ToJSON SearchResourcesTagCriterionPair where+  toJSON SearchResourcesTagCriterionPair' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("key" Data..=) Prelude.<$> key,+            ("value" Data..=) Prelude.<$> value+          ]+      )
+ gen/Amazonka/MacieV2/Types/SecurityHubConfiguration.hs view
@@ -0,0 +1,129 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.SecurityHubConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.SecurityHubConfiguration 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++-- | Specifies configuration settings that determine which findings are+-- published to Security Hub automatically. For information about how Macie+-- publishes findings to Security Hub, see+-- <https://docs.aws.amazon.com/macie/latest/user/securityhub-integration.html Amazon Macie integration with Security Hub>+-- in the /Amazon Macie User Guide/.+--+-- /See:/ 'newSecurityHubConfiguration' smart constructor.+data SecurityHubConfiguration = SecurityHubConfiguration'+  { -- | Specifies whether to publish policy findings to Security Hub. If you set+    -- this value to true, Amazon Macie automatically publishes all new and+    -- updated policy findings that weren\'t suppressed by a findings filter.+    -- The default value is true.+    publishPolicyFindings :: Prelude.Bool,+    -- | Specifies whether to publish sensitive data findings to Security Hub. If+    -- you set this value to true, Amazon Macie automatically publishes all+    -- sensitive data findings that weren\'t suppressed by a findings filter.+    -- The default value is false.+    publishClassificationFindings :: Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SecurityHubConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'publishPolicyFindings', 'securityHubConfiguration_publishPolicyFindings' - Specifies whether to publish policy findings to Security Hub. If you set+-- this value to true, Amazon Macie automatically publishes all new and+-- updated policy findings that weren\'t suppressed by a findings filter.+-- The default value is true.+--+-- 'publishClassificationFindings', 'securityHubConfiguration_publishClassificationFindings' - Specifies whether to publish sensitive data findings to Security Hub. If+-- you set this value to true, Amazon Macie automatically publishes all+-- sensitive data findings that weren\'t suppressed by a findings filter.+-- The default value is false.+newSecurityHubConfiguration ::+  -- | 'publishPolicyFindings'+  Prelude.Bool ->+  -- | 'publishClassificationFindings'+  Prelude.Bool ->+  SecurityHubConfiguration+newSecurityHubConfiguration+  pPublishPolicyFindings_+  pPublishClassificationFindings_ =+    SecurityHubConfiguration'+      { publishPolicyFindings =+          pPublishPolicyFindings_,+        publishClassificationFindings =+          pPublishClassificationFindings_+      }++-- | Specifies whether to publish policy findings to Security Hub. If you set+-- this value to true, Amazon Macie automatically publishes all new and+-- updated policy findings that weren\'t suppressed by a findings filter.+-- The default value is true.+securityHubConfiguration_publishPolicyFindings :: Lens.Lens' SecurityHubConfiguration Prelude.Bool+securityHubConfiguration_publishPolicyFindings = Lens.lens (\SecurityHubConfiguration' {publishPolicyFindings} -> publishPolicyFindings) (\s@SecurityHubConfiguration' {} a -> s {publishPolicyFindings = a} :: SecurityHubConfiguration)++-- | Specifies whether to publish sensitive data findings to Security Hub. If+-- you set this value to true, Amazon Macie automatically publishes all+-- sensitive data findings that weren\'t suppressed by a findings filter.+-- The default value is false.+securityHubConfiguration_publishClassificationFindings :: Lens.Lens' SecurityHubConfiguration Prelude.Bool+securityHubConfiguration_publishClassificationFindings = Lens.lens (\SecurityHubConfiguration' {publishClassificationFindings} -> publishClassificationFindings) (\s@SecurityHubConfiguration' {} a -> s {publishClassificationFindings = a} :: SecurityHubConfiguration)++instance Data.FromJSON SecurityHubConfiguration where+  parseJSON =+    Data.withObject+      "SecurityHubConfiguration"+      ( \x ->+          SecurityHubConfiguration'+            Prelude.<$> (x Data..: "publishPolicyFindings")+            Prelude.<*> (x Data..: "publishClassificationFindings")+      )++instance Prelude.Hashable SecurityHubConfiguration where+  hashWithSalt _salt SecurityHubConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` publishPolicyFindings+      `Prelude.hashWithSalt` publishClassificationFindings++instance Prelude.NFData SecurityHubConfiguration where+  rnf SecurityHubConfiguration' {..} =+    Prelude.rnf publishPolicyFindings+      `Prelude.seq` Prelude.rnf publishClassificationFindings++instance Data.ToJSON SecurityHubConfiguration where+  toJSON SecurityHubConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ( "publishPolicyFindings"+                  Data..= publishPolicyFindings+              ),+            Prelude.Just+              ( "publishClassificationFindings"+                  Data..= publishClassificationFindings+              )+          ]+      )
+ gen/Amazonka/MacieV2/Types/SensitiveDataItem.hs view
@@ -0,0 +1,123 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.SensitiveDataItem+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.SensitiveDataItem where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.DefaultDetection+import Amazonka.MacieV2.Types.SensitiveDataItemCategory+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the category, types, and occurrences of+-- sensitive data that produced a sensitive data finding.+--+-- /See:/ 'newSensitiveDataItem' smart constructor.+data SensitiveDataItem = SensitiveDataItem'+  { -- | The category of sensitive data that was detected. For example:+    -- CREDENTIALS, for credentials data such as private keys or Amazon Web+    -- Services secret access keys; FINANCIAL_INFORMATION, for financial data+    -- such as credit card numbers; or, PERSONAL_INFORMATION, for personal+    -- health information, such as health insurance identification numbers, or+    -- personally identifiable information, such as passport numbers.+    category :: Prelude.Maybe SensitiveDataItemCategory,+    -- | An array of objects, one for each type of sensitive data that was+    -- detected. Each object reports the number of occurrences of a specific+    -- type of sensitive data that was detected, and the location of up to 15+    -- of those occurrences.+    detections :: Prelude.Maybe [DefaultDetection],+    -- | The total number of occurrences of the sensitive data that was detected.+    totalCount :: Prelude.Maybe Prelude.Integer+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SensitiveDataItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'sensitiveDataItem_category' - The category of sensitive data that was detected. For example:+-- CREDENTIALS, for credentials data such as private keys or Amazon Web+-- Services secret access keys; FINANCIAL_INFORMATION, for financial data+-- such as credit card numbers; or, PERSONAL_INFORMATION, for personal+-- health information, such as health insurance identification numbers, or+-- personally identifiable information, such as passport numbers.+--+-- 'detections', 'sensitiveDataItem_detections' - An array of objects, one for each type of sensitive data that was+-- detected. Each object reports the number of occurrences of a specific+-- type of sensitive data that was detected, and the location of up to 15+-- of those occurrences.+--+-- 'totalCount', 'sensitiveDataItem_totalCount' - The total number of occurrences of the sensitive data that was detected.+newSensitiveDataItem ::+  SensitiveDataItem+newSensitiveDataItem =+  SensitiveDataItem'+    { category = Prelude.Nothing,+      detections = Prelude.Nothing,+      totalCount = Prelude.Nothing+    }++-- | The category of sensitive data that was detected. For example:+-- CREDENTIALS, for credentials data such as private keys or Amazon Web+-- Services secret access keys; FINANCIAL_INFORMATION, for financial data+-- such as credit card numbers; or, PERSONAL_INFORMATION, for personal+-- health information, such as health insurance identification numbers, or+-- personally identifiable information, such as passport numbers.+sensitiveDataItem_category :: Lens.Lens' SensitiveDataItem (Prelude.Maybe SensitiveDataItemCategory)+sensitiveDataItem_category = Lens.lens (\SensitiveDataItem' {category} -> category) (\s@SensitiveDataItem' {} a -> s {category = a} :: SensitiveDataItem)++-- | An array of objects, one for each type of sensitive data that was+-- detected. Each object reports the number of occurrences of a specific+-- type of sensitive data that was detected, and the location of up to 15+-- of those occurrences.+sensitiveDataItem_detections :: Lens.Lens' SensitiveDataItem (Prelude.Maybe [DefaultDetection])+sensitiveDataItem_detections = Lens.lens (\SensitiveDataItem' {detections} -> detections) (\s@SensitiveDataItem' {} a -> s {detections = a} :: SensitiveDataItem) Prelude.. Lens.mapping Lens.coerced++-- | The total number of occurrences of the sensitive data that was detected.+sensitiveDataItem_totalCount :: Lens.Lens' SensitiveDataItem (Prelude.Maybe Prelude.Integer)+sensitiveDataItem_totalCount = Lens.lens (\SensitiveDataItem' {totalCount} -> totalCount) (\s@SensitiveDataItem' {} a -> s {totalCount = a} :: SensitiveDataItem)++instance Data.FromJSON SensitiveDataItem where+  parseJSON =+    Data.withObject+      "SensitiveDataItem"+      ( \x ->+          SensitiveDataItem'+            Prelude.<$> (x Data..:? "category")+            Prelude.<*> (x Data..:? "detections" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "totalCount")+      )++instance Prelude.Hashable SensitiveDataItem where+  hashWithSalt _salt SensitiveDataItem' {..} =+    _salt+      `Prelude.hashWithSalt` category+      `Prelude.hashWithSalt` detections+      `Prelude.hashWithSalt` totalCount++instance Prelude.NFData SensitiveDataItem where+  rnf SensitiveDataItem' {..} =+    Prelude.rnf category+      `Prelude.seq` Prelude.rnf detections+      `Prelude.seq` Prelude.rnf totalCount
+ gen/Amazonka/MacieV2/Types/SensitiveDataItemCategory.hs view
@@ -0,0 +1,85 @@+{-# 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.MacieV2.Types.SensitiveDataItemCategory+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.SensitiveDataItemCategory+  ( SensitiveDataItemCategory+      ( ..,+        SensitiveDataItemCategory_CREDENTIALS,+        SensitiveDataItemCategory_CUSTOM_IDENTIFIER,+        SensitiveDataItemCategory_FINANCIAL_INFORMATION,+        SensitiveDataItemCategory_PERSONAL_INFORMATION+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | For a finding, the category of sensitive data that was detected and+-- produced the finding. For a managed data identifier, the category of+-- sensitive data that the managed data identifier detects. Possible values+-- are:+newtype SensitiveDataItemCategory = SensitiveDataItemCategory'+  { fromSensitiveDataItemCategory ::+      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 SensitiveDataItemCategory_CREDENTIALS :: SensitiveDataItemCategory+pattern SensitiveDataItemCategory_CREDENTIALS = SensitiveDataItemCategory' "CREDENTIALS"++pattern SensitiveDataItemCategory_CUSTOM_IDENTIFIER :: SensitiveDataItemCategory+pattern SensitiveDataItemCategory_CUSTOM_IDENTIFIER = SensitiveDataItemCategory' "CUSTOM_IDENTIFIER"++pattern SensitiveDataItemCategory_FINANCIAL_INFORMATION :: SensitiveDataItemCategory+pattern SensitiveDataItemCategory_FINANCIAL_INFORMATION = SensitiveDataItemCategory' "FINANCIAL_INFORMATION"++pattern SensitiveDataItemCategory_PERSONAL_INFORMATION :: SensitiveDataItemCategory+pattern SensitiveDataItemCategory_PERSONAL_INFORMATION = SensitiveDataItemCategory' "PERSONAL_INFORMATION"++{-# COMPLETE+  SensitiveDataItemCategory_CREDENTIALS,+  SensitiveDataItemCategory_CUSTOM_IDENTIFIER,+  SensitiveDataItemCategory_FINANCIAL_INFORMATION,+  SensitiveDataItemCategory_PERSONAL_INFORMATION,+  SensitiveDataItemCategory'+  #-}
+ gen/Amazonka/MacieV2/Types/SensitivityAggregations.hs view
@@ -0,0 +1,153 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.SensitivityAggregations+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.SensitivityAggregations where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides aggregated statistical data for sensitive data discovery+-- metrics that apply to S3 buckets. Each field contains aggregated data+-- for all the buckets that have a sensitivity score (sensitivityScore) of+-- a specified value or within a specified range+-- (BucketStatisticsBySensitivity). If automated sensitive data discovery+-- is currently disabled for your account, the value for each field is 0.+--+-- /See:/ 'newSensitivityAggregations' smart constructor.+data SensitivityAggregations = SensitivityAggregations'+  { -- | The total storage size, in bytes, of all the objects that Amazon Macie+    -- can analyze in the buckets. These objects use a supported storage class+    -- and have a file name extension for a supported file or storage format.+    --+    -- If versioning is enabled for any of the buckets, this value is based on+    -- the size of the latest version of each applicable object in the buckets.+    -- This value doesn\'t reflect the storage size of all versions of all+    -- applicable objects in the buckets.+    classifiableSizeInBytes :: Prelude.Maybe Prelude.Integer,+    -- | The total number of buckets that are publicly accessible based on a+    -- combination of permissions settings for each bucket.+    publiclyAccessibleCount :: Prelude.Maybe Prelude.Integer,+    -- | The total number of buckets.+    totalCount :: Prelude.Maybe Prelude.Integer,+    -- | The total storage size, in bytes, of the buckets.+    --+    -- If versioning is enabled for any of the buckets, this value is based on+    -- the size of the latest version of each object in the buckets. This value+    -- doesn\'t reflect the storage size of all versions of the objects in the+    -- buckets.+    totalSizeInBytes :: Prelude.Maybe Prelude.Integer+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SensitivityAggregations' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'classifiableSizeInBytes', 'sensitivityAggregations_classifiableSizeInBytes' - The total storage size, in bytes, of all the objects that Amazon Macie+-- can analyze in the buckets. These objects use a supported storage class+-- and have a file name extension for a supported file or storage format.+--+-- If versioning is enabled for any of the buckets, this value is based on+-- the size of the latest version of each applicable object in the buckets.+-- This value doesn\'t reflect the storage size of all versions of all+-- applicable objects in the buckets.+--+-- 'publiclyAccessibleCount', 'sensitivityAggregations_publiclyAccessibleCount' - The total number of buckets that are publicly accessible based on a+-- combination of permissions settings for each bucket.+--+-- 'totalCount', 'sensitivityAggregations_totalCount' - The total number of buckets.+--+-- 'totalSizeInBytes', 'sensitivityAggregations_totalSizeInBytes' - The total storage size, in bytes, of the buckets.+--+-- If versioning is enabled for any of the buckets, this value is based on+-- the size of the latest version of each object in the buckets. This value+-- doesn\'t reflect the storage size of all versions of the objects in the+-- buckets.+newSensitivityAggregations ::+  SensitivityAggregations+newSensitivityAggregations =+  SensitivityAggregations'+    { classifiableSizeInBytes =+        Prelude.Nothing,+      publiclyAccessibleCount = Prelude.Nothing,+      totalCount = Prelude.Nothing,+      totalSizeInBytes = Prelude.Nothing+    }++-- | The total storage size, in bytes, of all the objects that Amazon Macie+-- can analyze in the buckets. These objects use a supported storage class+-- and have a file name extension for a supported file or storage format.+--+-- If versioning is enabled for any of the buckets, this value is based on+-- the size of the latest version of each applicable object in the buckets.+-- This value doesn\'t reflect the storage size of all versions of all+-- applicable objects in the buckets.+sensitivityAggregations_classifiableSizeInBytes :: Lens.Lens' SensitivityAggregations (Prelude.Maybe Prelude.Integer)+sensitivityAggregations_classifiableSizeInBytes = Lens.lens (\SensitivityAggregations' {classifiableSizeInBytes} -> classifiableSizeInBytes) (\s@SensitivityAggregations' {} a -> s {classifiableSizeInBytes = a} :: SensitivityAggregations)++-- | The total number of buckets that are publicly accessible based on a+-- combination of permissions settings for each bucket.+sensitivityAggregations_publiclyAccessibleCount :: Lens.Lens' SensitivityAggregations (Prelude.Maybe Prelude.Integer)+sensitivityAggregations_publiclyAccessibleCount = Lens.lens (\SensitivityAggregations' {publiclyAccessibleCount} -> publiclyAccessibleCount) (\s@SensitivityAggregations' {} a -> s {publiclyAccessibleCount = a} :: SensitivityAggregations)++-- | The total number of buckets.+sensitivityAggregations_totalCount :: Lens.Lens' SensitivityAggregations (Prelude.Maybe Prelude.Integer)+sensitivityAggregations_totalCount = Lens.lens (\SensitivityAggregations' {totalCount} -> totalCount) (\s@SensitivityAggregations' {} a -> s {totalCount = a} :: SensitivityAggregations)++-- | The total storage size, in bytes, of the buckets.+--+-- If versioning is enabled for any of the buckets, this value is based on+-- the size of the latest version of each object in the buckets. This value+-- doesn\'t reflect the storage size of all versions of the objects in the+-- buckets.+sensitivityAggregations_totalSizeInBytes :: Lens.Lens' SensitivityAggregations (Prelude.Maybe Prelude.Integer)+sensitivityAggregations_totalSizeInBytes = Lens.lens (\SensitivityAggregations' {totalSizeInBytes} -> totalSizeInBytes) (\s@SensitivityAggregations' {} a -> s {totalSizeInBytes = a} :: SensitivityAggregations)++instance Data.FromJSON SensitivityAggregations where+  parseJSON =+    Data.withObject+      "SensitivityAggregations"+      ( \x ->+          SensitivityAggregations'+            Prelude.<$> (x Data..:? "classifiableSizeInBytes")+            Prelude.<*> (x Data..:? "publiclyAccessibleCount")+            Prelude.<*> (x Data..:? "totalCount")+            Prelude.<*> (x Data..:? "totalSizeInBytes")+      )++instance Prelude.Hashable SensitivityAggregations where+  hashWithSalt _salt SensitivityAggregations' {..} =+    _salt+      `Prelude.hashWithSalt` classifiableSizeInBytes+      `Prelude.hashWithSalt` publiclyAccessibleCount+      `Prelude.hashWithSalt` totalCount+      `Prelude.hashWithSalt` totalSizeInBytes++instance Prelude.NFData SensitivityAggregations where+  rnf SensitivityAggregations' {..} =+    Prelude.rnf classifiableSizeInBytes+      `Prelude.seq` Prelude.rnf publiclyAccessibleCount+      `Prelude.seq` Prelude.rnf totalCount+      `Prelude.seq` Prelude.rnf totalSizeInBytes
+ gen/Amazonka/MacieV2/Types/SensitivityInspectionTemplateExcludes.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.MacieV2.Types.SensitivityInspectionTemplateExcludes+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.SensitivityInspectionTemplateExcludes 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++-- | Specifies managed data identifiers to exclude (not use) when performing+-- automated sensitive data discovery for an Amazon Macie account. For+-- information about the managed data identifiers that Amazon Macie+-- currently provides, see+-- <https://docs.aws.amazon.com/macie/latest/user/managed-data-identifiers.html Using managed data identifiers>+-- in the /Amazon Macie User Guide/.+--+-- /See:/ 'newSensitivityInspectionTemplateExcludes' smart constructor.+data SensitivityInspectionTemplateExcludes = SensitivityInspectionTemplateExcludes'+  { -- | An array of unique identifiers, one for each managed data identifier to+    -- exclude. To retrieve a list of valid values, use the+    -- ListManagedDataIdentifiers operation.+    managedDataIdentifierIds :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SensitivityInspectionTemplateExcludes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'managedDataIdentifierIds', 'sensitivityInspectionTemplateExcludes_managedDataIdentifierIds' - An array of unique identifiers, one for each managed data identifier to+-- exclude. To retrieve a list of valid values, use the+-- ListManagedDataIdentifiers operation.+newSensitivityInspectionTemplateExcludes ::+  SensitivityInspectionTemplateExcludes+newSensitivityInspectionTemplateExcludes =+  SensitivityInspectionTemplateExcludes'+    { managedDataIdentifierIds =+        Prelude.Nothing+    }++-- | An array of unique identifiers, one for each managed data identifier to+-- exclude. To retrieve a list of valid values, use the+-- ListManagedDataIdentifiers operation.+sensitivityInspectionTemplateExcludes_managedDataIdentifierIds :: Lens.Lens' SensitivityInspectionTemplateExcludes (Prelude.Maybe [Prelude.Text])+sensitivityInspectionTemplateExcludes_managedDataIdentifierIds = Lens.lens (\SensitivityInspectionTemplateExcludes' {managedDataIdentifierIds} -> managedDataIdentifierIds) (\s@SensitivityInspectionTemplateExcludes' {} a -> s {managedDataIdentifierIds = a} :: SensitivityInspectionTemplateExcludes) Prelude.. Lens.mapping Lens.coerced++instance+  Data.FromJSON+    SensitivityInspectionTemplateExcludes+  where+  parseJSON =+    Data.withObject+      "SensitivityInspectionTemplateExcludes"+      ( \x ->+          SensitivityInspectionTemplateExcludes'+            Prelude.<$> ( x+                            Data..:? "managedDataIdentifierIds"+                            Data..!= Prelude.mempty+                        )+      )++instance+  Prelude.Hashable+    SensitivityInspectionTemplateExcludes+  where+  hashWithSalt+    _salt+    SensitivityInspectionTemplateExcludes' {..} =+      _salt+        `Prelude.hashWithSalt` managedDataIdentifierIds++instance+  Prelude.NFData+    SensitivityInspectionTemplateExcludes+  where+  rnf SensitivityInspectionTemplateExcludes' {..} =+    Prelude.rnf managedDataIdentifierIds++instance+  Data.ToJSON+    SensitivityInspectionTemplateExcludes+  where+  toJSON SensitivityInspectionTemplateExcludes' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("managedDataIdentifierIds" Data..=)+              Prelude.<$> managedDataIdentifierIds+          ]+      )
+ gen/Amazonka/MacieV2/Types/SensitivityInspectionTemplateIncludes.hs view
@@ -0,0 +1,162 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.SensitivityInspectionTemplateIncludes+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.SensitivityInspectionTemplateIncludes 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++-- | Specifies the allow lists, custom data identifiers, and managed data+-- identifiers to include (use) when performing automated sensitive data+-- discovery for an Amazon Macie account. The configuration must specify at+-- least one custom data identifier or managed data identifier. For+-- information about the managed data identifiers that Amazon Macie+-- currently provides, see+-- <https://docs.aws.amazon.com/macie/latest/user/managed-data-identifiers.html Using managed data identifiers>+-- in the /Amazon Macie User Guide/.+--+-- /See:/ 'newSensitivityInspectionTemplateIncludes' smart constructor.+data SensitivityInspectionTemplateIncludes = SensitivityInspectionTemplateIncludes'+  { -- | An array of unique identifiers, one for each allow list to include.+    allowListIds :: Prelude.Maybe [Prelude.Text],+    -- | An array of unique identifiers, one for each custom data identifier to+    -- include.+    customDataIdentifierIds :: Prelude.Maybe [Prelude.Text],+    -- | An array of unique identifiers, one for each managed data identifier to+    -- include.+    --+    -- Amazon Macie uses these managed data identifiers in addition to managed+    -- data identifiers that are subsequently released and recommended for+    -- automated sensitive data discovery. To retrieve a list of valid values+    -- for the managed data identifiers that are currently available, use the+    -- ListManagedDataIdentifiers operation.+    managedDataIdentifierIds :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SensitivityInspectionTemplateIncludes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'allowListIds', 'sensitivityInspectionTemplateIncludes_allowListIds' - An array of unique identifiers, one for each allow list to include.+--+-- 'customDataIdentifierIds', 'sensitivityInspectionTemplateIncludes_customDataIdentifierIds' - An array of unique identifiers, one for each custom data identifier to+-- include.+--+-- 'managedDataIdentifierIds', 'sensitivityInspectionTemplateIncludes_managedDataIdentifierIds' - An array of unique identifiers, one for each managed data identifier to+-- include.+--+-- Amazon Macie uses these managed data identifiers in addition to managed+-- data identifiers that are subsequently released and recommended for+-- automated sensitive data discovery. To retrieve a list of valid values+-- for the managed data identifiers that are currently available, use the+-- ListManagedDataIdentifiers operation.+newSensitivityInspectionTemplateIncludes ::+  SensitivityInspectionTemplateIncludes+newSensitivityInspectionTemplateIncludes =+  SensitivityInspectionTemplateIncludes'+    { allowListIds =+        Prelude.Nothing,+      customDataIdentifierIds =+        Prelude.Nothing,+      managedDataIdentifierIds =+        Prelude.Nothing+    }++-- | An array of unique identifiers, one for each allow list to include.+sensitivityInspectionTemplateIncludes_allowListIds :: Lens.Lens' SensitivityInspectionTemplateIncludes (Prelude.Maybe [Prelude.Text])+sensitivityInspectionTemplateIncludes_allowListIds = Lens.lens (\SensitivityInspectionTemplateIncludes' {allowListIds} -> allowListIds) (\s@SensitivityInspectionTemplateIncludes' {} a -> s {allowListIds = a} :: SensitivityInspectionTemplateIncludes) Prelude.. Lens.mapping Lens.coerced++-- | An array of unique identifiers, one for each custom data identifier to+-- include.+sensitivityInspectionTemplateIncludes_customDataIdentifierIds :: Lens.Lens' SensitivityInspectionTemplateIncludes (Prelude.Maybe [Prelude.Text])+sensitivityInspectionTemplateIncludes_customDataIdentifierIds = Lens.lens (\SensitivityInspectionTemplateIncludes' {customDataIdentifierIds} -> customDataIdentifierIds) (\s@SensitivityInspectionTemplateIncludes' {} a -> s {customDataIdentifierIds = a} :: SensitivityInspectionTemplateIncludes) Prelude.. Lens.mapping Lens.coerced++-- | An array of unique identifiers, one for each managed data identifier to+-- include.+--+-- Amazon Macie uses these managed data identifiers in addition to managed+-- data identifiers that are subsequently released and recommended for+-- automated sensitive data discovery. To retrieve a list of valid values+-- for the managed data identifiers that are currently available, use the+-- ListManagedDataIdentifiers operation.+sensitivityInspectionTemplateIncludes_managedDataIdentifierIds :: Lens.Lens' SensitivityInspectionTemplateIncludes (Prelude.Maybe [Prelude.Text])+sensitivityInspectionTemplateIncludes_managedDataIdentifierIds = Lens.lens (\SensitivityInspectionTemplateIncludes' {managedDataIdentifierIds} -> managedDataIdentifierIds) (\s@SensitivityInspectionTemplateIncludes' {} a -> s {managedDataIdentifierIds = a} :: SensitivityInspectionTemplateIncludes) Prelude.. Lens.mapping Lens.coerced++instance+  Data.FromJSON+    SensitivityInspectionTemplateIncludes+  where+  parseJSON =+    Data.withObject+      "SensitivityInspectionTemplateIncludes"+      ( \x ->+          SensitivityInspectionTemplateIncludes'+            Prelude.<$> (x Data..:? "allowListIds" Data..!= Prelude.mempty)+            Prelude.<*> ( x+                            Data..:? "customDataIdentifierIds"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "managedDataIdentifierIds"+                            Data..!= Prelude.mempty+                        )+      )++instance+  Prelude.Hashable+    SensitivityInspectionTemplateIncludes+  where+  hashWithSalt+    _salt+    SensitivityInspectionTemplateIncludes' {..} =+      _salt+        `Prelude.hashWithSalt` allowListIds+        `Prelude.hashWithSalt` customDataIdentifierIds+        `Prelude.hashWithSalt` managedDataIdentifierIds++instance+  Prelude.NFData+    SensitivityInspectionTemplateIncludes+  where+  rnf SensitivityInspectionTemplateIncludes' {..} =+    Prelude.rnf allowListIds+      `Prelude.seq` Prelude.rnf customDataIdentifierIds+      `Prelude.seq` Prelude.rnf managedDataIdentifierIds++instance+  Data.ToJSON+    SensitivityInspectionTemplateIncludes+  where+  toJSON SensitivityInspectionTemplateIncludes' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("allowListIds" Data..=) Prelude.<$> allowListIds,+            ("customDataIdentifierIds" Data..=)+              Prelude.<$> customDataIdentifierIds,+            ("managedDataIdentifierIds" Data..=)+              Prelude.<$> managedDataIdentifierIds+          ]+      )
+ gen/Amazonka/MacieV2/Types/SensitivityInspectionTemplatesEntry.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.MacieV2.Types.SensitivityInspectionTemplatesEntry+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.SensitivityInspectionTemplatesEntry where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the sensitivity inspection template for an+-- Amazon Macie account. Macie uses the template\'s settings when it+-- performs automated sensitive data discovery for the account.+--+-- /See:/ 'newSensitivityInspectionTemplatesEntry' smart constructor.+data SensitivityInspectionTemplatesEntry = SensitivityInspectionTemplatesEntry'+  { -- | The unique identifier for the sensitivity inspection template for the+    -- account.+    id :: Prelude.Maybe Prelude.Text,+    -- | The name of the sensitivity inspection template for the account.+    name :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SensitivityInspectionTemplatesEntry' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'sensitivityInspectionTemplatesEntry_id' - The unique identifier for the sensitivity inspection template for the+-- account.+--+-- 'name', 'sensitivityInspectionTemplatesEntry_name' - The name of the sensitivity inspection template for the account.+newSensitivityInspectionTemplatesEntry ::+  SensitivityInspectionTemplatesEntry+newSensitivityInspectionTemplatesEntry =+  SensitivityInspectionTemplatesEntry'+    { id =+        Prelude.Nothing,+      name = Prelude.Nothing+    }++-- | The unique identifier for the sensitivity inspection template for the+-- account.+sensitivityInspectionTemplatesEntry_id :: Lens.Lens' SensitivityInspectionTemplatesEntry (Prelude.Maybe Prelude.Text)+sensitivityInspectionTemplatesEntry_id = Lens.lens (\SensitivityInspectionTemplatesEntry' {id} -> id) (\s@SensitivityInspectionTemplatesEntry' {} a -> s {id = a} :: SensitivityInspectionTemplatesEntry)++-- | The name of the sensitivity inspection template for the account.+sensitivityInspectionTemplatesEntry_name :: Lens.Lens' SensitivityInspectionTemplatesEntry (Prelude.Maybe Prelude.Text)+sensitivityInspectionTemplatesEntry_name = Lens.lens (\SensitivityInspectionTemplatesEntry' {name} -> name) (\s@SensitivityInspectionTemplatesEntry' {} a -> s {name = a} :: SensitivityInspectionTemplatesEntry)++instance+  Data.FromJSON+    SensitivityInspectionTemplatesEntry+  where+  parseJSON =+    Data.withObject+      "SensitivityInspectionTemplatesEntry"+      ( \x ->+          SensitivityInspectionTemplatesEntry'+            Prelude.<$> (x Data..:? "id")+            Prelude.<*> (x Data..:? "name")+      )++instance+  Prelude.Hashable+    SensitivityInspectionTemplatesEntry+  where+  hashWithSalt+    _salt+    SensitivityInspectionTemplatesEntry' {..} =+      _salt+        `Prelude.hashWithSalt` id+        `Prelude.hashWithSalt` name++instance+  Prelude.NFData+    SensitivityInspectionTemplatesEntry+  where+  rnf SensitivityInspectionTemplatesEntry' {..} =+    Prelude.rnf id `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/MacieV2/Types/ServerSideEncryption.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.MacieV2.Types.ServerSideEncryption+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.ServerSideEncryption where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.EncryptionType+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the server-side encryption settings for an S3+-- bucket or S3 object.+--+-- /See:/ 'newServerSideEncryption' smart constructor.+data ServerSideEncryption = ServerSideEncryption'+  { -- | The server-side encryption algorithm that\'s used when storing data in+    -- the bucket or object. If default encryption is disabled for the bucket+    -- or the object isn\'t encrypted using server-side encryption, this value+    -- is NONE.+    encryptionType :: Prelude.Maybe EncryptionType,+    -- | The Amazon Resource Name (ARN) or unique identifier (key ID) for the KMS+    -- key that\'s used to encrypt data in the bucket or the object. This value+    -- is null if an KMS key isn\'t used to encrypt the data.+    kmsMasterKeyId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ServerSideEncryption' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'encryptionType', 'serverSideEncryption_encryptionType' - The server-side encryption algorithm that\'s used when storing data in+-- the bucket or object. If default encryption is disabled for the bucket+-- or the object isn\'t encrypted using server-side encryption, this value+-- is NONE.+--+-- 'kmsMasterKeyId', 'serverSideEncryption_kmsMasterKeyId' - The Amazon Resource Name (ARN) or unique identifier (key ID) for the KMS+-- key that\'s used to encrypt data in the bucket or the object. This value+-- is null if an KMS key isn\'t used to encrypt the data.+newServerSideEncryption ::+  ServerSideEncryption+newServerSideEncryption =+  ServerSideEncryption'+    { encryptionType =+        Prelude.Nothing,+      kmsMasterKeyId = Prelude.Nothing+    }++-- | The server-side encryption algorithm that\'s used when storing data in+-- the bucket or object. If default encryption is disabled for the bucket+-- or the object isn\'t encrypted using server-side encryption, this value+-- is NONE.+serverSideEncryption_encryptionType :: Lens.Lens' ServerSideEncryption (Prelude.Maybe EncryptionType)+serverSideEncryption_encryptionType = Lens.lens (\ServerSideEncryption' {encryptionType} -> encryptionType) (\s@ServerSideEncryption' {} a -> s {encryptionType = a} :: ServerSideEncryption)++-- | The Amazon Resource Name (ARN) or unique identifier (key ID) for the KMS+-- key that\'s used to encrypt data in the bucket or the object. This value+-- is null if an KMS key isn\'t used to encrypt the data.+serverSideEncryption_kmsMasterKeyId :: Lens.Lens' ServerSideEncryption (Prelude.Maybe Prelude.Text)+serverSideEncryption_kmsMasterKeyId = Lens.lens (\ServerSideEncryption' {kmsMasterKeyId} -> kmsMasterKeyId) (\s@ServerSideEncryption' {} a -> s {kmsMasterKeyId = a} :: ServerSideEncryption)++instance Data.FromJSON ServerSideEncryption where+  parseJSON =+    Data.withObject+      "ServerSideEncryption"+      ( \x ->+          ServerSideEncryption'+            Prelude.<$> (x Data..:? "encryptionType")+            Prelude.<*> (x Data..:? "kmsMasterKeyId")+      )++instance Prelude.Hashable ServerSideEncryption where+  hashWithSalt _salt ServerSideEncryption' {..} =+    _salt+      `Prelude.hashWithSalt` encryptionType+      `Prelude.hashWithSalt` kmsMasterKeyId++instance Prelude.NFData ServerSideEncryption where+  rnf ServerSideEncryption' {..} =+    Prelude.rnf encryptionType+      `Prelude.seq` Prelude.rnf kmsMasterKeyId
+ gen/Amazonka/MacieV2/Types/ServiceLimit.hs view
@@ -0,0 +1,103 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.ServiceLimit+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.ServiceLimit where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.Unit+import qualified Amazonka.Prelude as Prelude++-- | Specifies a current quota for an Amazon Macie account.+--+-- /See:/ 'newServiceLimit' smart constructor.+data ServiceLimit = ServiceLimit'+  { -- | Specifies whether the account has met the quota that corresponds to the+    -- metric specified by the UsageByAccount.type field in the response.+    isServiceLimited :: Prelude.Maybe Prelude.Bool,+    -- | The unit of measurement for the value specified by the value field.+    unit :: Prelude.Maybe Unit,+    -- | The value for the metric specified by the UsageByAccount.type field in+    -- the response.+    value :: Prelude.Maybe Prelude.Integer+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ServiceLimit' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'isServiceLimited', 'serviceLimit_isServiceLimited' - Specifies whether the account has met the quota that corresponds to the+-- metric specified by the UsageByAccount.type field in the response.+--+-- 'unit', 'serviceLimit_unit' - The unit of measurement for the value specified by the value field.+--+-- 'value', 'serviceLimit_value' - The value for the metric specified by the UsageByAccount.type field in+-- the response.+newServiceLimit ::+  ServiceLimit+newServiceLimit =+  ServiceLimit'+    { isServiceLimited = Prelude.Nothing,+      unit = Prelude.Nothing,+      value = Prelude.Nothing+    }++-- | Specifies whether the account has met the quota that corresponds to the+-- metric specified by the UsageByAccount.type field in the response.+serviceLimit_isServiceLimited :: Lens.Lens' ServiceLimit (Prelude.Maybe Prelude.Bool)+serviceLimit_isServiceLimited = Lens.lens (\ServiceLimit' {isServiceLimited} -> isServiceLimited) (\s@ServiceLimit' {} a -> s {isServiceLimited = a} :: ServiceLimit)++-- | The unit of measurement for the value specified by the value field.+serviceLimit_unit :: Lens.Lens' ServiceLimit (Prelude.Maybe Unit)+serviceLimit_unit = Lens.lens (\ServiceLimit' {unit} -> unit) (\s@ServiceLimit' {} a -> s {unit = a} :: ServiceLimit)++-- | The value for the metric specified by the UsageByAccount.type field in+-- the response.+serviceLimit_value :: Lens.Lens' ServiceLimit (Prelude.Maybe Prelude.Integer)+serviceLimit_value = Lens.lens (\ServiceLimit' {value} -> value) (\s@ServiceLimit' {} a -> s {value = a} :: ServiceLimit)++instance Data.FromJSON ServiceLimit where+  parseJSON =+    Data.withObject+      "ServiceLimit"+      ( \x ->+          ServiceLimit'+            Prelude.<$> (x Data..:? "isServiceLimited")+            Prelude.<*> (x Data..:? "unit")+            Prelude.<*> (x Data..:? "value")+      )++instance Prelude.Hashable ServiceLimit where+  hashWithSalt _salt ServiceLimit' {..} =+    _salt+      `Prelude.hashWithSalt` isServiceLimited+      `Prelude.hashWithSalt` unit+      `Prelude.hashWithSalt` value++instance Prelude.NFData ServiceLimit where+  rnf ServiceLimit' {..} =+    Prelude.rnf isServiceLimited+      `Prelude.seq` Prelude.rnf unit+      `Prelude.seq` Prelude.rnf value
+ gen/Amazonka/MacieV2/Types/SessionContext.hs view
@@ -0,0 +1,93 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.SessionContext+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.SessionContext where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.SessionContextAttributes+import Amazonka.MacieV2.Types.SessionIssuer+import qualified Amazonka.Prelude as Prelude++-- | Provides information about a session that was created for an entity that+-- performed an action by using temporary security credentials.+--+-- /See:/ 'newSessionContext' smart constructor.+data SessionContext = SessionContext'+  { -- | The date and time when the credentials were issued, and whether the+    -- credentials were authenticated with a multi-factor authentication (MFA)+    -- device.+    attributes :: Prelude.Maybe SessionContextAttributes,+    -- | The source and type of credentials that were issued to the entity.+    sessionIssuer :: Prelude.Maybe SessionIssuer+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SessionContext' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attributes', 'sessionContext_attributes' - The date and time when the credentials were issued, and whether the+-- credentials were authenticated with a multi-factor authentication (MFA)+-- device.+--+-- 'sessionIssuer', 'sessionContext_sessionIssuer' - The source and type of credentials that were issued to the entity.+newSessionContext ::+  SessionContext+newSessionContext =+  SessionContext'+    { attributes = Prelude.Nothing,+      sessionIssuer = Prelude.Nothing+    }++-- | The date and time when the credentials were issued, and whether the+-- credentials were authenticated with a multi-factor authentication (MFA)+-- device.+sessionContext_attributes :: Lens.Lens' SessionContext (Prelude.Maybe SessionContextAttributes)+sessionContext_attributes = Lens.lens (\SessionContext' {attributes} -> attributes) (\s@SessionContext' {} a -> s {attributes = a} :: SessionContext)++-- | The source and type of credentials that were issued to the entity.+sessionContext_sessionIssuer :: Lens.Lens' SessionContext (Prelude.Maybe SessionIssuer)+sessionContext_sessionIssuer = Lens.lens (\SessionContext' {sessionIssuer} -> sessionIssuer) (\s@SessionContext' {} a -> s {sessionIssuer = a} :: SessionContext)++instance Data.FromJSON SessionContext where+  parseJSON =+    Data.withObject+      "SessionContext"+      ( \x ->+          SessionContext'+            Prelude.<$> (x Data..:? "attributes")+            Prelude.<*> (x Data..:? "sessionIssuer")+      )++instance Prelude.Hashable SessionContext where+  hashWithSalt _salt SessionContext' {..} =+    _salt+      `Prelude.hashWithSalt` attributes+      `Prelude.hashWithSalt` sessionIssuer++instance Prelude.NFData SessionContext where+  rnf SessionContext' {..} =+    Prelude.rnf attributes+      `Prelude.seq` Prelude.rnf sessionIssuer
+ gen/Amazonka/MacieV2/Types/SessionContextAttributes.hs view
@@ -0,0 +1,92 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.SessionContextAttributes+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.SessionContextAttributes where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the context in which temporary security+-- credentials were issued to an entity.+--+-- /See:/ 'newSessionContextAttributes' smart constructor.+data SessionContextAttributes = SessionContextAttributes'+  { -- | The date and time, in UTC and ISO 8601 format, when the credentials were+    -- issued.+    creationDate :: Prelude.Maybe Data.ISO8601,+    -- | Specifies whether the credentials were authenticated with a multi-factor+    -- authentication (MFA) device.+    mfaAuthenticated :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SessionContextAttributes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationDate', 'sessionContextAttributes_creationDate' - The date and time, in UTC and ISO 8601 format, when the credentials were+-- issued.+--+-- 'mfaAuthenticated', 'sessionContextAttributes_mfaAuthenticated' - Specifies whether the credentials were authenticated with a multi-factor+-- authentication (MFA) device.+newSessionContextAttributes ::+  SessionContextAttributes+newSessionContextAttributes =+  SessionContextAttributes'+    { creationDate =+        Prelude.Nothing,+      mfaAuthenticated = Prelude.Nothing+    }++-- | The date and time, in UTC and ISO 8601 format, when the credentials were+-- issued.+sessionContextAttributes_creationDate :: Lens.Lens' SessionContextAttributes (Prelude.Maybe Prelude.UTCTime)+sessionContextAttributes_creationDate = Lens.lens (\SessionContextAttributes' {creationDate} -> creationDate) (\s@SessionContextAttributes' {} a -> s {creationDate = a} :: SessionContextAttributes) Prelude.. Lens.mapping Data._Time++-- | Specifies whether the credentials were authenticated with a multi-factor+-- authentication (MFA) device.+sessionContextAttributes_mfaAuthenticated :: Lens.Lens' SessionContextAttributes (Prelude.Maybe Prelude.Bool)+sessionContextAttributes_mfaAuthenticated = Lens.lens (\SessionContextAttributes' {mfaAuthenticated} -> mfaAuthenticated) (\s@SessionContextAttributes' {} a -> s {mfaAuthenticated = a} :: SessionContextAttributes)++instance Data.FromJSON SessionContextAttributes where+  parseJSON =+    Data.withObject+      "SessionContextAttributes"+      ( \x ->+          SessionContextAttributes'+            Prelude.<$> (x Data..:? "creationDate")+            Prelude.<*> (x Data..:? "mfaAuthenticated")+      )++instance Prelude.Hashable SessionContextAttributes where+  hashWithSalt _salt SessionContextAttributes' {..} =+    _salt+      `Prelude.hashWithSalt` creationDate+      `Prelude.hashWithSalt` mfaAuthenticated++instance Prelude.NFData SessionContextAttributes where+  rnf SessionContextAttributes' {..} =+    Prelude.rnf creationDate+      `Prelude.seq` Prelude.rnf mfaAuthenticated
+ gen/Amazonka/MacieV2/Types/SessionIssuer.hs view
@@ -0,0 +1,139 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.SessionIssuer+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.SessionIssuer where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the source and type of temporary security+-- credentials that were issued to an entity.+--+-- /See:/ 'newSessionIssuer' smart constructor.+data SessionIssuer = SessionIssuer'+  { -- | The unique identifier for the Amazon Web Services account that owns the+    -- entity that was used to get the credentials.+    accountId :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the source account, IAM user, or role+    -- that was used to get the credentials.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the entity that was used to get the+    -- credentials.+    principalId :: Prelude.Maybe Prelude.Text,+    -- | The source of the temporary security credentials, such as Root, IAMUser,+    -- or Role.+    type' :: Prelude.Maybe Prelude.Text,+    -- | The name or alias of the user or role that issued the session. This+    -- value is null if the credentials were obtained from a root account that+    -- doesn\'t have an alias.+    userName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SessionIssuer' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'sessionIssuer_accountId' - The unique identifier for the Amazon Web Services account that owns the+-- entity that was used to get the credentials.+--+-- 'arn', 'sessionIssuer_arn' - The Amazon Resource Name (ARN) of the source account, IAM user, or role+-- that was used to get the credentials.+--+-- 'principalId', 'sessionIssuer_principalId' - The unique identifier for the entity that was used to get the+-- credentials.+--+-- 'type'', 'sessionIssuer_type' - The source of the temporary security credentials, such as Root, IAMUser,+-- or Role.+--+-- 'userName', 'sessionIssuer_userName' - The name or alias of the user or role that issued the session. This+-- value is null if the credentials were obtained from a root account that+-- doesn\'t have an alias.+newSessionIssuer ::+  SessionIssuer+newSessionIssuer =+  SessionIssuer'+    { accountId = Prelude.Nothing,+      arn = Prelude.Nothing,+      principalId = Prelude.Nothing,+      type' = Prelude.Nothing,+      userName = Prelude.Nothing+    }++-- | The unique identifier for the Amazon Web Services account that owns the+-- entity that was used to get the credentials.+sessionIssuer_accountId :: Lens.Lens' SessionIssuer (Prelude.Maybe Prelude.Text)+sessionIssuer_accountId = Lens.lens (\SessionIssuer' {accountId} -> accountId) (\s@SessionIssuer' {} a -> s {accountId = a} :: SessionIssuer)++-- | The Amazon Resource Name (ARN) of the source account, IAM user, or role+-- that was used to get the credentials.+sessionIssuer_arn :: Lens.Lens' SessionIssuer (Prelude.Maybe Prelude.Text)+sessionIssuer_arn = Lens.lens (\SessionIssuer' {arn} -> arn) (\s@SessionIssuer' {} a -> s {arn = a} :: SessionIssuer)++-- | The unique identifier for the entity that was used to get the+-- credentials.+sessionIssuer_principalId :: Lens.Lens' SessionIssuer (Prelude.Maybe Prelude.Text)+sessionIssuer_principalId = Lens.lens (\SessionIssuer' {principalId} -> principalId) (\s@SessionIssuer' {} a -> s {principalId = a} :: SessionIssuer)++-- | The source of the temporary security credentials, such as Root, IAMUser,+-- or Role.+sessionIssuer_type :: Lens.Lens' SessionIssuer (Prelude.Maybe Prelude.Text)+sessionIssuer_type = Lens.lens (\SessionIssuer' {type'} -> type') (\s@SessionIssuer' {} a -> s {type' = a} :: SessionIssuer)++-- | The name or alias of the user or role that issued the session. This+-- value is null if the credentials were obtained from a root account that+-- doesn\'t have an alias.+sessionIssuer_userName :: Lens.Lens' SessionIssuer (Prelude.Maybe Prelude.Text)+sessionIssuer_userName = Lens.lens (\SessionIssuer' {userName} -> userName) (\s@SessionIssuer' {} a -> s {userName = a} :: SessionIssuer)++instance Data.FromJSON SessionIssuer where+  parseJSON =+    Data.withObject+      "SessionIssuer"+      ( \x ->+          SessionIssuer'+            Prelude.<$> (x Data..:? "accountId")+            Prelude.<*> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "principalId")+            Prelude.<*> (x Data..:? "type")+            Prelude.<*> (x Data..:? "userName")+      )++instance Prelude.Hashable SessionIssuer where+  hashWithSalt _salt SessionIssuer' {..} =+    _salt+      `Prelude.hashWithSalt` accountId+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` principalId+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` userName++instance Prelude.NFData SessionIssuer where+  rnf SessionIssuer' {..} =+    Prelude.rnf accountId+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf principalId+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf userName
+ gen/Amazonka/MacieV2/Types/Severity.hs view
@@ -0,0 +1,92 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.Severity+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.Severity where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.SeverityDescription+import qualified Amazonka.Prelude as Prelude++-- | Provides the numerical and qualitative representations of a finding\'s+-- severity.+--+-- /See:/ 'newSeverity' smart constructor.+data Severity = Severity'+  { -- | The qualitative representation of the finding\'s severity, ranging from+    -- Low (least severe) to High (most severe).+    description :: Prelude.Maybe SeverityDescription,+    -- | The numerical representation of the finding\'s severity, ranging from 1+    -- (least severe) to 3 (most severe).+    score :: Prelude.Maybe Prelude.Integer+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Severity' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'severity_description' - The qualitative representation of the finding\'s severity, ranging from+-- Low (least severe) to High (most severe).+--+-- 'score', 'severity_score' - The numerical representation of the finding\'s severity, ranging from 1+-- (least severe) to 3 (most severe).+newSeverity ::+  Severity+newSeverity =+  Severity'+    { description = Prelude.Nothing,+      score = Prelude.Nothing+    }++-- | The qualitative representation of the finding\'s severity, ranging from+-- Low (least severe) to High (most severe).+severity_description :: Lens.Lens' Severity (Prelude.Maybe SeverityDescription)+severity_description = Lens.lens (\Severity' {description} -> description) (\s@Severity' {} a -> s {description = a} :: Severity)++-- | The numerical representation of the finding\'s severity, ranging from 1+-- (least severe) to 3 (most severe).+severity_score :: Lens.Lens' Severity (Prelude.Maybe Prelude.Integer)+severity_score = Lens.lens (\Severity' {score} -> score) (\s@Severity' {} a -> s {score = a} :: Severity)++instance Data.FromJSON Severity where+  parseJSON =+    Data.withObject+      "Severity"+      ( \x ->+          Severity'+            Prelude.<$> (x Data..:? "description")+            Prelude.<*> (x Data..:? "score")+      )++instance Prelude.Hashable Severity where+  hashWithSalt _salt Severity' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` score++instance Prelude.NFData Severity where+  rnf Severity' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf score
+ gen/Amazonka/MacieV2/Types/SeverityDescription.hs view
@@ -0,0 +1,78 @@+{-# 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.MacieV2.Types.SeverityDescription+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.SeverityDescription+  ( SeverityDescription+      ( ..,+        SeverityDescription_High,+        SeverityDescription_Low,+        SeverityDescription_Medium+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The qualitative representation of the finding\'s severity. Possible+-- values are:+newtype SeverityDescription = SeverityDescription'+  { fromSeverityDescription ::+      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 SeverityDescription_High :: SeverityDescription+pattern SeverityDescription_High = SeverityDescription' "High"++pattern SeverityDescription_Low :: SeverityDescription+pattern SeverityDescription_Low = SeverityDescription' "Low"++pattern SeverityDescription_Medium :: SeverityDescription+pattern SeverityDescription_Medium = SeverityDescription' "Medium"++{-# COMPLETE+  SeverityDescription_High,+  SeverityDescription_Low,+  SeverityDescription_Medium,+  SeverityDescription'+  #-}
+ gen/Amazonka/MacieV2/Types/SeverityLevel.hs view
@@ -0,0 +1,123 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.SeverityLevel+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.SeverityLevel where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.DataIdentifierSeverity+import qualified Amazonka.Prelude as Prelude++-- | Specifies a severity level for findings that a custom data identifier+-- produces. A severity level determines which severity is assigned to the+-- findings, based on the number of occurrences of text that matches the+-- custom data identifier\'s detection criteria.+--+-- /See:/ 'newSeverityLevel' smart constructor.+data SeverityLevel = SeverityLevel'+  { -- | The minimum number of occurrences of text that must match the custom+    -- data identifier\'s detection criteria in order to produce a finding with+    -- the specified severity (severity).+    occurrencesThreshold :: Prelude.Integer,+    -- | The severity to assign to a finding: if the number of occurrences is+    -- greater than or equal to the specified threshold (occurrencesThreshold);+    -- and, if applicable, the number of occurrences is less than the threshold+    -- for the next consecutive severity level for the custom data identifier,+    -- moving from LOW to HIGH.+    severity :: DataIdentifierSeverity+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SeverityLevel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'occurrencesThreshold', 'severityLevel_occurrencesThreshold' - The minimum number of occurrences of text that must match the custom+-- data identifier\'s detection criteria in order to produce a finding with+-- the specified severity (severity).+--+-- 'severity', 'severityLevel_severity' - The severity to assign to a finding: if the number of occurrences is+-- greater than or equal to the specified threshold (occurrencesThreshold);+-- and, if applicable, the number of occurrences is less than the threshold+-- for the next consecutive severity level for the custom data identifier,+-- moving from LOW to HIGH.+newSeverityLevel ::+  -- | 'occurrencesThreshold'+  Prelude.Integer ->+  -- | 'severity'+  DataIdentifierSeverity ->+  SeverityLevel+newSeverityLevel pOccurrencesThreshold_ pSeverity_ =+  SeverityLevel'+    { occurrencesThreshold =+        pOccurrencesThreshold_,+      severity = pSeverity_+    }++-- | The minimum number of occurrences of text that must match the custom+-- data identifier\'s detection criteria in order to produce a finding with+-- the specified severity (severity).+severityLevel_occurrencesThreshold :: Lens.Lens' SeverityLevel Prelude.Integer+severityLevel_occurrencesThreshold = Lens.lens (\SeverityLevel' {occurrencesThreshold} -> occurrencesThreshold) (\s@SeverityLevel' {} a -> s {occurrencesThreshold = a} :: SeverityLevel)++-- | The severity to assign to a finding: if the number of occurrences is+-- greater than or equal to the specified threshold (occurrencesThreshold);+-- and, if applicable, the number of occurrences is less than the threshold+-- for the next consecutive severity level for the custom data identifier,+-- moving from LOW to HIGH.+severityLevel_severity :: Lens.Lens' SeverityLevel DataIdentifierSeverity+severityLevel_severity = Lens.lens (\SeverityLevel' {severity} -> severity) (\s@SeverityLevel' {} a -> s {severity = a} :: SeverityLevel)++instance Data.FromJSON SeverityLevel where+  parseJSON =+    Data.withObject+      "SeverityLevel"+      ( \x ->+          SeverityLevel'+            Prelude.<$> (x Data..: "occurrencesThreshold")+            Prelude.<*> (x Data..: "severity")+      )++instance Prelude.Hashable SeverityLevel where+  hashWithSalt _salt SeverityLevel' {..} =+    _salt+      `Prelude.hashWithSalt` occurrencesThreshold+      `Prelude.hashWithSalt` severity++instance Prelude.NFData SeverityLevel where+  rnf SeverityLevel' {..} =+    Prelude.rnf occurrencesThreshold+      `Prelude.seq` Prelude.rnf severity++instance Data.ToJSON SeverityLevel where+  toJSON SeverityLevel' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ( "occurrencesThreshold"+                  Data..= occurrencesThreshold+              ),+            Prelude.Just ("severity" Data..= severity)+          ]+      )
+ gen/Amazonka/MacieV2/Types/SharedAccess.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.MacieV2.Types.SharedAccess+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.SharedAccess+  ( SharedAccess+      ( ..,+        SharedAccess_EXTERNAL,+        SharedAccess_INTERNAL,+        SharedAccess_NOT_SHARED,+        SharedAccess_UNKNOWN+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SharedAccess = SharedAccess'+  { fromSharedAccess ::+      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 SharedAccess_EXTERNAL :: SharedAccess+pattern SharedAccess_EXTERNAL = SharedAccess' "EXTERNAL"++pattern SharedAccess_INTERNAL :: SharedAccess+pattern SharedAccess_INTERNAL = SharedAccess' "INTERNAL"++pattern SharedAccess_NOT_SHARED :: SharedAccess+pattern SharedAccess_NOT_SHARED = SharedAccess' "NOT_SHARED"++pattern SharedAccess_UNKNOWN :: SharedAccess+pattern SharedAccess_UNKNOWN = SharedAccess' "UNKNOWN"++{-# COMPLETE+  SharedAccess_EXTERNAL,+  SharedAccess_INTERNAL,+  SharedAccess_NOT_SHARED,+  SharedAccess_UNKNOWN,+  SharedAccess'+  #-}
+ gen/Amazonka/MacieV2/Types/SimpleCriterionForJob.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.MacieV2.Types.SimpleCriterionForJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.SimpleCriterionForJob where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.JobComparator+import Amazonka.MacieV2.Types.SimpleCriterionKeyForJob+import qualified Amazonka.Prelude as Prelude++-- | Specifies a property-based condition that determines whether an S3+-- bucket is included or excluded from a classification job.+--+-- /See:/ 'newSimpleCriterionForJob' smart constructor.+data SimpleCriterionForJob = SimpleCriterionForJob'+  { -- | The operator to use in the condition. Valid values are EQ (equals) and+    -- NE (not equals).+    comparator :: Prelude.Maybe JobComparator,+    -- | The property to use in the condition.+    key :: Prelude.Maybe SimpleCriterionKeyForJob,+    -- | An array that lists one or more values to use in the condition. If you+    -- specify multiple values, Amazon Macie uses OR logic to join the values.+    -- Valid values for each supported property (key) are:+    --+    -- -   ACCOUNT_ID - A string that represents the unique identifier for the+    --     Amazon Web Services account that owns the bucket.+    --+    -- -   S3_BUCKET_EFFECTIVE_PERMISSION - A string that represents an+    --     enumerated value that Macie defines for the+    --     <https://docs.aws.amazon.com/macie/latest/APIReference/datasources-s3.html#datasources-s3-prop-bucketpublicaccess-effectivepermission BucketPublicAccess.effectivePermission>+    --     property of a bucket.+    --+    -- -   S3_BUCKET_NAME - A string that represents the name of a bucket.+    --+    -- -   S3_BUCKET_SHARED_ACCESS - A string that represents an enumerated+    --     value that Macie defines for the+    --     <https://docs.aws.amazon.com/macie/latest/APIReference/datasources-s3.html#datasources-s3-prop-bucketmetadata-sharedaccess BucketMetadata.sharedAccess>+    --     property of a bucket.+    --+    -- Values are case sensitive. Also, Macie doesn\'t support use of partial+    -- values or wildcard characters in these values.+    values :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SimpleCriterionForJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'comparator', 'simpleCriterionForJob_comparator' - The operator to use in the condition. Valid values are EQ (equals) and+-- NE (not equals).+--+-- 'key', 'simpleCriterionForJob_key' - The property to use in the condition.+--+-- 'values', 'simpleCriterionForJob_values' - An array that lists one or more values to use in the condition. If you+-- specify multiple values, Amazon Macie uses OR logic to join the values.+-- Valid values for each supported property (key) are:+--+-- -   ACCOUNT_ID - A string that represents the unique identifier for the+--     Amazon Web Services account that owns the bucket.+--+-- -   S3_BUCKET_EFFECTIVE_PERMISSION - A string that represents an+--     enumerated value that Macie defines for the+--     <https://docs.aws.amazon.com/macie/latest/APIReference/datasources-s3.html#datasources-s3-prop-bucketpublicaccess-effectivepermission BucketPublicAccess.effectivePermission>+--     property of a bucket.+--+-- -   S3_BUCKET_NAME - A string that represents the name of a bucket.+--+-- -   S3_BUCKET_SHARED_ACCESS - A string that represents an enumerated+--     value that Macie defines for the+--     <https://docs.aws.amazon.com/macie/latest/APIReference/datasources-s3.html#datasources-s3-prop-bucketmetadata-sharedaccess BucketMetadata.sharedAccess>+--     property of a bucket.+--+-- Values are case sensitive. Also, Macie doesn\'t support use of partial+-- values or wildcard characters in these values.+newSimpleCriterionForJob ::+  SimpleCriterionForJob+newSimpleCriterionForJob =+  SimpleCriterionForJob'+    { comparator =+        Prelude.Nothing,+      key = Prelude.Nothing,+      values = Prelude.Nothing+    }++-- | The operator to use in the condition. Valid values are EQ (equals) and+-- NE (not equals).+simpleCriterionForJob_comparator :: Lens.Lens' SimpleCriterionForJob (Prelude.Maybe JobComparator)+simpleCriterionForJob_comparator = Lens.lens (\SimpleCriterionForJob' {comparator} -> comparator) (\s@SimpleCriterionForJob' {} a -> s {comparator = a} :: SimpleCriterionForJob)++-- | The property to use in the condition.+simpleCriterionForJob_key :: Lens.Lens' SimpleCriterionForJob (Prelude.Maybe SimpleCriterionKeyForJob)+simpleCriterionForJob_key = Lens.lens (\SimpleCriterionForJob' {key} -> key) (\s@SimpleCriterionForJob' {} a -> s {key = a} :: SimpleCriterionForJob)++-- | An array that lists one or more values to use in the condition. If you+-- specify multiple values, Amazon Macie uses OR logic to join the values.+-- Valid values for each supported property (key) are:+--+-- -   ACCOUNT_ID - A string that represents the unique identifier for the+--     Amazon Web Services account that owns the bucket.+--+-- -   S3_BUCKET_EFFECTIVE_PERMISSION - A string that represents an+--     enumerated value that Macie defines for the+--     <https://docs.aws.amazon.com/macie/latest/APIReference/datasources-s3.html#datasources-s3-prop-bucketpublicaccess-effectivepermission BucketPublicAccess.effectivePermission>+--     property of a bucket.+--+-- -   S3_BUCKET_NAME - A string that represents the name of a bucket.+--+-- -   S3_BUCKET_SHARED_ACCESS - A string that represents an enumerated+--     value that Macie defines for the+--     <https://docs.aws.amazon.com/macie/latest/APIReference/datasources-s3.html#datasources-s3-prop-bucketmetadata-sharedaccess BucketMetadata.sharedAccess>+--     property of a bucket.+--+-- Values are case sensitive. Also, Macie doesn\'t support use of partial+-- values or wildcard characters in these values.+simpleCriterionForJob_values :: Lens.Lens' SimpleCriterionForJob (Prelude.Maybe [Prelude.Text])+simpleCriterionForJob_values = Lens.lens (\SimpleCriterionForJob' {values} -> values) (\s@SimpleCriterionForJob' {} a -> s {values = a} :: SimpleCriterionForJob) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON SimpleCriterionForJob where+  parseJSON =+    Data.withObject+      "SimpleCriterionForJob"+      ( \x ->+          SimpleCriterionForJob'+            Prelude.<$> (x Data..:? "comparator")+            Prelude.<*> (x Data..:? "key")+            Prelude.<*> (x Data..:? "values" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable SimpleCriterionForJob where+  hashWithSalt _salt SimpleCriterionForJob' {..} =+    _salt+      `Prelude.hashWithSalt` comparator+      `Prelude.hashWithSalt` key+      `Prelude.hashWithSalt` values++instance Prelude.NFData SimpleCriterionForJob where+  rnf SimpleCriterionForJob' {..} =+    Prelude.rnf comparator+      `Prelude.seq` Prelude.rnf key+      `Prelude.seq` Prelude.rnf values++instance Data.ToJSON SimpleCriterionForJob where+  toJSON SimpleCriterionForJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("comparator" Data..=) Prelude.<$> comparator,+            ("key" Data..=) Prelude.<$> key,+            ("values" Data..=) Prelude.<$> values+          ]+      )
+ gen/Amazonka/MacieV2/Types/SimpleCriterionKeyForJob.hs view
@@ -0,0 +1,83 @@+{-# 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.MacieV2.Types.SimpleCriterionKeyForJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.SimpleCriterionKeyForJob+  ( SimpleCriterionKeyForJob+      ( ..,+        SimpleCriterionKeyForJob_ACCOUNT_ID,+        SimpleCriterionKeyForJob_S3_BUCKET_EFFECTIVE_PERMISSION,+        SimpleCriterionKeyForJob_S3_BUCKET_NAME,+        SimpleCriterionKeyForJob_S3_BUCKET_SHARED_ACCESS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The property to use in a condition that determines whether an S3 bucket+-- is included or excluded from a classification job. Valid values are:+newtype SimpleCriterionKeyForJob = SimpleCriterionKeyForJob'+  { fromSimpleCriterionKeyForJob ::+      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 SimpleCriterionKeyForJob_ACCOUNT_ID :: SimpleCriterionKeyForJob+pattern SimpleCriterionKeyForJob_ACCOUNT_ID = SimpleCriterionKeyForJob' "ACCOUNT_ID"++pattern SimpleCriterionKeyForJob_S3_BUCKET_EFFECTIVE_PERMISSION :: SimpleCriterionKeyForJob+pattern SimpleCriterionKeyForJob_S3_BUCKET_EFFECTIVE_PERMISSION = SimpleCriterionKeyForJob' "S3_BUCKET_EFFECTIVE_PERMISSION"++pattern SimpleCriterionKeyForJob_S3_BUCKET_NAME :: SimpleCriterionKeyForJob+pattern SimpleCriterionKeyForJob_S3_BUCKET_NAME = SimpleCriterionKeyForJob' "S3_BUCKET_NAME"++pattern SimpleCriterionKeyForJob_S3_BUCKET_SHARED_ACCESS :: SimpleCriterionKeyForJob+pattern SimpleCriterionKeyForJob_S3_BUCKET_SHARED_ACCESS = SimpleCriterionKeyForJob' "S3_BUCKET_SHARED_ACCESS"++{-# COMPLETE+  SimpleCriterionKeyForJob_ACCOUNT_ID,+  SimpleCriterionKeyForJob_S3_BUCKET_EFFECTIVE_PERMISSION,+  SimpleCriterionKeyForJob_S3_BUCKET_NAME,+  SimpleCriterionKeyForJob_S3_BUCKET_SHARED_ACCESS,+  SimpleCriterionKeyForJob'+  #-}
+ gen/Amazonka/MacieV2/Types/SimpleScopeTerm.hs view
@@ -0,0 +1,205 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.SimpleScopeTerm+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.SimpleScopeTerm where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.JobComparator+import Amazonka.MacieV2.Types.ScopeFilterKey+import qualified Amazonka.Prelude as Prelude++-- | Specifies a property-based condition that determines whether an S3+-- object is included or excluded from a classification job.+--+-- /See:/ 'newSimpleScopeTerm' smart constructor.+data SimpleScopeTerm = SimpleScopeTerm'+  { -- | The operator to use in the condition. Valid values for each supported+    -- property (key) are:+    --+    -- -   OBJECT_EXTENSION - EQ (equals) or NE (not equals)+    --+    -- -   OBJECT_KEY - STARTS_WITH+    --+    -- -   OBJECT_LAST_MODIFIED_DATE - Any operator except CONTAINS+    --+    -- -   OBJECT_SIZE - Any operator except CONTAINS+    comparator :: Prelude.Maybe JobComparator,+    -- | The object property to use in the condition.+    key :: Prelude.Maybe ScopeFilterKey,+    -- | An array that lists the values to use in the condition. If the value for+    -- the key property is OBJECT_EXTENSION or OBJECT_KEY, this array can+    -- specify multiple values and Amazon Macie uses OR logic to join the+    -- values. Otherwise, this array can specify only one value.+    --+    -- Valid values for each supported property (key) are:+    --+    -- -   OBJECT_EXTENSION - A string that represents the file name extension+    --     of an object. For example: docx or pdf+    --+    -- -   OBJECT_KEY - A string that represents the key prefix (folder name or+    --     path) of an object. For example: logs or awslogs\/eventlogs. This+    --     value applies a condition to objects whose keys (names) begin with+    --     the specified value.+    --+    -- -   OBJECT_LAST_MODIFIED_DATE - The date and time (in UTC and extended+    --     ISO 8601 format) when an object was created or last changed,+    --     whichever is latest. For example: 2020-09-28T14:31:13Z+    --+    -- -   OBJECT_SIZE - An integer that represents the storage size (in bytes)+    --     of an object.+    --+    -- Macie doesn\'t support use of wildcard characters in these values. Also,+    -- string values are case sensitive.+    values :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SimpleScopeTerm' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'comparator', 'simpleScopeTerm_comparator' - The operator to use in the condition. Valid values for each supported+-- property (key) are:+--+-- -   OBJECT_EXTENSION - EQ (equals) or NE (not equals)+--+-- -   OBJECT_KEY - STARTS_WITH+--+-- -   OBJECT_LAST_MODIFIED_DATE - Any operator except CONTAINS+--+-- -   OBJECT_SIZE - Any operator except CONTAINS+--+-- 'key', 'simpleScopeTerm_key' - The object property to use in the condition.+--+-- 'values', 'simpleScopeTerm_values' - An array that lists the values to use in the condition. If the value for+-- the key property is OBJECT_EXTENSION or OBJECT_KEY, this array can+-- specify multiple values and Amazon Macie uses OR logic to join the+-- values. Otherwise, this array can specify only one value.+--+-- Valid values for each supported property (key) are:+--+-- -   OBJECT_EXTENSION - A string that represents the file name extension+--     of an object. For example: docx or pdf+--+-- -   OBJECT_KEY - A string that represents the key prefix (folder name or+--     path) of an object. For example: logs or awslogs\/eventlogs. This+--     value applies a condition to objects whose keys (names) begin with+--     the specified value.+--+-- -   OBJECT_LAST_MODIFIED_DATE - The date and time (in UTC and extended+--     ISO 8601 format) when an object was created or last changed,+--     whichever is latest. For example: 2020-09-28T14:31:13Z+--+-- -   OBJECT_SIZE - An integer that represents the storage size (in bytes)+--     of an object.+--+-- Macie doesn\'t support use of wildcard characters in these values. Also,+-- string values are case sensitive.+newSimpleScopeTerm ::+  SimpleScopeTerm+newSimpleScopeTerm =+  SimpleScopeTerm'+    { comparator = Prelude.Nothing,+      key = Prelude.Nothing,+      values = Prelude.Nothing+    }++-- | The operator to use in the condition. Valid values for each supported+-- property (key) are:+--+-- -   OBJECT_EXTENSION - EQ (equals) or NE (not equals)+--+-- -   OBJECT_KEY - STARTS_WITH+--+-- -   OBJECT_LAST_MODIFIED_DATE - Any operator except CONTAINS+--+-- -   OBJECT_SIZE - Any operator except CONTAINS+simpleScopeTerm_comparator :: Lens.Lens' SimpleScopeTerm (Prelude.Maybe JobComparator)+simpleScopeTerm_comparator = Lens.lens (\SimpleScopeTerm' {comparator} -> comparator) (\s@SimpleScopeTerm' {} a -> s {comparator = a} :: SimpleScopeTerm)++-- | The object property to use in the condition.+simpleScopeTerm_key :: Lens.Lens' SimpleScopeTerm (Prelude.Maybe ScopeFilterKey)+simpleScopeTerm_key = Lens.lens (\SimpleScopeTerm' {key} -> key) (\s@SimpleScopeTerm' {} a -> s {key = a} :: SimpleScopeTerm)++-- | An array that lists the values to use in the condition. If the value for+-- the key property is OBJECT_EXTENSION or OBJECT_KEY, this array can+-- specify multiple values and Amazon Macie uses OR logic to join the+-- values. Otherwise, this array can specify only one value.+--+-- Valid values for each supported property (key) are:+--+-- -   OBJECT_EXTENSION - A string that represents the file name extension+--     of an object. For example: docx or pdf+--+-- -   OBJECT_KEY - A string that represents the key prefix (folder name or+--     path) of an object. For example: logs or awslogs\/eventlogs. This+--     value applies a condition to objects whose keys (names) begin with+--     the specified value.+--+-- -   OBJECT_LAST_MODIFIED_DATE - The date and time (in UTC and extended+--     ISO 8601 format) when an object was created or last changed,+--     whichever is latest. For example: 2020-09-28T14:31:13Z+--+-- -   OBJECT_SIZE - An integer that represents the storage size (in bytes)+--     of an object.+--+-- Macie doesn\'t support use of wildcard characters in these values. Also,+-- string values are case sensitive.+simpleScopeTerm_values :: Lens.Lens' SimpleScopeTerm (Prelude.Maybe [Prelude.Text])+simpleScopeTerm_values = Lens.lens (\SimpleScopeTerm' {values} -> values) (\s@SimpleScopeTerm' {} a -> s {values = a} :: SimpleScopeTerm) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON SimpleScopeTerm where+  parseJSON =+    Data.withObject+      "SimpleScopeTerm"+      ( \x ->+          SimpleScopeTerm'+            Prelude.<$> (x Data..:? "comparator")+            Prelude.<*> (x Data..:? "key")+            Prelude.<*> (x Data..:? "values" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable SimpleScopeTerm where+  hashWithSalt _salt SimpleScopeTerm' {..} =+    _salt+      `Prelude.hashWithSalt` comparator+      `Prelude.hashWithSalt` key+      `Prelude.hashWithSalt` values++instance Prelude.NFData SimpleScopeTerm where+  rnf SimpleScopeTerm' {..} =+    Prelude.rnf comparator+      `Prelude.seq` Prelude.rnf key+      `Prelude.seq` Prelude.rnf values++instance Data.ToJSON SimpleScopeTerm where+  toJSON SimpleScopeTerm' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("comparator" Data..=) Prelude.<$> comparator,+            ("key" Data..=) Prelude.<$> key,+            ("values" Data..=) Prelude.<$> values+          ]+      )
+ gen/Amazonka/MacieV2/Types/SortCriteria.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.SortCriteria+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.SortCriteria where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.OrderBy+import qualified Amazonka.Prelude as Prelude++-- | Specifies criteria for sorting the results of a request for findings.+--+-- /See:/ 'newSortCriteria' smart constructor.+data SortCriteria = SortCriteria'+  { -- | The name of the property to sort the results by. This value can be the+    -- name of any property that Amazon Macie defines for a finding.+    attributeName :: Prelude.Maybe Prelude.Text,+    -- | The sort order to apply to the results, based on the value for the+    -- property specified by the attributeName property. Valid values are: ASC,+    -- sort the results in ascending order; and, DESC, sort the results in+    -- descending order.+    orderBy :: Prelude.Maybe OrderBy+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SortCriteria' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attributeName', 'sortCriteria_attributeName' - The name of the property to sort the results by. This value can be the+-- name of any property that Amazon Macie defines for a finding.+--+-- 'orderBy', 'sortCriteria_orderBy' - The sort order to apply to the results, based on the value for the+-- property specified by the attributeName property. Valid values are: ASC,+-- sort the results in ascending order; and, DESC, sort the results in+-- descending order.+newSortCriteria ::+  SortCriteria+newSortCriteria =+  SortCriteria'+    { attributeName = Prelude.Nothing,+      orderBy = Prelude.Nothing+    }++-- | The name of the property to sort the results by. This value can be the+-- name of any property that Amazon Macie defines for a finding.+sortCriteria_attributeName :: Lens.Lens' SortCriteria (Prelude.Maybe Prelude.Text)+sortCriteria_attributeName = Lens.lens (\SortCriteria' {attributeName} -> attributeName) (\s@SortCriteria' {} a -> s {attributeName = a} :: SortCriteria)++-- | The sort order to apply to the results, based on the value for the+-- property specified by the attributeName property. Valid values are: ASC,+-- sort the results in ascending order; and, DESC, sort the results in+-- descending order.+sortCriteria_orderBy :: Lens.Lens' SortCriteria (Prelude.Maybe OrderBy)+sortCriteria_orderBy = Lens.lens (\SortCriteria' {orderBy} -> orderBy) (\s@SortCriteria' {} a -> s {orderBy = a} :: SortCriteria)++instance Prelude.Hashable SortCriteria where+  hashWithSalt _salt SortCriteria' {..} =+    _salt+      `Prelude.hashWithSalt` attributeName+      `Prelude.hashWithSalt` orderBy++instance Prelude.NFData SortCriteria where+  rnf SortCriteria' {..} =+    Prelude.rnf attributeName+      `Prelude.seq` Prelude.rnf orderBy++instance Data.ToJSON SortCriteria where+  toJSON SortCriteria' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("attributeName" Data..=) Prelude.<$> attributeName,+            ("orderBy" Data..=) Prelude.<$> orderBy+          ]+      )
+ gen/Amazonka/MacieV2/Types/Statistics.hs view
@@ -0,0 +1,88 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.Statistics+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.Statistics where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides processing statistics for a classification job.+--+-- /See:/ 'newStatistics' smart constructor.+data Statistics = Statistics'+  { -- | The approximate number of objects that the job has yet to process during+    -- its current run.+    approximateNumberOfObjectsToProcess :: Prelude.Maybe Prelude.Double,+    -- | The number of times that the job has run.+    numberOfRuns :: Prelude.Maybe Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Statistics' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'approximateNumberOfObjectsToProcess', 'statistics_approximateNumberOfObjectsToProcess' - The approximate number of objects that the job has yet to process during+-- its current run.+--+-- 'numberOfRuns', 'statistics_numberOfRuns' - The number of times that the job has run.+newStatistics ::+  Statistics+newStatistics =+  Statistics'+    { approximateNumberOfObjectsToProcess =+        Prelude.Nothing,+      numberOfRuns = Prelude.Nothing+    }++-- | The approximate number of objects that the job has yet to process during+-- its current run.+statistics_approximateNumberOfObjectsToProcess :: Lens.Lens' Statistics (Prelude.Maybe Prelude.Double)+statistics_approximateNumberOfObjectsToProcess = Lens.lens (\Statistics' {approximateNumberOfObjectsToProcess} -> approximateNumberOfObjectsToProcess) (\s@Statistics' {} a -> s {approximateNumberOfObjectsToProcess = a} :: Statistics)++-- | The number of times that the job has run.+statistics_numberOfRuns :: Lens.Lens' Statistics (Prelude.Maybe Prelude.Double)+statistics_numberOfRuns = Lens.lens (\Statistics' {numberOfRuns} -> numberOfRuns) (\s@Statistics' {} a -> s {numberOfRuns = a} :: Statistics)++instance Data.FromJSON Statistics where+  parseJSON =+    Data.withObject+      "Statistics"+      ( \x ->+          Statistics'+            Prelude.<$> (x Data..:? "approximateNumberOfObjectsToProcess")+            Prelude.<*> (x Data..:? "numberOfRuns")+      )++instance Prelude.Hashable Statistics where+  hashWithSalt _salt Statistics' {..} =+    _salt+      `Prelude.hashWithSalt` approximateNumberOfObjectsToProcess+      `Prelude.hashWithSalt` numberOfRuns++instance Prelude.NFData Statistics where+  rnf Statistics' {..} =+    Prelude.rnf approximateNumberOfObjectsToProcess+      `Prelude.seq` Prelude.rnf numberOfRuns
+ gen/Amazonka/MacieV2/Types/StorageClass.hs view
@@ -0,0 +1,107 @@+{-# 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.MacieV2.Types.StorageClass+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.StorageClass+  ( StorageClass+      ( ..,+        StorageClass_DEEP_ARCHIVE,+        StorageClass_GLACIER,+        StorageClass_GLACIER_IR,+        StorageClass_INTELLIGENT_TIERING,+        StorageClass_ONEZONE_IA,+        StorageClass_OUTPOSTS,+        StorageClass_REDUCED_REDUNDANCY,+        StorageClass_STANDARD,+        StorageClass_STANDARD_IA+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The storage class of the S3 object. Possible values are:+newtype StorageClass = StorageClass'+  { fromStorageClass ::+      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 StorageClass_DEEP_ARCHIVE :: StorageClass+pattern StorageClass_DEEP_ARCHIVE = StorageClass' "DEEP_ARCHIVE"++pattern StorageClass_GLACIER :: StorageClass+pattern StorageClass_GLACIER = StorageClass' "GLACIER"++pattern StorageClass_GLACIER_IR :: StorageClass+pattern StorageClass_GLACIER_IR = StorageClass' "GLACIER_IR"++pattern StorageClass_INTELLIGENT_TIERING :: StorageClass+pattern StorageClass_INTELLIGENT_TIERING = StorageClass' "INTELLIGENT_TIERING"++pattern StorageClass_ONEZONE_IA :: StorageClass+pattern StorageClass_ONEZONE_IA = StorageClass' "ONEZONE_IA"++pattern StorageClass_OUTPOSTS :: StorageClass+pattern StorageClass_OUTPOSTS = StorageClass' "OUTPOSTS"++pattern StorageClass_REDUCED_REDUNDANCY :: StorageClass+pattern StorageClass_REDUCED_REDUNDANCY = StorageClass' "REDUCED_REDUNDANCY"++pattern StorageClass_STANDARD :: StorageClass+pattern StorageClass_STANDARD = StorageClass' "STANDARD"++pattern StorageClass_STANDARD_IA :: StorageClass+pattern StorageClass_STANDARD_IA = StorageClass' "STANDARD_IA"++{-# COMPLETE+  StorageClass_DEEP_ARCHIVE,+  StorageClass_GLACIER,+  StorageClass_GLACIER_IR,+  StorageClass_INTELLIGENT_TIERING,+  StorageClass_ONEZONE_IA,+  StorageClass_OUTPOSTS,+  StorageClass_REDUCED_REDUNDANCY,+  StorageClass_STANDARD,+  StorageClass_STANDARD_IA,+  StorageClass'+  #-}
+ gen/Amazonka/MacieV2/Types/SuppressDataIdentifier.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.MacieV2.Types.SuppressDataIdentifier+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.SuppressDataIdentifier where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.DataIdentifierType+import qualified Amazonka.Prelude as Prelude++-- | Specifies a custom data identifier or managed data identifier that+-- detected a type of sensitive data to start excluding or including in an+-- S3 bucket\'s sensitivity score.+--+-- /See:/ 'newSuppressDataIdentifier' smart constructor.+data SuppressDataIdentifier = SuppressDataIdentifier'+  { -- | The unique identifier for the custom data identifier or managed data+    -- identifier that detected the type of sensitive data to exclude or+    -- include in the score.+    id :: Prelude.Maybe Prelude.Text,+    -- | The type of data identifier that detected the sensitive data. Possible+    -- values are: CUSTOM, for a custom data identifier; and, MANAGED, for a+    -- managed data identifier.+    type' :: Prelude.Maybe DataIdentifierType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SuppressDataIdentifier' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'suppressDataIdentifier_id' - The unique identifier for the custom data identifier or managed data+-- identifier that detected the type of sensitive data to exclude or+-- include in the score.+--+-- 'type'', 'suppressDataIdentifier_type' - The type of data identifier that detected the sensitive data. Possible+-- values are: CUSTOM, for a custom data identifier; and, MANAGED, for a+-- managed data identifier.+newSuppressDataIdentifier ::+  SuppressDataIdentifier+newSuppressDataIdentifier =+  SuppressDataIdentifier'+    { id = Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | The unique identifier for the custom data identifier or managed data+-- identifier that detected the type of sensitive data to exclude or+-- include in the score.+suppressDataIdentifier_id :: Lens.Lens' SuppressDataIdentifier (Prelude.Maybe Prelude.Text)+suppressDataIdentifier_id = Lens.lens (\SuppressDataIdentifier' {id} -> id) (\s@SuppressDataIdentifier' {} a -> s {id = a} :: SuppressDataIdentifier)++-- | The type of data identifier that detected the sensitive data. Possible+-- values are: CUSTOM, for a custom data identifier; and, MANAGED, for a+-- managed data identifier.+suppressDataIdentifier_type :: Lens.Lens' SuppressDataIdentifier (Prelude.Maybe DataIdentifierType)+suppressDataIdentifier_type = Lens.lens (\SuppressDataIdentifier' {type'} -> type') (\s@SuppressDataIdentifier' {} a -> s {type' = a} :: SuppressDataIdentifier)++instance Prelude.Hashable SuppressDataIdentifier where+  hashWithSalt _salt SuppressDataIdentifier' {..} =+    _salt+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` type'++instance Prelude.NFData SuppressDataIdentifier where+  rnf SuppressDataIdentifier' {..} =+    Prelude.rnf id `Prelude.seq` Prelude.rnf type'++instance Data.ToJSON SuppressDataIdentifier where+  toJSON SuppressDataIdentifier' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("id" Data..=) Prelude.<$> id,+            ("type" Data..=) Prelude.<$> type'+          ]+      )
+ gen/Amazonka/MacieV2/Types/TagCriterionForJob.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.MacieV2.Types.TagCriterionForJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.TagCriterionForJob where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.JobComparator+import Amazonka.MacieV2.Types.TagCriterionPairForJob+import qualified Amazonka.Prelude as Prelude++-- | Specifies a tag-based condition that determines whether an S3 bucket is+-- included or excluded from a classification job.+--+-- /See:/ 'newTagCriterionForJob' smart constructor.+data TagCriterionForJob = TagCriterionForJob'+  { -- | The operator to use in the condition. Valid values are EQ (equals) and+    -- NE (not equals).+    comparator :: Prelude.Maybe JobComparator,+    -- | The tag keys, tag values, or tag key and value pairs to use in the+    -- condition.+    tagValues :: Prelude.Maybe [TagCriterionPairForJob]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagCriterionForJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'comparator', 'tagCriterionForJob_comparator' - The operator to use in the condition. Valid values are EQ (equals) and+-- NE (not equals).+--+-- 'tagValues', 'tagCriterionForJob_tagValues' - The tag keys, tag values, or tag key and value pairs to use in the+-- condition.+newTagCriterionForJob ::+  TagCriterionForJob+newTagCriterionForJob =+  TagCriterionForJob'+    { comparator = Prelude.Nothing,+      tagValues = Prelude.Nothing+    }++-- | The operator to use in the condition. Valid values are EQ (equals) and+-- NE (not equals).+tagCriterionForJob_comparator :: Lens.Lens' TagCriterionForJob (Prelude.Maybe JobComparator)+tagCriterionForJob_comparator = Lens.lens (\TagCriterionForJob' {comparator} -> comparator) (\s@TagCriterionForJob' {} a -> s {comparator = a} :: TagCriterionForJob)++-- | The tag keys, tag values, or tag key and value pairs to use in the+-- condition.+tagCriterionForJob_tagValues :: Lens.Lens' TagCriterionForJob (Prelude.Maybe [TagCriterionPairForJob])+tagCriterionForJob_tagValues = Lens.lens (\TagCriterionForJob' {tagValues} -> tagValues) (\s@TagCriterionForJob' {} a -> s {tagValues = a} :: TagCriterionForJob) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON TagCriterionForJob where+  parseJSON =+    Data.withObject+      "TagCriterionForJob"+      ( \x ->+          TagCriterionForJob'+            Prelude.<$> (x Data..:? "comparator")+            Prelude.<*> (x Data..:? "tagValues" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable TagCriterionForJob where+  hashWithSalt _salt TagCriterionForJob' {..} =+    _salt+      `Prelude.hashWithSalt` comparator+      `Prelude.hashWithSalt` tagValues++instance Prelude.NFData TagCriterionForJob where+  rnf TagCriterionForJob' {..} =+    Prelude.rnf comparator+      `Prelude.seq` Prelude.rnf tagValues++instance Data.ToJSON TagCriterionForJob where+  toJSON TagCriterionForJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("comparator" Data..=) Prelude.<$> comparator,+            ("tagValues" Data..=) Prelude.<$> tagValues+          ]+      )
+ gen/Amazonka/MacieV2/Types/TagCriterionPairForJob.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.TagCriterionPairForJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.TagCriterionPairForJob 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++-- | Specifies a tag key, a tag value, or a tag key and value (as a pair) to+-- use in a tag-based condition that determines whether an S3 bucket is+-- included or excluded from a classification job. Tag keys and values are+-- case sensitive. Also, Amazon Macie doesn\'t support use of partial+-- values or wildcard characters in tag-based conditions.+--+-- /See:/ 'newTagCriterionPairForJob' smart constructor.+data TagCriterionPairForJob = TagCriterionPairForJob'+  { -- | The value for the tag key to use in the condition.+    key :: Prelude.Maybe Prelude.Text,+    -- | The tag value to use in the condition.+    value :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagCriterionPairForJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'key', 'tagCriterionPairForJob_key' - The value for the tag key to use in the condition.+--+-- 'value', 'tagCriterionPairForJob_value' - The tag value to use in the condition.+newTagCriterionPairForJob ::+  TagCriterionPairForJob+newTagCriterionPairForJob =+  TagCriterionPairForJob'+    { key = Prelude.Nothing,+      value = Prelude.Nothing+    }++-- | The value for the tag key to use in the condition.+tagCriterionPairForJob_key :: Lens.Lens' TagCriterionPairForJob (Prelude.Maybe Prelude.Text)+tagCriterionPairForJob_key = Lens.lens (\TagCriterionPairForJob' {key} -> key) (\s@TagCriterionPairForJob' {} a -> s {key = a} :: TagCriterionPairForJob)++-- | The tag value to use in the condition.+tagCriterionPairForJob_value :: Lens.Lens' TagCriterionPairForJob (Prelude.Maybe Prelude.Text)+tagCriterionPairForJob_value = Lens.lens (\TagCriterionPairForJob' {value} -> value) (\s@TagCriterionPairForJob' {} a -> s {value = a} :: TagCriterionPairForJob)++instance Data.FromJSON TagCriterionPairForJob where+  parseJSON =+    Data.withObject+      "TagCriterionPairForJob"+      ( \x ->+          TagCriterionPairForJob'+            Prelude.<$> (x Data..:? "key")+            Prelude.<*> (x Data..:? "value")+      )++instance Prelude.Hashable TagCriterionPairForJob where+  hashWithSalt _salt TagCriterionPairForJob' {..} =+    _salt+      `Prelude.hashWithSalt` key+      `Prelude.hashWithSalt` value++instance Prelude.NFData TagCriterionPairForJob where+  rnf TagCriterionPairForJob' {..} =+    Prelude.rnf key `Prelude.seq` Prelude.rnf value++instance Data.ToJSON TagCriterionPairForJob where+  toJSON TagCriterionPairForJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("key" Data..=) Prelude.<$> key,+            ("value" Data..=) Prelude.<$> value+          ]+      )
+ gen/Amazonka/MacieV2/Types/TagScopeTerm.hs view
@@ -0,0 +1,135 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.TagScopeTerm+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.TagScopeTerm where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.JobComparator+import Amazonka.MacieV2.Types.TagTarget+import Amazonka.MacieV2.Types.TagValuePair+import qualified Amazonka.Prelude as Prelude++-- | Specifies a tag-based condition that determines whether an S3 object is+-- included or excluded from a classification job.+--+-- /See:/ 'newTagScopeTerm' smart constructor.+data TagScopeTerm = TagScopeTerm'+  { -- | The operator to use in the condition. Valid values are EQ (equals) or NE+    -- (not equals).+    comparator :: Prelude.Maybe JobComparator,+    -- | The object property to use in the condition. The only valid value is+    -- TAG.+    key :: Prelude.Maybe Prelude.Text,+    -- | The tag keys or tag key and value pairs to use in the condition. To+    -- specify only tag keys in a condition, specify the keys in this array and+    -- set the value for each associated tag value to an empty string.+    tagValues :: Prelude.Maybe [TagValuePair],+    -- | The type of object to apply the condition to.+    target :: Prelude.Maybe TagTarget+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagScopeTerm' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'comparator', 'tagScopeTerm_comparator' - The operator to use in the condition. Valid values are EQ (equals) or NE+-- (not equals).+--+-- 'key', 'tagScopeTerm_key' - The object property to use in the condition. The only valid value is+-- TAG.+--+-- 'tagValues', 'tagScopeTerm_tagValues' - The tag keys or tag key and value pairs to use in the condition. To+-- specify only tag keys in a condition, specify the keys in this array and+-- set the value for each associated tag value to an empty string.+--+-- 'target', 'tagScopeTerm_target' - The type of object to apply the condition to.+newTagScopeTerm ::+  TagScopeTerm+newTagScopeTerm =+  TagScopeTerm'+    { comparator = Prelude.Nothing,+      key = Prelude.Nothing,+      tagValues = Prelude.Nothing,+      target = Prelude.Nothing+    }++-- | The operator to use in the condition. Valid values are EQ (equals) or NE+-- (not equals).+tagScopeTerm_comparator :: Lens.Lens' TagScopeTerm (Prelude.Maybe JobComparator)+tagScopeTerm_comparator = Lens.lens (\TagScopeTerm' {comparator} -> comparator) (\s@TagScopeTerm' {} a -> s {comparator = a} :: TagScopeTerm)++-- | The object property to use in the condition. The only valid value is+-- TAG.+tagScopeTerm_key :: Lens.Lens' TagScopeTerm (Prelude.Maybe Prelude.Text)+tagScopeTerm_key = Lens.lens (\TagScopeTerm' {key} -> key) (\s@TagScopeTerm' {} a -> s {key = a} :: TagScopeTerm)++-- | The tag keys or tag key and value pairs to use in the condition. To+-- specify only tag keys in a condition, specify the keys in this array and+-- set the value for each associated tag value to an empty string.+tagScopeTerm_tagValues :: Lens.Lens' TagScopeTerm (Prelude.Maybe [TagValuePair])+tagScopeTerm_tagValues = Lens.lens (\TagScopeTerm' {tagValues} -> tagValues) (\s@TagScopeTerm' {} a -> s {tagValues = a} :: TagScopeTerm) Prelude.. Lens.mapping Lens.coerced++-- | The type of object to apply the condition to.+tagScopeTerm_target :: Lens.Lens' TagScopeTerm (Prelude.Maybe TagTarget)+tagScopeTerm_target = Lens.lens (\TagScopeTerm' {target} -> target) (\s@TagScopeTerm' {} a -> s {target = a} :: TagScopeTerm)++instance Data.FromJSON TagScopeTerm where+  parseJSON =+    Data.withObject+      "TagScopeTerm"+      ( \x ->+          TagScopeTerm'+            Prelude.<$> (x Data..:? "comparator")+            Prelude.<*> (x Data..:? "key")+            Prelude.<*> (x Data..:? "tagValues" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "target")+      )++instance Prelude.Hashable TagScopeTerm where+  hashWithSalt _salt TagScopeTerm' {..} =+    _salt+      `Prelude.hashWithSalt` comparator+      `Prelude.hashWithSalt` key+      `Prelude.hashWithSalt` tagValues+      `Prelude.hashWithSalt` target++instance Prelude.NFData TagScopeTerm where+  rnf TagScopeTerm' {..} =+    Prelude.rnf comparator+      `Prelude.seq` Prelude.rnf key+      `Prelude.seq` Prelude.rnf tagValues+      `Prelude.seq` Prelude.rnf target++instance Data.ToJSON TagScopeTerm where+  toJSON TagScopeTerm' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("comparator" Data..=) Prelude.<$> comparator,+            ("key" Data..=) Prelude.<$> key,+            ("tagValues" Data..=) Prelude.<$> tagValues,+            ("target" Data..=) Prelude.<$> target+          ]+      )
+ gen/Amazonka/MacieV2/Types/TagTarget.hs view
@@ -0,0 +1,67 @@+{-# 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.MacieV2.Types.TagTarget+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.TagTarget+  ( TagTarget+      ( ..,+        TagTarget_S3_OBJECT+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The type of object to apply a tag-based condition to. Valid values are:+newtype TagTarget = TagTarget'+  { fromTagTarget ::+      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 TagTarget_S3_OBJECT :: TagTarget+pattern TagTarget_S3_OBJECT = TagTarget' "S3_OBJECT"++{-# COMPLETE+  TagTarget_S3_OBJECT,+  TagTarget'+  #-}
+ gen/Amazonka/MacieV2/Types/TagValuePair.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.MacieV2.Types.TagValuePair+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.TagValuePair 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++-- | Specifies a tag key or tag key and value pair to use in a tag-based+-- condition that determines whether an S3 object is included or excluded+-- from a classification job. Tag keys and values are case sensitive. Also,+-- Amazon Macie doesn\'t support use of partial values or wildcard+-- characters in tag-based conditions.+--+-- /See:/ 'newTagValuePair' smart constructor.+data TagValuePair = TagValuePair'+  { -- | The value for the tag key to use in the condition.+    key :: Prelude.Maybe Prelude.Text,+    -- | The tag value, associated with the specified tag key (key), to use in+    -- the condition. To specify only a tag key for a condition, specify the+    -- tag key for the key property and set this value to an empty string.+    value :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagValuePair' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'key', 'tagValuePair_key' - The value for the tag key to use in the condition.+--+-- 'value', 'tagValuePair_value' - The tag value, associated with the specified tag key (key), to use in+-- the condition. To specify only a tag key for a condition, specify the+-- tag key for the key property and set this value to an empty string.+newTagValuePair ::+  TagValuePair+newTagValuePair =+  TagValuePair'+    { key = Prelude.Nothing,+      value = Prelude.Nothing+    }++-- | The value for the tag key to use in the condition.+tagValuePair_key :: Lens.Lens' TagValuePair (Prelude.Maybe Prelude.Text)+tagValuePair_key = Lens.lens (\TagValuePair' {key} -> key) (\s@TagValuePair' {} a -> s {key = a} :: TagValuePair)++-- | The tag value, associated with the specified tag key (key), to use in+-- the condition. To specify only a tag key for a condition, specify the+-- tag key for the key property and set this value to an empty string.+tagValuePair_value :: Lens.Lens' TagValuePair (Prelude.Maybe Prelude.Text)+tagValuePair_value = Lens.lens (\TagValuePair' {value} -> value) (\s@TagValuePair' {} a -> s {value = a} :: TagValuePair)++instance Data.FromJSON TagValuePair where+  parseJSON =+    Data.withObject+      "TagValuePair"+      ( \x ->+          TagValuePair'+            Prelude.<$> (x Data..:? "key")+            Prelude.<*> (x Data..:? "value")+      )++instance Prelude.Hashable TagValuePair where+  hashWithSalt _salt TagValuePair' {..} =+    _salt+      `Prelude.hashWithSalt` key+      `Prelude.hashWithSalt` value++instance Prelude.NFData TagValuePair where+  rnf TagValuePair' {..} =+    Prelude.rnf key `Prelude.seq` Prelude.rnf value++instance Data.ToJSON TagValuePair where+  toJSON TagValuePair' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("key" Data..=) Prelude.<$> key,+            ("value" Data..=) Prelude.<$> value+          ]+      )
+ gen/Amazonka/MacieV2/Types/TimeRange.hs view
@@ -0,0 +1,73 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.TimeRange+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.TimeRange+  ( TimeRange+      ( ..,+        TimeRange_MONTH_TO_DATE,+        TimeRange_PAST_30_DAYS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | An inclusive time period that Amazon Macie usage data applies to.+-- Possible values are:+newtype TimeRange = TimeRange'+  { fromTimeRange ::+      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 TimeRange_MONTH_TO_DATE :: TimeRange+pattern TimeRange_MONTH_TO_DATE = TimeRange' "MONTH_TO_DATE"++pattern TimeRange_PAST_30_DAYS :: TimeRange+pattern TimeRange_PAST_30_DAYS = TimeRange' "PAST_30_DAYS"++{-# COMPLETE+  TimeRange_MONTH_TO_DATE,+  TimeRange_PAST_30_DAYS,+  TimeRange'+  #-}
+ gen/Amazonka/MacieV2/Types/Type.hs view
@@ -0,0 +1,73 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.Type+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.Type+  ( Type+      ( ..,+        Type_AES256,+        Type_Aws_kms,+        Type_NONE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Type = Type' {fromType :: 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 Type_AES256 :: Type+pattern Type_AES256 = Type' "AES256"++pattern Type_Aws_kms :: Type+pattern Type_Aws_kms = Type' "aws:kms"++pattern Type_NONE :: Type+pattern Type_NONE = Type' "NONE"++{-# COMPLETE+  Type_AES256,+  Type_Aws_kms,+  Type_NONE,+  Type'+  #-}
+ gen/Amazonka/MacieV2/Types/UnavailabilityReasonCode.hs view
@@ -0,0 +1,88 @@+{-# 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.MacieV2.Types.UnavailabilityReasonCode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.UnavailabilityReasonCode+  ( UnavailabilityReasonCode+      ( ..,+        UnavailabilityReasonCode_INVALID_CLASSIFICATION_RESULT,+        UnavailabilityReasonCode_OBJECT_EXCEEDS_SIZE_QUOTA,+        UnavailabilityReasonCode_OBJECT_UNAVAILABLE,+        UnavailabilityReasonCode_UNSUPPORTED_FINDING_TYPE,+        UnavailabilityReasonCode_UNSUPPORTED_OBJECT_TYPE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Specifies why occurrences of sensitive data can\'t be retrieved for a+-- finding. Possible values are:+newtype UnavailabilityReasonCode = UnavailabilityReasonCode'+  { fromUnavailabilityReasonCode ::+      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 UnavailabilityReasonCode_INVALID_CLASSIFICATION_RESULT :: UnavailabilityReasonCode+pattern UnavailabilityReasonCode_INVALID_CLASSIFICATION_RESULT = UnavailabilityReasonCode' "INVALID_CLASSIFICATION_RESULT"++pattern UnavailabilityReasonCode_OBJECT_EXCEEDS_SIZE_QUOTA :: UnavailabilityReasonCode+pattern UnavailabilityReasonCode_OBJECT_EXCEEDS_SIZE_QUOTA = UnavailabilityReasonCode' "OBJECT_EXCEEDS_SIZE_QUOTA"++pattern UnavailabilityReasonCode_OBJECT_UNAVAILABLE :: UnavailabilityReasonCode+pattern UnavailabilityReasonCode_OBJECT_UNAVAILABLE = UnavailabilityReasonCode' "OBJECT_UNAVAILABLE"++pattern UnavailabilityReasonCode_UNSUPPORTED_FINDING_TYPE :: UnavailabilityReasonCode+pattern UnavailabilityReasonCode_UNSUPPORTED_FINDING_TYPE = UnavailabilityReasonCode' "UNSUPPORTED_FINDING_TYPE"++pattern UnavailabilityReasonCode_UNSUPPORTED_OBJECT_TYPE :: UnavailabilityReasonCode+pattern UnavailabilityReasonCode_UNSUPPORTED_OBJECT_TYPE = UnavailabilityReasonCode' "UNSUPPORTED_OBJECT_TYPE"++{-# COMPLETE+  UnavailabilityReasonCode_INVALID_CLASSIFICATION_RESULT,+  UnavailabilityReasonCode_OBJECT_EXCEEDS_SIZE_QUOTA,+  UnavailabilityReasonCode_OBJECT_UNAVAILABLE,+  UnavailabilityReasonCode_UNSUPPORTED_FINDING_TYPE,+  UnavailabilityReasonCode_UNSUPPORTED_OBJECT_TYPE,+  UnavailabilityReasonCode'+  #-}
+ gen/Amazonka/MacieV2/Types/Unit.hs view
@@ -0,0 +1,63 @@+{-# 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.MacieV2.Types.Unit+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.Unit+  ( Unit+      ( ..,+        Unit_TERABYTES+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Unit = Unit' {fromUnit :: 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 Unit_TERABYTES :: Unit+pattern Unit_TERABYTES = Unit' "TERABYTES"++{-# COMPLETE+  Unit_TERABYTES,+  Unit'+  #-}
+ gen/Amazonka/MacieV2/Types/UnprocessedAccount.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.MacieV2.Types.UnprocessedAccount+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.UnprocessedAccount where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.ErrorCode+import qualified Amazonka.Prelude as Prelude++-- | Provides information about an account-related request that hasn\'t been+-- processed.+--+-- /See:/ 'newUnprocessedAccount' smart constructor.+data UnprocessedAccount = UnprocessedAccount'+  { -- | The Amazon Web Services account ID for the account that the request+    -- applies to.+    accountId :: Prelude.Maybe Prelude.Text,+    -- | The source of the issue or delay in processing the request.+    errorCode :: Prelude.Maybe ErrorCode,+    -- | The reason why the request hasn\'t been processed.+    errorMessage :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UnprocessedAccount' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'unprocessedAccount_accountId' - The Amazon Web Services account ID for the account that the request+-- applies to.+--+-- 'errorCode', 'unprocessedAccount_errorCode' - The source of the issue or delay in processing the request.+--+-- 'errorMessage', 'unprocessedAccount_errorMessage' - The reason why the request hasn\'t been processed.+newUnprocessedAccount ::+  UnprocessedAccount+newUnprocessedAccount =+  UnprocessedAccount'+    { accountId = Prelude.Nothing,+      errorCode = Prelude.Nothing,+      errorMessage = Prelude.Nothing+    }++-- | The Amazon Web Services account ID for the account that the request+-- applies to.+unprocessedAccount_accountId :: Lens.Lens' UnprocessedAccount (Prelude.Maybe Prelude.Text)+unprocessedAccount_accountId = Lens.lens (\UnprocessedAccount' {accountId} -> accountId) (\s@UnprocessedAccount' {} a -> s {accountId = a} :: UnprocessedAccount)++-- | The source of the issue or delay in processing the request.+unprocessedAccount_errorCode :: Lens.Lens' UnprocessedAccount (Prelude.Maybe ErrorCode)+unprocessedAccount_errorCode = Lens.lens (\UnprocessedAccount' {errorCode} -> errorCode) (\s@UnprocessedAccount' {} a -> s {errorCode = a} :: UnprocessedAccount)++-- | The reason why the request hasn\'t been processed.+unprocessedAccount_errorMessage :: Lens.Lens' UnprocessedAccount (Prelude.Maybe Prelude.Text)+unprocessedAccount_errorMessage = Lens.lens (\UnprocessedAccount' {errorMessage} -> errorMessage) (\s@UnprocessedAccount' {} a -> s {errorMessage = a} :: UnprocessedAccount)++instance Data.FromJSON UnprocessedAccount where+  parseJSON =+    Data.withObject+      "UnprocessedAccount"+      ( \x ->+          UnprocessedAccount'+            Prelude.<$> (x Data..:? "accountId")+            Prelude.<*> (x Data..:? "errorCode")+            Prelude.<*> (x Data..:? "errorMessage")+      )++instance Prelude.Hashable UnprocessedAccount where+  hashWithSalt _salt UnprocessedAccount' {..} =+    _salt+      `Prelude.hashWithSalt` accountId+      `Prelude.hashWithSalt` errorCode+      `Prelude.hashWithSalt` errorMessage++instance Prelude.NFData UnprocessedAccount where+  rnf UnprocessedAccount' {..} =+    Prelude.rnf accountId+      `Prelude.seq` Prelude.rnf errorCode+      `Prelude.seq` Prelude.rnf errorMessage
+ gen/Amazonka/MacieV2/Types/UsageByAccount.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.MacieV2.Types.UsageByAccount+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.UsageByAccount where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.Currency+import Amazonka.MacieV2.Types.ServiceLimit+import Amazonka.MacieV2.Types.UsageType+import qualified Amazonka.Prelude as Prelude++-- | Provides data for a specific usage metric and the corresponding quota+-- for an Amazon Macie account.+--+-- /See:/ 'newUsageByAccount' smart constructor.+data UsageByAccount = UsageByAccount'+  { -- | The type of currency that the value for the metric (estimatedCost) is+    -- reported in.+    currency :: Prelude.Maybe Currency,+    -- | The estimated value for the metric.+    estimatedCost :: Prelude.Maybe Prelude.Text,+    -- | The current value for the quota that corresponds to the metric specified+    -- by the type field.+    serviceLimit :: Prelude.Maybe ServiceLimit,+    -- | The name of the metric. Possible values are:+    -- AUTOMATED_OBJECT_MONITORING, to monitor S3 objects for automated+    -- sensitive data discovery; AUTOMATED_SENSITIVE_DATA_DISCOVERY, to analyze+    -- S3 objects for automated sensitive data discovery;+    -- DATA_INVENTORY_EVALUATION, to monitor S3 buckets; and,+    -- SENSITIVE_DATA_DISCOVERY, to run classification jobs.+    type' :: Prelude.Maybe UsageType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UsageByAccount' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'currency', 'usageByAccount_currency' - The type of currency that the value for the metric (estimatedCost) is+-- reported in.+--+-- 'estimatedCost', 'usageByAccount_estimatedCost' - The estimated value for the metric.+--+-- 'serviceLimit', 'usageByAccount_serviceLimit' - The current value for the quota that corresponds to the metric specified+-- by the type field.+--+-- 'type'', 'usageByAccount_type' - The name of the metric. Possible values are:+-- AUTOMATED_OBJECT_MONITORING, to monitor S3 objects for automated+-- sensitive data discovery; AUTOMATED_SENSITIVE_DATA_DISCOVERY, to analyze+-- S3 objects for automated sensitive data discovery;+-- DATA_INVENTORY_EVALUATION, to monitor S3 buckets; and,+-- SENSITIVE_DATA_DISCOVERY, to run classification jobs.+newUsageByAccount ::+  UsageByAccount+newUsageByAccount =+  UsageByAccount'+    { currency = Prelude.Nothing,+      estimatedCost = Prelude.Nothing,+      serviceLimit = Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | The type of currency that the value for the metric (estimatedCost) is+-- reported in.+usageByAccount_currency :: Lens.Lens' UsageByAccount (Prelude.Maybe Currency)+usageByAccount_currency = Lens.lens (\UsageByAccount' {currency} -> currency) (\s@UsageByAccount' {} a -> s {currency = a} :: UsageByAccount)++-- | The estimated value for the metric.+usageByAccount_estimatedCost :: Lens.Lens' UsageByAccount (Prelude.Maybe Prelude.Text)+usageByAccount_estimatedCost = Lens.lens (\UsageByAccount' {estimatedCost} -> estimatedCost) (\s@UsageByAccount' {} a -> s {estimatedCost = a} :: UsageByAccount)++-- | The current value for the quota that corresponds to the metric specified+-- by the type field.+usageByAccount_serviceLimit :: Lens.Lens' UsageByAccount (Prelude.Maybe ServiceLimit)+usageByAccount_serviceLimit = Lens.lens (\UsageByAccount' {serviceLimit} -> serviceLimit) (\s@UsageByAccount' {} a -> s {serviceLimit = a} :: UsageByAccount)++-- | The name of the metric. Possible values are:+-- AUTOMATED_OBJECT_MONITORING, to monitor S3 objects for automated+-- sensitive data discovery; AUTOMATED_SENSITIVE_DATA_DISCOVERY, to analyze+-- S3 objects for automated sensitive data discovery;+-- DATA_INVENTORY_EVALUATION, to monitor S3 buckets; and,+-- SENSITIVE_DATA_DISCOVERY, to run classification jobs.+usageByAccount_type :: Lens.Lens' UsageByAccount (Prelude.Maybe UsageType)+usageByAccount_type = Lens.lens (\UsageByAccount' {type'} -> type') (\s@UsageByAccount' {} a -> s {type' = a} :: UsageByAccount)++instance Data.FromJSON UsageByAccount where+  parseJSON =+    Data.withObject+      "UsageByAccount"+      ( \x ->+          UsageByAccount'+            Prelude.<$> (x Data..:? "currency")+            Prelude.<*> (x Data..:? "estimatedCost")+            Prelude.<*> (x Data..:? "serviceLimit")+            Prelude.<*> (x Data..:? "type")+      )++instance Prelude.Hashable UsageByAccount where+  hashWithSalt _salt UsageByAccount' {..} =+    _salt+      `Prelude.hashWithSalt` currency+      `Prelude.hashWithSalt` estimatedCost+      `Prelude.hashWithSalt` serviceLimit+      `Prelude.hashWithSalt` type'++instance Prelude.NFData UsageByAccount where+  rnf UsageByAccount' {..} =+    Prelude.rnf currency+      `Prelude.seq` Prelude.rnf estimatedCost+      `Prelude.seq` Prelude.rnf serviceLimit+      `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/MacieV2/Types/UsageRecord.hs view
@@ -0,0 +1,134 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.UsageRecord+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.UsageRecord where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.UsageByAccount+import qualified Amazonka.Prelude as Prelude++-- | Provides quota and aggregated usage data for an Amazon Macie account.+--+-- /See:/ 'newUsageRecord' smart constructor.+data UsageRecord = UsageRecord'+  { -- | The unique identifier for the Amazon Web Services account that the data+    -- applies to.+    accountId :: Prelude.Maybe Prelude.Text,+    -- | The date and time, in UTC and extended ISO 8601 format, when the free+    -- trial of automated sensitive data discovery started for the account. If+    -- the account is a member account in an organization, this value is the+    -- same as the value for the organization\'s Amazon Macie administrator+    -- account.+    automatedDiscoveryFreeTrialStartDate :: Prelude.Maybe Data.ISO8601,+    -- | The date and time, in UTC and extended ISO 8601 format, when the Amazon+    -- Macie free trial started for the account.+    freeTrialStartDate :: Prelude.Maybe Data.ISO8601,+    -- | An array of objects that contains usage data and quotas for the account.+    -- Each object contains the data for a specific usage metric and the+    -- corresponding quota.+    usage :: Prelude.Maybe [UsageByAccount]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UsageRecord' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'usageRecord_accountId' - The unique identifier for the Amazon Web Services account that the data+-- applies to.+--+-- 'automatedDiscoveryFreeTrialStartDate', 'usageRecord_automatedDiscoveryFreeTrialStartDate' - The date and time, in UTC and extended ISO 8601 format, when the free+-- trial of automated sensitive data discovery started for the account. If+-- the account is a member account in an organization, this value is the+-- same as the value for the organization\'s Amazon Macie administrator+-- account.+--+-- 'freeTrialStartDate', 'usageRecord_freeTrialStartDate' - The date and time, in UTC and extended ISO 8601 format, when the Amazon+-- Macie free trial started for the account.+--+-- 'usage', 'usageRecord_usage' - An array of objects that contains usage data and quotas for the account.+-- Each object contains the data for a specific usage metric and the+-- corresponding quota.+newUsageRecord ::+  UsageRecord+newUsageRecord =+  UsageRecord'+    { accountId = Prelude.Nothing,+      automatedDiscoveryFreeTrialStartDate =+        Prelude.Nothing,+      freeTrialStartDate = Prelude.Nothing,+      usage = Prelude.Nothing+    }++-- | The unique identifier for the Amazon Web Services account that the data+-- applies to.+usageRecord_accountId :: Lens.Lens' UsageRecord (Prelude.Maybe Prelude.Text)+usageRecord_accountId = Lens.lens (\UsageRecord' {accountId} -> accountId) (\s@UsageRecord' {} a -> s {accountId = a} :: UsageRecord)++-- | The date and time, in UTC and extended ISO 8601 format, when the free+-- trial of automated sensitive data discovery started for the account. If+-- the account is a member account in an organization, this value is the+-- same as the value for the organization\'s Amazon Macie administrator+-- account.+usageRecord_automatedDiscoveryFreeTrialStartDate :: Lens.Lens' UsageRecord (Prelude.Maybe Prelude.UTCTime)+usageRecord_automatedDiscoveryFreeTrialStartDate = Lens.lens (\UsageRecord' {automatedDiscoveryFreeTrialStartDate} -> automatedDiscoveryFreeTrialStartDate) (\s@UsageRecord' {} a -> s {automatedDiscoveryFreeTrialStartDate = a} :: UsageRecord) Prelude.. Lens.mapping Data._Time++-- | The date and time, in UTC and extended ISO 8601 format, when the Amazon+-- Macie free trial started for the account.+usageRecord_freeTrialStartDate :: Lens.Lens' UsageRecord (Prelude.Maybe Prelude.UTCTime)+usageRecord_freeTrialStartDate = Lens.lens (\UsageRecord' {freeTrialStartDate} -> freeTrialStartDate) (\s@UsageRecord' {} a -> s {freeTrialStartDate = a} :: UsageRecord) Prelude.. Lens.mapping Data._Time++-- | An array of objects that contains usage data and quotas for the account.+-- Each object contains the data for a specific usage metric and the+-- corresponding quota.+usageRecord_usage :: Lens.Lens' UsageRecord (Prelude.Maybe [UsageByAccount])+usageRecord_usage = Lens.lens (\UsageRecord' {usage} -> usage) (\s@UsageRecord' {} a -> s {usage = a} :: UsageRecord) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON UsageRecord where+  parseJSON =+    Data.withObject+      "UsageRecord"+      ( \x ->+          UsageRecord'+            Prelude.<$> (x Data..:? "accountId")+            Prelude.<*> (x Data..:? "automatedDiscoveryFreeTrialStartDate")+            Prelude.<*> (x Data..:? "freeTrialStartDate")+            Prelude.<*> (x Data..:? "usage" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable UsageRecord where+  hashWithSalt _salt UsageRecord' {..} =+    _salt+      `Prelude.hashWithSalt` accountId+      `Prelude.hashWithSalt` automatedDiscoveryFreeTrialStartDate+      `Prelude.hashWithSalt` freeTrialStartDate+      `Prelude.hashWithSalt` usage++instance Prelude.NFData UsageRecord where+  rnf UsageRecord' {..} =+    Prelude.rnf accountId+      `Prelude.seq` Prelude.rnf automatedDiscoveryFreeTrialStartDate+      `Prelude.seq` Prelude.rnf freeTrialStartDate+      `Prelude.seq` Prelude.rnf usage
+ gen/Amazonka/MacieV2/Types/UsageStatisticsFilter.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.MacieV2.Types.UsageStatisticsFilter+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.UsageStatisticsFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.UsageStatisticsFilterComparator+import Amazonka.MacieV2.Types.UsageStatisticsFilterKey+import qualified Amazonka.Prelude as Prelude++-- | Specifies a condition for filtering the results of a query for quota and+-- usage data for one or more Amazon Macie accounts.+--+-- /See:/ 'newUsageStatisticsFilter' smart constructor.+data UsageStatisticsFilter = UsageStatisticsFilter'+  { -- | The operator to use in the condition. If the value for the key property+    -- is accountId, this value must be CONTAINS. If the value for the key+    -- property is any other supported field, this value can be EQ, GT, GTE,+    -- LT, LTE, or NE.+    comparator :: Prelude.Maybe UsageStatisticsFilterComparator,+    -- | The field to use in the condition.+    key :: Prelude.Maybe UsageStatisticsFilterKey,+    -- | An array that lists values to use in the condition, based on the value+    -- for the field specified by the key property. If the value for the key+    -- property is accountId, this array can specify multiple values.+    -- Otherwise, this array can specify only one value.+    --+    -- Valid values for each supported field are:+    --+    -- -   accountId - The unique identifier for an Amazon Web Services+    --     account.+    --+    -- -   freeTrialStartDate - The date and time, in UTC and extended ISO 8601+    --     format, when the Amazon Macie free trial started for an account.+    --+    -- -   serviceLimit - A Boolean (true or false) value that indicates+    --     whether an account has reached its monthly quota.+    --+    -- -   total - A string that represents the current estimated cost for an+    --     account.+    values :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UsageStatisticsFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'comparator', 'usageStatisticsFilter_comparator' - The operator to use in the condition. If the value for the key property+-- is accountId, this value must be CONTAINS. If the value for the key+-- property is any other supported field, this value can be EQ, GT, GTE,+-- LT, LTE, or NE.+--+-- 'key', 'usageStatisticsFilter_key' - The field to use in the condition.+--+-- 'values', 'usageStatisticsFilter_values' - An array that lists values to use in the condition, based on the value+-- for the field specified by the key property. If the value for the key+-- property is accountId, this array can specify multiple values.+-- Otherwise, this array can specify only one value.+--+-- Valid values for each supported field are:+--+-- -   accountId - The unique identifier for an Amazon Web Services+--     account.+--+-- -   freeTrialStartDate - The date and time, in UTC and extended ISO 8601+--     format, when the Amazon Macie free trial started for an account.+--+-- -   serviceLimit - A Boolean (true or false) value that indicates+--     whether an account has reached its monthly quota.+--+-- -   total - A string that represents the current estimated cost for an+--     account.+newUsageStatisticsFilter ::+  UsageStatisticsFilter+newUsageStatisticsFilter =+  UsageStatisticsFilter'+    { comparator =+        Prelude.Nothing,+      key = Prelude.Nothing,+      values = Prelude.Nothing+    }++-- | The operator to use in the condition. If the value for the key property+-- is accountId, this value must be CONTAINS. If the value for the key+-- property is any other supported field, this value can be EQ, GT, GTE,+-- LT, LTE, or NE.+usageStatisticsFilter_comparator :: Lens.Lens' UsageStatisticsFilter (Prelude.Maybe UsageStatisticsFilterComparator)+usageStatisticsFilter_comparator = Lens.lens (\UsageStatisticsFilter' {comparator} -> comparator) (\s@UsageStatisticsFilter' {} a -> s {comparator = a} :: UsageStatisticsFilter)++-- | The field to use in the condition.+usageStatisticsFilter_key :: Lens.Lens' UsageStatisticsFilter (Prelude.Maybe UsageStatisticsFilterKey)+usageStatisticsFilter_key = Lens.lens (\UsageStatisticsFilter' {key} -> key) (\s@UsageStatisticsFilter' {} a -> s {key = a} :: UsageStatisticsFilter)++-- | An array that lists values to use in the condition, based on the value+-- for the field specified by the key property. If the value for the key+-- property is accountId, this array can specify multiple values.+-- Otherwise, this array can specify only one value.+--+-- Valid values for each supported field are:+--+-- -   accountId - The unique identifier for an Amazon Web Services+--     account.+--+-- -   freeTrialStartDate - The date and time, in UTC and extended ISO 8601+--     format, when the Amazon Macie free trial started for an account.+--+-- -   serviceLimit - A Boolean (true or false) value that indicates+--     whether an account has reached its monthly quota.+--+-- -   total - A string that represents the current estimated cost for an+--     account.+usageStatisticsFilter_values :: Lens.Lens' UsageStatisticsFilter (Prelude.Maybe [Prelude.Text])+usageStatisticsFilter_values = Lens.lens (\UsageStatisticsFilter' {values} -> values) (\s@UsageStatisticsFilter' {} a -> s {values = a} :: UsageStatisticsFilter) Prelude.. Lens.mapping Lens.coerced++instance Prelude.Hashable UsageStatisticsFilter where+  hashWithSalt _salt UsageStatisticsFilter' {..} =+    _salt+      `Prelude.hashWithSalt` comparator+      `Prelude.hashWithSalt` key+      `Prelude.hashWithSalt` values++instance Prelude.NFData UsageStatisticsFilter where+  rnf UsageStatisticsFilter' {..} =+    Prelude.rnf comparator+      `Prelude.seq` Prelude.rnf key+      `Prelude.seq` Prelude.rnf values++instance Data.ToJSON UsageStatisticsFilter where+  toJSON UsageStatisticsFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("comparator" Data..=) Prelude.<$> comparator,+            ("key" Data..=) Prelude.<$> key,+            ("values" Data..=) Prelude.<$> values+          ]+      )
+ gen/Amazonka/MacieV2/Types/UsageStatisticsFilterComparator.hs view
@@ -0,0 +1,98 @@+{-# 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.MacieV2.Types.UsageStatisticsFilterComparator+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.UsageStatisticsFilterComparator+  ( UsageStatisticsFilterComparator+      ( ..,+        UsageStatisticsFilterComparator_CONTAINS,+        UsageStatisticsFilterComparator_EQ,+        UsageStatisticsFilterComparator_GT,+        UsageStatisticsFilterComparator_GTE,+        UsageStatisticsFilterComparator_LT,+        UsageStatisticsFilterComparator_LTE,+        UsageStatisticsFilterComparator_NE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The operator to use in a condition that filters the results of a query+-- for Amazon Macie account quotas and usage data. Valid values are:+newtype UsageStatisticsFilterComparator = UsageStatisticsFilterComparator'+  { fromUsageStatisticsFilterComparator ::+      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 UsageStatisticsFilterComparator_CONTAINS :: UsageStatisticsFilterComparator+pattern UsageStatisticsFilterComparator_CONTAINS = UsageStatisticsFilterComparator' "CONTAINS"++pattern UsageStatisticsFilterComparator_EQ :: UsageStatisticsFilterComparator+pattern UsageStatisticsFilterComparator_EQ = UsageStatisticsFilterComparator' "EQ"++pattern UsageStatisticsFilterComparator_GT :: UsageStatisticsFilterComparator+pattern UsageStatisticsFilterComparator_GT = UsageStatisticsFilterComparator' "GT"++pattern UsageStatisticsFilterComparator_GTE :: UsageStatisticsFilterComparator+pattern UsageStatisticsFilterComparator_GTE = UsageStatisticsFilterComparator' "GTE"++pattern UsageStatisticsFilterComparator_LT :: UsageStatisticsFilterComparator+pattern UsageStatisticsFilterComparator_LT = UsageStatisticsFilterComparator' "LT"++pattern UsageStatisticsFilterComparator_LTE :: UsageStatisticsFilterComparator+pattern UsageStatisticsFilterComparator_LTE = UsageStatisticsFilterComparator' "LTE"++pattern UsageStatisticsFilterComparator_NE :: UsageStatisticsFilterComparator+pattern UsageStatisticsFilterComparator_NE = UsageStatisticsFilterComparator' "NE"++{-# COMPLETE+  UsageStatisticsFilterComparator_CONTAINS,+  UsageStatisticsFilterComparator_EQ,+  UsageStatisticsFilterComparator_GT,+  UsageStatisticsFilterComparator_GTE,+  UsageStatisticsFilterComparator_LT,+  UsageStatisticsFilterComparator_LTE,+  UsageStatisticsFilterComparator_NE,+  UsageStatisticsFilterComparator'+  #-}
+ gen/Amazonka/MacieV2/Types/UsageStatisticsFilterKey.hs view
@@ -0,0 +1,83 @@+{-# 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.MacieV2.Types.UsageStatisticsFilterKey+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.UsageStatisticsFilterKey+  ( UsageStatisticsFilterKey+      ( ..,+        UsageStatisticsFilterKey_AccountId,+        UsageStatisticsFilterKey_FreeTrialStartDate,+        UsageStatisticsFilterKey_ServiceLimit,+        UsageStatisticsFilterKey_Total+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The field to use in a condition that filters the results of a query for+-- Amazon Macie account quotas and usage data. Valid values are:+newtype UsageStatisticsFilterKey = UsageStatisticsFilterKey'+  { fromUsageStatisticsFilterKey ::+      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 UsageStatisticsFilterKey_AccountId :: UsageStatisticsFilterKey+pattern UsageStatisticsFilterKey_AccountId = UsageStatisticsFilterKey' "accountId"++pattern UsageStatisticsFilterKey_FreeTrialStartDate :: UsageStatisticsFilterKey+pattern UsageStatisticsFilterKey_FreeTrialStartDate = UsageStatisticsFilterKey' "freeTrialStartDate"++pattern UsageStatisticsFilterKey_ServiceLimit :: UsageStatisticsFilterKey+pattern UsageStatisticsFilterKey_ServiceLimit = UsageStatisticsFilterKey' "serviceLimit"++pattern UsageStatisticsFilterKey_Total :: UsageStatisticsFilterKey+pattern UsageStatisticsFilterKey_Total = UsageStatisticsFilterKey' "total"++{-# COMPLETE+  UsageStatisticsFilterKey_AccountId,+  UsageStatisticsFilterKey_FreeTrialStartDate,+  UsageStatisticsFilterKey_ServiceLimit,+  UsageStatisticsFilterKey_Total,+  UsageStatisticsFilterKey'+  #-}
+ gen/Amazonka/MacieV2/Types/UsageStatisticsSortBy.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.UsageStatisticsSortBy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.UsageStatisticsSortBy where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.OrderBy+import Amazonka.MacieV2.Types.UsageStatisticsSortKey+import qualified Amazonka.Prelude as Prelude++-- | Specifies criteria for sorting the results of a query for Amazon Macie+-- account quotas and usage data.+--+-- /See:/ 'newUsageStatisticsSortBy' smart constructor.+data UsageStatisticsSortBy = UsageStatisticsSortBy'+  { -- | The field to sort the results by.+    key :: Prelude.Maybe UsageStatisticsSortKey,+    -- | The sort order to apply to the results, based on the value for the field+    -- specified by the key property. Valid values are: ASC, sort the results+    -- in ascending order; and, DESC, sort the results in descending order.+    orderBy :: Prelude.Maybe OrderBy+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UsageStatisticsSortBy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'key', 'usageStatisticsSortBy_key' - The field to sort the results by.+--+-- 'orderBy', 'usageStatisticsSortBy_orderBy' - The sort order to apply to the results, based on the value for the field+-- specified by the key property. Valid values are: ASC, sort the results+-- in ascending order; and, DESC, sort the results in descending order.+newUsageStatisticsSortBy ::+  UsageStatisticsSortBy+newUsageStatisticsSortBy =+  UsageStatisticsSortBy'+    { key = Prelude.Nothing,+      orderBy = Prelude.Nothing+    }++-- | The field to sort the results by.+usageStatisticsSortBy_key :: Lens.Lens' UsageStatisticsSortBy (Prelude.Maybe UsageStatisticsSortKey)+usageStatisticsSortBy_key = Lens.lens (\UsageStatisticsSortBy' {key} -> key) (\s@UsageStatisticsSortBy' {} a -> s {key = a} :: UsageStatisticsSortBy)++-- | The sort order to apply to the results, based on the value for the field+-- specified by the key property. Valid values are: ASC, sort the results+-- in ascending order; and, DESC, sort the results in descending order.+usageStatisticsSortBy_orderBy :: Lens.Lens' UsageStatisticsSortBy (Prelude.Maybe OrderBy)+usageStatisticsSortBy_orderBy = Lens.lens (\UsageStatisticsSortBy' {orderBy} -> orderBy) (\s@UsageStatisticsSortBy' {} a -> s {orderBy = a} :: UsageStatisticsSortBy)++instance Prelude.Hashable UsageStatisticsSortBy where+  hashWithSalt _salt UsageStatisticsSortBy' {..} =+    _salt+      `Prelude.hashWithSalt` key+      `Prelude.hashWithSalt` orderBy++instance Prelude.NFData UsageStatisticsSortBy where+  rnf UsageStatisticsSortBy' {..} =+    Prelude.rnf key `Prelude.seq` Prelude.rnf orderBy++instance Data.ToJSON UsageStatisticsSortBy where+  toJSON UsageStatisticsSortBy' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("key" Data..=) Prelude.<$> key,+            ("orderBy" Data..=) Prelude.<$> orderBy+          ]+      )
+ gen/Amazonka/MacieV2/Types/UsageStatisticsSortKey.hs view
@@ -0,0 +1,83 @@+{-# 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.MacieV2.Types.UsageStatisticsSortKey+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.UsageStatisticsSortKey+  ( UsageStatisticsSortKey+      ( ..,+        UsageStatisticsSortKey_AccountId,+        UsageStatisticsSortKey_FreeTrialStartDate,+        UsageStatisticsSortKey_ServiceLimitValue,+        UsageStatisticsSortKey_Total+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The field to use to sort the results of a query for Amazon Macie account+-- quotas and usage data. Valid values are:+newtype UsageStatisticsSortKey = UsageStatisticsSortKey'+  { fromUsageStatisticsSortKey ::+      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 UsageStatisticsSortKey_AccountId :: UsageStatisticsSortKey+pattern UsageStatisticsSortKey_AccountId = UsageStatisticsSortKey' "accountId"++pattern UsageStatisticsSortKey_FreeTrialStartDate :: UsageStatisticsSortKey+pattern UsageStatisticsSortKey_FreeTrialStartDate = UsageStatisticsSortKey' "freeTrialStartDate"++pattern UsageStatisticsSortKey_ServiceLimitValue :: UsageStatisticsSortKey+pattern UsageStatisticsSortKey_ServiceLimitValue = UsageStatisticsSortKey' "serviceLimitValue"++pattern UsageStatisticsSortKey_Total :: UsageStatisticsSortKey+pattern UsageStatisticsSortKey_Total = UsageStatisticsSortKey' "total"++{-# COMPLETE+  UsageStatisticsSortKey_AccountId,+  UsageStatisticsSortKey_FreeTrialStartDate,+  UsageStatisticsSortKey_ServiceLimitValue,+  UsageStatisticsSortKey_Total,+  UsageStatisticsSortKey'+  #-}
+ gen/Amazonka/MacieV2/Types/UsageTotal.hs view
@@ -0,0 +1,119 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.UsageTotal+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.UsageTotal where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.Currency+import Amazonka.MacieV2.Types.UsageType+import qualified Amazonka.Prelude as Prelude++-- | Provides aggregated data for an Amazon Macie usage metric. The value for+-- the metric reports estimated usage data for an account for the preceding+-- 30 days or the current calendar month to date, depending on the time+-- period (timeRange) specified in the request.+--+-- /See:/ 'newUsageTotal' smart constructor.+data UsageTotal = UsageTotal'+  { -- | The type of currency that the value for the metric (estimatedCost) is+    -- reported in.+    currency :: Prelude.Maybe Currency,+    -- | The estimated value for the metric.+    estimatedCost :: Prelude.Maybe Prelude.Text,+    -- | The name of the metric. Possible values are:+    -- AUTOMATED_OBJECT_MONITORING, to monitor S3 objects for automated+    -- sensitive data discovery; AUTOMATED_SENSITIVE_DATA_DISCOVERY, to analyze+    -- S3 objects for automated sensitive data discovery;+    -- DATA_INVENTORY_EVALUATION, to monitor S3 buckets; and,+    -- SENSITIVE_DATA_DISCOVERY, to run classification jobs.+    type' :: Prelude.Maybe UsageType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UsageTotal' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'currency', 'usageTotal_currency' - The type of currency that the value for the metric (estimatedCost) is+-- reported in.+--+-- 'estimatedCost', 'usageTotal_estimatedCost' - The estimated value for the metric.+--+-- 'type'', 'usageTotal_type' - The name of the metric. Possible values are:+-- AUTOMATED_OBJECT_MONITORING, to monitor S3 objects for automated+-- sensitive data discovery; AUTOMATED_SENSITIVE_DATA_DISCOVERY, to analyze+-- S3 objects for automated sensitive data discovery;+-- DATA_INVENTORY_EVALUATION, to monitor S3 buckets; and,+-- SENSITIVE_DATA_DISCOVERY, to run classification jobs.+newUsageTotal ::+  UsageTotal+newUsageTotal =+  UsageTotal'+    { currency = Prelude.Nothing,+      estimatedCost = Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | The type of currency that the value for the metric (estimatedCost) is+-- reported in.+usageTotal_currency :: Lens.Lens' UsageTotal (Prelude.Maybe Currency)+usageTotal_currency = Lens.lens (\UsageTotal' {currency} -> currency) (\s@UsageTotal' {} a -> s {currency = a} :: UsageTotal)++-- | The estimated value for the metric.+usageTotal_estimatedCost :: Lens.Lens' UsageTotal (Prelude.Maybe Prelude.Text)+usageTotal_estimatedCost = Lens.lens (\UsageTotal' {estimatedCost} -> estimatedCost) (\s@UsageTotal' {} a -> s {estimatedCost = a} :: UsageTotal)++-- | The name of the metric. Possible values are:+-- AUTOMATED_OBJECT_MONITORING, to monitor S3 objects for automated+-- sensitive data discovery; AUTOMATED_SENSITIVE_DATA_DISCOVERY, to analyze+-- S3 objects for automated sensitive data discovery;+-- DATA_INVENTORY_EVALUATION, to monitor S3 buckets; and,+-- SENSITIVE_DATA_DISCOVERY, to run classification jobs.+usageTotal_type :: Lens.Lens' UsageTotal (Prelude.Maybe UsageType)+usageTotal_type = Lens.lens (\UsageTotal' {type'} -> type') (\s@UsageTotal' {} a -> s {type' = a} :: UsageTotal)++instance Data.FromJSON UsageTotal where+  parseJSON =+    Data.withObject+      "UsageTotal"+      ( \x ->+          UsageTotal'+            Prelude.<$> (x Data..:? "currency")+            Prelude.<*> (x Data..:? "estimatedCost")+            Prelude.<*> (x Data..:? "type")+      )++instance Prelude.Hashable UsageTotal where+  hashWithSalt _salt UsageTotal' {..} =+    _salt+      `Prelude.hashWithSalt` currency+      `Prelude.hashWithSalt` estimatedCost+      `Prelude.hashWithSalt` type'++instance Prelude.NFData UsageTotal where+  rnf UsageTotal' {..} =+    Prelude.rnf currency+      `Prelude.seq` Prelude.rnf estimatedCost+      `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/MacieV2/Types/UsageType.hs view
@@ -0,0 +1,83 @@+{-# 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.MacieV2.Types.UsageType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.UsageType+  ( UsageType+      ( ..,+        UsageType_AUTOMATED_OBJECT_MONITORING,+        UsageType_AUTOMATED_SENSITIVE_DATA_DISCOVERY,+        UsageType_DATA_INVENTORY_EVALUATION,+        UsageType_SENSITIVE_DATA_DISCOVERY+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The name of an Amazon Macie usage metric for an account. Possible values+-- are:+newtype UsageType = UsageType'+  { fromUsageType ::+      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 UsageType_AUTOMATED_OBJECT_MONITORING :: UsageType+pattern UsageType_AUTOMATED_OBJECT_MONITORING = UsageType' "AUTOMATED_OBJECT_MONITORING"++pattern UsageType_AUTOMATED_SENSITIVE_DATA_DISCOVERY :: UsageType+pattern UsageType_AUTOMATED_SENSITIVE_DATA_DISCOVERY = UsageType' "AUTOMATED_SENSITIVE_DATA_DISCOVERY"++pattern UsageType_DATA_INVENTORY_EVALUATION :: UsageType+pattern UsageType_DATA_INVENTORY_EVALUATION = UsageType' "DATA_INVENTORY_EVALUATION"++pattern UsageType_SENSITIVE_DATA_DISCOVERY :: UsageType+pattern UsageType_SENSITIVE_DATA_DISCOVERY = UsageType' "SENSITIVE_DATA_DISCOVERY"++{-# COMPLETE+  UsageType_AUTOMATED_OBJECT_MONITORING,+  UsageType_AUTOMATED_SENSITIVE_DATA_DISCOVERY,+  UsageType_DATA_INVENTORY_EVALUATION,+  UsageType_SENSITIVE_DATA_DISCOVERY,+  UsageType'+  #-}
+ gen/Amazonka/MacieV2/Types/UserIdentity.hs view
@@ -0,0 +1,182 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.UserIdentity+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.UserIdentity where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.AssumedRole+import Amazonka.MacieV2.Types.AwsAccount+import Amazonka.MacieV2.Types.AwsService+import Amazonka.MacieV2.Types.FederatedUser+import Amazonka.MacieV2.Types.IamUser+import Amazonka.MacieV2.Types.UserIdentityRoot+import Amazonka.MacieV2.Types.UserIdentityType+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the type and other characteristics of an+-- entity that performed an action on an affected resource.+--+-- /See:/ 'newUserIdentity' smart constructor.+data UserIdentity = UserIdentity'+  { -- | If the action was performed with temporary security credentials that+    -- were obtained using the AssumeRole operation of the Security Token+    -- Service (STS) API, the identifiers, session context, and other details+    -- about the identity.+    assumedRole :: Prelude.Maybe AssumedRole,+    -- | If the action was performed using the credentials for another Amazon Web+    -- Services account, the details of that account.+    awsAccount :: Prelude.Maybe AwsAccount,+    -- | If the action was performed by an Amazon Web Services account that+    -- belongs to an Amazon Web Service, the name of the service.+    awsService :: Prelude.Maybe AwsService,+    -- | If the action was performed with temporary security credentials that+    -- were obtained using the GetFederationToken operation of the Security+    -- Token Service (STS) API, the identifiers, session context, and other+    -- details about the identity.+    federatedUser :: Prelude.Maybe FederatedUser,+    -- | If the action was performed using the credentials for an Identity and+    -- Access Management (IAM) user, the name and other details about the user.+    iamUser :: Prelude.Maybe IamUser,+    -- | If the action was performed using the credentials for your Amazon Web+    -- Services account, the details of your account.+    root :: Prelude.Maybe UserIdentityRoot,+    -- | The type of entity that performed the action.+    type' :: Prelude.Maybe UserIdentityType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UserIdentity' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'assumedRole', 'userIdentity_assumedRole' - If the action was performed with temporary security credentials that+-- were obtained using the AssumeRole operation of the Security Token+-- Service (STS) API, the identifiers, session context, and other details+-- about the identity.+--+-- 'awsAccount', 'userIdentity_awsAccount' - If the action was performed using the credentials for another Amazon Web+-- Services account, the details of that account.+--+-- 'awsService', 'userIdentity_awsService' - If the action was performed by an Amazon Web Services account that+-- belongs to an Amazon Web Service, the name of the service.+--+-- 'federatedUser', 'userIdentity_federatedUser' - If the action was performed with temporary security credentials that+-- were obtained using the GetFederationToken operation of the Security+-- Token Service (STS) API, the identifiers, session context, and other+-- details about the identity.+--+-- 'iamUser', 'userIdentity_iamUser' - If the action was performed using the credentials for an Identity and+-- Access Management (IAM) user, the name and other details about the user.+--+-- 'root', 'userIdentity_root' - If the action was performed using the credentials for your Amazon Web+-- Services account, the details of your account.+--+-- 'type'', 'userIdentity_type' - The type of entity that performed the action.+newUserIdentity ::+  UserIdentity+newUserIdentity =+  UserIdentity'+    { assumedRole = Prelude.Nothing,+      awsAccount = Prelude.Nothing,+      awsService = Prelude.Nothing,+      federatedUser = Prelude.Nothing,+      iamUser = Prelude.Nothing,+      root = Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | If the action was performed with temporary security credentials that+-- were obtained using the AssumeRole operation of the Security Token+-- Service (STS) API, the identifiers, session context, and other details+-- about the identity.+userIdentity_assumedRole :: Lens.Lens' UserIdentity (Prelude.Maybe AssumedRole)+userIdentity_assumedRole = Lens.lens (\UserIdentity' {assumedRole} -> assumedRole) (\s@UserIdentity' {} a -> s {assumedRole = a} :: UserIdentity)++-- | If the action was performed using the credentials for another Amazon Web+-- Services account, the details of that account.+userIdentity_awsAccount :: Lens.Lens' UserIdentity (Prelude.Maybe AwsAccount)+userIdentity_awsAccount = Lens.lens (\UserIdentity' {awsAccount} -> awsAccount) (\s@UserIdentity' {} a -> s {awsAccount = a} :: UserIdentity)++-- | If the action was performed by an Amazon Web Services account that+-- belongs to an Amazon Web Service, the name of the service.+userIdentity_awsService :: Lens.Lens' UserIdentity (Prelude.Maybe AwsService)+userIdentity_awsService = Lens.lens (\UserIdentity' {awsService} -> awsService) (\s@UserIdentity' {} a -> s {awsService = a} :: UserIdentity)++-- | If the action was performed with temporary security credentials that+-- were obtained using the GetFederationToken operation of the Security+-- Token Service (STS) API, the identifiers, session context, and other+-- details about the identity.+userIdentity_federatedUser :: Lens.Lens' UserIdentity (Prelude.Maybe FederatedUser)+userIdentity_federatedUser = Lens.lens (\UserIdentity' {federatedUser} -> federatedUser) (\s@UserIdentity' {} a -> s {federatedUser = a} :: UserIdentity)++-- | If the action was performed using the credentials for an Identity and+-- Access Management (IAM) user, the name and other details about the user.+userIdentity_iamUser :: Lens.Lens' UserIdentity (Prelude.Maybe IamUser)+userIdentity_iamUser = Lens.lens (\UserIdentity' {iamUser} -> iamUser) (\s@UserIdentity' {} a -> s {iamUser = a} :: UserIdentity)++-- | If the action was performed using the credentials for your Amazon Web+-- Services account, the details of your account.+userIdentity_root :: Lens.Lens' UserIdentity (Prelude.Maybe UserIdentityRoot)+userIdentity_root = Lens.lens (\UserIdentity' {root} -> root) (\s@UserIdentity' {} a -> s {root = a} :: UserIdentity)++-- | The type of entity that performed the action.+userIdentity_type :: Lens.Lens' UserIdentity (Prelude.Maybe UserIdentityType)+userIdentity_type = Lens.lens (\UserIdentity' {type'} -> type') (\s@UserIdentity' {} a -> s {type' = a} :: UserIdentity)++instance Data.FromJSON UserIdentity where+  parseJSON =+    Data.withObject+      "UserIdentity"+      ( \x ->+          UserIdentity'+            Prelude.<$> (x Data..:? "assumedRole")+            Prelude.<*> (x Data..:? "awsAccount")+            Prelude.<*> (x Data..:? "awsService")+            Prelude.<*> (x Data..:? "federatedUser")+            Prelude.<*> (x Data..:? "iamUser")+            Prelude.<*> (x Data..:? "root")+            Prelude.<*> (x Data..:? "type")+      )++instance Prelude.Hashable UserIdentity where+  hashWithSalt _salt UserIdentity' {..} =+    _salt+      `Prelude.hashWithSalt` assumedRole+      `Prelude.hashWithSalt` awsAccount+      `Prelude.hashWithSalt` awsService+      `Prelude.hashWithSalt` federatedUser+      `Prelude.hashWithSalt` iamUser+      `Prelude.hashWithSalt` root+      `Prelude.hashWithSalt` type'++instance Prelude.NFData UserIdentity where+  rnf UserIdentity' {..} =+    Prelude.rnf assumedRole+      `Prelude.seq` Prelude.rnf awsAccount+      `Prelude.seq` Prelude.rnf awsService+      `Prelude.seq` Prelude.rnf federatedUser+      `Prelude.seq` Prelude.rnf iamUser+      `Prelude.seq` Prelude.rnf root+      `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/MacieV2/Types/UserIdentityRoot.hs view
@@ -0,0 +1,104 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.UserIdentityRoot+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.UserIdentityRoot where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides information about an Amazon Web Services account and entity+-- that performed an action on an affected resource. The action was+-- performed using the credentials for your Amazon Web Services account.+--+-- /See:/ 'newUserIdentityRoot' smart constructor.+data UserIdentityRoot = UserIdentityRoot'+  { -- | The unique identifier for the Amazon Web Services account.+    accountId :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the principal that performed the+    -- action. The last section of the ARN contains the name of the user or+    -- role that performed the action.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the entity that performed the action.+    principalId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UserIdentityRoot' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'userIdentityRoot_accountId' - The unique identifier for the Amazon Web Services account.+--+-- 'arn', 'userIdentityRoot_arn' - The Amazon Resource Name (ARN) of the principal that performed the+-- action. The last section of the ARN contains the name of the user or+-- role that performed the action.+--+-- 'principalId', 'userIdentityRoot_principalId' - The unique identifier for the entity that performed the action.+newUserIdentityRoot ::+  UserIdentityRoot+newUserIdentityRoot =+  UserIdentityRoot'+    { accountId = Prelude.Nothing,+      arn = Prelude.Nothing,+      principalId = Prelude.Nothing+    }++-- | The unique identifier for the Amazon Web Services account.+userIdentityRoot_accountId :: Lens.Lens' UserIdentityRoot (Prelude.Maybe Prelude.Text)+userIdentityRoot_accountId = Lens.lens (\UserIdentityRoot' {accountId} -> accountId) (\s@UserIdentityRoot' {} a -> s {accountId = a} :: UserIdentityRoot)++-- | The Amazon Resource Name (ARN) of the principal that performed the+-- action. The last section of the ARN contains the name of the user or+-- role that performed the action.+userIdentityRoot_arn :: Lens.Lens' UserIdentityRoot (Prelude.Maybe Prelude.Text)+userIdentityRoot_arn = Lens.lens (\UserIdentityRoot' {arn} -> arn) (\s@UserIdentityRoot' {} a -> s {arn = a} :: UserIdentityRoot)++-- | The unique identifier for the entity that performed the action.+userIdentityRoot_principalId :: Lens.Lens' UserIdentityRoot (Prelude.Maybe Prelude.Text)+userIdentityRoot_principalId = Lens.lens (\UserIdentityRoot' {principalId} -> principalId) (\s@UserIdentityRoot' {} a -> s {principalId = a} :: UserIdentityRoot)++instance Data.FromJSON UserIdentityRoot where+  parseJSON =+    Data.withObject+      "UserIdentityRoot"+      ( \x ->+          UserIdentityRoot'+            Prelude.<$> (x Data..:? "accountId")+            Prelude.<*> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "principalId")+      )++instance Prelude.Hashable UserIdentityRoot where+  hashWithSalt _salt UserIdentityRoot' {..} =+    _salt+      `Prelude.hashWithSalt` accountId+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` principalId++instance Prelude.NFData UserIdentityRoot where+  rnf UserIdentityRoot' {..} =+    Prelude.rnf accountId+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf principalId
+ gen/Amazonka/MacieV2/Types/UserIdentityType.hs view
@@ -0,0 +1,93 @@+{-# 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.MacieV2.Types.UserIdentityType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.UserIdentityType+  ( UserIdentityType+      ( ..,+        UserIdentityType_AWSAccount,+        UserIdentityType_AWSService,+        UserIdentityType_AssumedRole,+        UserIdentityType_FederatedUser,+        UserIdentityType_IAMUser,+        UserIdentityType_Root+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The type of entity that performed the action on the affected resource.+-- Possible values are:+newtype UserIdentityType = UserIdentityType'+  { fromUserIdentityType ::+      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 UserIdentityType_AWSAccount :: UserIdentityType+pattern UserIdentityType_AWSAccount = UserIdentityType' "AWSAccount"++pattern UserIdentityType_AWSService :: UserIdentityType+pattern UserIdentityType_AWSService = UserIdentityType' "AWSService"++pattern UserIdentityType_AssumedRole :: UserIdentityType+pattern UserIdentityType_AssumedRole = UserIdentityType' "AssumedRole"++pattern UserIdentityType_FederatedUser :: UserIdentityType+pattern UserIdentityType_FederatedUser = UserIdentityType' "FederatedUser"++pattern UserIdentityType_IAMUser :: UserIdentityType+pattern UserIdentityType_IAMUser = UserIdentityType' "IAMUser"++pattern UserIdentityType_Root :: UserIdentityType+pattern UserIdentityType_Root = UserIdentityType' "Root"++{-# COMPLETE+  UserIdentityType_AWSAccount,+  UserIdentityType_AWSService,+  UserIdentityType_AssumedRole,+  UserIdentityType_FederatedUser,+  UserIdentityType_IAMUser,+  UserIdentityType_Root,+  UserIdentityType'+  #-}
+ gen/Amazonka/MacieV2/Types/UserPausedDetails.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.MacieV2.Types.UserPausedDetails+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.UserPausedDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides information about when a classification job was paused. For a+-- one-time job, this object also specifies when the job will expire and be+-- cancelled if it isn\'t resumed. For a recurring job, this object also+-- specifies when the paused job run will expire and be cancelled if it+-- isn\'t resumed. This object is present only if a job\'s current status+-- (jobStatus) is USER_PAUSED. The information in this object applies only+-- to a job that was paused while it had a status of RUNNING.+--+-- /See:/ 'newUserPausedDetails' smart constructor.+data UserPausedDetails = UserPausedDetails'+  { -- | The date and time, in UTC and extended ISO 8601 format, when the job or+    -- job run will expire and be cancelled if you don\'t resume it first.+    jobExpiresAt :: Prelude.Maybe Data.ISO8601,+    -- | The Amazon Resource Name (ARN) of the Health event that Amazon Macie+    -- sent to notify you of the job or job run\'s pending expiration and+    -- cancellation. This value is null if a job has been paused for less than+    -- 23 days.+    jobImminentExpirationHealthEventArn :: Prelude.Maybe Prelude.Text,+    -- | The date and time, in UTC and extended ISO 8601 format, when you paused+    -- the job.+    jobPausedAt :: Prelude.Maybe Data.ISO8601+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UserPausedDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'jobExpiresAt', 'userPausedDetails_jobExpiresAt' - The date and time, in UTC and extended ISO 8601 format, when the job or+-- job run will expire and be cancelled if you don\'t resume it first.+--+-- 'jobImminentExpirationHealthEventArn', 'userPausedDetails_jobImminentExpirationHealthEventArn' - The Amazon Resource Name (ARN) of the Health event that Amazon Macie+-- sent to notify you of the job or job run\'s pending expiration and+-- cancellation. This value is null if a job has been paused for less than+-- 23 days.+--+-- 'jobPausedAt', 'userPausedDetails_jobPausedAt' - The date and time, in UTC and extended ISO 8601 format, when you paused+-- the job.+newUserPausedDetails ::+  UserPausedDetails+newUserPausedDetails =+  UserPausedDetails'+    { jobExpiresAt = Prelude.Nothing,+      jobImminentExpirationHealthEventArn =+        Prelude.Nothing,+      jobPausedAt = Prelude.Nothing+    }++-- | The date and time, in UTC and extended ISO 8601 format, when the job or+-- job run will expire and be cancelled if you don\'t resume it first.+userPausedDetails_jobExpiresAt :: Lens.Lens' UserPausedDetails (Prelude.Maybe Prelude.UTCTime)+userPausedDetails_jobExpiresAt = Lens.lens (\UserPausedDetails' {jobExpiresAt} -> jobExpiresAt) (\s@UserPausedDetails' {} a -> s {jobExpiresAt = a} :: UserPausedDetails) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the Health event that Amazon Macie+-- sent to notify you of the job or job run\'s pending expiration and+-- cancellation. This value is null if a job has been paused for less than+-- 23 days.+userPausedDetails_jobImminentExpirationHealthEventArn :: Lens.Lens' UserPausedDetails (Prelude.Maybe Prelude.Text)+userPausedDetails_jobImminentExpirationHealthEventArn = Lens.lens (\UserPausedDetails' {jobImminentExpirationHealthEventArn} -> jobImminentExpirationHealthEventArn) (\s@UserPausedDetails' {} a -> s {jobImminentExpirationHealthEventArn = a} :: UserPausedDetails)++-- | The date and time, in UTC and extended ISO 8601 format, when you paused+-- the job.+userPausedDetails_jobPausedAt :: Lens.Lens' UserPausedDetails (Prelude.Maybe Prelude.UTCTime)+userPausedDetails_jobPausedAt = Lens.lens (\UserPausedDetails' {jobPausedAt} -> jobPausedAt) (\s@UserPausedDetails' {} a -> s {jobPausedAt = a} :: UserPausedDetails) Prelude.. Lens.mapping Data._Time++instance Data.FromJSON UserPausedDetails where+  parseJSON =+    Data.withObject+      "UserPausedDetails"+      ( \x ->+          UserPausedDetails'+            Prelude.<$> (x Data..:? "jobExpiresAt")+            Prelude.<*> (x Data..:? "jobImminentExpirationHealthEventArn")+            Prelude.<*> (x Data..:? "jobPausedAt")+      )++instance Prelude.Hashable UserPausedDetails where+  hashWithSalt _salt UserPausedDetails' {..} =+    _salt+      `Prelude.hashWithSalt` jobExpiresAt+      `Prelude.hashWithSalt` jobImminentExpirationHealthEventArn+      `Prelude.hashWithSalt` jobPausedAt++instance Prelude.NFData UserPausedDetails where+  rnf UserPausedDetails' {..} =+    Prelude.rnf jobExpiresAt+      `Prelude.seq` Prelude.rnf jobImminentExpirationHealthEventArn+      `Prelude.seq` Prelude.rnf jobPausedAt
+ gen/Amazonka/MacieV2/Types/WeeklySchedule.hs view
@@ -0,0 +1,75 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.Types.WeeklySchedule+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MacieV2.Types.WeeklySchedule where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types.DayOfWeek+import qualified Amazonka.Prelude as Prelude++-- | Specifies a weekly recurrence pattern for running a classification job.+--+-- /See:/ 'newWeeklySchedule' smart constructor.+data WeeklySchedule = WeeklySchedule'+  { -- | The day of the week when Amazon Macie runs the job.+    dayOfWeek :: Prelude.Maybe DayOfWeek+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'WeeklySchedule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dayOfWeek', 'weeklySchedule_dayOfWeek' - The day of the week when Amazon Macie runs the job.+newWeeklySchedule ::+  WeeklySchedule+newWeeklySchedule =+  WeeklySchedule' {dayOfWeek = Prelude.Nothing}++-- | The day of the week when Amazon Macie runs the job.+weeklySchedule_dayOfWeek :: Lens.Lens' WeeklySchedule (Prelude.Maybe DayOfWeek)+weeklySchedule_dayOfWeek = Lens.lens (\WeeklySchedule' {dayOfWeek} -> dayOfWeek) (\s@WeeklySchedule' {} a -> s {dayOfWeek = a} :: WeeklySchedule)++instance Data.FromJSON WeeklySchedule where+  parseJSON =+    Data.withObject+      "WeeklySchedule"+      ( \x ->+          WeeklySchedule' Prelude.<$> (x Data..:? "dayOfWeek")+      )++instance Prelude.Hashable WeeklySchedule where+  hashWithSalt _salt WeeklySchedule' {..} =+    _salt `Prelude.hashWithSalt` dayOfWeek++instance Prelude.NFData WeeklySchedule where+  rnf WeeklySchedule' {..} = Prelude.rnf dayOfWeek++instance Data.ToJSON WeeklySchedule where+  toJSON WeeklySchedule' {..} =+    Data.object+      ( Prelude.catMaybes+          [("dayOfWeek" Data..=) Prelude.<$> dayOfWeek]+      )
+ gen/Amazonka/MacieV2/UntagResource.hs view
@@ -0,0 +1,168 @@+{-# 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.MacieV2.UntagResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes one or more tags (keys and values) from an Amazon Macie+-- resource.+module Amazonka.MacieV2.UntagResource+  ( -- * Creating a Request+    UntagResource (..),+    newUntagResource,++    -- * Request Lenses+    untagResource_tagKeys,+    untagResource_resourceArn,++    -- * Destructuring the Response+    UntagResourceResponse (..),+    newUntagResourceResponse,++    -- * Response Lenses+    untagResourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUntagResource' smart constructor.+data UntagResource = UntagResource'+  { -- | One or more tags (keys) to remove from the resource. In an HTTP request+    -- to remove multiple tags, append the tagKeys parameter and argument for+    -- each tag to remove, separated by an ampersand (&).+    tagKeys :: [Prelude.Text],+    -- | The Amazon Resource Name (ARN) of the resource.+    resourceArn :: 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:+--+-- 'tagKeys', 'untagResource_tagKeys' - One or more tags (keys) to remove from the resource. In an HTTP request+-- to remove multiple tags, append the tagKeys parameter and argument for+-- each tag to remove, separated by an ampersand (&).+--+-- 'resourceArn', 'untagResource_resourceArn' - The Amazon Resource Name (ARN) of the resource.+newUntagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  UntagResource+newUntagResource pResourceArn_ =+  UntagResource'+    { tagKeys = Prelude.mempty,+      resourceArn = pResourceArn_+    }++-- | One or more tags (keys) to remove from the resource. In an HTTP request+-- to remove multiple tags, append the tagKeys parameter and argument for+-- each tag to remove, separated by an ampersand (&).+untagResource_tagKeys :: Lens.Lens' UntagResource [Prelude.Text]+untagResource_tagKeys = Lens.lens (\UntagResource' {tagKeys} -> tagKeys) (\s@UntagResource' {} a -> s {tagKeys = a} :: UntagResource) Prelude.. Lens.coerced++-- | The Amazon Resource Name (ARN) of the resource.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++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` tagKeys+      `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData UntagResource where+  rnf UntagResource' {..} =+    Prelude.rnf tagKeys+      `Prelude.seq` Prelude.rnf resourceArn++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/MacieV2/UpdateAllowList.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.MacieV2.UpdateAllowList+-- 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 settings for an allow list.+module Amazonka.MacieV2.UpdateAllowList+  ( -- * Creating a Request+    UpdateAllowList (..),+    newUpdateAllowList,++    -- * Request Lenses+    updateAllowList_description,+    updateAllowList_id,+    updateAllowList_criteria,+    updateAllowList_name,++    -- * Destructuring the Response+    UpdateAllowListResponse (..),+    newUpdateAllowListResponse,++    -- * Response Lenses+    updateAllowListResponse_arn,+    updateAllowListResponse_id,+    updateAllowListResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateAllowList' smart constructor.+data UpdateAllowList = UpdateAllowList'+  { -- | A custom description of the allow list. The description can contain as+    -- many as 512 characters.+    description :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the Amazon Macie resource that the request+    -- applies to.+    id :: Prelude.Text,+    -- | The criteria that specify the text or text pattern to ignore. The+    -- criteria can be the location and name of an S3 object that lists+    -- specific text to ignore (s3WordsList), or a regular expression that+    -- defines a text pattern to ignore (regex).+    --+    -- You can change a list\'s underlying criteria, such as the name of the S3+    -- object or the regular expression to use. However, you can\'t change the+    -- type from s3WordsList to regex or the other way around.+    criteria :: AllowListCriteria,+    -- | A custom name for the allow list. The name can contain as many as 128+    -- characters.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateAllowList' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateAllowList_description' - A custom description of the allow list. The description can contain as+-- many as 512 characters.+--+-- 'id', 'updateAllowList_id' - The unique identifier for the Amazon Macie resource that the request+-- applies to.+--+-- 'criteria', 'updateAllowList_criteria' - The criteria that specify the text or text pattern to ignore. The+-- criteria can be the location and name of an S3 object that lists+-- specific text to ignore (s3WordsList), or a regular expression that+-- defines a text pattern to ignore (regex).+--+-- You can change a list\'s underlying criteria, such as the name of the S3+-- object or the regular expression to use. However, you can\'t change the+-- type from s3WordsList to regex or the other way around.+--+-- 'name', 'updateAllowList_name' - A custom name for the allow list. The name can contain as many as 128+-- characters.+newUpdateAllowList ::+  -- | 'id'+  Prelude.Text ->+  -- | 'criteria'+  AllowListCriteria ->+  -- | 'name'+  Prelude.Text ->+  UpdateAllowList+newUpdateAllowList pId_ pCriteria_ pName_ =+  UpdateAllowList'+    { description = Prelude.Nothing,+      id = pId_,+      criteria = pCriteria_,+      name = pName_+    }++-- | A custom description of the allow list. The description can contain as+-- many as 512 characters.+updateAllowList_description :: Lens.Lens' UpdateAllowList (Prelude.Maybe Prelude.Text)+updateAllowList_description = Lens.lens (\UpdateAllowList' {description} -> description) (\s@UpdateAllowList' {} a -> s {description = a} :: UpdateAllowList)++-- | The unique identifier for the Amazon Macie resource that the request+-- applies to.+updateAllowList_id :: Lens.Lens' UpdateAllowList Prelude.Text+updateAllowList_id = Lens.lens (\UpdateAllowList' {id} -> id) (\s@UpdateAllowList' {} a -> s {id = a} :: UpdateAllowList)++-- | The criteria that specify the text or text pattern to ignore. The+-- criteria can be the location and name of an S3 object that lists+-- specific text to ignore (s3WordsList), or a regular expression that+-- defines a text pattern to ignore (regex).+--+-- You can change a list\'s underlying criteria, such as the name of the S3+-- object or the regular expression to use. However, you can\'t change the+-- type from s3WordsList to regex or the other way around.+updateAllowList_criteria :: Lens.Lens' UpdateAllowList AllowListCriteria+updateAllowList_criteria = Lens.lens (\UpdateAllowList' {criteria} -> criteria) (\s@UpdateAllowList' {} a -> s {criteria = a} :: UpdateAllowList)++-- | A custom name for the allow list. The name can contain as many as 128+-- characters.+updateAllowList_name :: Lens.Lens' UpdateAllowList Prelude.Text+updateAllowList_name = Lens.lens (\UpdateAllowList' {name} -> name) (\s@UpdateAllowList' {} a -> s {name = a} :: UpdateAllowList)++instance Core.AWSRequest UpdateAllowList where+  type+    AWSResponse UpdateAllowList =+      UpdateAllowListResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateAllowListResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "id")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateAllowList where+  hashWithSalt _salt UpdateAllowList' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` criteria+      `Prelude.hashWithSalt` name++instance Prelude.NFData UpdateAllowList where+  rnf UpdateAllowList' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf criteria+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders UpdateAllowList where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateAllowList where+  toJSON UpdateAllowList' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            Prelude.Just ("criteria" Data..= criteria),+            Prelude.Just ("name" Data..= name)+          ]+      )++instance Data.ToPath UpdateAllowList where+  toPath UpdateAllowList' {..} =+    Prelude.mconcat ["/allow-lists/", Data.toBS id]++instance Data.ToQuery UpdateAllowList where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateAllowListResponse' smart constructor.+data UpdateAllowListResponse = UpdateAllowListResponse'+  { -- | The Amazon Resource Name (ARN) of the allow list.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the allow list.+    id :: 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 'UpdateAllowListResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateAllowListResponse_arn' - The Amazon Resource Name (ARN) of the allow list.+--+-- 'id', 'updateAllowListResponse_id' - The unique identifier for the allow list.+--+-- 'httpStatus', 'updateAllowListResponse_httpStatus' - The response's http status code.+newUpdateAllowListResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateAllowListResponse+newUpdateAllowListResponse pHttpStatus_ =+  UpdateAllowListResponse'+    { arn = Prelude.Nothing,+      id = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the allow list.+updateAllowListResponse_arn :: Lens.Lens' UpdateAllowListResponse (Prelude.Maybe Prelude.Text)+updateAllowListResponse_arn = Lens.lens (\UpdateAllowListResponse' {arn} -> arn) (\s@UpdateAllowListResponse' {} a -> s {arn = a} :: UpdateAllowListResponse)++-- | The unique identifier for the allow list.+updateAllowListResponse_id :: Lens.Lens' UpdateAllowListResponse (Prelude.Maybe Prelude.Text)+updateAllowListResponse_id = Lens.lens (\UpdateAllowListResponse' {id} -> id) (\s@UpdateAllowListResponse' {} a -> s {id = a} :: UpdateAllowListResponse)++-- | The response's http status code.+updateAllowListResponse_httpStatus :: Lens.Lens' UpdateAllowListResponse Prelude.Int+updateAllowListResponse_httpStatus = Lens.lens (\UpdateAllowListResponse' {httpStatus} -> httpStatus) (\s@UpdateAllowListResponse' {} a -> s {httpStatus = a} :: UpdateAllowListResponse)++instance Prelude.NFData UpdateAllowListResponse where+  rnf UpdateAllowListResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/UpdateAutomatedDiscoveryConfiguration.hs view
@@ -0,0 +1,219 @@+{-# 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.MacieV2.UpdateAutomatedDiscoveryConfiguration+-- 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 or disables automated sensitive data discovery for an account.+module Amazonka.MacieV2.UpdateAutomatedDiscoveryConfiguration+  ( -- * Creating a Request+    UpdateAutomatedDiscoveryConfiguration (..),+    newUpdateAutomatedDiscoveryConfiguration,++    -- * Request Lenses+    updateAutomatedDiscoveryConfiguration_status,++    -- * Destructuring the Response+    UpdateAutomatedDiscoveryConfigurationResponse (..),+    newUpdateAutomatedDiscoveryConfigurationResponse,++    -- * Response Lenses+    updateAutomatedDiscoveryConfigurationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateAutomatedDiscoveryConfiguration' smart constructor.+data UpdateAutomatedDiscoveryConfiguration = UpdateAutomatedDiscoveryConfiguration'+  { -- | The new status of automated sensitive data discovery for the account.+    -- Valid values are: ENABLED, start or resume automated sensitive data+    -- discovery activities for the account; and, DISABLED, stop performing+    -- automated sensitive data discovery activities for the account.+    --+    -- When you enable automated sensitive data discovery for the first time,+    -- Amazon Macie uses default configuration settings to determine which data+    -- sources to analyze and which managed data identifiers to use. To change+    -- these settings, use the UpdateClassificationScope and+    -- UpdateSensitivityInspectionTemplate operations, respectively. If you+    -- change the settings and subsequently disable the configuration, Amazon+    -- Macie retains your changes.+    status :: AutomatedDiscoveryStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateAutomatedDiscoveryConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateAutomatedDiscoveryConfiguration_status' - The new status of automated sensitive data discovery for the account.+-- Valid values are: ENABLED, start or resume automated sensitive data+-- discovery activities for the account; and, DISABLED, stop performing+-- automated sensitive data discovery activities for the account.+--+-- When you enable automated sensitive data discovery for the first time,+-- Amazon Macie uses default configuration settings to determine which data+-- sources to analyze and which managed data identifiers to use. To change+-- these settings, use the UpdateClassificationScope and+-- UpdateSensitivityInspectionTemplate operations, respectively. If you+-- change the settings and subsequently disable the configuration, Amazon+-- Macie retains your changes.+newUpdateAutomatedDiscoveryConfiguration ::+  -- | 'status'+  AutomatedDiscoveryStatus ->+  UpdateAutomatedDiscoveryConfiguration+newUpdateAutomatedDiscoveryConfiguration pStatus_ =+  UpdateAutomatedDiscoveryConfiguration'+    { status =+        pStatus_+    }++-- | The new status of automated sensitive data discovery for the account.+-- Valid values are: ENABLED, start or resume automated sensitive data+-- discovery activities for the account; and, DISABLED, stop performing+-- automated sensitive data discovery activities for the account.+--+-- When you enable automated sensitive data discovery for the first time,+-- Amazon Macie uses default configuration settings to determine which data+-- sources to analyze and which managed data identifiers to use. To change+-- these settings, use the UpdateClassificationScope and+-- UpdateSensitivityInspectionTemplate operations, respectively. If you+-- change the settings and subsequently disable the configuration, Amazon+-- Macie retains your changes.+updateAutomatedDiscoveryConfiguration_status :: Lens.Lens' UpdateAutomatedDiscoveryConfiguration AutomatedDiscoveryStatus+updateAutomatedDiscoveryConfiguration_status = Lens.lens (\UpdateAutomatedDiscoveryConfiguration' {status} -> status) (\s@UpdateAutomatedDiscoveryConfiguration' {} a -> s {status = a} :: UpdateAutomatedDiscoveryConfiguration)++instance+  Core.AWSRequest+    UpdateAutomatedDiscoveryConfiguration+  where+  type+    AWSResponse+      UpdateAutomatedDiscoveryConfiguration =+      UpdateAutomatedDiscoveryConfigurationResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UpdateAutomatedDiscoveryConfigurationResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    UpdateAutomatedDiscoveryConfiguration+  where+  hashWithSalt+    _salt+    UpdateAutomatedDiscoveryConfiguration' {..} =+      _salt `Prelude.hashWithSalt` status++instance+  Prelude.NFData+    UpdateAutomatedDiscoveryConfiguration+  where+  rnf UpdateAutomatedDiscoveryConfiguration' {..} =+    Prelude.rnf status++instance+  Data.ToHeaders+    UpdateAutomatedDiscoveryConfiguration+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    UpdateAutomatedDiscoveryConfiguration+  where+  toJSON UpdateAutomatedDiscoveryConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("status" Data..= status)]+      )++instance+  Data.ToPath+    UpdateAutomatedDiscoveryConfiguration+  where+  toPath =+    Prelude.const "/automated-discovery/configuration"++instance+  Data.ToQuery+    UpdateAutomatedDiscoveryConfiguration+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateAutomatedDiscoveryConfigurationResponse' smart constructor.+data UpdateAutomatedDiscoveryConfigurationResponse = UpdateAutomatedDiscoveryConfigurationResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateAutomatedDiscoveryConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateAutomatedDiscoveryConfigurationResponse_httpStatus' - The response's http status code.+newUpdateAutomatedDiscoveryConfigurationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateAutomatedDiscoveryConfigurationResponse+newUpdateAutomatedDiscoveryConfigurationResponse+  pHttpStatus_ =+    UpdateAutomatedDiscoveryConfigurationResponse'+      { httpStatus =+          pHttpStatus_+      }++-- | The response's http status code.+updateAutomatedDiscoveryConfigurationResponse_httpStatus :: Lens.Lens' UpdateAutomatedDiscoveryConfigurationResponse Prelude.Int+updateAutomatedDiscoveryConfigurationResponse_httpStatus = Lens.lens (\UpdateAutomatedDiscoveryConfigurationResponse' {httpStatus} -> httpStatus) (\s@UpdateAutomatedDiscoveryConfigurationResponse' {} a -> s {httpStatus = a} :: UpdateAutomatedDiscoveryConfigurationResponse)++instance+  Prelude.NFData+    UpdateAutomatedDiscoveryConfigurationResponse+  where+  rnf+    UpdateAutomatedDiscoveryConfigurationResponse' {..} =+      Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/UpdateClassificationJob.hs view
@@ -0,0 +1,261 @@+{-# 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.MacieV2.UpdateClassificationJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Changes the status of a classification job.+module Amazonka.MacieV2.UpdateClassificationJob+  ( -- * Creating a Request+    UpdateClassificationJob (..),+    newUpdateClassificationJob,++    -- * Request Lenses+    updateClassificationJob_jobId,+    updateClassificationJob_jobStatus,++    -- * Destructuring the Response+    UpdateClassificationJobResponse (..),+    newUpdateClassificationJobResponse,++    -- * Response Lenses+    updateClassificationJobResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateClassificationJob' smart constructor.+data UpdateClassificationJob = UpdateClassificationJob'+  { -- | The unique identifier for the classification job.+    jobId :: Prelude.Text,+    -- | The new status for the job. Valid values are:+    --+    -- -   CANCELLED - Stops the job permanently and cancels it. This value is+    --     valid only if the job\'s current status is IDLE, PAUSED, RUNNING, or+    --     USER_PAUSED.+    --+    --     If you specify this value and the job\'s current status is RUNNING,+    --     Amazon Macie immediately begins to stop all processing tasks for the+    --     job. You can\'t resume or restart a job after you cancel it.+    --+    -- -   RUNNING - Resumes the job. This value is valid only if the job\'s+    --     current status is USER_PAUSED.+    --+    --     If you paused the job while it was actively running and you specify+    --     this value less than 30 days after you paused the job, Macie+    --     immediately resumes processing from the point where you paused the+    --     job. Otherwise, Macie resumes the job according to the schedule and+    --     other settings for the job.+    --+    -- -   USER_PAUSED - Pauses the job temporarily. This value is valid only+    --     if the job\'s current status is IDLE, PAUSED, or RUNNING. If you+    --     specify this value and the job\'s current status is RUNNING, Macie+    --     immediately begins to pause all processing tasks for the job.+    --+    --     If you pause a one-time job and you don\'t resume it within 30 days,+    --     the job expires and Macie cancels the job. If you pause a recurring+    --     job when its status is RUNNING and you don\'t resume it within 30+    --     days, the job run expires and Macie cancels the run. To check the+    --     expiration date, refer to the UserPausedDetails.jobExpiresAt+    --     property.+    jobStatus :: JobStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateClassificationJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'jobId', 'updateClassificationJob_jobId' - The unique identifier for the classification job.+--+-- 'jobStatus', 'updateClassificationJob_jobStatus' - The new status for the job. Valid values are:+--+-- -   CANCELLED - Stops the job permanently and cancels it. This value is+--     valid only if the job\'s current status is IDLE, PAUSED, RUNNING, or+--     USER_PAUSED.+--+--     If you specify this value and the job\'s current status is RUNNING,+--     Amazon Macie immediately begins to stop all processing tasks for the+--     job. You can\'t resume or restart a job after you cancel it.+--+-- -   RUNNING - Resumes the job. This value is valid only if the job\'s+--     current status is USER_PAUSED.+--+--     If you paused the job while it was actively running and you specify+--     this value less than 30 days after you paused the job, Macie+--     immediately resumes processing from the point where you paused the+--     job. Otherwise, Macie resumes the job according to the schedule and+--     other settings for the job.+--+-- -   USER_PAUSED - Pauses the job temporarily. This value is valid only+--     if the job\'s current status is IDLE, PAUSED, or RUNNING. If you+--     specify this value and the job\'s current status is RUNNING, Macie+--     immediately begins to pause all processing tasks for the job.+--+--     If you pause a one-time job and you don\'t resume it within 30 days,+--     the job expires and Macie cancels the job. If you pause a recurring+--     job when its status is RUNNING and you don\'t resume it within 30+--     days, the job run expires and Macie cancels the run. To check the+--     expiration date, refer to the UserPausedDetails.jobExpiresAt+--     property.+newUpdateClassificationJob ::+  -- | 'jobId'+  Prelude.Text ->+  -- | 'jobStatus'+  JobStatus ->+  UpdateClassificationJob+newUpdateClassificationJob pJobId_ pJobStatus_ =+  UpdateClassificationJob'+    { jobId = pJobId_,+      jobStatus = pJobStatus_+    }++-- | The unique identifier for the classification job.+updateClassificationJob_jobId :: Lens.Lens' UpdateClassificationJob Prelude.Text+updateClassificationJob_jobId = Lens.lens (\UpdateClassificationJob' {jobId} -> jobId) (\s@UpdateClassificationJob' {} a -> s {jobId = a} :: UpdateClassificationJob)++-- | The new status for the job. Valid values are:+--+-- -   CANCELLED - Stops the job permanently and cancels it. This value is+--     valid only if the job\'s current status is IDLE, PAUSED, RUNNING, or+--     USER_PAUSED.+--+--     If you specify this value and the job\'s current status is RUNNING,+--     Amazon Macie immediately begins to stop all processing tasks for the+--     job. You can\'t resume or restart a job after you cancel it.+--+-- -   RUNNING - Resumes the job. This value is valid only if the job\'s+--     current status is USER_PAUSED.+--+--     If you paused the job while it was actively running and you specify+--     this value less than 30 days after you paused the job, Macie+--     immediately resumes processing from the point where you paused the+--     job. Otherwise, Macie resumes the job according to the schedule and+--     other settings for the job.+--+-- -   USER_PAUSED - Pauses the job temporarily. This value is valid only+--     if the job\'s current status is IDLE, PAUSED, or RUNNING. If you+--     specify this value and the job\'s current status is RUNNING, Macie+--     immediately begins to pause all processing tasks for the job.+--+--     If you pause a one-time job and you don\'t resume it within 30 days,+--     the job expires and Macie cancels the job. If you pause a recurring+--     job when its status is RUNNING and you don\'t resume it within 30+--     days, the job run expires and Macie cancels the run. To check the+--     expiration date, refer to the UserPausedDetails.jobExpiresAt+--     property.+updateClassificationJob_jobStatus :: Lens.Lens' UpdateClassificationJob JobStatus+updateClassificationJob_jobStatus = Lens.lens (\UpdateClassificationJob' {jobStatus} -> jobStatus) (\s@UpdateClassificationJob' {} a -> s {jobStatus = a} :: UpdateClassificationJob)++instance Core.AWSRequest UpdateClassificationJob where+  type+    AWSResponse UpdateClassificationJob =+      UpdateClassificationJobResponse+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UpdateClassificationJobResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateClassificationJob where+  hashWithSalt _salt UpdateClassificationJob' {..} =+    _salt+      `Prelude.hashWithSalt` jobId+      `Prelude.hashWithSalt` jobStatus++instance Prelude.NFData UpdateClassificationJob where+  rnf UpdateClassificationJob' {..} =+    Prelude.rnf jobId+      `Prelude.seq` Prelude.rnf jobStatus++instance Data.ToHeaders UpdateClassificationJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateClassificationJob where+  toJSON UpdateClassificationJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("jobStatus" Data..= jobStatus)]+      )++instance Data.ToPath UpdateClassificationJob where+  toPath UpdateClassificationJob' {..} =+    Prelude.mconcat ["/jobs/", Data.toBS jobId]++instance Data.ToQuery UpdateClassificationJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateClassificationJobResponse' smart constructor.+data UpdateClassificationJobResponse = UpdateClassificationJobResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateClassificationJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateClassificationJobResponse_httpStatus' - The response's http status code.+newUpdateClassificationJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateClassificationJobResponse+newUpdateClassificationJobResponse pHttpStatus_ =+  UpdateClassificationJobResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+updateClassificationJobResponse_httpStatus :: Lens.Lens' UpdateClassificationJobResponse Prelude.Int+updateClassificationJobResponse_httpStatus = Lens.lens (\UpdateClassificationJobResponse' {httpStatus} -> httpStatus) (\s@UpdateClassificationJobResponse' {} a -> s {httpStatus = a} :: UpdateClassificationJobResponse)++instance+  Prelude.NFData+    UpdateClassificationJobResponse+  where+  rnf UpdateClassificationJobResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/UpdateClassificationScope.hs view
@@ -0,0 +1,176 @@+{-# 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.MacieV2.UpdateClassificationScope+-- 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 classification scope settings for an account.+module Amazonka.MacieV2.UpdateClassificationScope+  ( -- * Creating a Request+    UpdateClassificationScope (..),+    newUpdateClassificationScope,++    -- * Request Lenses+    updateClassificationScope_s3,+    updateClassificationScope_id,++    -- * Destructuring the Response+    UpdateClassificationScopeResponse (..),+    newUpdateClassificationScopeResponse,++    -- * Response Lenses+    updateClassificationScopeResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateClassificationScope' smart constructor.+data UpdateClassificationScope = UpdateClassificationScope'+  { -- | The S3 buckets to add or remove from the exclusion list defined by the+    -- classification scope.+    s3 :: Prelude.Maybe S3ClassificationScopeUpdate,+    -- | The unique identifier for the Amazon Macie resource that the request+    -- applies to.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateClassificationScope' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 's3', 'updateClassificationScope_s3' - The S3 buckets to add or remove from the exclusion list defined by the+-- classification scope.+--+-- 'id', 'updateClassificationScope_id' - The unique identifier for the Amazon Macie resource that the request+-- applies to.+newUpdateClassificationScope ::+  -- | 'id'+  Prelude.Text ->+  UpdateClassificationScope+newUpdateClassificationScope pId_ =+  UpdateClassificationScope'+    { s3 = Prelude.Nothing,+      id = pId_+    }++-- | The S3 buckets to add or remove from the exclusion list defined by the+-- classification scope.+updateClassificationScope_s3 :: Lens.Lens' UpdateClassificationScope (Prelude.Maybe S3ClassificationScopeUpdate)+updateClassificationScope_s3 = Lens.lens (\UpdateClassificationScope' {s3} -> s3) (\s@UpdateClassificationScope' {} a -> s {s3 = a} :: UpdateClassificationScope)++-- | The unique identifier for the Amazon Macie resource that the request+-- applies to.+updateClassificationScope_id :: Lens.Lens' UpdateClassificationScope Prelude.Text+updateClassificationScope_id = Lens.lens (\UpdateClassificationScope' {id} -> id) (\s@UpdateClassificationScope' {} a -> s {id = a} :: UpdateClassificationScope)++instance Core.AWSRequest UpdateClassificationScope where+  type+    AWSResponse UpdateClassificationScope =+      UpdateClassificationScopeResponse+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UpdateClassificationScopeResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateClassificationScope where+  hashWithSalt _salt UpdateClassificationScope' {..} =+    _salt+      `Prelude.hashWithSalt` s3+      `Prelude.hashWithSalt` id++instance Prelude.NFData UpdateClassificationScope where+  rnf UpdateClassificationScope' {..} =+    Prelude.rnf s3 `Prelude.seq` Prelude.rnf id++instance Data.ToHeaders UpdateClassificationScope where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateClassificationScope where+  toJSON UpdateClassificationScope' {..} =+    Data.object+      (Prelude.catMaybes [("s3" Data..=) Prelude.<$> s3])++instance Data.ToPath UpdateClassificationScope where+  toPath UpdateClassificationScope' {..} =+    Prelude.mconcat+      ["/classification-scopes/", Data.toBS id]++instance Data.ToQuery UpdateClassificationScope where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateClassificationScopeResponse' smart constructor.+data UpdateClassificationScopeResponse = UpdateClassificationScopeResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateClassificationScopeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateClassificationScopeResponse_httpStatus' - The response's http status code.+newUpdateClassificationScopeResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateClassificationScopeResponse+newUpdateClassificationScopeResponse pHttpStatus_ =+  UpdateClassificationScopeResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+updateClassificationScopeResponse_httpStatus :: Lens.Lens' UpdateClassificationScopeResponse Prelude.Int+updateClassificationScopeResponse_httpStatus = Lens.lens (\UpdateClassificationScopeResponse' {httpStatus} -> httpStatus) (\s@UpdateClassificationScopeResponse' {} a -> s {httpStatus = a} :: UpdateClassificationScopeResponse)++instance+  Prelude.NFData+    UpdateClassificationScopeResponse+  where+  rnf UpdateClassificationScopeResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/UpdateFindingsFilter.hs view
@@ -0,0 +1,317 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.UpdateFindingsFilter+-- 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 criteria and other settings for a findings filter.+module Amazonka.MacieV2.UpdateFindingsFilter+  ( -- * Creating a Request+    UpdateFindingsFilter (..),+    newUpdateFindingsFilter,++    -- * Request Lenses+    updateFindingsFilter_action,+    updateFindingsFilter_clientToken,+    updateFindingsFilter_description,+    updateFindingsFilter_findingCriteria,+    updateFindingsFilter_name,+    updateFindingsFilter_position,+    updateFindingsFilter_id,++    -- * Destructuring the Response+    UpdateFindingsFilterResponse (..),+    newUpdateFindingsFilterResponse,++    -- * Response Lenses+    updateFindingsFilterResponse_arn,+    updateFindingsFilterResponse_id,+    updateFindingsFilterResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateFindingsFilter' smart constructor.+data UpdateFindingsFilter = UpdateFindingsFilter'+  { -- | The action to perform on findings that match the filter criteria+    -- (findingCriteria). Valid values are: ARCHIVE, suppress (automatically+    -- archive) the findings; and, NOOP, don\'t perform any action on the+    -- findings.+    action :: Prelude.Maybe FindingsFilterAction,+    -- | A unique, case-sensitive token that you provide to ensure the+    -- idempotency of the request.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | A custom description of the filter. The description can contain as many+    -- as 512 characters.+    --+    -- We strongly recommend that you avoid including any sensitive data in the+    -- description of a filter. Other users might be able to see this+    -- description, depending on the actions that they\'re allowed to perform+    -- in Amazon Macie.+    description :: Prelude.Maybe Prelude.Text,+    -- | The criteria to use to filter findings.+    findingCriteria :: Prelude.Maybe FindingCriteria,+    -- | A custom name for the filter. The name must contain at least 3+    -- characters and can contain as many as 64 characters.+    --+    -- We strongly recommend that you avoid including any sensitive data in the+    -- name of a filter. Other users might be able to see this name, depending+    -- on the actions that they\'re allowed to perform in Amazon Macie.+    name :: Prelude.Maybe Prelude.Text,+    -- | The position of the filter in the list of saved filters on the Amazon+    -- Macie console. This value also determines the order in which the filter+    -- is applied to findings, relative to other filters that are also applied+    -- to the findings.+    position :: Prelude.Maybe Prelude.Int,+    -- | The unique identifier for the Amazon Macie resource that the request+    -- applies to.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateFindingsFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateFindingsFilter_action' - The action to perform on findings that match the filter criteria+-- (findingCriteria). Valid values are: ARCHIVE, suppress (automatically+-- archive) the findings; and, NOOP, don\'t perform any action on the+-- findings.+--+-- 'clientToken', 'updateFindingsFilter_clientToken' - A unique, case-sensitive token that you provide to ensure the+-- idempotency of the request.+--+-- 'description', 'updateFindingsFilter_description' - A custom description of the filter. The description can contain as many+-- as 512 characters.+--+-- We strongly recommend that you avoid including any sensitive data in the+-- description of a filter. Other users might be able to see this+-- description, depending on the actions that they\'re allowed to perform+-- in Amazon Macie.+--+-- 'findingCriteria', 'updateFindingsFilter_findingCriteria' - The criteria to use to filter findings.+--+-- 'name', 'updateFindingsFilter_name' - A custom name for the filter. The name must contain at least 3+-- characters and can contain as many as 64 characters.+--+-- We strongly recommend that you avoid including any sensitive data in the+-- name of a filter. Other users might be able to see this name, depending+-- on the actions that they\'re allowed to perform in Amazon Macie.+--+-- 'position', 'updateFindingsFilter_position' - The position of the filter in the list of saved filters on the Amazon+-- Macie console. This value also determines the order in which the filter+-- is applied to findings, relative to other filters that are also applied+-- to the findings.+--+-- 'id', 'updateFindingsFilter_id' - The unique identifier for the Amazon Macie resource that the request+-- applies to.+newUpdateFindingsFilter ::+  -- | 'id'+  Prelude.Text ->+  UpdateFindingsFilter+newUpdateFindingsFilter pId_ =+  UpdateFindingsFilter'+    { action = Prelude.Nothing,+      clientToken = Prelude.Nothing,+      description = Prelude.Nothing,+      findingCriteria = Prelude.Nothing,+      name = Prelude.Nothing,+      position = Prelude.Nothing,+      id = pId_+    }++-- | The action to perform on findings that match the filter criteria+-- (findingCriteria). Valid values are: ARCHIVE, suppress (automatically+-- archive) the findings; and, NOOP, don\'t perform any action on the+-- findings.+updateFindingsFilter_action :: Lens.Lens' UpdateFindingsFilter (Prelude.Maybe FindingsFilterAction)+updateFindingsFilter_action = Lens.lens (\UpdateFindingsFilter' {action} -> action) (\s@UpdateFindingsFilter' {} a -> s {action = a} :: UpdateFindingsFilter)++-- | A unique, case-sensitive token that you provide to ensure the+-- idempotency of the request.+updateFindingsFilter_clientToken :: Lens.Lens' UpdateFindingsFilter (Prelude.Maybe Prelude.Text)+updateFindingsFilter_clientToken = Lens.lens (\UpdateFindingsFilter' {clientToken} -> clientToken) (\s@UpdateFindingsFilter' {} a -> s {clientToken = a} :: UpdateFindingsFilter)++-- | A custom description of the filter. The description can contain as many+-- as 512 characters.+--+-- We strongly recommend that you avoid including any sensitive data in the+-- description of a filter. Other users might be able to see this+-- description, depending on the actions that they\'re allowed to perform+-- in Amazon Macie.+updateFindingsFilter_description :: Lens.Lens' UpdateFindingsFilter (Prelude.Maybe Prelude.Text)+updateFindingsFilter_description = Lens.lens (\UpdateFindingsFilter' {description} -> description) (\s@UpdateFindingsFilter' {} a -> s {description = a} :: UpdateFindingsFilter)++-- | The criteria to use to filter findings.+updateFindingsFilter_findingCriteria :: Lens.Lens' UpdateFindingsFilter (Prelude.Maybe FindingCriteria)+updateFindingsFilter_findingCriteria = Lens.lens (\UpdateFindingsFilter' {findingCriteria} -> findingCriteria) (\s@UpdateFindingsFilter' {} a -> s {findingCriteria = a} :: UpdateFindingsFilter)++-- | A custom name for the filter. The name must contain at least 3+-- characters and can contain as many as 64 characters.+--+-- We strongly recommend that you avoid including any sensitive data in the+-- name of a filter. Other users might be able to see this name, depending+-- on the actions that they\'re allowed to perform in Amazon Macie.+updateFindingsFilter_name :: Lens.Lens' UpdateFindingsFilter (Prelude.Maybe Prelude.Text)+updateFindingsFilter_name = Lens.lens (\UpdateFindingsFilter' {name} -> name) (\s@UpdateFindingsFilter' {} a -> s {name = a} :: UpdateFindingsFilter)++-- | The position of the filter in the list of saved filters on the Amazon+-- Macie console. This value also determines the order in which the filter+-- is applied to findings, relative to other filters that are also applied+-- to the findings.+updateFindingsFilter_position :: Lens.Lens' UpdateFindingsFilter (Prelude.Maybe Prelude.Int)+updateFindingsFilter_position = Lens.lens (\UpdateFindingsFilter' {position} -> position) (\s@UpdateFindingsFilter' {} a -> s {position = a} :: UpdateFindingsFilter)++-- | The unique identifier for the Amazon Macie resource that the request+-- applies to.+updateFindingsFilter_id :: Lens.Lens' UpdateFindingsFilter Prelude.Text+updateFindingsFilter_id = Lens.lens (\UpdateFindingsFilter' {id} -> id) (\s@UpdateFindingsFilter' {} a -> s {id = a} :: UpdateFindingsFilter)++instance Core.AWSRequest UpdateFindingsFilter where+  type+    AWSResponse UpdateFindingsFilter =+      UpdateFindingsFilterResponse+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateFindingsFilterResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "id")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateFindingsFilter where+  hashWithSalt _salt UpdateFindingsFilter' {..} =+    _salt+      `Prelude.hashWithSalt` action+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` findingCriteria+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` position+      `Prelude.hashWithSalt` id++instance Prelude.NFData UpdateFindingsFilter where+  rnf UpdateFindingsFilter' {..} =+    Prelude.rnf action+      `Prelude.seq` Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf findingCriteria+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf position+      `Prelude.seq` Prelude.rnf id++instance Data.ToHeaders UpdateFindingsFilter where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateFindingsFilter where+  toJSON UpdateFindingsFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("action" Data..=) Prelude.<$> action,+            ("clientToken" Data..=) Prelude.<$> clientToken,+            ("description" Data..=) Prelude.<$> description,+            ("findingCriteria" Data..=)+              Prelude.<$> findingCriteria,+            ("name" Data..=) Prelude.<$> name,+            ("position" Data..=) Prelude.<$> position+          ]+      )++instance Data.ToPath UpdateFindingsFilter where+  toPath UpdateFindingsFilter' {..} =+    Prelude.mconcat ["/findingsfilters/", Data.toBS id]++instance Data.ToQuery UpdateFindingsFilter where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateFindingsFilterResponse' smart constructor.+data UpdateFindingsFilterResponse = UpdateFindingsFilterResponse'+  { -- | The Amazon Resource Name (ARN) of the filter that was updated.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the filter that was updated.+    id :: 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 'UpdateFindingsFilterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateFindingsFilterResponse_arn' - The Amazon Resource Name (ARN) of the filter that was updated.+--+-- 'id', 'updateFindingsFilterResponse_id' - The unique identifier for the filter that was updated.+--+-- 'httpStatus', 'updateFindingsFilterResponse_httpStatus' - The response's http status code.+newUpdateFindingsFilterResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateFindingsFilterResponse+newUpdateFindingsFilterResponse pHttpStatus_ =+  UpdateFindingsFilterResponse'+    { arn =+        Prelude.Nothing,+      id = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the filter that was updated.+updateFindingsFilterResponse_arn :: Lens.Lens' UpdateFindingsFilterResponse (Prelude.Maybe Prelude.Text)+updateFindingsFilterResponse_arn = Lens.lens (\UpdateFindingsFilterResponse' {arn} -> arn) (\s@UpdateFindingsFilterResponse' {} a -> s {arn = a} :: UpdateFindingsFilterResponse)++-- | The unique identifier for the filter that was updated.+updateFindingsFilterResponse_id :: Lens.Lens' UpdateFindingsFilterResponse (Prelude.Maybe Prelude.Text)+updateFindingsFilterResponse_id = Lens.lens (\UpdateFindingsFilterResponse' {id} -> id) (\s@UpdateFindingsFilterResponse' {} a -> s {id = a} :: UpdateFindingsFilterResponse)++-- | The response's http status code.+updateFindingsFilterResponse_httpStatus :: Lens.Lens' UpdateFindingsFilterResponse Prelude.Int+updateFindingsFilterResponse_httpStatus = Lens.lens (\UpdateFindingsFilterResponse' {httpStatus} -> httpStatus) (\s@UpdateFindingsFilterResponse' {} a -> s {httpStatus = a} :: UpdateFindingsFilterResponse)++instance Prelude.NFData UpdateFindingsFilterResponse where+  rnf UpdateFindingsFilterResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/UpdateMacieSession.hs view
@@ -0,0 +1,183 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.UpdateMacieSession+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Suspends or re-enables Amazon Macie, or updates the configuration+-- settings for a Macie account.+module Amazonka.MacieV2.UpdateMacieSession+  ( -- * Creating a Request+    UpdateMacieSession (..),+    newUpdateMacieSession,++    -- * Request Lenses+    updateMacieSession_findingPublishingFrequency,+    updateMacieSession_status,++    -- * Destructuring the Response+    UpdateMacieSessionResponse (..),+    newUpdateMacieSessionResponse,++    -- * Response Lenses+    updateMacieSessionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateMacieSession' smart constructor.+data UpdateMacieSession = UpdateMacieSession'+  { -- | Specifies how often to publish updates to policy findings for the+    -- account. This includes publishing updates to Security Hub and Amazon+    -- EventBridge (formerly Amazon CloudWatch Events).+    findingPublishingFrequency :: Prelude.Maybe FindingPublishingFrequency,+    -- | Specifies a new status for the account. Valid values are: ENABLED,+    -- resume all Amazon Macie activities for the account; and, PAUSED, suspend+    -- all Macie activities for the account.+    status :: Prelude.Maybe MacieStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateMacieSession' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'findingPublishingFrequency', 'updateMacieSession_findingPublishingFrequency' - Specifies how often to publish updates to policy findings for the+-- account. This includes publishing updates to Security Hub and Amazon+-- EventBridge (formerly Amazon CloudWatch Events).+--+-- 'status', 'updateMacieSession_status' - Specifies a new status for the account. Valid values are: ENABLED,+-- resume all Amazon Macie activities for the account; and, PAUSED, suspend+-- all Macie activities for the account.+newUpdateMacieSession ::+  UpdateMacieSession+newUpdateMacieSession =+  UpdateMacieSession'+    { findingPublishingFrequency =+        Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | Specifies how often to publish updates to policy findings for the+-- account. This includes publishing updates to Security Hub and Amazon+-- EventBridge (formerly Amazon CloudWatch Events).+updateMacieSession_findingPublishingFrequency :: Lens.Lens' UpdateMacieSession (Prelude.Maybe FindingPublishingFrequency)+updateMacieSession_findingPublishingFrequency = Lens.lens (\UpdateMacieSession' {findingPublishingFrequency} -> findingPublishingFrequency) (\s@UpdateMacieSession' {} a -> s {findingPublishingFrequency = a} :: UpdateMacieSession)++-- | Specifies a new status for the account. Valid values are: ENABLED,+-- resume all Amazon Macie activities for the account; and, PAUSED, suspend+-- all Macie activities for the account.+updateMacieSession_status :: Lens.Lens' UpdateMacieSession (Prelude.Maybe MacieStatus)+updateMacieSession_status = Lens.lens (\UpdateMacieSession' {status} -> status) (\s@UpdateMacieSession' {} a -> s {status = a} :: UpdateMacieSession)++instance Core.AWSRequest UpdateMacieSession where+  type+    AWSResponse UpdateMacieSession =+      UpdateMacieSessionResponse+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UpdateMacieSessionResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateMacieSession where+  hashWithSalt _salt UpdateMacieSession' {..} =+    _salt+      `Prelude.hashWithSalt` findingPublishingFrequency+      `Prelude.hashWithSalt` status++instance Prelude.NFData UpdateMacieSession where+  rnf UpdateMacieSession' {..} =+    Prelude.rnf findingPublishingFrequency+      `Prelude.seq` Prelude.rnf status++instance Data.ToHeaders UpdateMacieSession where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateMacieSession where+  toJSON UpdateMacieSession' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("findingPublishingFrequency" Data..=)+              Prelude.<$> findingPublishingFrequency,+            ("status" Data..=) Prelude.<$> status+          ]+      )++instance Data.ToPath UpdateMacieSession where+  toPath = Prelude.const "/macie"++instance Data.ToQuery UpdateMacieSession where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateMacieSessionResponse' smart constructor.+data UpdateMacieSessionResponse = UpdateMacieSessionResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateMacieSessionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateMacieSessionResponse_httpStatus' - The response's http status code.+newUpdateMacieSessionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateMacieSessionResponse+newUpdateMacieSessionResponse pHttpStatus_ =+  UpdateMacieSessionResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+updateMacieSessionResponse_httpStatus :: Lens.Lens' UpdateMacieSessionResponse Prelude.Int+updateMacieSessionResponse_httpStatus = Lens.lens (\UpdateMacieSessionResponse' {httpStatus} -> httpStatus) (\s@UpdateMacieSessionResponse' {} a -> s {httpStatus = a} :: UpdateMacieSessionResponse)++instance Prelude.NFData UpdateMacieSessionResponse where+  rnf UpdateMacieSessionResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/UpdateMemberSession.hs view
@@ -0,0 +1,177 @@+{-# 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.MacieV2.UpdateMemberSession+-- 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 Macie administrator to suspend or re-enable Macie for+-- a member account.+module Amazonka.MacieV2.UpdateMemberSession+  ( -- * Creating a Request+    UpdateMemberSession (..),+    newUpdateMemberSession,++    -- * Request Lenses+    updateMemberSession_id,+    updateMemberSession_status,++    -- * Destructuring the Response+    UpdateMemberSessionResponse (..),+    newUpdateMemberSessionResponse,++    -- * Response Lenses+    updateMemberSessionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateMemberSession' smart constructor.+data UpdateMemberSession = UpdateMemberSession'+  { -- | The unique identifier for the Amazon Macie resource that the request+    -- applies to.+    id :: Prelude.Text,+    -- | Specifies the new status for the account. Valid values are: ENABLED,+    -- resume all Amazon Macie activities for the account; and, PAUSED, suspend+    -- all Macie activities for the account.+    status :: MacieStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateMemberSession' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateMemberSession_id' - The unique identifier for the Amazon Macie resource that the request+-- applies to.+--+-- 'status', 'updateMemberSession_status' - Specifies the new status for the account. Valid values are: ENABLED,+-- resume all Amazon Macie activities for the account; and, PAUSED, suspend+-- all Macie activities for the account.+newUpdateMemberSession ::+  -- | 'id'+  Prelude.Text ->+  -- | 'status'+  MacieStatus ->+  UpdateMemberSession+newUpdateMemberSession pId_ pStatus_ =+  UpdateMemberSession' {id = pId_, status = pStatus_}++-- | The unique identifier for the Amazon Macie resource that the request+-- applies to.+updateMemberSession_id :: Lens.Lens' UpdateMemberSession Prelude.Text+updateMemberSession_id = Lens.lens (\UpdateMemberSession' {id} -> id) (\s@UpdateMemberSession' {} a -> s {id = a} :: UpdateMemberSession)++-- | Specifies the new status for the account. Valid values are: ENABLED,+-- resume all Amazon Macie activities for the account; and, PAUSED, suspend+-- all Macie activities for the account.+updateMemberSession_status :: Lens.Lens' UpdateMemberSession MacieStatus+updateMemberSession_status = Lens.lens (\UpdateMemberSession' {status} -> status) (\s@UpdateMemberSession' {} a -> s {status = a} :: UpdateMemberSession)++instance Core.AWSRequest UpdateMemberSession where+  type+    AWSResponse UpdateMemberSession =+      UpdateMemberSessionResponse+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UpdateMemberSessionResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateMemberSession where+  hashWithSalt _salt UpdateMemberSession' {..} =+    _salt+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` status++instance Prelude.NFData UpdateMemberSession where+  rnf UpdateMemberSession' {..} =+    Prelude.rnf id `Prelude.seq` Prelude.rnf status++instance Data.ToHeaders UpdateMemberSession where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateMemberSession where+  toJSON UpdateMemberSession' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("status" Data..= status)]+      )++instance Data.ToPath UpdateMemberSession where+  toPath UpdateMemberSession' {..} =+    Prelude.mconcat ["/macie/members/", Data.toBS id]++instance Data.ToQuery UpdateMemberSession where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateMemberSessionResponse' smart constructor.+data UpdateMemberSessionResponse = UpdateMemberSessionResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateMemberSessionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateMemberSessionResponse_httpStatus' - The response's http status code.+newUpdateMemberSessionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateMemberSessionResponse+newUpdateMemberSessionResponse pHttpStatus_ =+  UpdateMemberSessionResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+updateMemberSessionResponse_httpStatus :: Lens.Lens' UpdateMemberSessionResponse Prelude.Int+updateMemberSessionResponse_httpStatus = Lens.lens (\UpdateMemberSessionResponse' {httpStatus} -> httpStatus) (\s@UpdateMemberSessionResponse' {} a -> s {httpStatus = a} :: UpdateMemberSessionResponse)++instance Prelude.NFData UpdateMemberSessionResponse where+  rnf UpdateMemberSessionResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/UpdateOrganizationConfiguration.hs view
@@ -0,0 +1,178 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MacieV2.UpdateOrganizationConfiguration+-- 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 Amazon Macie configuration settings for an organization in+-- Organizations.+module Amazonka.MacieV2.UpdateOrganizationConfiguration+  ( -- * Creating a Request+    UpdateOrganizationConfiguration (..),+    newUpdateOrganizationConfiguration,++    -- * Request Lenses+    updateOrganizationConfiguration_autoEnable,++    -- * Destructuring the Response+    UpdateOrganizationConfigurationResponse (..),+    newUpdateOrganizationConfigurationResponse,++    -- * Response Lenses+    updateOrganizationConfigurationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateOrganizationConfiguration' smart constructor.+data UpdateOrganizationConfiguration = UpdateOrganizationConfiguration'+  { -- | Specifies whether to enable Amazon Macie automatically for an account+    -- when the account is added to the organization in Organizations.+    autoEnable :: Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateOrganizationConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'autoEnable', 'updateOrganizationConfiguration_autoEnable' - Specifies whether to enable Amazon Macie automatically for an account+-- when the account is added to the organization in Organizations.+newUpdateOrganizationConfiguration ::+  -- | 'autoEnable'+  Prelude.Bool ->+  UpdateOrganizationConfiguration+newUpdateOrganizationConfiguration pAutoEnable_ =+  UpdateOrganizationConfiguration'+    { autoEnable =+        pAutoEnable_+    }++-- | Specifies whether to enable Amazon Macie automatically for an account+-- when the account is added to the organization in Organizations.+updateOrganizationConfiguration_autoEnable :: Lens.Lens' UpdateOrganizationConfiguration Prelude.Bool+updateOrganizationConfiguration_autoEnable = Lens.lens (\UpdateOrganizationConfiguration' {autoEnable} -> autoEnable) (\s@UpdateOrganizationConfiguration' {} a -> s {autoEnable = a} :: UpdateOrganizationConfiguration)++instance+  Core.AWSRequest+    UpdateOrganizationConfiguration+  where+  type+    AWSResponse UpdateOrganizationConfiguration =+      UpdateOrganizationConfigurationResponse+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UpdateOrganizationConfigurationResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    UpdateOrganizationConfiguration+  where+  hashWithSalt+    _salt+    UpdateOrganizationConfiguration' {..} =+      _salt `Prelude.hashWithSalt` autoEnable++instance+  Prelude.NFData+    UpdateOrganizationConfiguration+  where+  rnf UpdateOrganizationConfiguration' {..} =+    Prelude.rnf autoEnable++instance+  Data.ToHeaders+    UpdateOrganizationConfiguration+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateOrganizationConfiguration where+  toJSON UpdateOrganizationConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("autoEnable" Data..= autoEnable)]+      )++instance Data.ToPath UpdateOrganizationConfiguration where+  toPath = Prelude.const "/admin/configuration"++instance Data.ToQuery UpdateOrganizationConfiguration where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateOrganizationConfigurationResponse' smart constructor.+data UpdateOrganizationConfigurationResponse = UpdateOrganizationConfigurationResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateOrganizationConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateOrganizationConfigurationResponse_httpStatus' - The response's http status code.+newUpdateOrganizationConfigurationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateOrganizationConfigurationResponse+newUpdateOrganizationConfigurationResponse+  pHttpStatus_ =+    UpdateOrganizationConfigurationResponse'+      { httpStatus =+          pHttpStatus_+      }++-- | The response's http status code.+updateOrganizationConfigurationResponse_httpStatus :: Lens.Lens' UpdateOrganizationConfigurationResponse Prelude.Int+updateOrganizationConfigurationResponse_httpStatus = Lens.lens (\UpdateOrganizationConfigurationResponse' {httpStatus} -> httpStatus) (\s@UpdateOrganizationConfigurationResponse' {} a -> s {httpStatus = a} :: UpdateOrganizationConfigurationResponse)++instance+  Prelude.NFData+    UpdateOrganizationConfigurationResponse+  where+  rnf UpdateOrganizationConfigurationResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/UpdateResourceProfile.hs view
@@ -0,0 +1,184 @@+{-# 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.MacieV2.UpdateResourceProfile+-- 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 sensitivity score for an S3 bucket.+module Amazonka.MacieV2.UpdateResourceProfile+  ( -- * Creating a Request+    UpdateResourceProfile (..),+    newUpdateResourceProfile,++    -- * Request Lenses+    updateResourceProfile_sensitivityScoreOverride,+    updateResourceProfile_resourceArn,++    -- * Destructuring the Response+    UpdateResourceProfileResponse (..),+    newUpdateResourceProfileResponse,++    -- * Response Lenses+    updateResourceProfileResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateResourceProfile' smart constructor.+data UpdateResourceProfile = UpdateResourceProfile'+  { -- | The new sensitivity score for the bucket. Valid values are: 100, assign+    -- the maximum score and apply the /Sensitive/ label to the bucket; and,+    -- null (empty), assign a score that Amazon Macie calculates automatically+    -- after you submit the request.+    sensitivityScoreOverride :: Prelude.Maybe Prelude.Int,+    -- | The Amazon Resource Name (ARN) of the S3 bucket that the request applies+    -- to.+    resourceArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateResourceProfile' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'sensitivityScoreOverride', 'updateResourceProfile_sensitivityScoreOverride' - The new sensitivity score for the bucket. Valid values are: 100, assign+-- the maximum score and apply the /Sensitive/ label to the bucket; and,+-- null (empty), assign a score that Amazon Macie calculates automatically+-- after you submit the request.+--+-- 'resourceArn', 'updateResourceProfile_resourceArn' - The Amazon Resource Name (ARN) of the S3 bucket that the request applies+-- to.+newUpdateResourceProfile ::+  -- | 'resourceArn'+  Prelude.Text ->+  UpdateResourceProfile+newUpdateResourceProfile pResourceArn_ =+  UpdateResourceProfile'+    { sensitivityScoreOverride =+        Prelude.Nothing,+      resourceArn = pResourceArn_+    }++-- | The new sensitivity score for the bucket. Valid values are: 100, assign+-- the maximum score and apply the /Sensitive/ label to the bucket; and,+-- null (empty), assign a score that Amazon Macie calculates automatically+-- after you submit the request.+updateResourceProfile_sensitivityScoreOverride :: Lens.Lens' UpdateResourceProfile (Prelude.Maybe Prelude.Int)+updateResourceProfile_sensitivityScoreOverride = Lens.lens (\UpdateResourceProfile' {sensitivityScoreOverride} -> sensitivityScoreOverride) (\s@UpdateResourceProfile' {} a -> s {sensitivityScoreOverride = a} :: UpdateResourceProfile)++-- | The Amazon Resource Name (ARN) of the S3 bucket that the request applies+-- to.+updateResourceProfile_resourceArn :: Lens.Lens' UpdateResourceProfile Prelude.Text+updateResourceProfile_resourceArn = Lens.lens (\UpdateResourceProfile' {resourceArn} -> resourceArn) (\s@UpdateResourceProfile' {} a -> s {resourceArn = a} :: UpdateResourceProfile)++instance Core.AWSRequest UpdateResourceProfile where+  type+    AWSResponse UpdateResourceProfile =+      UpdateResourceProfileResponse+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UpdateResourceProfileResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateResourceProfile where+  hashWithSalt _salt UpdateResourceProfile' {..} =+    _salt+      `Prelude.hashWithSalt` sensitivityScoreOverride+      `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData UpdateResourceProfile where+  rnf UpdateResourceProfile' {..} =+    Prelude.rnf sensitivityScoreOverride+      `Prelude.seq` Prelude.rnf resourceArn++instance Data.ToHeaders UpdateResourceProfile where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateResourceProfile where+  toJSON UpdateResourceProfile' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("sensitivityScoreOverride" Data..=)+              Prelude.<$> sensitivityScoreOverride+          ]+      )++instance Data.ToPath UpdateResourceProfile where+  toPath = Prelude.const "/resource-profiles"++instance Data.ToQuery UpdateResourceProfile where+  toQuery UpdateResourceProfile' {..} =+    Prelude.mconcat ["resourceArn" Data.=: resourceArn]++-- | /See:/ 'newUpdateResourceProfileResponse' smart constructor.+data UpdateResourceProfileResponse = UpdateResourceProfileResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateResourceProfileResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateResourceProfileResponse_httpStatus' - The response's http status code.+newUpdateResourceProfileResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateResourceProfileResponse+newUpdateResourceProfileResponse pHttpStatus_ =+  UpdateResourceProfileResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+updateResourceProfileResponse_httpStatus :: Lens.Lens' UpdateResourceProfileResponse Prelude.Int+updateResourceProfileResponse_httpStatus = Lens.lens (\UpdateResourceProfileResponse' {httpStatus} -> httpStatus) (\s@UpdateResourceProfileResponse' {} a -> s {httpStatus = a} :: UpdateResourceProfileResponse)++instance Prelude.NFData UpdateResourceProfileResponse where+  rnf UpdateResourceProfileResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/UpdateResourceProfileDetections.hs view
@@ -0,0 +1,203 @@+{-# 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.MacieV2.UpdateResourceProfileDetections+-- 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 sensitivity scoring settings for an S3 bucket.+module Amazonka.MacieV2.UpdateResourceProfileDetections+  ( -- * Creating a Request+    UpdateResourceProfileDetections (..),+    newUpdateResourceProfileDetections,++    -- * Request Lenses+    updateResourceProfileDetections_suppressDataIdentifiers,+    updateResourceProfileDetections_resourceArn,++    -- * Destructuring the Response+    UpdateResourceProfileDetectionsResponse (..),+    newUpdateResourceProfileDetectionsResponse,++    -- * Response Lenses+    updateResourceProfileDetectionsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateResourceProfileDetections' smart constructor.+data UpdateResourceProfileDetections = UpdateResourceProfileDetections'+  { -- | An array of objects, one for each custom data identifier or managed data+    -- identifier that detected the type of sensitive data to start excluding+    -- or including in the bucket\'s score. To start including all sensitive+    -- data types in the score, don\'t specify any values for this array.+    suppressDataIdentifiers :: Prelude.Maybe [SuppressDataIdentifier],+    -- | The Amazon Resource Name (ARN) of the S3 bucket that the request applies+    -- to.+    resourceArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateResourceProfileDetections' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'suppressDataIdentifiers', 'updateResourceProfileDetections_suppressDataIdentifiers' - An array of objects, one for each custom data identifier or managed data+-- identifier that detected the type of sensitive data to start excluding+-- or including in the bucket\'s score. To start including all sensitive+-- data types in the score, don\'t specify any values for this array.+--+-- 'resourceArn', 'updateResourceProfileDetections_resourceArn' - The Amazon Resource Name (ARN) of the S3 bucket that the request applies+-- to.+newUpdateResourceProfileDetections ::+  -- | 'resourceArn'+  Prelude.Text ->+  UpdateResourceProfileDetections+newUpdateResourceProfileDetections pResourceArn_ =+  UpdateResourceProfileDetections'+    { suppressDataIdentifiers =+        Prelude.Nothing,+      resourceArn = pResourceArn_+    }++-- | An array of objects, one for each custom data identifier or managed data+-- identifier that detected the type of sensitive data to start excluding+-- or including in the bucket\'s score. To start including all sensitive+-- data types in the score, don\'t specify any values for this array.+updateResourceProfileDetections_suppressDataIdentifiers :: Lens.Lens' UpdateResourceProfileDetections (Prelude.Maybe [SuppressDataIdentifier])+updateResourceProfileDetections_suppressDataIdentifiers = Lens.lens (\UpdateResourceProfileDetections' {suppressDataIdentifiers} -> suppressDataIdentifiers) (\s@UpdateResourceProfileDetections' {} a -> s {suppressDataIdentifiers = a} :: UpdateResourceProfileDetections) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) of the S3 bucket that the request applies+-- to.+updateResourceProfileDetections_resourceArn :: Lens.Lens' UpdateResourceProfileDetections Prelude.Text+updateResourceProfileDetections_resourceArn = Lens.lens (\UpdateResourceProfileDetections' {resourceArn} -> resourceArn) (\s@UpdateResourceProfileDetections' {} a -> s {resourceArn = a} :: UpdateResourceProfileDetections)++instance+  Core.AWSRequest+    UpdateResourceProfileDetections+  where+  type+    AWSResponse UpdateResourceProfileDetections =+      UpdateResourceProfileDetectionsResponse+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UpdateResourceProfileDetectionsResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    UpdateResourceProfileDetections+  where+  hashWithSalt+    _salt+    UpdateResourceProfileDetections' {..} =+      _salt+        `Prelude.hashWithSalt` suppressDataIdentifiers+        `Prelude.hashWithSalt` resourceArn++instance+  Prelude.NFData+    UpdateResourceProfileDetections+  where+  rnf UpdateResourceProfileDetections' {..} =+    Prelude.rnf suppressDataIdentifiers+      `Prelude.seq` Prelude.rnf resourceArn++instance+  Data.ToHeaders+    UpdateResourceProfileDetections+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateResourceProfileDetections where+  toJSON UpdateResourceProfileDetections' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("suppressDataIdentifiers" Data..=)+              Prelude.<$> suppressDataIdentifiers+          ]+      )++instance Data.ToPath UpdateResourceProfileDetections where+  toPath =+    Prelude.const "/resource-profiles/detections"++instance Data.ToQuery UpdateResourceProfileDetections where+  toQuery UpdateResourceProfileDetections' {..} =+    Prelude.mconcat ["resourceArn" Data.=: resourceArn]++-- | /See:/ 'newUpdateResourceProfileDetectionsResponse' smart constructor.+data UpdateResourceProfileDetectionsResponse = UpdateResourceProfileDetectionsResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateResourceProfileDetectionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateResourceProfileDetectionsResponse_httpStatus' - The response's http status code.+newUpdateResourceProfileDetectionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateResourceProfileDetectionsResponse+newUpdateResourceProfileDetectionsResponse+  pHttpStatus_ =+    UpdateResourceProfileDetectionsResponse'+      { httpStatus =+          pHttpStatus_+      }++-- | The response's http status code.+updateResourceProfileDetectionsResponse_httpStatus :: Lens.Lens' UpdateResourceProfileDetectionsResponse Prelude.Int+updateResourceProfileDetectionsResponse_httpStatus = Lens.lens (\UpdateResourceProfileDetectionsResponse' {httpStatus} -> httpStatus) (\s@UpdateResourceProfileDetectionsResponse' {} a -> s {httpStatus = a} :: UpdateResourceProfileDetectionsResponse)++instance+  Prelude.NFData+    UpdateResourceProfileDetectionsResponse+  where+  rnf UpdateResourceProfileDetectionsResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/UpdateRevealConfiguration.hs view
@@ -0,0 +1,180 @@+{-# 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.MacieV2.UpdateRevealConfiguration+-- 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 and configuration settings for retrieving occurrences+-- of sensitive data reported by findings.+module Amazonka.MacieV2.UpdateRevealConfiguration+  ( -- * Creating a Request+    UpdateRevealConfiguration (..),+    newUpdateRevealConfiguration,++    -- * Request Lenses+    updateRevealConfiguration_configuration,++    -- * Destructuring the Response+    UpdateRevealConfigurationResponse (..),+    newUpdateRevealConfigurationResponse,++    -- * Response Lenses+    updateRevealConfigurationResponse_configuration,+    updateRevealConfigurationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateRevealConfiguration' smart constructor.+data UpdateRevealConfiguration = UpdateRevealConfiguration'+  { -- | The new configuration settings and the status of the configuration for+    -- the account.+    configuration :: RevealConfiguration+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateRevealConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configuration', 'updateRevealConfiguration_configuration' - The new configuration settings and the status of the configuration for+-- the account.+newUpdateRevealConfiguration ::+  -- | 'configuration'+  RevealConfiguration ->+  UpdateRevealConfiguration+newUpdateRevealConfiguration pConfiguration_ =+  UpdateRevealConfiguration'+    { configuration =+        pConfiguration_+    }++-- | The new configuration settings and the status of the configuration for+-- the account.+updateRevealConfiguration_configuration :: Lens.Lens' UpdateRevealConfiguration RevealConfiguration+updateRevealConfiguration_configuration = Lens.lens (\UpdateRevealConfiguration' {configuration} -> configuration) (\s@UpdateRevealConfiguration' {} a -> s {configuration = a} :: UpdateRevealConfiguration)++instance Core.AWSRequest UpdateRevealConfiguration where+  type+    AWSResponse UpdateRevealConfiguration =+      UpdateRevealConfigurationResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateRevealConfigurationResponse'+            Prelude.<$> (x Data..?> "configuration")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateRevealConfiguration where+  hashWithSalt _salt UpdateRevealConfiguration' {..} =+    _salt `Prelude.hashWithSalt` configuration++instance Prelude.NFData UpdateRevealConfiguration where+  rnf UpdateRevealConfiguration' {..} =+    Prelude.rnf configuration++instance Data.ToHeaders UpdateRevealConfiguration where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateRevealConfiguration where+  toJSON UpdateRevealConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("configuration" Data..= configuration)+          ]+      )++instance Data.ToPath UpdateRevealConfiguration where+  toPath = Prelude.const "/reveal-configuration"++instance Data.ToQuery UpdateRevealConfiguration where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateRevealConfigurationResponse' smart constructor.+data UpdateRevealConfigurationResponse = UpdateRevealConfigurationResponse'+  { -- | The new configuration settings and the status of the configuration for+    -- the account.+    configuration :: Prelude.Maybe RevealConfiguration,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateRevealConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configuration', 'updateRevealConfigurationResponse_configuration' - The new configuration settings and the status of the configuration for+-- the account.+--+-- 'httpStatus', 'updateRevealConfigurationResponse_httpStatus' - The response's http status code.+newUpdateRevealConfigurationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateRevealConfigurationResponse+newUpdateRevealConfigurationResponse pHttpStatus_ =+  UpdateRevealConfigurationResponse'+    { configuration =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The new configuration settings and the status of the configuration for+-- the account.+updateRevealConfigurationResponse_configuration :: Lens.Lens' UpdateRevealConfigurationResponse (Prelude.Maybe RevealConfiguration)+updateRevealConfigurationResponse_configuration = Lens.lens (\UpdateRevealConfigurationResponse' {configuration} -> configuration) (\s@UpdateRevealConfigurationResponse' {} a -> s {configuration = a} :: UpdateRevealConfigurationResponse)++-- | The response's http status code.+updateRevealConfigurationResponse_httpStatus :: Lens.Lens' UpdateRevealConfigurationResponse Prelude.Int+updateRevealConfigurationResponse_httpStatus = Lens.lens (\UpdateRevealConfigurationResponse' {httpStatus} -> httpStatus) (\s@UpdateRevealConfigurationResponse' {} a -> s {httpStatus = a} :: UpdateRevealConfigurationResponse)++instance+  Prelude.NFData+    UpdateRevealConfigurationResponse+  where+  rnf UpdateRevealConfigurationResponse' {..} =+    Prelude.rnf configuration+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/UpdateSensitivityInspectionTemplate.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.MacieV2.UpdateSensitivityInspectionTemplate+-- 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 settings for the sensitivity inspection template for an+-- account.+module Amazonka.MacieV2.UpdateSensitivityInspectionTemplate+  ( -- * Creating a Request+    UpdateSensitivityInspectionTemplate (..),+    newUpdateSensitivityInspectionTemplate,++    -- * Request Lenses+    updateSensitivityInspectionTemplate_description,+    updateSensitivityInspectionTemplate_excludes,+    updateSensitivityInspectionTemplate_includes,+    updateSensitivityInspectionTemplate_id,++    -- * Destructuring the Response+    UpdateSensitivityInspectionTemplateResponse (..),+    newUpdateSensitivityInspectionTemplateResponse,++    -- * Response Lenses+    updateSensitivityInspectionTemplateResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateSensitivityInspectionTemplate' smart constructor.+data UpdateSensitivityInspectionTemplate = UpdateSensitivityInspectionTemplate'+  { -- | A custom description of the template.+    description :: Prelude.Maybe Prelude.Text,+    -- | The managed data identifiers to explicitly exclude (not use) when+    -- analyzing data.+    --+    -- To exclude an allow list or custom data identifier that\'s currently+    -- included by the template, update the values for the+    -- SensitivityInspectionTemplateIncludes.allowListIds and+    -- SensitivityInspectionTemplateIncludes.customDataIdentifierIds+    -- properties, respectively.+    excludes :: Prelude.Maybe SensitivityInspectionTemplateExcludes,+    -- | The allow lists, custom data identifiers, and managed data identifiers+    -- to include (use) when analyzing data.+    includes :: Prelude.Maybe SensitivityInspectionTemplateIncludes,+    -- | The unique identifier for the Amazon Macie resource that the request+    -- applies to.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateSensitivityInspectionTemplate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateSensitivityInspectionTemplate_description' - A custom description of the template.+--+-- 'excludes', 'updateSensitivityInspectionTemplate_excludes' - The managed data identifiers to explicitly exclude (not use) when+-- analyzing data.+--+-- To exclude an allow list or custom data identifier that\'s currently+-- included by the template, update the values for the+-- SensitivityInspectionTemplateIncludes.allowListIds and+-- SensitivityInspectionTemplateIncludes.customDataIdentifierIds+-- properties, respectively.+--+-- 'includes', 'updateSensitivityInspectionTemplate_includes' - The allow lists, custom data identifiers, and managed data identifiers+-- to include (use) when analyzing data.+--+-- 'id', 'updateSensitivityInspectionTemplate_id' - The unique identifier for the Amazon Macie resource that the request+-- applies to.+newUpdateSensitivityInspectionTemplate ::+  -- | 'id'+  Prelude.Text ->+  UpdateSensitivityInspectionTemplate+newUpdateSensitivityInspectionTemplate pId_ =+  UpdateSensitivityInspectionTemplate'+    { description =+        Prelude.Nothing,+      excludes = Prelude.Nothing,+      includes = Prelude.Nothing,+      id = pId_+    }++-- | A custom description of the template.+updateSensitivityInspectionTemplate_description :: Lens.Lens' UpdateSensitivityInspectionTemplate (Prelude.Maybe Prelude.Text)+updateSensitivityInspectionTemplate_description = Lens.lens (\UpdateSensitivityInspectionTemplate' {description} -> description) (\s@UpdateSensitivityInspectionTemplate' {} a -> s {description = a} :: UpdateSensitivityInspectionTemplate)++-- | The managed data identifiers to explicitly exclude (not use) when+-- analyzing data.+--+-- To exclude an allow list or custom data identifier that\'s currently+-- included by the template, update the values for the+-- SensitivityInspectionTemplateIncludes.allowListIds and+-- SensitivityInspectionTemplateIncludes.customDataIdentifierIds+-- properties, respectively.+updateSensitivityInspectionTemplate_excludes :: Lens.Lens' UpdateSensitivityInspectionTemplate (Prelude.Maybe SensitivityInspectionTemplateExcludes)+updateSensitivityInspectionTemplate_excludes = Lens.lens (\UpdateSensitivityInspectionTemplate' {excludes} -> excludes) (\s@UpdateSensitivityInspectionTemplate' {} a -> s {excludes = a} :: UpdateSensitivityInspectionTemplate)++-- | The allow lists, custom data identifiers, and managed data identifiers+-- to include (use) when analyzing data.+updateSensitivityInspectionTemplate_includes :: Lens.Lens' UpdateSensitivityInspectionTemplate (Prelude.Maybe SensitivityInspectionTemplateIncludes)+updateSensitivityInspectionTemplate_includes = Lens.lens (\UpdateSensitivityInspectionTemplate' {includes} -> includes) (\s@UpdateSensitivityInspectionTemplate' {} a -> s {includes = a} :: UpdateSensitivityInspectionTemplate)++-- | The unique identifier for the Amazon Macie resource that the request+-- applies to.+updateSensitivityInspectionTemplate_id :: Lens.Lens' UpdateSensitivityInspectionTemplate Prelude.Text+updateSensitivityInspectionTemplate_id = Lens.lens (\UpdateSensitivityInspectionTemplate' {id} -> id) (\s@UpdateSensitivityInspectionTemplate' {} a -> s {id = a} :: UpdateSensitivityInspectionTemplate)++instance+  Core.AWSRequest+    UpdateSensitivityInspectionTemplate+  where+  type+    AWSResponse UpdateSensitivityInspectionTemplate =+      UpdateSensitivityInspectionTemplateResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UpdateSensitivityInspectionTemplateResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    UpdateSensitivityInspectionTemplate+  where+  hashWithSalt+    _salt+    UpdateSensitivityInspectionTemplate' {..} =+      _salt+        `Prelude.hashWithSalt` description+        `Prelude.hashWithSalt` excludes+        `Prelude.hashWithSalt` includes+        `Prelude.hashWithSalt` id++instance+  Prelude.NFData+    UpdateSensitivityInspectionTemplate+  where+  rnf UpdateSensitivityInspectionTemplate' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf excludes+      `Prelude.seq` Prelude.rnf includes+      `Prelude.seq` Prelude.rnf id++instance+  Data.ToHeaders+    UpdateSensitivityInspectionTemplate+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    UpdateSensitivityInspectionTemplate+  where+  toJSON UpdateSensitivityInspectionTemplate' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("excludes" Data..=) Prelude.<$> excludes,+            ("includes" Data..=) Prelude.<$> includes+          ]+      )++instance+  Data.ToPath+    UpdateSensitivityInspectionTemplate+  where+  toPath UpdateSensitivityInspectionTemplate' {..} =+    Prelude.mconcat+      ["/templates/sensitivity-inspections/", Data.toBS id]++instance+  Data.ToQuery+    UpdateSensitivityInspectionTemplate+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateSensitivityInspectionTemplateResponse' smart constructor.+data UpdateSensitivityInspectionTemplateResponse = UpdateSensitivityInspectionTemplateResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateSensitivityInspectionTemplateResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateSensitivityInspectionTemplateResponse_httpStatus' - The response's http status code.+newUpdateSensitivityInspectionTemplateResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateSensitivityInspectionTemplateResponse+newUpdateSensitivityInspectionTemplateResponse+  pHttpStatus_ =+    UpdateSensitivityInspectionTemplateResponse'+      { httpStatus =+          pHttpStatus_+      }++-- | The response's http status code.+updateSensitivityInspectionTemplateResponse_httpStatus :: Lens.Lens' UpdateSensitivityInspectionTemplateResponse Prelude.Int+updateSensitivityInspectionTemplateResponse_httpStatus = Lens.lens (\UpdateSensitivityInspectionTemplateResponse' {httpStatus} -> httpStatus) (\s@UpdateSensitivityInspectionTemplateResponse' {} a -> s {httpStatus = a} :: UpdateSensitivityInspectionTemplateResponse)++instance+  Prelude.NFData+    UpdateSensitivityInspectionTemplateResponse+  where+  rnf UpdateSensitivityInspectionTemplateResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MacieV2/Waiters.hs view
@@ -0,0 +1,50 @@+{-# 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.MacieV2.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.MacieV2.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MacieV2.GetSensitiveDataOccurrences+import Amazonka.MacieV2.Lens+import Amazonka.MacieV2.Types+import qualified Amazonka.Prelude as Prelude++-- | Polls 'Amazonka.MacieV2.GetSensitiveDataOccurrences' every 2 seconds until a successful state is reached. An error is returned after 60 failed checks.+newFindingRevealed :: Core.Wait GetSensitiveDataOccurrences+newFindingRevealed =+  Core.Wait+    { Core.name = "FindingRevealed",+      Core.attempts = 60,+      Core.delay = 2,+      Core.acceptors =+        [ Core.matchAll+            "SUCCESS"+            Core.AcceptSuccess+            ( getSensitiveDataOccurrencesResponse_status+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "ERROR"+            Core.AcceptSuccess+            ( getSensitiveDataOccurrencesResponse_status+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            )+        ]+    }
+ 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.MacieV2+import Test.Amazonka.MacieV2.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "MacieV2"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/Gen/MacieV2.hs view
@@ -0,0 +1,1618 @@+{-# 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.MacieV2+-- Copyright   : (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.MacieV2 where++import Amazonka.MacieV2+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.MacieV2.Internal+import Test.Amazonka.Prelude+import Test.Tasty++-- Auto-generated: the actual test selection needs to be manually placed into+-- the top-level so that real test data can be incrementally added.+--+-- This commented snippet is what the entire set should look like:++-- fixtures :: TestTree+-- fixtures =+--     [ testGroup "request"+--         [ requestAcceptInvitation $+--             newAcceptInvitation+--+--         , requestBatchGetCustomDataIdentifiers $+--             newBatchGetCustomDataIdentifiers+--+--         , requestCreateAllowList $+--             newCreateAllowList+--+--         , requestCreateClassificationJob $+--             newCreateClassificationJob+--+--         , requestCreateCustomDataIdentifier $+--             newCreateCustomDataIdentifier+--+--         , requestCreateFindingsFilter $+--             newCreateFindingsFilter+--+--         , requestCreateInvitations $+--             newCreateInvitations+--+--         , requestCreateMember $+--             newCreateMember+--+--         , requestCreateSampleFindings $+--             newCreateSampleFindings+--+--         , requestDeclineInvitations $+--             newDeclineInvitations+--+--         , requestDeleteAllowList $+--             newDeleteAllowList+--+--         , requestDeleteCustomDataIdentifier $+--             newDeleteCustomDataIdentifier+--+--         , requestDeleteFindingsFilter $+--             newDeleteFindingsFilter+--+--         , requestDeleteInvitations $+--             newDeleteInvitations+--+--         , requestDeleteMember $+--             newDeleteMember+--+--         , requestDescribeBuckets $+--             newDescribeBuckets+--+--         , requestDescribeClassificationJob $+--             newDescribeClassificationJob+--+--         , requestDescribeOrganizationConfiguration $+--             newDescribeOrganizationConfiguration+--+--         , requestDisableMacie $+--             newDisableMacie+--+--         , requestDisableOrganizationAdminAccount $+--             newDisableOrganizationAdminAccount+--+--         , requestDisassociateFromAdministratorAccount $+--             newDisassociateFromAdministratorAccount+--+--         , requestDisassociateFromMasterAccount $+--             newDisassociateFromMasterAccount+--+--         , requestDisassociateMember $+--             newDisassociateMember+--+--         , requestEnableMacie $+--             newEnableMacie+--+--         , requestEnableOrganizationAdminAccount $+--             newEnableOrganizationAdminAccount+--+--         , requestGetAdministratorAccount $+--             newGetAdministratorAccount+--+--         , requestGetAllowList $+--             newGetAllowList+--+--         , requestGetAutomatedDiscoveryConfiguration $+--             newGetAutomatedDiscoveryConfiguration+--+--         , requestGetBucketStatistics $+--             newGetBucketStatistics+--+--         , requestGetClassificationExportConfiguration $+--             newGetClassificationExportConfiguration+--+--         , requestGetClassificationScope $+--             newGetClassificationScope+--+--         , requestGetCustomDataIdentifier $+--             newGetCustomDataIdentifier+--+--         , requestGetFindingStatistics $+--             newGetFindingStatistics+--+--         , requestGetFindings $+--             newGetFindings+--+--         , requestGetFindingsFilter $+--             newGetFindingsFilter+--+--         , requestGetFindingsPublicationConfiguration $+--             newGetFindingsPublicationConfiguration+--+--         , requestGetInvitationsCount $+--             newGetInvitationsCount+--+--         , requestGetMacieSession $+--             newGetMacieSession+--+--         , requestGetMasterAccount $+--             newGetMasterAccount+--+--         , requestGetMember $+--             newGetMember+--+--         , requestGetResourceProfile $+--             newGetResourceProfile+--+--         , requestGetRevealConfiguration $+--             newGetRevealConfiguration+--+--         , requestGetSensitiveDataOccurrences $+--             newGetSensitiveDataOccurrences+--+--         , requestGetSensitiveDataOccurrencesAvailability $+--             newGetSensitiveDataOccurrencesAvailability+--+--         , requestGetSensitivityInspectionTemplate $+--             newGetSensitivityInspectionTemplate+--+--         , requestGetUsageStatistics $+--             newGetUsageStatistics+--+--         , requestGetUsageTotals $+--             newGetUsageTotals+--+--         , requestListAllowLists $+--             newListAllowLists+--+--         , requestListClassificationJobs $+--             newListClassificationJobs+--+--         , requestListClassificationScopes $+--             newListClassificationScopes+--+--         , requestListCustomDataIdentifiers $+--             newListCustomDataIdentifiers+--+--         , requestListFindings $+--             newListFindings+--+--         , requestListFindingsFilters $+--             newListFindingsFilters+--+--         , requestListInvitations $+--             newListInvitations+--+--         , requestListManagedDataIdentifiers $+--             newListManagedDataIdentifiers+--+--         , requestListMembers $+--             newListMembers+--+--         , requestListOrganizationAdminAccounts $+--             newListOrganizationAdminAccounts+--+--         , requestListResourceProfileArtifacts $+--             newListResourceProfileArtifacts+--+--         , requestListResourceProfileDetections $+--             newListResourceProfileDetections+--+--         , requestListSensitivityInspectionTemplates $+--             newListSensitivityInspectionTemplates+--+--         , requestListTagsForResource $+--             newListTagsForResource+--+--         , requestPutClassificationExportConfiguration $+--             newPutClassificationExportConfiguration+--+--         , requestPutFindingsPublicationConfiguration $+--             newPutFindingsPublicationConfiguration+--+--         , requestSearchResources $+--             newSearchResources+--+--         , requestTagResource $+--             newTagResource+--+--         , requestTestCustomDataIdentifier $+--             newTestCustomDataIdentifier+--+--         , requestUntagResource $+--             newUntagResource+--+--         , requestUpdateAllowList $+--             newUpdateAllowList+--+--         , requestUpdateAutomatedDiscoveryConfiguration $+--             newUpdateAutomatedDiscoveryConfiguration+--+--         , requestUpdateClassificationJob $+--             newUpdateClassificationJob+--+--         , requestUpdateClassificationScope $+--             newUpdateClassificationScope+--+--         , requestUpdateFindingsFilter $+--             newUpdateFindingsFilter+--+--         , requestUpdateMacieSession $+--             newUpdateMacieSession+--+--         , requestUpdateMemberSession $+--             newUpdateMemberSession+--+--         , requestUpdateOrganizationConfiguration $+--             newUpdateOrganizationConfiguration+--+--         , requestUpdateResourceProfile $+--             newUpdateResourceProfile+--+--         , requestUpdateResourceProfileDetections $+--             newUpdateResourceProfileDetections+--+--         , requestUpdateRevealConfiguration $+--             newUpdateRevealConfiguration+--+--         , requestUpdateSensitivityInspectionTemplate $+--             newUpdateSensitivityInspectionTemplate+--+--           ]++--     , testGroup "response"+--         [ responseAcceptInvitation $+--             newAcceptInvitationResponse+--+--         , responseBatchGetCustomDataIdentifiers $+--             newBatchGetCustomDataIdentifiersResponse+--+--         , responseCreateAllowList $+--             newCreateAllowListResponse+--+--         , responseCreateClassificationJob $+--             newCreateClassificationJobResponse+--+--         , responseCreateCustomDataIdentifier $+--             newCreateCustomDataIdentifierResponse+--+--         , responseCreateFindingsFilter $+--             newCreateFindingsFilterResponse+--+--         , responseCreateInvitations $+--             newCreateInvitationsResponse+--+--         , responseCreateMember $+--             newCreateMemberResponse+--+--         , responseCreateSampleFindings $+--             newCreateSampleFindingsResponse+--+--         , responseDeclineInvitations $+--             newDeclineInvitationsResponse+--+--         , responseDeleteAllowList $+--             newDeleteAllowListResponse+--+--         , responseDeleteCustomDataIdentifier $+--             newDeleteCustomDataIdentifierResponse+--+--         , responseDeleteFindingsFilter $+--             newDeleteFindingsFilterResponse+--+--         , responseDeleteInvitations $+--             newDeleteInvitationsResponse+--+--         , responseDeleteMember $+--             newDeleteMemberResponse+--+--         , responseDescribeBuckets $+--             newDescribeBucketsResponse+--+--         , responseDescribeClassificationJob $+--             newDescribeClassificationJobResponse+--+--         , responseDescribeOrganizationConfiguration $+--             newDescribeOrganizationConfigurationResponse+--+--         , responseDisableMacie $+--             newDisableMacieResponse+--+--         , responseDisableOrganizationAdminAccount $+--             newDisableOrganizationAdminAccountResponse+--+--         , responseDisassociateFromAdministratorAccount $+--             newDisassociateFromAdministratorAccountResponse+--+--         , responseDisassociateFromMasterAccount $+--             newDisassociateFromMasterAccountResponse+--+--         , responseDisassociateMember $+--             newDisassociateMemberResponse+--+--         , responseEnableMacie $+--             newEnableMacieResponse+--+--         , responseEnableOrganizationAdminAccount $+--             newEnableOrganizationAdminAccountResponse+--+--         , responseGetAdministratorAccount $+--             newGetAdministratorAccountResponse+--+--         , responseGetAllowList $+--             newGetAllowListResponse+--+--         , responseGetAutomatedDiscoveryConfiguration $+--             newGetAutomatedDiscoveryConfigurationResponse+--+--         , responseGetBucketStatistics $+--             newGetBucketStatisticsResponse+--+--         , responseGetClassificationExportConfiguration $+--             newGetClassificationExportConfigurationResponse+--+--         , responseGetClassificationScope $+--             newGetClassificationScopeResponse+--+--         , responseGetCustomDataIdentifier $+--             newGetCustomDataIdentifierResponse+--+--         , responseGetFindingStatistics $+--             newGetFindingStatisticsResponse+--+--         , responseGetFindings $+--             newGetFindingsResponse+--+--         , responseGetFindingsFilter $+--             newGetFindingsFilterResponse+--+--         , responseGetFindingsPublicationConfiguration $+--             newGetFindingsPublicationConfigurationResponse+--+--         , responseGetInvitationsCount $+--             newGetInvitationsCountResponse+--+--         , responseGetMacieSession $+--             newGetMacieSessionResponse+--+--         , responseGetMasterAccount $+--             newGetMasterAccountResponse+--+--         , responseGetMember $+--             newGetMemberResponse+--+--         , responseGetResourceProfile $+--             newGetResourceProfileResponse+--+--         , responseGetRevealConfiguration $+--             newGetRevealConfigurationResponse+--+--         , responseGetSensitiveDataOccurrences $+--             newGetSensitiveDataOccurrencesResponse+--+--         , responseGetSensitiveDataOccurrencesAvailability $+--             newGetSensitiveDataOccurrencesAvailabilityResponse+--+--         , responseGetSensitivityInspectionTemplate $+--             newGetSensitivityInspectionTemplateResponse+--+--         , responseGetUsageStatistics $+--             newGetUsageStatisticsResponse+--+--         , responseGetUsageTotals $+--             newGetUsageTotalsResponse+--+--         , responseListAllowLists $+--             newListAllowListsResponse+--+--         , responseListClassificationJobs $+--             newListClassificationJobsResponse+--+--         , responseListClassificationScopes $+--             newListClassificationScopesResponse+--+--         , responseListCustomDataIdentifiers $+--             newListCustomDataIdentifiersResponse+--+--         , responseListFindings $+--             newListFindingsResponse+--+--         , responseListFindingsFilters $+--             newListFindingsFiltersResponse+--+--         , responseListInvitations $+--             newListInvitationsResponse+--+--         , responseListManagedDataIdentifiers $+--             newListManagedDataIdentifiersResponse+--+--         , responseListMembers $+--             newListMembersResponse+--+--         , responseListOrganizationAdminAccounts $+--             newListOrganizationAdminAccountsResponse+--+--         , responseListResourceProfileArtifacts $+--             newListResourceProfileArtifactsResponse+--+--         , responseListResourceProfileDetections $+--             newListResourceProfileDetectionsResponse+--+--         , responseListSensitivityInspectionTemplates $+--             newListSensitivityInspectionTemplatesResponse+--+--         , responseListTagsForResource $+--             newListTagsForResourceResponse+--+--         , responsePutClassificationExportConfiguration $+--             newPutClassificationExportConfigurationResponse+--+--         , responsePutFindingsPublicationConfiguration $+--             newPutFindingsPublicationConfigurationResponse+--+--         , responseSearchResources $+--             newSearchResourcesResponse+--+--         , responseTagResource $+--             newTagResourceResponse+--+--         , responseTestCustomDataIdentifier $+--             newTestCustomDataIdentifierResponse+--+--         , responseUntagResource $+--             newUntagResourceResponse+--+--         , responseUpdateAllowList $+--             newUpdateAllowListResponse+--+--         , responseUpdateAutomatedDiscoveryConfiguration $+--             newUpdateAutomatedDiscoveryConfigurationResponse+--+--         , responseUpdateClassificationJob $+--             newUpdateClassificationJobResponse+--+--         , responseUpdateClassificationScope $+--             newUpdateClassificationScopeResponse+--+--         , responseUpdateFindingsFilter $+--             newUpdateFindingsFilterResponse+--+--         , responseUpdateMacieSession $+--             newUpdateMacieSessionResponse+--+--         , responseUpdateMemberSession $+--             newUpdateMemberSessionResponse+--+--         , responseUpdateOrganizationConfiguration $+--             newUpdateOrganizationConfigurationResponse+--+--         , responseUpdateResourceProfile $+--             newUpdateResourceProfileResponse+--+--         , responseUpdateResourceProfileDetections $+--             newUpdateResourceProfileDetectionsResponse+--+--         , responseUpdateRevealConfiguration $+--             newUpdateRevealConfigurationResponse+--+--         , responseUpdateSensitivityInspectionTemplate $+--             newUpdateSensitivityInspectionTemplateResponse+--+--           ]+--     ]++-- Requests++requestAcceptInvitation :: AcceptInvitation -> TestTree+requestAcceptInvitation =+  req+    "AcceptInvitation"+    "fixture/AcceptInvitation.yaml"++requestBatchGetCustomDataIdentifiers :: BatchGetCustomDataIdentifiers -> TestTree+requestBatchGetCustomDataIdentifiers =+  req+    "BatchGetCustomDataIdentifiers"+    "fixture/BatchGetCustomDataIdentifiers.yaml"++requestCreateAllowList :: CreateAllowList -> TestTree+requestCreateAllowList =+  req+    "CreateAllowList"+    "fixture/CreateAllowList.yaml"++requestCreateClassificationJob :: CreateClassificationJob -> TestTree+requestCreateClassificationJob =+  req+    "CreateClassificationJob"+    "fixture/CreateClassificationJob.yaml"++requestCreateCustomDataIdentifier :: CreateCustomDataIdentifier -> TestTree+requestCreateCustomDataIdentifier =+  req+    "CreateCustomDataIdentifier"+    "fixture/CreateCustomDataIdentifier.yaml"++requestCreateFindingsFilter :: CreateFindingsFilter -> TestTree+requestCreateFindingsFilter =+  req+    "CreateFindingsFilter"+    "fixture/CreateFindingsFilter.yaml"++requestCreateInvitations :: CreateInvitations -> TestTree+requestCreateInvitations =+  req+    "CreateInvitations"+    "fixture/CreateInvitations.yaml"++requestCreateMember :: CreateMember -> TestTree+requestCreateMember =+  req+    "CreateMember"+    "fixture/CreateMember.yaml"++requestCreateSampleFindings :: CreateSampleFindings -> TestTree+requestCreateSampleFindings =+  req+    "CreateSampleFindings"+    "fixture/CreateSampleFindings.yaml"++requestDeclineInvitations :: DeclineInvitations -> TestTree+requestDeclineInvitations =+  req+    "DeclineInvitations"+    "fixture/DeclineInvitations.yaml"++requestDeleteAllowList :: DeleteAllowList -> TestTree+requestDeleteAllowList =+  req+    "DeleteAllowList"+    "fixture/DeleteAllowList.yaml"++requestDeleteCustomDataIdentifier :: DeleteCustomDataIdentifier -> TestTree+requestDeleteCustomDataIdentifier =+  req+    "DeleteCustomDataIdentifier"+    "fixture/DeleteCustomDataIdentifier.yaml"++requestDeleteFindingsFilter :: DeleteFindingsFilter -> TestTree+requestDeleteFindingsFilter =+  req+    "DeleteFindingsFilter"+    "fixture/DeleteFindingsFilter.yaml"++requestDeleteInvitations :: DeleteInvitations -> TestTree+requestDeleteInvitations =+  req+    "DeleteInvitations"+    "fixture/DeleteInvitations.yaml"++requestDeleteMember :: DeleteMember -> TestTree+requestDeleteMember =+  req+    "DeleteMember"+    "fixture/DeleteMember.yaml"++requestDescribeBuckets :: DescribeBuckets -> TestTree+requestDescribeBuckets =+  req+    "DescribeBuckets"+    "fixture/DescribeBuckets.yaml"++requestDescribeClassificationJob :: DescribeClassificationJob -> TestTree+requestDescribeClassificationJob =+  req+    "DescribeClassificationJob"+    "fixture/DescribeClassificationJob.yaml"++requestDescribeOrganizationConfiguration :: DescribeOrganizationConfiguration -> TestTree+requestDescribeOrganizationConfiguration =+  req+    "DescribeOrganizationConfiguration"+    "fixture/DescribeOrganizationConfiguration.yaml"++requestDisableMacie :: DisableMacie -> TestTree+requestDisableMacie =+  req+    "DisableMacie"+    "fixture/DisableMacie.yaml"++requestDisableOrganizationAdminAccount :: DisableOrganizationAdminAccount -> TestTree+requestDisableOrganizationAdminAccount =+  req+    "DisableOrganizationAdminAccount"+    "fixture/DisableOrganizationAdminAccount.yaml"++requestDisassociateFromAdministratorAccount :: DisassociateFromAdministratorAccount -> TestTree+requestDisassociateFromAdministratorAccount =+  req+    "DisassociateFromAdministratorAccount"+    "fixture/DisassociateFromAdministratorAccount.yaml"++requestDisassociateFromMasterAccount :: DisassociateFromMasterAccount -> TestTree+requestDisassociateFromMasterAccount =+  req+    "DisassociateFromMasterAccount"+    "fixture/DisassociateFromMasterAccount.yaml"++requestDisassociateMember :: DisassociateMember -> TestTree+requestDisassociateMember =+  req+    "DisassociateMember"+    "fixture/DisassociateMember.yaml"++requestEnableMacie :: EnableMacie -> TestTree+requestEnableMacie =+  req+    "EnableMacie"+    "fixture/EnableMacie.yaml"++requestEnableOrganizationAdminAccount :: EnableOrganizationAdminAccount -> TestTree+requestEnableOrganizationAdminAccount =+  req+    "EnableOrganizationAdminAccount"+    "fixture/EnableOrganizationAdminAccount.yaml"++requestGetAdministratorAccount :: GetAdministratorAccount -> TestTree+requestGetAdministratorAccount =+  req+    "GetAdministratorAccount"+    "fixture/GetAdministratorAccount.yaml"++requestGetAllowList :: GetAllowList -> TestTree+requestGetAllowList =+  req+    "GetAllowList"+    "fixture/GetAllowList.yaml"++requestGetAutomatedDiscoveryConfiguration :: GetAutomatedDiscoveryConfiguration -> TestTree+requestGetAutomatedDiscoveryConfiguration =+  req+    "GetAutomatedDiscoveryConfiguration"+    "fixture/GetAutomatedDiscoveryConfiguration.yaml"++requestGetBucketStatistics :: GetBucketStatistics -> TestTree+requestGetBucketStatistics =+  req+    "GetBucketStatistics"+    "fixture/GetBucketStatistics.yaml"++requestGetClassificationExportConfiguration :: GetClassificationExportConfiguration -> TestTree+requestGetClassificationExportConfiguration =+  req+    "GetClassificationExportConfiguration"+    "fixture/GetClassificationExportConfiguration.yaml"++requestGetClassificationScope :: GetClassificationScope -> TestTree+requestGetClassificationScope =+  req+    "GetClassificationScope"+    "fixture/GetClassificationScope.yaml"++requestGetCustomDataIdentifier :: GetCustomDataIdentifier -> TestTree+requestGetCustomDataIdentifier =+  req+    "GetCustomDataIdentifier"+    "fixture/GetCustomDataIdentifier.yaml"++requestGetFindingStatistics :: GetFindingStatistics -> TestTree+requestGetFindingStatistics =+  req+    "GetFindingStatistics"+    "fixture/GetFindingStatistics.yaml"++requestGetFindings :: GetFindings -> TestTree+requestGetFindings =+  req+    "GetFindings"+    "fixture/GetFindings.yaml"++requestGetFindingsFilter :: GetFindingsFilter -> TestTree+requestGetFindingsFilter =+  req+    "GetFindingsFilter"+    "fixture/GetFindingsFilter.yaml"++requestGetFindingsPublicationConfiguration :: GetFindingsPublicationConfiguration -> TestTree+requestGetFindingsPublicationConfiguration =+  req+    "GetFindingsPublicationConfiguration"+    "fixture/GetFindingsPublicationConfiguration.yaml"++requestGetInvitationsCount :: GetInvitationsCount -> TestTree+requestGetInvitationsCount =+  req+    "GetInvitationsCount"+    "fixture/GetInvitationsCount.yaml"++requestGetMacieSession :: GetMacieSession -> TestTree+requestGetMacieSession =+  req+    "GetMacieSession"+    "fixture/GetMacieSession.yaml"++requestGetMasterAccount :: GetMasterAccount -> TestTree+requestGetMasterAccount =+  req+    "GetMasterAccount"+    "fixture/GetMasterAccount.yaml"++requestGetMember :: GetMember -> TestTree+requestGetMember =+  req+    "GetMember"+    "fixture/GetMember.yaml"++requestGetResourceProfile :: GetResourceProfile -> TestTree+requestGetResourceProfile =+  req+    "GetResourceProfile"+    "fixture/GetResourceProfile.yaml"++requestGetRevealConfiguration :: GetRevealConfiguration -> TestTree+requestGetRevealConfiguration =+  req+    "GetRevealConfiguration"+    "fixture/GetRevealConfiguration.yaml"++requestGetSensitiveDataOccurrences :: GetSensitiveDataOccurrences -> TestTree+requestGetSensitiveDataOccurrences =+  req+    "GetSensitiveDataOccurrences"+    "fixture/GetSensitiveDataOccurrences.yaml"++requestGetSensitiveDataOccurrencesAvailability :: GetSensitiveDataOccurrencesAvailability -> TestTree+requestGetSensitiveDataOccurrencesAvailability =+  req+    "GetSensitiveDataOccurrencesAvailability"+    "fixture/GetSensitiveDataOccurrencesAvailability.yaml"++requestGetSensitivityInspectionTemplate :: GetSensitivityInspectionTemplate -> TestTree+requestGetSensitivityInspectionTemplate =+  req+    "GetSensitivityInspectionTemplate"+    "fixture/GetSensitivityInspectionTemplate.yaml"++requestGetUsageStatistics :: GetUsageStatistics -> TestTree+requestGetUsageStatistics =+  req+    "GetUsageStatistics"+    "fixture/GetUsageStatistics.yaml"++requestGetUsageTotals :: GetUsageTotals -> TestTree+requestGetUsageTotals =+  req+    "GetUsageTotals"+    "fixture/GetUsageTotals.yaml"++requestListAllowLists :: ListAllowLists -> TestTree+requestListAllowLists =+  req+    "ListAllowLists"+    "fixture/ListAllowLists.yaml"++requestListClassificationJobs :: ListClassificationJobs -> TestTree+requestListClassificationJobs =+  req+    "ListClassificationJobs"+    "fixture/ListClassificationJobs.yaml"++requestListClassificationScopes :: ListClassificationScopes -> TestTree+requestListClassificationScopes =+  req+    "ListClassificationScopes"+    "fixture/ListClassificationScopes.yaml"++requestListCustomDataIdentifiers :: ListCustomDataIdentifiers -> TestTree+requestListCustomDataIdentifiers =+  req+    "ListCustomDataIdentifiers"+    "fixture/ListCustomDataIdentifiers.yaml"++requestListFindings :: ListFindings -> TestTree+requestListFindings =+  req+    "ListFindings"+    "fixture/ListFindings.yaml"++requestListFindingsFilters :: ListFindingsFilters -> TestTree+requestListFindingsFilters =+  req+    "ListFindingsFilters"+    "fixture/ListFindingsFilters.yaml"++requestListInvitations :: ListInvitations -> TestTree+requestListInvitations =+  req+    "ListInvitations"+    "fixture/ListInvitations.yaml"++requestListManagedDataIdentifiers :: ListManagedDataIdentifiers -> TestTree+requestListManagedDataIdentifiers =+  req+    "ListManagedDataIdentifiers"+    "fixture/ListManagedDataIdentifiers.yaml"++requestListMembers :: ListMembers -> TestTree+requestListMembers =+  req+    "ListMembers"+    "fixture/ListMembers.yaml"++requestListOrganizationAdminAccounts :: ListOrganizationAdminAccounts -> TestTree+requestListOrganizationAdminAccounts =+  req+    "ListOrganizationAdminAccounts"+    "fixture/ListOrganizationAdminAccounts.yaml"++requestListResourceProfileArtifacts :: ListResourceProfileArtifacts -> TestTree+requestListResourceProfileArtifacts =+  req+    "ListResourceProfileArtifacts"+    "fixture/ListResourceProfileArtifacts.yaml"++requestListResourceProfileDetections :: ListResourceProfileDetections -> TestTree+requestListResourceProfileDetections =+  req+    "ListResourceProfileDetections"+    "fixture/ListResourceProfileDetections.yaml"++requestListSensitivityInspectionTemplates :: ListSensitivityInspectionTemplates -> TestTree+requestListSensitivityInspectionTemplates =+  req+    "ListSensitivityInspectionTemplates"+    "fixture/ListSensitivityInspectionTemplates.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+  req+    "ListTagsForResource"+    "fixture/ListTagsForResource.yaml"++requestPutClassificationExportConfiguration :: PutClassificationExportConfiguration -> TestTree+requestPutClassificationExportConfiguration =+  req+    "PutClassificationExportConfiguration"+    "fixture/PutClassificationExportConfiguration.yaml"++requestPutFindingsPublicationConfiguration :: PutFindingsPublicationConfiguration -> TestTree+requestPutFindingsPublicationConfiguration =+  req+    "PutFindingsPublicationConfiguration"+    "fixture/PutFindingsPublicationConfiguration.yaml"++requestSearchResources :: SearchResources -> TestTree+requestSearchResources =+  req+    "SearchResources"+    "fixture/SearchResources.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+  req+    "TagResource"+    "fixture/TagResource.yaml"++requestTestCustomDataIdentifier :: TestCustomDataIdentifier -> TestTree+requestTestCustomDataIdentifier =+  req+    "TestCustomDataIdentifier"+    "fixture/TestCustomDataIdentifier.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+  req+    "UntagResource"+    "fixture/UntagResource.yaml"++requestUpdateAllowList :: UpdateAllowList -> TestTree+requestUpdateAllowList =+  req+    "UpdateAllowList"+    "fixture/UpdateAllowList.yaml"++requestUpdateAutomatedDiscoveryConfiguration :: UpdateAutomatedDiscoveryConfiguration -> TestTree+requestUpdateAutomatedDiscoveryConfiguration =+  req+    "UpdateAutomatedDiscoveryConfiguration"+    "fixture/UpdateAutomatedDiscoveryConfiguration.yaml"++requestUpdateClassificationJob :: UpdateClassificationJob -> TestTree+requestUpdateClassificationJob =+  req+    "UpdateClassificationJob"+    "fixture/UpdateClassificationJob.yaml"++requestUpdateClassificationScope :: UpdateClassificationScope -> TestTree+requestUpdateClassificationScope =+  req+    "UpdateClassificationScope"+    "fixture/UpdateClassificationScope.yaml"++requestUpdateFindingsFilter :: UpdateFindingsFilter -> TestTree+requestUpdateFindingsFilter =+  req+    "UpdateFindingsFilter"+    "fixture/UpdateFindingsFilter.yaml"++requestUpdateMacieSession :: UpdateMacieSession -> TestTree+requestUpdateMacieSession =+  req+    "UpdateMacieSession"+    "fixture/UpdateMacieSession.yaml"++requestUpdateMemberSession :: UpdateMemberSession -> TestTree+requestUpdateMemberSession =+  req+    "UpdateMemberSession"+    "fixture/UpdateMemberSession.yaml"++requestUpdateOrganizationConfiguration :: UpdateOrganizationConfiguration -> TestTree+requestUpdateOrganizationConfiguration =+  req+    "UpdateOrganizationConfiguration"+    "fixture/UpdateOrganizationConfiguration.yaml"++requestUpdateResourceProfile :: UpdateResourceProfile -> TestTree+requestUpdateResourceProfile =+  req+    "UpdateResourceProfile"+    "fixture/UpdateResourceProfile.yaml"++requestUpdateResourceProfileDetections :: UpdateResourceProfileDetections -> TestTree+requestUpdateResourceProfileDetections =+  req+    "UpdateResourceProfileDetections"+    "fixture/UpdateResourceProfileDetections.yaml"++requestUpdateRevealConfiguration :: UpdateRevealConfiguration -> TestTree+requestUpdateRevealConfiguration =+  req+    "UpdateRevealConfiguration"+    "fixture/UpdateRevealConfiguration.yaml"++requestUpdateSensitivityInspectionTemplate :: UpdateSensitivityInspectionTemplate -> TestTree+requestUpdateSensitivityInspectionTemplate =+  req+    "UpdateSensitivityInspectionTemplate"+    "fixture/UpdateSensitivityInspectionTemplate.yaml"++-- Responses++responseAcceptInvitation :: AcceptInvitationResponse -> TestTree+responseAcceptInvitation =+  res+    "AcceptInvitationResponse"+    "fixture/AcceptInvitationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy AcceptInvitation)++responseBatchGetCustomDataIdentifiers :: BatchGetCustomDataIdentifiersResponse -> TestTree+responseBatchGetCustomDataIdentifiers =+  res+    "BatchGetCustomDataIdentifiersResponse"+    "fixture/BatchGetCustomDataIdentifiersResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy BatchGetCustomDataIdentifiers)++responseCreateAllowList :: CreateAllowListResponse -> TestTree+responseCreateAllowList =+  res+    "CreateAllowListResponse"+    "fixture/CreateAllowListResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateAllowList)++responseCreateClassificationJob :: CreateClassificationJobResponse -> TestTree+responseCreateClassificationJob =+  res+    "CreateClassificationJobResponse"+    "fixture/CreateClassificationJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateClassificationJob)++responseCreateCustomDataIdentifier :: CreateCustomDataIdentifierResponse -> TestTree+responseCreateCustomDataIdentifier =+  res+    "CreateCustomDataIdentifierResponse"+    "fixture/CreateCustomDataIdentifierResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateCustomDataIdentifier)++responseCreateFindingsFilter :: CreateFindingsFilterResponse -> TestTree+responseCreateFindingsFilter =+  res+    "CreateFindingsFilterResponse"+    "fixture/CreateFindingsFilterResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateFindingsFilter)++responseCreateInvitations :: CreateInvitationsResponse -> TestTree+responseCreateInvitations =+  res+    "CreateInvitationsResponse"+    "fixture/CreateInvitationsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateInvitations)++responseCreateMember :: CreateMemberResponse -> TestTree+responseCreateMember =+  res+    "CreateMemberResponse"+    "fixture/CreateMemberResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateMember)++responseCreateSampleFindings :: CreateSampleFindingsResponse -> TestTree+responseCreateSampleFindings =+  res+    "CreateSampleFindingsResponse"+    "fixture/CreateSampleFindingsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateSampleFindings)++responseDeclineInvitations :: DeclineInvitationsResponse -> TestTree+responseDeclineInvitations =+  res+    "DeclineInvitationsResponse"+    "fixture/DeclineInvitationsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeclineInvitations)++responseDeleteAllowList :: DeleteAllowListResponse -> TestTree+responseDeleteAllowList =+  res+    "DeleteAllowListResponse"+    "fixture/DeleteAllowListResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteAllowList)++responseDeleteCustomDataIdentifier :: DeleteCustomDataIdentifierResponse -> TestTree+responseDeleteCustomDataIdentifier =+  res+    "DeleteCustomDataIdentifierResponse"+    "fixture/DeleteCustomDataIdentifierResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteCustomDataIdentifier)++responseDeleteFindingsFilter :: DeleteFindingsFilterResponse -> TestTree+responseDeleteFindingsFilter =+  res+    "DeleteFindingsFilterResponse"+    "fixture/DeleteFindingsFilterResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteFindingsFilter)++responseDeleteInvitations :: DeleteInvitationsResponse -> TestTree+responseDeleteInvitations =+  res+    "DeleteInvitationsResponse"+    "fixture/DeleteInvitationsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteInvitations)++responseDeleteMember :: DeleteMemberResponse -> TestTree+responseDeleteMember =+  res+    "DeleteMemberResponse"+    "fixture/DeleteMemberResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteMember)++responseDescribeBuckets :: DescribeBucketsResponse -> TestTree+responseDescribeBuckets =+  res+    "DescribeBucketsResponse"+    "fixture/DescribeBucketsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeBuckets)++responseDescribeClassificationJob :: DescribeClassificationJobResponse -> TestTree+responseDescribeClassificationJob =+  res+    "DescribeClassificationJobResponse"+    "fixture/DescribeClassificationJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeClassificationJob)++responseDescribeOrganizationConfiguration :: DescribeOrganizationConfigurationResponse -> TestTree+responseDescribeOrganizationConfiguration =+  res+    "DescribeOrganizationConfigurationResponse"+    "fixture/DescribeOrganizationConfigurationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeOrganizationConfiguration)++responseDisableMacie :: DisableMacieResponse -> TestTree+responseDisableMacie =+  res+    "DisableMacieResponse"+    "fixture/DisableMacieResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DisableMacie)++responseDisableOrganizationAdminAccount :: DisableOrganizationAdminAccountResponse -> TestTree+responseDisableOrganizationAdminAccount =+  res+    "DisableOrganizationAdminAccountResponse"+    "fixture/DisableOrganizationAdminAccountResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DisableOrganizationAdminAccount)++responseDisassociateFromAdministratorAccount :: DisassociateFromAdministratorAccountResponse -> TestTree+responseDisassociateFromAdministratorAccount =+  res+    "DisassociateFromAdministratorAccountResponse"+    "fixture/DisassociateFromAdministratorAccountResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DisassociateFromAdministratorAccount)++responseDisassociateFromMasterAccount :: DisassociateFromMasterAccountResponse -> TestTree+responseDisassociateFromMasterAccount =+  res+    "DisassociateFromMasterAccountResponse"+    "fixture/DisassociateFromMasterAccountResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DisassociateFromMasterAccount)++responseDisassociateMember :: DisassociateMemberResponse -> TestTree+responseDisassociateMember =+  res+    "DisassociateMemberResponse"+    "fixture/DisassociateMemberResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DisassociateMember)++responseEnableMacie :: EnableMacieResponse -> TestTree+responseEnableMacie =+  res+    "EnableMacieResponse"+    "fixture/EnableMacieResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy EnableMacie)++responseEnableOrganizationAdminAccount :: EnableOrganizationAdminAccountResponse -> TestTree+responseEnableOrganizationAdminAccount =+  res+    "EnableOrganizationAdminAccountResponse"+    "fixture/EnableOrganizationAdminAccountResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy EnableOrganizationAdminAccount)++responseGetAdministratorAccount :: GetAdministratorAccountResponse -> TestTree+responseGetAdministratorAccount =+  res+    "GetAdministratorAccountResponse"+    "fixture/GetAdministratorAccountResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetAdministratorAccount)++responseGetAllowList :: GetAllowListResponse -> TestTree+responseGetAllowList =+  res+    "GetAllowListResponse"+    "fixture/GetAllowListResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetAllowList)++responseGetAutomatedDiscoveryConfiguration :: GetAutomatedDiscoveryConfigurationResponse -> TestTree+responseGetAutomatedDiscoveryConfiguration =+  res+    "GetAutomatedDiscoveryConfigurationResponse"+    "fixture/GetAutomatedDiscoveryConfigurationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetAutomatedDiscoveryConfiguration)++responseGetBucketStatistics :: GetBucketStatisticsResponse -> TestTree+responseGetBucketStatistics =+  res+    "GetBucketStatisticsResponse"+    "fixture/GetBucketStatisticsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetBucketStatistics)++responseGetClassificationExportConfiguration :: GetClassificationExportConfigurationResponse -> TestTree+responseGetClassificationExportConfiguration =+  res+    "GetClassificationExportConfigurationResponse"+    "fixture/GetClassificationExportConfigurationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetClassificationExportConfiguration)++responseGetClassificationScope :: GetClassificationScopeResponse -> TestTree+responseGetClassificationScope =+  res+    "GetClassificationScopeResponse"+    "fixture/GetClassificationScopeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetClassificationScope)++responseGetCustomDataIdentifier :: GetCustomDataIdentifierResponse -> TestTree+responseGetCustomDataIdentifier =+  res+    "GetCustomDataIdentifierResponse"+    "fixture/GetCustomDataIdentifierResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetCustomDataIdentifier)++responseGetFindingStatistics :: GetFindingStatisticsResponse -> TestTree+responseGetFindingStatistics =+  res+    "GetFindingStatisticsResponse"+    "fixture/GetFindingStatisticsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetFindingStatistics)++responseGetFindings :: GetFindingsResponse -> TestTree+responseGetFindings =+  res+    "GetFindingsResponse"+    "fixture/GetFindingsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetFindings)++responseGetFindingsFilter :: GetFindingsFilterResponse -> TestTree+responseGetFindingsFilter =+  res+    "GetFindingsFilterResponse"+    "fixture/GetFindingsFilterResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetFindingsFilter)++responseGetFindingsPublicationConfiguration :: GetFindingsPublicationConfigurationResponse -> TestTree+responseGetFindingsPublicationConfiguration =+  res+    "GetFindingsPublicationConfigurationResponse"+    "fixture/GetFindingsPublicationConfigurationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetFindingsPublicationConfiguration)++responseGetInvitationsCount :: GetInvitationsCountResponse -> TestTree+responseGetInvitationsCount =+  res+    "GetInvitationsCountResponse"+    "fixture/GetInvitationsCountResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetInvitationsCount)++responseGetMacieSession :: GetMacieSessionResponse -> TestTree+responseGetMacieSession =+  res+    "GetMacieSessionResponse"+    "fixture/GetMacieSessionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetMacieSession)++responseGetMasterAccount :: GetMasterAccountResponse -> TestTree+responseGetMasterAccount =+  res+    "GetMasterAccountResponse"+    "fixture/GetMasterAccountResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetMasterAccount)++responseGetMember :: GetMemberResponse -> TestTree+responseGetMember =+  res+    "GetMemberResponse"+    "fixture/GetMemberResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetMember)++responseGetResourceProfile :: GetResourceProfileResponse -> TestTree+responseGetResourceProfile =+  res+    "GetResourceProfileResponse"+    "fixture/GetResourceProfileResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetResourceProfile)++responseGetRevealConfiguration :: GetRevealConfigurationResponse -> TestTree+responseGetRevealConfiguration =+  res+    "GetRevealConfigurationResponse"+    "fixture/GetRevealConfigurationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetRevealConfiguration)++responseGetSensitiveDataOccurrences :: GetSensitiveDataOccurrencesResponse -> TestTree+responseGetSensitiveDataOccurrences =+  res+    "GetSensitiveDataOccurrencesResponse"+    "fixture/GetSensitiveDataOccurrencesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetSensitiveDataOccurrences)++responseGetSensitiveDataOccurrencesAvailability :: GetSensitiveDataOccurrencesAvailabilityResponse -> TestTree+responseGetSensitiveDataOccurrencesAvailability =+  res+    "GetSensitiveDataOccurrencesAvailabilityResponse"+    "fixture/GetSensitiveDataOccurrencesAvailabilityResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetSensitiveDataOccurrencesAvailability)++responseGetSensitivityInspectionTemplate :: GetSensitivityInspectionTemplateResponse -> TestTree+responseGetSensitivityInspectionTemplate =+  res+    "GetSensitivityInspectionTemplateResponse"+    "fixture/GetSensitivityInspectionTemplateResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetSensitivityInspectionTemplate)++responseGetUsageStatistics :: GetUsageStatisticsResponse -> TestTree+responseGetUsageStatistics =+  res+    "GetUsageStatisticsResponse"+    "fixture/GetUsageStatisticsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetUsageStatistics)++responseGetUsageTotals :: GetUsageTotalsResponse -> TestTree+responseGetUsageTotals =+  res+    "GetUsageTotalsResponse"+    "fixture/GetUsageTotalsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetUsageTotals)++responseListAllowLists :: ListAllowListsResponse -> TestTree+responseListAllowLists =+  res+    "ListAllowListsResponse"+    "fixture/ListAllowListsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListAllowLists)++responseListClassificationJobs :: ListClassificationJobsResponse -> TestTree+responseListClassificationJobs =+  res+    "ListClassificationJobsResponse"+    "fixture/ListClassificationJobsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListClassificationJobs)++responseListClassificationScopes :: ListClassificationScopesResponse -> TestTree+responseListClassificationScopes =+  res+    "ListClassificationScopesResponse"+    "fixture/ListClassificationScopesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListClassificationScopes)++responseListCustomDataIdentifiers :: ListCustomDataIdentifiersResponse -> TestTree+responseListCustomDataIdentifiers =+  res+    "ListCustomDataIdentifiersResponse"+    "fixture/ListCustomDataIdentifiersResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListCustomDataIdentifiers)++responseListFindings :: ListFindingsResponse -> TestTree+responseListFindings =+  res+    "ListFindingsResponse"+    "fixture/ListFindingsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListFindings)++responseListFindingsFilters :: ListFindingsFiltersResponse -> TestTree+responseListFindingsFilters =+  res+    "ListFindingsFiltersResponse"+    "fixture/ListFindingsFiltersResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListFindingsFilters)++responseListInvitations :: ListInvitationsResponse -> TestTree+responseListInvitations =+  res+    "ListInvitationsResponse"+    "fixture/ListInvitationsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListInvitations)++responseListManagedDataIdentifiers :: ListManagedDataIdentifiersResponse -> TestTree+responseListManagedDataIdentifiers =+  res+    "ListManagedDataIdentifiersResponse"+    "fixture/ListManagedDataIdentifiersResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListManagedDataIdentifiers)++responseListMembers :: ListMembersResponse -> TestTree+responseListMembers =+  res+    "ListMembersResponse"+    "fixture/ListMembersResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListMembers)++responseListOrganizationAdminAccounts :: ListOrganizationAdminAccountsResponse -> TestTree+responseListOrganizationAdminAccounts =+  res+    "ListOrganizationAdminAccountsResponse"+    "fixture/ListOrganizationAdminAccountsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListOrganizationAdminAccounts)++responseListResourceProfileArtifacts :: ListResourceProfileArtifactsResponse -> TestTree+responseListResourceProfileArtifacts =+  res+    "ListResourceProfileArtifactsResponse"+    "fixture/ListResourceProfileArtifactsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListResourceProfileArtifacts)++responseListResourceProfileDetections :: ListResourceProfileDetectionsResponse -> TestTree+responseListResourceProfileDetections =+  res+    "ListResourceProfileDetectionsResponse"+    "fixture/ListResourceProfileDetectionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListResourceProfileDetections)++responseListSensitivityInspectionTemplates :: ListSensitivityInspectionTemplatesResponse -> TestTree+responseListSensitivityInspectionTemplates =+  res+    "ListSensitivityInspectionTemplatesResponse"+    "fixture/ListSensitivityInspectionTemplatesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListSensitivityInspectionTemplates)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+  res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responsePutClassificationExportConfiguration :: PutClassificationExportConfigurationResponse -> TestTree+responsePutClassificationExportConfiguration =+  res+    "PutClassificationExportConfigurationResponse"+    "fixture/PutClassificationExportConfigurationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy PutClassificationExportConfiguration)++responsePutFindingsPublicationConfiguration :: PutFindingsPublicationConfigurationResponse -> TestTree+responsePutFindingsPublicationConfiguration =+  res+    "PutFindingsPublicationConfigurationResponse"+    "fixture/PutFindingsPublicationConfigurationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy PutFindingsPublicationConfiguration)++responseSearchResources :: SearchResourcesResponse -> TestTree+responseSearchResources =+  res+    "SearchResourcesResponse"+    "fixture/SearchResourcesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy SearchResources)++responseTagResource :: TagResourceResponse -> TestTree+responseTagResource =+  res+    "TagResourceResponse"+    "fixture/TagResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy TagResource)++responseTestCustomDataIdentifier :: TestCustomDataIdentifierResponse -> TestTree+responseTestCustomDataIdentifier =+  res+    "TestCustomDataIdentifierResponse"+    "fixture/TestCustomDataIdentifierResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy TestCustomDataIdentifier)++responseUntagResource :: UntagResourceResponse -> TestTree+responseUntagResource =+  res+    "UntagResourceResponse"+    "fixture/UntagResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UntagResource)++responseUpdateAllowList :: UpdateAllowListResponse -> TestTree+responseUpdateAllowList =+  res+    "UpdateAllowListResponse"+    "fixture/UpdateAllowListResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateAllowList)++responseUpdateAutomatedDiscoveryConfiguration :: UpdateAutomatedDiscoveryConfigurationResponse -> TestTree+responseUpdateAutomatedDiscoveryConfiguration =+  res+    "UpdateAutomatedDiscoveryConfigurationResponse"+    "fixture/UpdateAutomatedDiscoveryConfigurationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateAutomatedDiscoveryConfiguration)++responseUpdateClassificationJob :: UpdateClassificationJobResponse -> TestTree+responseUpdateClassificationJob =+  res+    "UpdateClassificationJobResponse"+    "fixture/UpdateClassificationJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateClassificationJob)++responseUpdateClassificationScope :: UpdateClassificationScopeResponse -> TestTree+responseUpdateClassificationScope =+  res+    "UpdateClassificationScopeResponse"+    "fixture/UpdateClassificationScopeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateClassificationScope)++responseUpdateFindingsFilter :: UpdateFindingsFilterResponse -> TestTree+responseUpdateFindingsFilter =+  res+    "UpdateFindingsFilterResponse"+    "fixture/UpdateFindingsFilterResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateFindingsFilter)++responseUpdateMacieSession :: UpdateMacieSessionResponse -> TestTree+responseUpdateMacieSession =+  res+    "UpdateMacieSessionResponse"+    "fixture/UpdateMacieSessionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateMacieSession)++responseUpdateMemberSession :: UpdateMemberSessionResponse -> TestTree+responseUpdateMemberSession =+  res+    "UpdateMemberSessionResponse"+    "fixture/UpdateMemberSessionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateMemberSession)++responseUpdateOrganizationConfiguration :: UpdateOrganizationConfigurationResponse -> TestTree+responseUpdateOrganizationConfiguration =+  res+    "UpdateOrganizationConfigurationResponse"+    "fixture/UpdateOrganizationConfigurationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateOrganizationConfiguration)++responseUpdateResourceProfile :: UpdateResourceProfileResponse -> TestTree+responseUpdateResourceProfile =+  res+    "UpdateResourceProfileResponse"+    "fixture/UpdateResourceProfileResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateResourceProfile)++responseUpdateResourceProfileDetections :: UpdateResourceProfileDetectionsResponse -> TestTree+responseUpdateResourceProfileDetections =+  res+    "UpdateResourceProfileDetectionsResponse"+    "fixture/UpdateResourceProfileDetectionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateResourceProfileDetections)++responseUpdateRevealConfiguration :: UpdateRevealConfigurationResponse -> TestTree+responseUpdateRevealConfiguration =+  res+    "UpdateRevealConfigurationResponse"+    "fixture/UpdateRevealConfigurationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateRevealConfiguration)++responseUpdateSensitivityInspectionTemplate :: UpdateSensitivityInspectionTemplateResponse -> TestTree+responseUpdateSensitivityInspectionTemplate =+  res+    "UpdateSensitivityInspectionTemplateResponse"+    "fixture/UpdateSensitivityInspectionTemplateResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateSensitivityInspectionTemplate)
+ test/Test/Amazonka/MacieV2.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.MacieV2+-- Copyright   : (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.MacieV2+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/MacieV2/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.MacieV2.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.MacieV2.Internal where