packages feed

amazonka-frauddetector (empty) → 2.0

raw patch · 298 files changed

+29490/−0 lines, 298 filesdep +amazonka-coredep +amazonka-frauddetectordep +amazonka-test

Dependencies added: amazonka-core, amazonka-frauddetector, 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 Fraud Detector SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2019-11-15@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-frauddetector)+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.FraudDetector](http://hackage.haskell.org/package/amazonka-frauddetector/docs/Amazonka-FraudDetector.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-frauddetector` 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-frauddetector.cabal view
@@ -0,0 +1,233 @@+cabal-version:      2.2+name:               amazonka-frauddetector+version:            2.0+synopsis:           Amazon Fraud Detector 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 @2019-11-15@ 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.FraudDetector.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.FraudDetector" 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-frauddetector++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.FraudDetector+    Amazonka.FraudDetector.BatchCreateVariable+    Amazonka.FraudDetector.BatchGetVariable+    Amazonka.FraudDetector.CancelBatchImportJob+    Amazonka.FraudDetector.CancelBatchPredictionJob+    Amazonka.FraudDetector.CreateBatchImportJob+    Amazonka.FraudDetector.CreateBatchPredictionJob+    Amazonka.FraudDetector.CreateDetectorVersion+    Amazonka.FraudDetector.CreateModel+    Amazonka.FraudDetector.CreateModelVersion+    Amazonka.FraudDetector.CreateRule+    Amazonka.FraudDetector.CreateVariable+    Amazonka.FraudDetector.DeleteBatchImportJob+    Amazonka.FraudDetector.DeleteBatchPredictionJob+    Amazonka.FraudDetector.DeleteDetector+    Amazonka.FraudDetector.DeleteDetectorVersion+    Amazonka.FraudDetector.DeleteEntityType+    Amazonka.FraudDetector.DeleteEvent+    Amazonka.FraudDetector.DeleteEventsByEventType+    Amazonka.FraudDetector.DeleteEventType+    Amazonka.FraudDetector.DeleteExternalModel+    Amazonka.FraudDetector.DeleteLabel+    Amazonka.FraudDetector.DeleteModel+    Amazonka.FraudDetector.DeleteModelVersion+    Amazonka.FraudDetector.DeleteOutcome+    Amazonka.FraudDetector.DeleteRule+    Amazonka.FraudDetector.DeleteVariable+    Amazonka.FraudDetector.DescribeDetector+    Amazonka.FraudDetector.DescribeModelVersions+    Amazonka.FraudDetector.GetBatchImportJobs+    Amazonka.FraudDetector.GetBatchPredictionJobs+    Amazonka.FraudDetector.GetDeleteEventsByEventTypeStatus+    Amazonka.FraudDetector.GetDetectors+    Amazonka.FraudDetector.GetDetectorVersion+    Amazonka.FraudDetector.GetEntityTypes+    Amazonka.FraudDetector.GetEvent+    Amazonka.FraudDetector.GetEventPrediction+    Amazonka.FraudDetector.GetEventPredictionMetadata+    Amazonka.FraudDetector.GetEventTypes+    Amazonka.FraudDetector.GetExternalModels+    Amazonka.FraudDetector.GetKMSEncryptionKey+    Amazonka.FraudDetector.GetLabels+    Amazonka.FraudDetector.GetModels+    Amazonka.FraudDetector.GetModelVersion+    Amazonka.FraudDetector.GetOutcomes+    Amazonka.FraudDetector.GetRules+    Amazonka.FraudDetector.GetVariables+    Amazonka.FraudDetector.Lens+    Amazonka.FraudDetector.ListEventPredictions+    Amazonka.FraudDetector.ListTagsForResource+    Amazonka.FraudDetector.PutDetector+    Amazonka.FraudDetector.PutEntityType+    Amazonka.FraudDetector.PutEventType+    Amazonka.FraudDetector.PutExternalModel+    Amazonka.FraudDetector.PutKMSEncryptionKey+    Amazonka.FraudDetector.PutLabel+    Amazonka.FraudDetector.PutOutcome+    Amazonka.FraudDetector.SendEvent+    Amazonka.FraudDetector.TagResource+    Amazonka.FraudDetector.Types+    Amazonka.FraudDetector.Types.AggregatedLogOddsMetric+    Amazonka.FraudDetector.Types.AggregatedVariablesImpactExplanation+    Amazonka.FraudDetector.Types.AggregatedVariablesImportanceMetrics+    Amazonka.FraudDetector.Types.AsyncJobStatus+    Amazonka.FraudDetector.Types.ATIMetricDataPoint+    Amazonka.FraudDetector.Types.ATIModelPerformance+    Amazonka.FraudDetector.Types.ATITrainingMetricsValue+    Amazonka.FraudDetector.Types.BatchCreateVariableError+    Amazonka.FraudDetector.Types.BatchGetVariableError+    Amazonka.FraudDetector.Types.BatchImport+    Amazonka.FraudDetector.Types.BatchPrediction+    Amazonka.FraudDetector.Types.DataSource+    Amazonka.FraudDetector.Types.DataType+    Amazonka.FraudDetector.Types.DataValidationMetrics+    Amazonka.FraudDetector.Types.Detector+    Amazonka.FraudDetector.Types.DetectorVersionStatus+    Amazonka.FraudDetector.Types.DetectorVersionSummary+    Amazonka.FraudDetector.Types.Entity+    Amazonka.FraudDetector.Types.EntityType+    Amazonka.FraudDetector.Types.EvaluatedExternalModel+    Amazonka.FraudDetector.Types.EvaluatedModelVersion+    Amazonka.FraudDetector.Types.EvaluatedRule+    Amazonka.FraudDetector.Types.Event+    Amazonka.FraudDetector.Types.EventIngestion+    Amazonka.FraudDetector.Types.EventPredictionSummary+    Amazonka.FraudDetector.Types.EventType+    Amazonka.FraudDetector.Types.EventVariableSummary+    Amazonka.FraudDetector.Types.ExternalEventsDetail+    Amazonka.FraudDetector.Types.ExternalModel+    Amazonka.FraudDetector.Types.ExternalModelOutputs+    Amazonka.FraudDetector.Types.ExternalModelSummary+    Amazonka.FraudDetector.Types.FieldValidationMessage+    Amazonka.FraudDetector.Types.FileValidationMessage+    Amazonka.FraudDetector.Types.FilterCondition+    Amazonka.FraudDetector.Types.IngestedEventsDetail+    Amazonka.FraudDetector.Types.IngestedEventStatistics+    Amazonka.FraudDetector.Types.IngestedEventsTimeWindow+    Amazonka.FraudDetector.Types.KMSKey+    Amazonka.FraudDetector.Types.Label+    Amazonka.FraudDetector.Types.LabelSchema+    Amazonka.FraudDetector.Types.Language+    Amazonka.FraudDetector.Types.LogOddsMetric+    Amazonka.FraudDetector.Types.MetricDataPoint+    Amazonka.FraudDetector.Types.Model+    Amazonka.FraudDetector.Types.ModelEndpointDataBlob+    Amazonka.FraudDetector.Types.ModelEndpointStatus+    Amazonka.FraudDetector.Types.ModelInputConfiguration+    Amazonka.FraudDetector.Types.ModelInputDataFormat+    Amazonka.FraudDetector.Types.ModelOutputConfiguration+    Amazonka.FraudDetector.Types.ModelOutputDataFormat+    Amazonka.FraudDetector.Types.ModelScores+    Amazonka.FraudDetector.Types.ModelSource+    Amazonka.FraudDetector.Types.ModelTypeEnum+    Amazonka.FraudDetector.Types.ModelVersion+    Amazonka.FraudDetector.Types.ModelVersionDetail+    Amazonka.FraudDetector.Types.ModelVersionEvaluation+    Amazonka.FraudDetector.Types.ModelVersionStatus+    Amazonka.FraudDetector.Types.OFIMetricDataPoint+    Amazonka.FraudDetector.Types.OFIModelPerformance+    Amazonka.FraudDetector.Types.OFITrainingMetricsValue+    Amazonka.FraudDetector.Types.Outcome+    Amazonka.FraudDetector.Types.PredictionExplanations+    Amazonka.FraudDetector.Types.PredictionTimeRange+    Amazonka.FraudDetector.Types.Rule+    Amazonka.FraudDetector.Types.RuleDetail+    Amazonka.FraudDetector.Types.RuleExecutionMode+    Amazonka.FraudDetector.Types.RuleResult+    Amazonka.FraudDetector.Types.Tag+    Amazonka.FraudDetector.Types.TFIMetricDataPoint+    Amazonka.FraudDetector.Types.TFIModelPerformance+    Amazonka.FraudDetector.Types.TFITrainingMetricsValue+    Amazonka.FraudDetector.Types.TrainingDataSchema+    Amazonka.FraudDetector.Types.TrainingDataSourceEnum+    Amazonka.FraudDetector.Types.TrainingMetrics+    Amazonka.FraudDetector.Types.TrainingMetricsV2+    Amazonka.FraudDetector.Types.TrainingResult+    Amazonka.FraudDetector.Types.TrainingResultV2+    Amazonka.FraudDetector.Types.UnlabeledEventsTreatment+    Amazonka.FraudDetector.Types.Variable+    Amazonka.FraudDetector.Types.VariableEntry+    Amazonka.FraudDetector.Types.VariableImpactExplanation+    Amazonka.FraudDetector.Types.VariableImportanceMetrics+    Amazonka.FraudDetector.UntagResource+    Amazonka.FraudDetector.UpdateDetectorVersion+    Amazonka.FraudDetector.UpdateDetectorVersionMetadata+    Amazonka.FraudDetector.UpdateDetectorVersionStatus+    Amazonka.FraudDetector.UpdateEventLabel+    Amazonka.FraudDetector.UpdateModel+    Amazonka.FraudDetector.UpdateModelVersion+    Amazonka.FraudDetector.UpdateModelVersionStatus+    Amazonka.FraudDetector.UpdateRuleMetadata+    Amazonka.FraudDetector.UpdateRuleVersion+    Amazonka.FraudDetector.UpdateVariable+    Amazonka.FraudDetector.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-frauddetector-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.FraudDetector+    Test.Amazonka.FraudDetector.Internal+    Test.Amazonka.Gen.FraudDetector++  build-depends:+    , amazonka-core           >=2.0 && <2.1+    , amazonka-frauddetector+    , amazonka-test           >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/BatchCreateVariable.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/BatchCreateVariableResponse.proto view
+ fixture/BatchGetVariable.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/BatchGetVariableResponse.proto view
+ fixture/CancelBatchImportJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/CancelBatchImportJobResponse.proto view
+ fixture/CancelBatchPredictionJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/CancelBatchPredictionJobResponse.proto view
+ fixture/CreateBatchImportJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/CreateBatchImportJobResponse.proto view
+ fixture/CreateBatchPredictionJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/CreateBatchPredictionJobResponse.proto view
+ fixture/CreateDetectorVersion.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/CreateDetectorVersionResponse.proto view
+ fixture/CreateModel.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/CreateModelResponse.proto view
+ fixture/CreateModelVersion.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/CreateModelVersionResponse.proto view
+ fixture/CreateRule.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/CreateRuleResponse.proto view
+ fixture/CreateVariable.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/CreateVariableResponse.proto view
+ fixture/DeleteBatchImportJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/DeleteBatchImportJobResponse.proto view
+ fixture/DeleteBatchPredictionJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/DeleteBatchPredictionJobResponse.proto view
+ fixture/DeleteDetector.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/DeleteDetectorResponse.proto view
+ fixture/DeleteDetectorVersion.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/DeleteDetectorVersionResponse.proto view
+ fixture/DeleteEntityType.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/DeleteEntityTypeResponse.proto view
+ fixture/DeleteEvent.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/DeleteEventResponse.proto view
+ fixture/DeleteEventType.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/DeleteEventTypeResponse.proto view
+ fixture/DeleteEventsByEventType.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/DeleteEventsByEventTypeResponse.proto view
+ fixture/DeleteExternalModel.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/DeleteExternalModelResponse.proto view
+ fixture/DeleteLabel.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/DeleteLabelResponse.proto view
+ fixture/DeleteModel.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/DeleteModelResponse.proto view
+ fixture/DeleteModelVersion.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/DeleteModelVersionResponse.proto view
+ fixture/DeleteOutcome.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/DeleteOutcomeResponse.proto view
+ fixture/DeleteRule.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/DeleteRuleResponse.proto view
+ fixture/DeleteVariable.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/DeleteVariableResponse.proto view
+ fixture/DescribeDetector.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/DescribeDetectorResponse.proto view
+ fixture/DescribeModelVersions.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/DescribeModelVersionsResponse.proto view
+ fixture/GetBatchImportJobs.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/GetBatchImportJobsResponse.proto view
+ fixture/GetBatchPredictionJobs.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/GetBatchPredictionJobsResponse.proto view
+ fixture/GetDeleteEventsByEventTypeStatus.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/GetDeleteEventsByEventTypeStatusResponse.proto view
+ fixture/GetDetectorVersion.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/GetDetectorVersionResponse.proto view
+ fixture/GetDetectors.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/GetDetectorsResponse.proto view
+ fixture/GetEntityTypes.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/GetEntityTypesResponse.proto view
+ fixture/GetEvent.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/GetEventPrediction.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/GetEventPredictionMetadata.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/GetEventPredictionMetadataResponse.proto view
+ fixture/GetEventPredictionResponse.proto view
+ fixture/GetEventResponse.proto view
+ fixture/GetEventTypes.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/GetEventTypesResponse.proto view
+ fixture/GetExternalModels.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/GetExternalModelsResponse.proto view
+ fixture/GetKMSEncryptionKey.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/GetKMSEncryptionKeyResponse.proto view
+ fixture/GetLabels.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/GetLabelsResponse.proto view
+ fixture/GetModelVersion.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/GetModelVersionResponse.proto view
+ fixture/GetModels.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/GetModelsResponse.proto view
+ fixture/GetOutcomes.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/GetOutcomesResponse.proto view
+ fixture/GetRules.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/GetRulesResponse.proto view
+ fixture/GetVariables.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/GetVariablesResponse.proto view
+ fixture/ListEventPredictions.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/ListEventPredictionsResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/PutDetector.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/PutDetectorResponse.proto view
+ fixture/PutEntityType.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/PutEntityTypeResponse.proto view
+ fixture/PutEventType.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/PutEventTypeResponse.proto view
+ fixture/PutExternalModel.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/PutExternalModelResponse.proto view
+ fixture/PutKMSEncryptionKey.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/PutKMSEncryptionKeyResponse.proto view
+ fixture/PutLabel.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/PutLabelResponse.proto view
+ fixture/PutOutcome.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/PutOutcomeResponse.proto view
+ fixture/SendEvent.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/SendEventResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/TagResourceResponse.proto view
+ fixture/UntagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/UpdateDetectorVersion.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/UpdateDetectorVersionMetadata.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/UpdateDetectorVersionMetadataResponse.proto view
+ fixture/UpdateDetectorVersionResponse.proto view
+ fixture/UpdateDetectorVersionStatus.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/UpdateDetectorVersionStatusResponse.proto view
+ fixture/UpdateEventLabel.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/UpdateEventLabelResponse.proto view
+ fixture/UpdateModel.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/UpdateModelResponse.proto view
+ fixture/UpdateModelVersion.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/UpdateModelVersionResponse.proto view
+ fixture/UpdateModelVersionStatus.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/UpdateModelVersionStatusResponse.proto view
+ fixture/UpdateRuleMetadata.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/UpdateRuleMetadataResponse.proto view
+ fixture/UpdateRuleVersion.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/UpdateRuleVersionResponse.proto view
+ fixture/UpdateVariable.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/frauddetector/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  frauddetector.us-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/UpdateVariableResponse.proto view
+ gen/Amazonka/FraudDetector.hs view
@@ -0,0 +1,889 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.FraudDetector+-- 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 @2019-11-15@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- This is the Amazon Fraud Detector API Reference. This guide is for+-- developers who need detailed information about Amazon Fraud Detector API+-- actions, data types, and errors. For more information about Amazon Fraud+-- Detector features, see the+-- <https://docs.aws.amazon.com/frauddetector/latest/ug/ Amazon Fraud Detector User Guide>.+--+-- We provide the Query API as well as AWS software development kits (SDK)+-- for Amazon Fraud Detector in Java and Python programming languages.+--+-- The Amazon Fraud Detector Query API provides HTTPS requests that use the+-- HTTP verb GET or POST and a Query parameter @Action@. AWS SDK provides+-- libraries, sample code, tutorials, and other resources for software+-- developers who prefer to build applications using language-specific APIs+-- instead of submitting a request over HTTP or HTTPS. These libraries+-- provide basic functions that automatically take care of tasks such as+-- cryptographically signing your requests, retrying requests, and handling+-- error responses, so that it is easier for you to get started. For more+-- information about the AWS SDKs, see+-- <https://docs.aws.amazon.com/https:/aws.amazon.com/tools/ Tools to build on AWS>.+module Amazonka.FraudDetector+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** AccessDeniedException+    _AccessDeniedException,++    -- ** ConflictException+    _ConflictException,++    -- ** InternalServerException+    _InternalServerException,++    -- ** ResourceNotFoundException+    _ResourceNotFoundException,++    -- ** ResourceUnavailableException+    _ResourceUnavailableException,++    -- ** ThrottlingException+    _ThrottlingException,++    -- ** ValidationException+    _ValidationException,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** BatchCreateVariable+    BatchCreateVariable (BatchCreateVariable'),+    newBatchCreateVariable,+    BatchCreateVariableResponse (BatchCreateVariableResponse'),+    newBatchCreateVariableResponse,++    -- ** BatchGetVariable+    BatchGetVariable (BatchGetVariable'),+    newBatchGetVariable,+    BatchGetVariableResponse (BatchGetVariableResponse'),+    newBatchGetVariableResponse,++    -- ** CancelBatchImportJob+    CancelBatchImportJob (CancelBatchImportJob'),+    newCancelBatchImportJob,+    CancelBatchImportJobResponse (CancelBatchImportJobResponse'),+    newCancelBatchImportJobResponse,++    -- ** CancelBatchPredictionJob+    CancelBatchPredictionJob (CancelBatchPredictionJob'),+    newCancelBatchPredictionJob,+    CancelBatchPredictionJobResponse (CancelBatchPredictionJobResponse'),+    newCancelBatchPredictionJobResponse,++    -- ** CreateBatchImportJob+    CreateBatchImportJob (CreateBatchImportJob'),+    newCreateBatchImportJob,+    CreateBatchImportJobResponse (CreateBatchImportJobResponse'),+    newCreateBatchImportJobResponse,++    -- ** CreateBatchPredictionJob+    CreateBatchPredictionJob (CreateBatchPredictionJob'),+    newCreateBatchPredictionJob,+    CreateBatchPredictionJobResponse (CreateBatchPredictionJobResponse'),+    newCreateBatchPredictionJobResponse,++    -- ** CreateDetectorVersion+    CreateDetectorVersion (CreateDetectorVersion'),+    newCreateDetectorVersion,+    CreateDetectorVersionResponse (CreateDetectorVersionResponse'),+    newCreateDetectorVersionResponse,++    -- ** CreateModel+    CreateModel (CreateModel'),+    newCreateModel,+    CreateModelResponse (CreateModelResponse'),+    newCreateModelResponse,++    -- ** CreateModelVersion+    CreateModelVersion (CreateModelVersion'),+    newCreateModelVersion,+    CreateModelVersionResponse (CreateModelVersionResponse'),+    newCreateModelVersionResponse,++    -- ** CreateRule+    CreateRule (CreateRule'),+    newCreateRule,+    CreateRuleResponse (CreateRuleResponse'),+    newCreateRuleResponse,++    -- ** CreateVariable+    CreateVariable (CreateVariable'),+    newCreateVariable,+    CreateVariableResponse (CreateVariableResponse'),+    newCreateVariableResponse,++    -- ** DeleteBatchImportJob+    DeleteBatchImportJob (DeleteBatchImportJob'),+    newDeleteBatchImportJob,+    DeleteBatchImportJobResponse (DeleteBatchImportJobResponse'),+    newDeleteBatchImportJobResponse,++    -- ** DeleteBatchPredictionJob+    DeleteBatchPredictionJob (DeleteBatchPredictionJob'),+    newDeleteBatchPredictionJob,+    DeleteBatchPredictionJobResponse (DeleteBatchPredictionJobResponse'),+    newDeleteBatchPredictionJobResponse,++    -- ** DeleteDetector+    DeleteDetector (DeleteDetector'),+    newDeleteDetector,+    DeleteDetectorResponse (DeleteDetectorResponse'),+    newDeleteDetectorResponse,++    -- ** DeleteDetectorVersion+    DeleteDetectorVersion (DeleteDetectorVersion'),+    newDeleteDetectorVersion,+    DeleteDetectorVersionResponse (DeleteDetectorVersionResponse'),+    newDeleteDetectorVersionResponse,++    -- ** DeleteEntityType+    DeleteEntityType (DeleteEntityType'),+    newDeleteEntityType,+    DeleteEntityTypeResponse (DeleteEntityTypeResponse'),+    newDeleteEntityTypeResponse,++    -- ** DeleteEvent+    DeleteEvent (DeleteEvent'),+    newDeleteEvent,+    DeleteEventResponse (DeleteEventResponse'),+    newDeleteEventResponse,++    -- ** DeleteEventType+    DeleteEventType (DeleteEventType'),+    newDeleteEventType,+    DeleteEventTypeResponse (DeleteEventTypeResponse'),+    newDeleteEventTypeResponse,++    -- ** DeleteEventsByEventType+    DeleteEventsByEventType (DeleteEventsByEventType'),+    newDeleteEventsByEventType,+    DeleteEventsByEventTypeResponse (DeleteEventsByEventTypeResponse'),+    newDeleteEventsByEventTypeResponse,++    -- ** DeleteExternalModel+    DeleteExternalModel (DeleteExternalModel'),+    newDeleteExternalModel,+    DeleteExternalModelResponse (DeleteExternalModelResponse'),+    newDeleteExternalModelResponse,++    -- ** DeleteLabel+    DeleteLabel (DeleteLabel'),+    newDeleteLabel,+    DeleteLabelResponse (DeleteLabelResponse'),+    newDeleteLabelResponse,++    -- ** DeleteModel+    DeleteModel (DeleteModel'),+    newDeleteModel,+    DeleteModelResponse (DeleteModelResponse'),+    newDeleteModelResponse,++    -- ** DeleteModelVersion+    DeleteModelVersion (DeleteModelVersion'),+    newDeleteModelVersion,+    DeleteModelVersionResponse (DeleteModelVersionResponse'),+    newDeleteModelVersionResponse,++    -- ** DeleteOutcome+    DeleteOutcome (DeleteOutcome'),+    newDeleteOutcome,+    DeleteOutcomeResponse (DeleteOutcomeResponse'),+    newDeleteOutcomeResponse,++    -- ** DeleteRule+    DeleteRule (DeleteRule'),+    newDeleteRule,+    DeleteRuleResponse (DeleteRuleResponse'),+    newDeleteRuleResponse,++    -- ** DeleteVariable+    DeleteVariable (DeleteVariable'),+    newDeleteVariable,+    DeleteVariableResponse (DeleteVariableResponse'),+    newDeleteVariableResponse,++    -- ** DescribeDetector+    DescribeDetector (DescribeDetector'),+    newDescribeDetector,+    DescribeDetectorResponse (DescribeDetectorResponse'),+    newDescribeDetectorResponse,++    -- ** DescribeModelVersions+    DescribeModelVersions (DescribeModelVersions'),+    newDescribeModelVersions,+    DescribeModelVersionsResponse (DescribeModelVersionsResponse'),+    newDescribeModelVersionsResponse,++    -- ** GetBatchImportJobs+    GetBatchImportJobs (GetBatchImportJobs'),+    newGetBatchImportJobs,+    GetBatchImportJobsResponse (GetBatchImportJobsResponse'),+    newGetBatchImportJobsResponse,++    -- ** GetBatchPredictionJobs+    GetBatchPredictionJobs (GetBatchPredictionJobs'),+    newGetBatchPredictionJobs,+    GetBatchPredictionJobsResponse (GetBatchPredictionJobsResponse'),+    newGetBatchPredictionJobsResponse,++    -- ** GetDeleteEventsByEventTypeStatus+    GetDeleteEventsByEventTypeStatus (GetDeleteEventsByEventTypeStatus'),+    newGetDeleteEventsByEventTypeStatus,+    GetDeleteEventsByEventTypeStatusResponse (GetDeleteEventsByEventTypeStatusResponse'),+    newGetDeleteEventsByEventTypeStatusResponse,++    -- ** GetDetectorVersion+    GetDetectorVersion (GetDetectorVersion'),+    newGetDetectorVersion,+    GetDetectorVersionResponse (GetDetectorVersionResponse'),+    newGetDetectorVersionResponse,++    -- ** GetDetectors+    GetDetectors (GetDetectors'),+    newGetDetectors,+    GetDetectorsResponse (GetDetectorsResponse'),+    newGetDetectorsResponse,++    -- ** GetEntityTypes+    GetEntityTypes (GetEntityTypes'),+    newGetEntityTypes,+    GetEntityTypesResponse (GetEntityTypesResponse'),+    newGetEntityTypesResponse,++    -- ** GetEvent+    GetEvent (GetEvent'),+    newGetEvent,+    GetEventResponse (GetEventResponse'),+    newGetEventResponse,++    -- ** GetEventPrediction+    GetEventPrediction (GetEventPrediction'),+    newGetEventPrediction,+    GetEventPredictionResponse (GetEventPredictionResponse'),+    newGetEventPredictionResponse,++    -- ** GetEventPredictionMetadata+    GetEventPredictionMetadata (GetEventPredictionMetadata'),+    newGetEventPredictionMetadata,+    GetEventPredictionMetadataResponse (GetEventPredictionMetadataResponse'),+    newGetEventPredictionMetadataResponse,++    -- ** GetEventTypes+    GetEventTypes (GetEventTypes'),+    newGetEventTypes,+    GetEventTypesResponse (GetEventTypesResponse'),+    newGetEventTypesResponse,++    -- ** GetExternalModels+    GetExternalModels (GetExternalModels'),+    newGetExternalModels,+    GetExternalModelsResponse (GetExternalModelsResponse'),+    newGetExternalModelsResponse,++    -- ** GetKMSEncryptionKey+    GetKMSEncryptionKey (GetKMSEncryptionKey'),+    newGetKMSEncryptionKey,+    GetKMSEncryptionKeyResponse (GetKMSEncryptionKeyResponse'),+    newGetKMSEncryptionKeyResponse,++    -- ** GetLabels+    GetLabels (GetLabels'),+    newGetLabels,+    GetLabelsResponse (GetLabelsResponse'),+    newGetLabelsResponse,++    -- ** GetModelVersion+    GetModelVersion (GetModelVersion'),+    newGetModelVersion,+    GetModelVersionResponse (GetModelVersionResponse'),+    newGetModelVersionResponse,++    -- ** GetModels+    GetModels (GetModels'),+    newGetModels,+    GetModelsResponse (GetModelsResponse'),+    newGetModelsResponse,++    -- ** GetOutcomes+    GetOutcomes (GetOutcomes'),+    newGetOutcomes,+    GetOutcomesResponse (GetOutcomesResponse'),+    newGetOutcomesResponse,++    -- ** GetRules+    GetRules (GetRules'),+    newGetRules,+    GetRulesResponse (GetRulesResponse'),+    newGetRulesResponse,++    -- ** GetVariables+    GetVariables (GetVariables'),+    newGetVariables,+    GetVariablesResponse (GetVariablesResponse'),+    newGetVariablesResponse,++    -- ** ListEventPredictions+    ListEventPredictions (ListEventPredictions'),+    newListEventPredictions,+    ListEventPredictionsResponse (ListEventPredictionsResponse'),+    newListEventPredictionsResponse,++    -- ** ListTagsForResource+    ListTagsForResource (ListTagsForResource'),+    newListTagsForResource,+    ListTagsForResourceResponse (ListTagsForResourceResponse'),+    newListTagsForResourceResponse,++    -- ** PutDetector+    PutDetector (PutDetector'),+    newPutDetector,+    PutDetectorResponse (PutDetectorResponse'),+    newPutDetectorResponse,++    -- ** PutEntityType+    PutEntityType (PutEntityType'),+    newPutEntityType,+    PutEntityTypeResponse (PutEntityTypeResponse'),+    newPutEntityTypeResponse,++    -- ** PutEventType+    PutEventType (PutEventType'),+    newPutEventType,+    PutEventTypeResponse (PutEventTypeResponse'),+    newPutEventTypeResponse,++    -- ** PutExternalModel+    PutExternalModel (PutExternalModel'),+    newPutExternalModel,+    PutExternalModelResponse (PutExternalModelResponse'),+    newPutExternalModelResponse,++    -- ** PutKMSEncryptionKey+    PutKMSEncryptionKey (PutKMSEncryptionKey'),+    newPutKMSEncryptionKey,+    PutKMSEncryptionKeyResponse (PutKMSEncryptionKeyResponse'),+    newPutKMSEncryptionKeyResponse,++    -- ** PutLabel+    PutLabel (PutLabel'),+    newPutLabel,+    PutLabelResponse (PutLabelResponse'),+    newPutLabelResponse,++    -- ** PutOutcome+    PutOutcome (PutOutcome'),+    newPutOutcome,+    PutOutcomeResponse (PutOutcomeResponse'),+    newPutOutcomeResponse,++    -- ** SendEvent+    SendEvent (SendEvent'),+    newSendEvent,+    SendEventResponse (SendEventResponse'),+    newSendEventResponse,++    -- ** TagResource+    TagResource (TagResource'),+    newTagResource,+    TagResourceResponse (TagResourceResponse'),+    newTagResourceResponse,++    -- ** UntagResource+    UntagResource (UntagResource'),+    newUntagResource,+    UntagResourceResponse (UntagResourceResponse'),+    newUntagResourceResponse,++    -- ** UpdateDetectorVersion+    UpdateDetectorVersion (UpdateDetectorVersion'),+    newUpdateDetectorVersion,+    UpdateDetectorVersionResponse (UpdateDetectorVersionResponse'),+    newUpdateDetectorVersionResponse,++    -- ** UpdateDetectorVersionMetadata+    UpdateDetectorVersionMetadata (UpdateDetectorVersionMetadata'),+    newUpdateDetectorVersionMetadata,+    UpdateDetectorVersionMetadataResponse (UpdateDetectorVersionMetadataResponse'),+    newUpdateDetectorVersionMetadataResponse,++    -- ** UpdateDetectorVersionStatus+    UpdateDetectorVersionStatus (UpdateDetectorVersionStatus'),+    newUpdateDetectorVersionStatus,+    UpdateDetectorVersionStatusResponse (UpdateDetectorVersionStatusResponse'),+    newUpdateDetectorVersionStatusResponse,++    -- ** UpdateEventLabel+    UpdateEventLabel (UpdateEventLabel'),+    newUpdateEventLabel,+    UpdateEventLabelResponse (UpdateEventLabelResponse'),+    newUpdateEventLabelResponse,++    -- ** UpdateModel+    UpdateModel (UpdateModel'),+    newUpdateModel,+    UpdateModelResponse (UpdateModelResponse'),+    newUpdateModelResponse,++    -- ** UpdateModelVersion+    UpdateModelVersion (UpdateModelVersion'),+    newUpdateModelVersion,+    UpdateModelVersionResponse (UpdateModelVersionResponse'),+    newUpdateModelVersionResponse,++    -- ** UpdateModelVersionStatus+    UpdateModelVersionStatus (UpdateModelVersionStatus'),+    newUpdateModelVersionStatus,+    UpdateModelVersionStatusResponse (UpdateModelVersionStatusResponse'),+    newUpdateModelVersionStatusResponse,++    -- ** UpdateRuleMetadata+    UpdateRuleMetadata (UpdateRuleMetadata'),+    newUpdateRuleMetadata,+    UpdateRuleMetadataResponse (UpdateRuleMetadataResponse'),+    newUpdateRuleMetadataResponse,++    -- ** UpdateRuleVersion+    UpdateRuleVersion (UpdateRuleVersion'),+    newUpdateRuleVersion,+    UpdateRuleVersionResponse (UpdateRuleVersionResponse'),+    newUpdateRuleVersionResponse,++    -- ** UpdateVariable+    UpdateVariable (UpdateVariable'),+    newUpdateVariable,+    UpdateVariableResponse (UpdateVariableResponse'),+    newUpdateVariableResponse,++    -- * Types++    -- ** AsyncJobStatus+    AsyncJobStatus (..),++    -- ** DataSource+    DataSource (..),++    -- ** DataType+    DataType (..),++    -- ** DetectorVersionStatus+    DetectorVersionStatus (..),++    -- ** EventIngestion+    EventIngestion (..),++    -- ** Language+    Language (..),++    -- ** ModelEndpointStatus+    ModelEndpointStatus (..),++    -- ** ModelInputDataFormat+    ModelInputDataFormat (..),++    -- ** ModelOutputDataFormat+    ModelOutputDataFormat (..),++    -- ** ModelSource+    ModelSource (..),++    -- ** ModelTypeEnum+    ModelTypeEnum (..),++    -- ** ModelVersionStatus+    ModelVersionStatus (..),++    -- ** RuleExecutionMode+    RuleExecutionMode (..),++    -- ** TrainingDataSourceEnum+    TrainingDataSourceEnum (..),++    -- ** UnlabeledEventsTreatment+    UnlabeledEventsTreatment (..),++    -- ** ATIMetricDataPoint+    ATIMetricDataPoint (ATIMetricDataPoint'),+    newATIMetricDataPoint,++    -- ** ATIModelPerformance+    ATIModelPerformance (ATIModelPerformance'),+    newATIModelPerformance,++    -- ** ATITrainingMetricsValue+    ATITrainingMetricsValue (ATITrainingMetricsValue'),+    newATITrainingMetricsValue,++    -- ** AggregatedLogOddsMetric+    AggregatedLogOddsMetric (AggregatedLogOddsMetric'),+    newAggregatedLogOddsMetric,++    -- ** AggregatedVariablesImpactExplanation+    AggregatedVariablesImpactExplanation (AggregatedVariablesImpactExplanation'),+    newAggregatedVariablesImpactExplanation,++    -- ** AggregatedVariablesImportanceMetrics+    AggregatedVariablesImportanceMetrics (AggregatedVariablesImportanceMetrics'),+    newAggregatedVariablesImportanceMetrics,++    -- ** BatchCreateVariableError+    BatchCreateVariableError (BatchCreateVariableError'),+    newBatchCreateVariableError,++    -- ** BatchGetVariableError+    BatchGetVariableError (BatchGetVariableError'),+    newBatchGetVariableError,++    -- ** BatchImport+    BatchImport (BatchImport'),+    newBatchImport,++    -- ** BatchPrediction+    BatchPrediction (BatchPrediction'),+    newBatchPrediction,++    -- ** DataValidationMetrics+    DataValidationMetrics (DataValidationMetrics'),+    newDataValidationMetrics,++    -- ** Detector+    Detector (Detector'),+    newDetector,++    -- ** DetectorVersionSummary+    DetectorVersionSummary (DetectorVersionSummary'),+    newDetectorVersionSummary,++    -- ** Entity+    Entity (Entity'),+    newEntity,++    -- ** EntityType+    EntityType (EntityType'),+    newEntityType,++    -- ** EvaluatedExternalModel+    EvaluatedExternalModel (EvaluatedExternalModel'),+    newEvaluatedExternalModel,++    -- ** EvaluatedModelVersion+    EvaluatedModelVersion (EvaluatedModelVersion'),+    newEvaluatedModelVersion,++    -- ** EvaluatedRule+    EvaluatedRule (EvaluatedRule'),+    newEvaluatedRule,++    -- ** Event+    Event (Event'),+    newEvent,++    -- ** EventPredictionSummary+    EventPredictionSummary (EventPredictionSummary'),+    newEventPredictionSummary,++    -- ** EventType+    EventType (EventType'),+    newEventType,++    -- ** EventVariableSummary+    EventVariableSummary (EventVariableSummary'),+    newEventVariableSummary,++    -- ** ExternalEventsDetail+    ExternalEventsDetail (ExternalEventsDetail'),+    newExternalEventsDetail,++    -- ** ExternalModel+    ExternalModel (ExternalModel'),+    newExternalModel,++    -- ** ExternalModelOutputs+    ExternalModelOutputs (ExternalModelOutputs'),+    newExternalModelOutputs,++    -- ** ExternalModelSummary+    ExternalModelSummary (ExternalModelSummary'),+    newExternalModelSummary,++    -- ** FieldValidationMessage+    FieldValidationMessage (FieldValidationMessage'),+    newFieldValidationMessage,++    -- ** FileValidationMessage+    FileValidationMessage (FileValidationMessage'),+    newFileValidationMessage,++    -- ** FilterCondition+    FilterCondition (FilterCondition'),+    newFilterCondition,++    -- ** IngestedEventStatistics+    IngestedEventStatistics (IngestedEventStatistics'),+    newIngestedEventStatistics,++    -- ** IngestedEventsDetail+    IngestedEventsDetail (IngestedEventsDetail'),+    newIngestedEventsDetail,++    -- ** IngestedEventsTimeWindow+    IngestedEventsTimeWindow (IngestedEventsTimeWindow'),+    newIngestedEventsTimeWindow,++    -- ** KMSKey+    KMSKey (KMSKey'),+    newKMSKey,++    -- ** Label+    Label (Label'),+    newLabel,++    -- ** LabelSchema+    LabelSchema (LabelSchema'),+    newLabelSchema,++    -- ** LogOddsMetric+    LogOddsMetric (LogOddsMetric'),+    newLogOddsMetric,++    -- ** MetricDataPoint+    MetricDataPoint (MetricDataPoint'),+    newMetricDataPoint,++    -- ** Model+    Model (Model'),+    newModel,++    -- ** ModelEndpointDataBlob+    ModelEndpointDataBlob (ModelEndpointDataBlob'),+    newModelEndpointDataBlob,++    -- ** ModelInputConfiguration+    ModelInputConfiguration (ModelInputConfiguration'),+    newModelInputConfiguration,++    -- ** ModelOutputConfiguration+    ModelOutputConfiguration (ModelOutputConfiguration'),+    newModelOutputConfiguration,++    -- ** ModelScores+    ModelScores (ModelScores'),+    newModelScores,++    -- ** ModelVersion+    ModelVersion (ModelVersion'),+    newModelVersion,++    -- ** ModelVersionDetail+    ModelVersionDetail (ModelVersionDetail'),+    newModelVersionDetail,++    -- ** ModelVersionEvaluation+    ModelVersionEvaluation (ModelVersionEvaluation'),+    newModelVersionEvaluation,++    -- ** OFIMetricDataPoint+    OFIMetricDataPoint (OFIMetricDataPoint'),+    newOFIMetricDataPoint,++    -- ** OFIModelPerformance+    OFIModelPerformance (OFIModelPerformance'),+    newOFIModelPerformance,++    -- ** OFITrainingMetricsValue+    OFITrainingMetricsValue (OFITrainingMetricsValue'),+    newOFITrainingMetricsValue,++    -- ** Outcome+    Outcome (Outcome'),+    newOutcome,++    -- ** PredictionExplanations+    PredictionExplanations (PredictionExplanations'),+    newPredictionExplanations,++    -- ** PredictionTimeRange+    PredictionTimeRange (PredictionTimeRange'),+    newPredictionTimeRange,++    -- ** Rule+    Rule (Rule'),+    newRule,++    -- ** RuleDetail+    RuleDetail (RuleDetail'),+    newRuleDetail,++    -- ** RuleResult+    RuleResult (RuleResult'),+    newRuleResult,++    -- ** TFIMetricDataPoint+    TFIMetricDataPoint (TFIMetricDataPoint'),+    newTFIMetricDataPoint,++    -- ** TFIModelPerformance+    TFIModelPerformance (TFIModelPerformance'),+    newTFIModelPerformance,++    -- ** TFITrainingMetricsValue+    TFITrainingMetricsValue (TFITrainingMetricsValue'),+    newTFITrainingMetricsValue,++    -- ** Tag+    Tag (Tag'),+    newTag,++    -- ** TrainingDataSchema+    TrainingDataSchema (TrainingDataSchema'),+    newTrainingDataSchema,++    -- ** TrainingMetrics+    TrainingMetrics (TrainingMetrics'),+    newTrainingMetrics,++    -- ** TrainingMetricsV2+    TrainingMetricsV2 (TrainingMetricsV2'),+    newTrainingMetricsV2,++    -- ** TrainingResult+    TrainingResult (TrainingResult'),+    newTrainingResult,++    -- ** TrainingResultV2+    TrainingResultV2 (TrainingResultV2'),+    newTrainingResultV2,++    -- ** Variable+    Variable (Variable'),+    newVariable,++    -- ** VariableEntry+    VariableEntry (VariableEntry'),+    newVariableEntry,++    -- ** VariableImpactExplanation+    VariableImpactExplanation (VariableImpactExplanation'),+    newVariableImpactExplanation,++    -- ** VariableImportanceMetrics+    VariableImportanceMetrics (VariableImportanceMetrics'),+    newVariableImportanceMetrics,+  )+where++import Amazonka.FraudDetector.BatchCreateVariable+import Amazonka.FraudDetector.BatchGetVariable+import Amazonka.FraudDetector.CancelBatchImportJob+import Amazonka.FraudDetector.CancelBatchPredictionJob+import Amazonka.FraudDetector.CreateBatchImportJob+import Amazonka.FraudDetector.CreateBatchPredictionJob+import Amazonka.FraudDetector.CreateDetectorVersion+import Amazonka.FraudDetector.CreateModel+import Amazonka.FraudDetector.CreateModelVersion+import Amazonka.FraudDetector.CreateRule+import Amazonka.FraudDetector.CreateVariable+import Amazonka.FraudDetector.DeleteBatchImportJob+import Amazonka.FraudDetector.DeleteBatchPredictionJob+import Amazonka.FraudDetector.DeleteDetector+import Amazonka.FraudDetector.DeleteDetectorVersion+import Amazonka.FraudDetector.DeleteEntityType+import Amazonka.FraudDetector.DeleteEvent+import Amazonka.FraudDetector.DeleteEventType+import Amazonka.FraudDetector.DeleteEventsByEventType+import Amazonka.FraudDetector.DeleteExternalModel+import Amazonka.FraudDetector.DeleteLabel+import Amazonka.FraudDetector.DeleteModel+import Amazonka.FraudDetector.DeleteModelVersion+import Amazonka.FraudDetector.DeleteOutcome+import Amazonka.FraudDetector.DeleteRule+import Amazonka.FraudDetector.DeleteVariable+import Amazonka.FraudDetector.DescribeDetector+import Amazonka.FraudDetector.DescribeModelVersions+import Amazonka.FraudDetector.GetBatchImportJobs+import Amazonka.FraudDetector.GetBatchPredictionJobs+import Amazonka.FraudDetector.GetDeleteEventsByEventTypeStatus+import Amazonka.FraudDetector.GetDetectorVersion+import Amazonka.FraudDetector.GetDetectors+import Amazonka.FraudDetector.GetEntityTypes+import Amazonka.FraudDetector.GetEvent+import Amazonka.FraudDetector.GetEventPrediction+import Amazonka.FraudDetector.GetEventPredictionMetadata+import Amazonka.FraudDetector.GetEventTypes+import Amazonka.FraudDetector.GetExternalModels+import Amazonka.FraudDetector.GetKMSEncryptionKey+import Amazonka.FraudDetector.GetLabels+import Amazonka.FraudDetector.GetModelVersion+import Amazonka.FraudDetector.GetModels+import Amazonka.FraudDetector.GetOutcomes+import Amazonka.FraudDetector.GetRules+import Amazonka.FraudDetector.GetVariables+import Amazonka.FraudDetector.Lens+import Amazonka.FraudDetector.ListEventPredictions+import Amazonka.FraudDetector.ListTagsForResource+import Amazonka.FraudDetector.PutDetector+import Amazonka.FraudDetector.PutEntityType+import Amazonka.FraudDetector.PutEventType+import Amazonka.FraudDetector.PutExternalModel+import Amazonka.FraudDetector.PutKMSEncryptionKey+import Amazonka.FraudDetector.PutLabel+import Amazonka.FraudDetector.PutOutcome+import Amazonka.FraudDetector.SendEvent+import Amazonka.FraudDetector.TagResource+import Amazonka.FraudDetector.Types+import Amazonka.FraudDetector.UntagResource+import Amazonka.FraudDetector.UpdateDetectorVersion+import Amazonka.FraudDetector.UpdateDetectorVersionMetadata+import Amazonka.FraudDetector.UpdateDetectorVersionStatus+import Amazonka.FraudDetector.UpdateEventLabel+import Amazonka.FraudDetector.UpdateModel+import Amazonka.FraudDetector.UpdateModelVersion+import Amazonka.FraudDetector.UpdateModelVersionStatus+import Amazonka.FraudDetector.UpdateRuleMetadata+import Amazonka.FraudDetector.UpdateRuleVersion+import Amazonka.FraudDetector.UpdateVariable+import Amazonka.FraudDetector.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 'FraudDetector'.++-- $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/FraudDetector/BatchCreateVariable.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.FraudDetector.BatchCreateVariable+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a batch of variables.+module Amazonka.FraudDetector.BatchCreateVariable+  ( -- * Creating a Request+    BatchCreateVariable (..),+    newBatchCreateVariable,++    -- * Request Lenses+    batchCreateVariable_tags,+    batchCreateVariable_variableEntries,++    -- * Destructuring the Response+    BatchCreateVariableResponse (..),+    newBatchCreateVariableResponse,++    -- * Response Lenses+    batchCreateVariableResponse_errors,+    batchCreateVariableResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newBatchCreateVariable' smart constructor.+data BatchCreateVariable = BatchCreateVariable'+  { -- | A collection of key and value pairs.+    tags :: Prelude.Maybe [Tag],+    -- | The list of variables for the batch create variable request.+    variableEntries :: Prelude.NonEmpty VariableEntry+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchCreateVariable' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'batchCreateVariable_tags' - A collection of key and value pairs.+--+-- 'variableEntries', 'batchCreateVariable_variableEntries' - The list of variables for the batch create variable request.+newBatchCreateVariable ::+  -- | 'variableEntries'+  Prelude.NonEmpty VariableEntry ->+  BatchCreateVariable+newBatchCreateVariable pVariableEntries_ =+  BatchCreateVariable'+    { tags = Prelude.Nothing,+      variableEntries =+        Lens.coerced Lens.# pVariableEntries_+    }++-- | A collection of key and value pairs.+batchCreateVariable_tags :: Lens.Lens' BatchCreateVariable (Prelude.Maybe [Tag])+batchCreateVariable_tags = Lens.lens (\BatchCreateVariable' {tags} -> tags) (\s@BatchCreateVariable' {} a -> s {tags = a} :: BatchCreateVariable) Prelude.. Lens.mapping Lens.coerced++-- | The list of variables for the batch create variable request.+batchCreateVariable_variableEntries :: Lens.Lens' BatchCreateVariable (Prelude.NonEmpty VariableEntry)+batchCreateVariable_variableEntries = Lens.lens (\BatchCreateVariable' {variableEntries} -> variableEntries) (\s@BatchCreateVariable' {} a -> s {variableEntries = a} :: BatchCreateVariable) Prelude.. Lens.coerced++instance Core.AWSRequest BatchCreateVariable where+  type+    AWSResponse BatchCreateVariable =+      BatchCreateVariableResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          BatchCreateVariableResponse'+            Prelude.<$> (x Data..?> "errors" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable BatchCreateVariable where+  hashWithSalt _salt BatchCreateVariable' {..} =+    _salt+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` variableEntries++instance Prelude.NFData BatchCreateVariable where+  rnf BatchCreateVariable' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf variableEntries++instance Data.ToHeaders BatchCreateVariable where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.BatchCreateVariable" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON BatchCreateVariable where+  toJSON BatchCreateVariable' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just+              ("variableEntries" Data..= variableEntries)+          ]+      )++instance Data.ToPath BatchCreateVariable where+  toPath = Prelude.const "/"++instance Data.ToQuery BatchCreateVariable where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newBatchCreateVariableResponse' smart constructor.+data BatchCreateVariableResponse = BatchCreateVariableResponse'+  { -- | Provides the errors for the @BatchCreateVariable@ request.+    errors :: Prelude.Maybe [BatchCreateVariableError],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchCreateVariableResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'errors', 'batchCreateVariableResponse_errors' - Provides the errors for the @BatchCreateVariable@ request.+--+-- 'httpStatus', 'batchCreateVariableResponse_httpStatus' - The response's http status code.+newBatchCreateVariableResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  BatchCreateVariableResponse+newBatchCreateVariableResponse pHttpStatus_ =+  BatchCreateVariableResponse'+    { errors =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Provides the errors for the @BatchCreateVariable@ request.+batchCreateVariableResponse_errors :: Lens.Lens' BatchCreateVariableResponse (Prelude.Maybe [BatchCreateVariableError])+batchCreateVariableResponse_errors = Lens.lens (\BatchCreateVariableResponse' {errors} -> errors) (\s@BatchCreateVariableResponse' {} a -> s {errors = a} :: BatchCreateVariableResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+batchCreateVariableResponse_httpStatus :: Lens.Lens' BatchCreateVariableResponse Prelude.Int+batchCreateVariableResponse_httpStatus = Lens.lens (\BatchCreateVariableResponse' {httpStatus} -> httpStatus) (\s@BatchCreateVariableResponse' {} a -> s {httpStatus = a} :: BatchCreateVariableResponse)++instance Prelude.NFData BatchCreateVariableResponse where+  rnf BatchCreateVariableResponse' {..} =+    Prelude.rnf errors+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/BatchGetVariable.hs view
@@ -0,0 +1,182 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.BatchGetVariable+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a batch of variables.+module Amazonka.FraudDetector.BatchGetVariable+  ( -- * Creating a Request+    BatchGetVariable (..),+    newBatchGetVariable,++    -- * Request Lenses+    batchGetVariable_names,++    -- * Destructuring the Response+    BatchGetVariableResponse (..),+    newBatchGetVariableResponse,++    -- * Response Lenses+    batchGetVariableResponse_errors,+    batchGetVariableResponse_variables,+    batchGetVariableResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newBatchGetVariable' smart constructor.+data BatchGetVariable = BatchGetVariable'+  { -- | The list of variable names to get.+    names :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchGetVariable' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'names', 'batchGetVariable_names' - The list of variable names to get.+newBatchGetVariable ::+  -- | 'names'+  Prelude.NonEmpty Prelude.Text ->+  BatchGetVariable+newBatchGetVariable pNames_ =+  BatchGetVariable'+    { names =+        Lens.coerced Lens.# pNames_+    }++-- | The list of variable names to get.+batchGetVariable_names :: Lens.Lens' BatchGetVariable (Prelude.NonEmpty Prelude.Text)+batchGetVariable_names = Lens.lens (\BatchGetVariable' {names} -> names) (\s@BatchGetVariable' {} a -> s {names = a} :: BatchGetVariable) Prelude.. Lens.coerced++instance Core.AWSRequest BatchGetVariable where+  type+    AWSResponse BatchGetVariable =+      BatchGetVariableResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          BatchGetVariableResponse'+            Prelude.<$> (x Data..?> "errors" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "variables" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable BatchGetVariable where+  hashWithSalt _salt BatchGetVariable' {..} =+    _salt `Prelude.hashWithSalt` names++instance Prelude.NFData BatchGetVariable where+  rnf BatchGetVariable' {..} = Prelude.rnf names++instance Data.ToHeaders BatchGetVariable where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.BatchGetVariable" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON BatchGetVariable where+  toJSON BatchGetVariable' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("names" Data..= names)]+      )++instance Data.ToPath BatchGetVariable where+  toPath = Prelude.const "/"++instance Data.ToQuery BatchGetVariable where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newBatchGetVariableResponse' smart constructor.+data BatchGetVariableResponse = BatchGetVariableResponse'+  { -- | The errors from the request.+    errors :: Prelude.Maybe [BatchGetVariableError],+    -- | The returned variables.+    variables :: Prelude.Maybe [Variable],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchGetVariableResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'errors', 'batchGetVariableResponse_errors' - The errors from the request.+--+-- 'variables', 'batchGetVariableResponse_variables' - The returned variables.+--+-- 'httpStatus', 'batchGetVariableResponse_httpStatus' - The response's http status code.+newBatchGetVariableResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  BatchGetVariableResponse+newBatchGetVariableResponse pHttpStatus_ =+  BatchGetVariableResponse'+    { errors = Prelude.Nothing,+      variables = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The errors from the request.+batchGetVariableResponse_errors :: Lens.Lens' BatchGetVariableResponse (Prelude.Maybe [BatchGetVariableError])+batchGetVariableResponse_errors = Lens.lens (\BatchGetVariableResponse' {errors} -> errors) (\s@BatchGetVariableResponse' {} a -> s {errors = a} :: BatchGetVariableResponse) Prelude.. Lens.mapping Lens.coerced++-- | The returned variables.+batchGetVariableResponse_variables :: Lens.Lens' BatchGetVariableResponse (Prelude.Maybe [Variable])+batchGetVariableResponse_variables = Lens.lens (\BatchGetVariableResponse' {variables} -> variables) (\s@BatchGetVariableResponse' {} a -> s {variables = a} :: BatchGetVariableResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+batchGetVariableResponse_httpStatus :: Lens.Lens' BatchGetVariableResponse Prelude.Int+batchGetVariableResponse_httpStatus = Lens.lens (\BatchGetVariableResponse' {httpStatus} -> httpStatus) (\s@BatchGetVariableResponse' {} a -> s {httpStatus = a} :: BatchGetVariableResponse)++instance Prelude.NFData BatchGetVariableResponse where+  rnf BatchGetVariableResponse' {..} =+    Prelude.rnf errors+      `Prelude.seq` Prelude.rnf variables+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/CancelBatchImportJob.hs view
@@ -0,0 +1,165 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.CancelBatchImportJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Cancels an in-progress batch import job.+module Amazonka.FraudDetector.CancelBatchImportJob+  ( -- * Creating a Request+    CancelBatchImportJob (..),+    newCancelBatchImportJob,++    -- * Request Lenses+    cancelBatchImportJob_jobId,++    -- * Destructuring the Response+    CancelBatchImportJobResponse (..),+    newCancelBatchImportJobResponse,++    -- * Response Lenses+    cancelBatchImportJobResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCancelBatchImportJob' smart constructor.+data CancelBatchImportJob = CancelBatchImportJob'+  { -- | The ID of an in-progress batch import job to cancel.+    --+    -- Amazon Fraud Detector will throw an error if the batch import job is in+    -- @FAILED@, @CANCELED@, or @COMPLETED@ state.+    jobId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CancelBatchImportJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'cancelBatchImportJob_jobId' - The ID of an in-progress batch import job to cancel.+--+-- Amazon Fraud Detector will throw an error if the batch import job is in+-- @FAILED@, @CANCELED@, or @COMPLETED@ state.+newCancelBatchImportJob ::+  -- | 'jobId'+  Prelude.Text ->+  CancelBatchImportJob+newCancelBatchImportJob pJobId_ =+  CancelBatchImportJob' {jobId = pJobId_}++-- | The ID of an in-progress batch import job to cancel.+--+-- Amazon Fraud Detector will throw an error if the batch import job is in+-- @FAILED@, @CANCELED@, or @COMPLETED@ state.+cancelBatchImportJob_jobId :: Lens.Lens' CancelBatchImportJob Prelude.Text+cancelBatchImportJob_jobId = Lens.lens (\CancelBatchImportJob' {jobId} -> jobId) (\s@CancelBatchImportJob' {} a -> s {jobId = a} :: CancelBatchImportJob)++instance Core.AWSRequest CancelBatchImportJob where+  type+    AWSResponse CancelBatchImportJob =+      CancelBatchImportJobResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          CancelBatchImportJobResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CancelBatchImportJob where+  hashWithSalt _salt CancelBatchImportJob' {..} =+    _salt `Prelude.hashWithSalt` jobId++instance Prelude.NFData CancelBatchImportJob where+  rnf CancelBatchImportJob' {..} = Prelude.rnf jobId++instance Data.ToHeaders CancelBatchImportJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.CancelBatchImportJob" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CancelBatchImportJob where+  toJSON CancelBatchImportJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("jobId" Data..= jobId)]+      )++instance Data.ToPath CancelBatchImportJob where+  toPath = Prelude.const "/"++instance Data.ToQuery CancelBatchImportJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCancelBatchImportJobResponse' smart constructor.+data CancelBatchImportJobResponse = CancelBatchImportJobResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CancelBatchImportJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'cancelBatchImportJobResponse_httpStatus' - The response's http status code.+newCancelBatchImportJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CancelBatchImportJobResponse+newCancelBatchImportJobResponse pHttpStatus_ =+  CancelBatchImportJobResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+cancelBatchImportJobResponse_httpStatus :: Lens.Lens' CancelBatchImportJobResponse Prelude.Int+cancelBatchImportJobResponse_httpStatus = Lens.lens (\CancelBatchImportJobResponse' {httpStatus} -> httpStatus) (\s@CancelBatchImportJobResponse' {} a -> s {httpStatus = a} :: CancelBatchImportJobResponse)++instance Prelude.NFData CancelBatchImportJobResponse where+  rnf CancelBatchImportJobResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/CancelBatchPredictionJob.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.FraudDetector.CancelBatchPredictionJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Cancels the specified batch prediction job.+module Amazonka.FraudDetector.CancelBatchPredictionJob+  ( -- * Creating a Request+    CancelBatchPredictionJob (..),+    newCancelBatchPredictionJob,++    -- * Request Lenses+    cancelBatchPredictionJob_jobId,++    -- * Destructuring the Response+    CancelBatchPredictionJobResponse (..),+    newCancelBatchPredictionJobResponse,++    -- * Response Lenses+    cancelBatchPredictionJobResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCancelBatchPredictionJob' smart constructor.+data CancelBatchPredictionJob = CancelBatchPredictionJob'+  { -- | The ID of the batch prediction job to cancel.+    jobId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CancelBatchPredictionJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'cancelBatchPredictionJob_jobId' - The ID of the batch prediction job to cancel.+newCancelBatchPredictionJob ::+  -- | 'jobId'+  Prelude.Text ->+  CancelBatchPredictionJob+newCancelBatchPredictionJob pJobId_ =+  CancelBatchPredictionJob' {jobId = pJobId_}++-- | The ID of the batch prediction job to cancel.+cancelBatchPredictionJob_jobId :: Lens.Lens' CancelBatchPredictionJob Prelude.Text+cancelBatchPredictionJob_jobId = Lens.lens (\CancelBatchPredictionJob' {jobId} -> jobId) (\s@CancelBatchPredictionJob' {} a -> s {jobId = a} :: CancelBatchPredictionJob)++instance Core.AWSRequest CancelBatchPredictionJob where+  type+    AWSResponse CancelBatchPredictionJob =+      CancelBatchPredictionJobResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          CancelBatchPredictionJobResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CancelBatchPredictionJob where+  hashWithSalt _salt CancelBatchPredictionJob' {..} =+    _salt `Prelude.hashWithSalt` jobId++instance Prelude.NFData CancelBatchPredictionJob where+  rnf CancelBatchPredictionJob' {..} = Prelude.rnf jobId++instance Data.ToHeaders CancelBatchPredictionJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.CancelBatchPredictionJob" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CancelBatchPredictionJob where+  toJSON CancelBatchPredictionJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("jobId" Data..= jobId)]+      )++instance Data.ToPath CancelBatchPredictionJob where+  toPath = Prelude.const "/"++instance Data.ToQuery CancelBatchPredictionJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCancelBatchPredictionJobResponse' smart constructor.+data CancelBatchPredictionJobResponse = CancelBatchPredictionJobResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CancelBatchPredictionJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'cancelBatchPredictionJobResponse_httpStatus' - The response's http status code.+newCancelBatchPredictionJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CancelBatchPredictionJobResponse+newCancelBatchPredictionJobResponse pHttpStatus_ =+  CancelBatchPredictionJobResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+cancelBatchPredictionJobResponse_httpStatus :: Lens.Lens' CancelBatchPredictionJobResponse Prelude.Int+cancelBatchPredictionJobResponse_httpStatus = Lens.lens (\CancelBatchPredictionJobResponse' {httpStatus} -> httpStatus) (\s@CancelBatchPredictionJobResponse' {} a -> s {httpStatus = a} :: CancelBatchPredictionJobResponse)++instance+  Prelude.NFData+    CancelBatchPredictionJobResponse+  where+  rnf CancelBatchPredictionJobResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/CreateBatchImportJob.hs view
@@ -0,0 +1,263 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.CreateBatchImportJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a batch import job.+module Amazonka.FraudDetector.CreateBatchImportJob+  ( -- * Creating a Request+    CreateBatchImportJob (..),+    newCreateBatchImportJob,++    -- * Request Lenses+    createBatchImportJob_tags,+    createBatchImportJob_jobId,+    createBatchImportJob_inputPath,+    createBatchImportJob_outputPath,+    createBatchImportJob_eventTypeName,+    createBatchImportJob_iamRoleArn,++    -- * Destructuring the Response+    CreateBatchImportJobResponse (..),+    newCreateBatchImportJobResponse,++    -- * Response Lenses+    createBatchImportJobResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateBatchImportJob' smart constructor.+data CreateBatchImportJob = CreateBatchImportJob'+  { -- | A collection of key-value pairs associated with this request.+    tags :: Prelude.Maybe [Tag],+    -- | The ID of the batch import job. The ID cannot be of a past job, unless+    -- the job exists in @CREATE_FAILED@ state.+    jobId :: Prelude.Text,+    -- | The URI that points to the Amazon S3 location of your data file.+    inputPath :: Prelude.Text,+    -- | The URI that points to the Amazon S3 location for storing your results.+    outputPath :: Prelude.Text,+    -- | The name of the event type.+    eventTypeName :: Prelude.Text,+    -- | The ARN of the IAM role created for Amazon S3 bucket that holds your+    -- data file.+    --+    -- The IAM role must have read permissions to your input S3 bucket and+    -- write permissions to your output S3 bucket. For more information about+    -- bucket permissions, see+    -- <https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-policies-s3.html User policy examples>+    -- in the /Amazon S3 User Guide/.+    iamRoleArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateBatchImportJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createBatchImportJob_tags' - A collection of key-value pairs associated with this request.+--+-- 'jobId', 'createBatchImportJob_jobId' - The ID of the batch import job. The ID cannot be of a past job, unless+-- the job exists in @CREATE_FAILED@ state.+--+-- 'inputPath', 'createBatchImportJob_inputPath' - The URI that points to the Amazon S3 location of your data file.+--+-- 'outputPath', 'createBatchImportJob_outputPath' - The URI that points to the Amazon S3 location for storing your results.+--+-- 'eventTypeName', 'createBatchImportJob_eventTypeName' - The name of the event type.+--+-- 'iamRoleArn', 'createBatchImportJob_iamRoleArn' - The ARN of the IAM role created for Amazon S3 bucket that holds your+-- data file.+--+-- The IAM role must have read permissions to your input S3 bucket and+-- write permissions to your output S3 bucket. For more information about+-- bucket permissions, see+-- <https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-policies-s3.html User policy examples>+-- in the /Amazon S3 User Guide/.+newCreateBatchImportJob ::+  -- | 'jobId'+  Prelude.Text ->+  -- | 'inputPath'+  Prelude.Text ->+  -- | 'outputPath'+  Prelude.Text ->+  -- | 'eventTypeName'+  Prelude.Text ->+  -- | 'iamRoleArn'+  Prelude.Text ->+  CreateBatchImportJob+newCreateBatchImportJob+  pJobId_+  pInputPath_+  pOutputPath_+  pEventTypeName_+  pIamRoleArn_ =+    CreateBatchImportJob'+      { tags = Prelude.Nothing,+        jobId = pJobId_,+        inputPath = pInputPath_,+        outputPath = pOutputPath_,+        eventTypeName = pEventTypeName_,+        iamRoleArn = pIamRoleArn_+      }++-- | A collection of key-value pairs associated with this request.+createBatchImportJob_tags :: Lens.Lens' CreateBatchImportJob (Prelude.Maybe [Tag])+createBatchImportJob_tags = Lens.lens (\CreateBatchImportJob' {tags} -> tags) (\s@CreateBatchImportJob' {} a -> s {tags = a} :: CreateBatchImportJob) Prelude.. Lens.mapping Lens.coerced++-- | The ID of the batch import job. The ID cannot be of a past job, unless+-- the job exists in @CREATE_FAILED@ state.+createBatchImportJob_jobId :: Lens.Lens' CreateBatchImportJob Prelude.Text+createBatchImportJob_jobId = Lens.lens (\CreateBatchImportJob' {jobId} -> jobId) (\s@CreateBatchImportJob' {} a -> s {jobId = a} :: CreateBatchImportJob)++-- | The URI that points to the Amazon S3 location of your data file.+createBatchImportJob_inputPath :: Lens.Lens' CreateBatchImportJob Prelude.Text+createBatchImportJob_inputPath = Lens.lens (\CreateBatchImportJob' {inputPath} -> inputPath) (\s@CreateBatchImportJob' {} a -> s {inputPath = a} :: CreateBatchImportJob)++-- | The URI that points to the Amazon S3 location for storing your results.+createBatchImportJob_outputPath :: Lens.Lens' CreateBatchImportJob Prelude.Text+createBatchImportJob_outputPath = Lens.lens (\CreateBatchImportJob' {outputPath} -> outputPath) (\s@CreateBatchImportJob' {} a -> s {outputPath = a} :: CreateBatchImportJob)++-- | The name of the event type.+createBatchImportJob_eventTypeName :: Lens.Lens' CreateBatchImportJob Prelude.Text+createBatchImportJob_eventTypeName = Lens.lens (\CreateBatchImportJob' {eventTypeName} -> eventTypeName) (\s@CreateBatchImportJob' {} a -> s {eventTypeName = a} :: CreateBatchImportJob)++-- | The ARN of the IAM role created for Amazon S3 bucket that holds your+-- data file.+--+-- The IAM role must have read permissions to your input S3 bucket and+-- write permissions to your output S3 bucket. For more information about+-- bucket permissions, see+-- <https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-policies-s3.html User policy examples>+-- in the /Amazon S3 User Guide/.+createBatchImportJob_iamRoleArn :: Lens.Lens' CreateBatchImportJob Prelude.Text+createBatchImportJob_iamRoleArn = Lens.lens (\CreateBatchImportJob' {iamRoleArn} -> iamRoleArn) (\s@CreateBatchImportJob' {} a -> s {iamRoleArn = a} :: CreateBatchImportJob)++instance Core.AWSRequest CreateBatchImportJob where+  type+    AWSResponse CreateBatchImportJob =+      CreateBatchImportJobResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          CreateBatchImportJobResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateBatchImportJob where+  hashWithSalt _salt CreateBatchImportJob' {..} =+    _salt+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` jobId+      `Prelude.hashWithSalt` inputPath+      `Prelude.hashWithSalt` outputPath+      `Prelude.hashWithSalt` eventTypeName+      `Prelude.hashWithSalt` iamRoleArn++instance Prelude.NFData CreateBatchImportJob where+  rnf CreateBatchImportJob' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf jobId+      `Prelude.seq` Prelude.rnf inputPath+      `Prelude.seq` Prelude.rnf outputPath+      `Prelude.seq` Prelude.rnf eventTypeName+      `Prelude.seq` Prelude.rnf iamRoleArn++instance Data.ToHeaders CreateBatchImportJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.CreateBatchImportJob" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateBatchImportJob where+  toJSON CreateBatchImportJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("jobId" Data..= jobId),+            Prelude.Just ("inputPath" Data..= inputPath),+            Prelude.Just ("outputPath" Data..= outputPath),+            Prelude.Just ("eventTypeName" Data..= eventTypeName),+            Prelude.Just ("iamRoleArn" Data..= iamRoleArn)+          ]+      )++instance Data.ToPath CreateBatchImportJob where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateBatchImportJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateBatchImportJobResponse' smart constructor.+data CreateBatchImportJobResponse = CreateBatchImportJobResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateBatchImportJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createBatchImportJobResponse_httpStatus' - The response's http status code.+newCreateBatchImportJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateBatchImportJobResponse+newCreateBatchImportJobResponse pHttpStatus_ =+  CreateBatchImportJobResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+createBatchImportJobResponse_httpStatus :: Lens.Lens' CreateBatchImportJobResponse Prelude.Int+createBatchImportJobResponse_httpStatus = Lens.lens (\CreateBatchImportJobResponse' {httpStatus} -> httpStatus) (\s@CreateBatchImportJobResponse' {} a -> s {httpStatus = a} :: CreateBatchImportJobResponse)++instance Prelude.NFData CreateBatchImportJobResponse where+  rnf CreateBatchImportJobResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/CreateBatchPredictionJob.hs view
@@ -0,0 +1,291 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.CreateBatchPredictionJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a batch prediction job.+module Amazonka.FraudDetector.CreateBatchPredictionJob+  ( -- * Creating a Request+    CreateBatchPredictionJob (..),+    newCreateBatchPredictionJob,++    -- * Request Lenses+    createBatchPredictionJob_detectorVersion,+    createBatchPredictionJob_tags,+    createBatchPredictionJob_jobId,+    createBatchPredictionJob_inputPath,+    createBatchPredictionJob_outputPath,+    createBatchPredictionJob_eventTypeName,+    createBatchPredictionJob_detectorName,+    createBatchPredictionJob_iamRoleArn,++    -- * Destructuring the Response+    CreateBatchPredictionJobResponse (..),+    newCreateBatchPredictionJobResponse,++    -- * Response Lenses+    createBatchPredictionJobResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateBatchPredictionJob' smart constructor.+data CreateBatchPredictionJob = CreateBatchPredictionJob'+  { -- | The detector version.+    detectorVersion :: Prelude.Maybe Prelude.Text,+    -- | A collection of key and value pairs.+    tags :: Prelude.Maybe [Tag],+    -- | The ID of the batch prediction job.+    jobId :: Prelude.Text,+    -- | The Amazon S3 location of your training file.+    inputPath :: Prelude.Text,+    -- | The Amazon S3 location of your output file.+    outputPath :: Prelude.Text,+    -- | The name of the event type.+    eventTypeName :: Prelude.Text,+    -- | The name of the detector.+    detectorName :: Prelude.Text,+    -- | The ARN of the IAM role to use for this job request.+    --+    -- The IAM Role must have read permissions to your input S3 bucket and+    -- write permissions to your output S3 bucket. For more information about+    -- bucket permissions, see+    -- <https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-policies-s3.html User policy examples>+    -- in the /Amazon S3 User Guide/.+    iamRoleArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateBatchPredictionJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'detectorVersion', 'createBatchPredictionJob_detectorVersion' - The detector version.+--+-- 'tags', 'createBatchPredictionJob_tags' - A collection of key and value pairs.+--+-- 'jobId', 'createBatchPredictionJob_jobId' - The ID of the batch prediction job.+--+-- 'inputPath', 'createBatchPredictionJob_inputPath' - The Amazon S3 location of your training file.+--+-- 'outputPath', 'createBatchPredictionJob_outputPath' - The Amazon S3 location of your output file.+--+-- 'eventTypeName', 'createBatchPredictionJob_eventTypeName' - The name of the event type.+--+-- 'detectorName', 'createBatchPredictionJob_detectorName' - The name of the detector.+--+-- 'iamRoleArn', 'createBatchPredictionJob_iamRoleArn' - The ARN of the IAM role to use for this job request.+--+-- The IAM Role must have read permissions to your input S3 bucket and+-- write permissions to your output S3 bucket. For more information about+-- bucket permissions, see+-- <https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-policies-s3.html User policy examples>+-- in the /Amazon S3 User Guide/.+newCreateBatchPredictionJob ::+  -- | 'jobId'+  Prelude.Text ->+  -- | 'inputPath'+  Prelude.Text ->+  -- | 'outputPath'+  Prelude.Text ->+  -- | 'eventTypeName'+  Prelude.Text ->+  -- | 'detectorName'+  Prelude.Text ->+  -- | 'iamRoleArn'+  Prelude.Text ->+  CreateBatchPredictionJob+newCreateBatchPredictionJob+  pJobId_+  pInputPath_+  pOutputPath_+  pEventTypeName_+  pDetectorName_+  pIamRoleArn_ =+    CreateBatchPredictionJob'+      { detectorVersion =+          Prelude.Nothing,+        tags = Prelude.Nothing,+        jobId = pJobId_,+        inputPath = pInputPath_,+        outputPath = pOutputPath_,+        eventTypeName = pEventTypeName_,+        detectorName = pDetectorName_,+        iamRoleArn = pIamRoleArn_+      }++-- | The detector version.+createBatchPredictionJob_detectorVersion :: Lens.Lens' CreateBatchPredictionJob (Prelude.Maybe Prelude.Text)+createBatchPredictionJob_detectorVersion = Lens.lens (\CreateBatchPredictionJob' {detectorVersion} -> detectorVersion) (\s@CreateBatchPredictionJob' {} a -> s {detectorVersion = a} :: CreateBatchPredictionJob)++-- | A collection of key and value pairs.+createBatchPredictionJob_tags :: Lens.Lens' CreateBatchPredictionJob (Prelude.Maybe [Tag])+createBatchPredictionJob_tags = Lens.lens (\CreateBatchPredictionJob' {tags} -> tags) (\s@CreateBatchPredictionJob' {} a -> s {tags = a} :: CreateBatchPredictionJob) Prelude.. Lens.mapping Lens.coerced++-- | The ID of the batch prediction job.+createBatchPredictionJob_jobId :: Lens.Lens' CreateBatchPredictionJob Prelude.Text+createBatchPredictionJob_jobId = Lens.lens (\CreateBatchPredictionJob' {jobId} -> jobId) (\s@CreateBatchPredictionJob' {} a -> s {jobId = a} :: CreateBatchPredictionJob)++-- | The Amazon S3 location of your training file.+createBatchPredictionJob_inputPath :: Lens.Lens' CreateBatchPredictionJob Prelude.Text+createBatchPredictionJob_inputPath = Lens.lens (\CreateBatchPredictionJob' {inputPath} -> inputPath) (\s@CreateBatchPredictionJob' {} a -> s {inputPath = a} :: CreateBatchPredictionJob)++-- | The Amazon S3 location of your output file.+createBatchPredictionJob_outputPath :: Lens.Lens' CreateBatchPredictionJob Prelude.Text+createBatchPredictionJob_outputPath = Lens.lens (\CreateBatchPredictionJob' {outputPath} -> outputPath) (\s@CreateBatchPredictionJob' {} a -> s {outputPath = a} :: CreateBatchPredictionJob)++-- | The name of the event type.+createBatchPredictionJob_eventTypeName :: Lens.Lens' CreateBatchPredictionJob Prelude.Text+createBatchPredictionJob_eventTypeName = Lens.lens (\CreateBatchPredictionJob' {eventTypeName} -> eventTypeName) (\s@CreateBatchPredictionJob' {} a -> s {eventTypeName = a} :: CreateBatchPredictionJob)++-- | The name of the detector.+createBatchPredictionJob_detectorName :: Lens.Lens' CreateBatchPredictionJob Prelude.Text+createBatchPredictionJob_detectorName = Lens.lens (\CreateBatchPredictionJob' {detectorName} -> detectorName) (\s@CreateBatchPredictionJob' {} a -> s {detectorName = a} :: CreateBatchPredictionJob)++-- | The ARN of the IAM role to use for this job request.+--+-- The IAM Role must have read permissions to your input S3 bucket and+-- write permissions to your output S3 bucket. For more information about+-- bucket permissions, see+-- <https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-policies-s3.html User policy examples>+-- in the /Amazon S3 User Guide/.+createBatchPredictionJob_iamRoleArn :: Lens.Lens' CreateBatchPredictionJob Prelude.Text+createBatchPredictionJob_iamRoleArn = Lens.lens (\CreateBatchPredictionJob' {iamRoleArn} -> iamRoleArn) (\s@CreateBatchPredictionJob' {} a -> s {iamRoleArn = a} :: CreateBatchPredictionJob)++instance Core.AWSRequest CreateBatchPredictionJob where+  type+    AWSResponse CreateBatchPredictionJob =+      CreateBatchPredictionJobResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          CreateBatchPredictionJobResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateBatchPredictionJob where+  hashWithSalt _salt CreateBatchPredictionJob' {..} =+    _salt+      `Prelude.hashWithSalt` detectorVersion+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` jobId+      `Prelude.hashWithSalt` inputPath+      `Prelude.hashWithSalt` outputPath+      `Prelude.hashWithSalt` eventTypeName+      `Prelude.hashWithSalt` detectorName+      `Prelude.hashWithSalt` iamRoleArn++instance Prelude.NFData CreateBatchPredictionJob where+  rnf CreateBatchPredictionJob' {..} =+    Prelude.rnf detectorVersion+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf jobId+      `Prelude.seq` Prelude.rnf inputPath+      `Prelude.seq` Prelude.rnf outputPath+      `Prelude.seq` Prelude.rnf eventTypeName+      `Prelude.seq` Prelude.rnf detectorName+      `Prelude.seq` Prelude.rnf iamRoleArn++instance Data.ToHeaders CreateBatchPredictionJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.CreateBatchPredictionJob" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateBatchPredictionJob where+  toJSON CreateBatchPredictionJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("detectorVersion" Data..=)+              Prelude.<$> detectorVersion,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("jobId" Data..= jobId),+            Prelude.Just ("inputPath" Data..= inputPath),+            Prelude.Just ("outputPath" Data..= outputPath),+            Prelude.Just ("eventTypeName" Data..= eventTypeName),+            Prelude.Just ("detectorName" Data..= detectorName),+            Prelude.Just ("iamRoleArn" Data..= iamRoleArn)+          ]+      )++instance Data.ToPath CreateBatchPredictionJob where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateBatchPredictionJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateBatchPredictionJobResponse' smart constructor.+data CreateBatchPredictionJobResponse = CreateBatchPredictionJobResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateBatchPredictionJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createBatchPredictionJobResponse_httpStatus' - The response's http status code.+newCreateBatchPredictionJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateBatchPredictionJobResponse+newCreateBatchPredictionJobResponse pHttpStatus_ =+  CreateBatchPredictionJobResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+createBatchPredictionJobResponse_httpStatus :: Lens.Lens' CreateBatchPredictionJobResponse Prelude.Int+createBatchPredictionJobResponse_httpStatus = Lens.lens (\CreateBatchPredictionJobResponse' {httpStatus} -> httpStatus) (\s@CreateBatchPredictionJobResponse' {} a -> s {httpStatus = a} :: CreateBatchPredictionJobResponse)++instance+  Prelude.NFData+    CreateBatchPredictionJobResponse+  where+  rnf CreateBatchPredictionJobResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/CreateDetectorVersion.hs view
@@ -0,0 +1,315 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.CreateDetectorVersion+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a detector version. The detector version starts in a @DRAFT@+-- status.+module Amazonka.FraudDetector.CreateDetectorVersion+  ( -- * Creating a Request+    CreateDetectorVersion (..),+    newCreateDetectorVersion,++    -- * Request Lenses+    createDetectorVersion_description,+    createDetectorVersion_externalModelEndpoints,+    createDetectorVersion_modelVersions,+    createDetectorVersion_ruleExecutionMode,+    createDetectorVersion_tags,+    createDetectorVersion_detectorId,+    createDetectorVersion_rules,++    -- * Destructuring the Response+    CreateDetectorVersionResponse (..),+    newCreateDetectorVersionResponse,++    -- * Response Lenses+    createDetectorVersionResponse_detectorId,+    createDetectorVersionResponse_detectorVersionId,+    createDetectorVersionResponse_status,+    createDetectorVersionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateDetectorVersion' smart constructor.+data CreateDetectorVersion = CreateDetectorVersion'+  { -- | The description of the detector version.+    description :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Sagemaker model endpoints to include in the detector version.+    externalModelEndpoints :: Prelude.Maybe [Prelude.Text],+    -- | The model versions to include in the detector version.+    modelVersions :: Prelude.Maybe [ModelVersion],+    -- | The rule execution mode for the rules included in the detector version.+    --+    -- You can define and edit the rule mode at the detector version level,+    -- when it is in draft status.+    --+    -- If you specify @FIRST_MATCHED@, Amazon Fraud Detector evaluates rules+    -- sequentially, first to last, stopping at the first matched rule. Amazon+    -- Fraud dectector then provides the outcomes for that single rule.+    --+    -- If you specifiy @ALL_MATCHED@, Amazon Fraud Detector evaluates all rules+    -- and returns the outcomes for all matched rules.+    --+    -- The default behavior is @FIRST_MATCHED@.+    ruleExecutionMode :: Prelude.Maybe RuleExecutionMode,+    -- | A collection of key and value pairs.+    tags :: Prelude.Maybe [Tag],+    -- | The ID of the detector under which you want to create a new version.+    detectorId :: Prelude.Text,+    -- | The rules to include in the detector version.+    rules :: [Rule]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDetectorVersion' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createDetectorVersion_description' - The description of the detector version.+--+-- 'externalModelEndpoints', 'createDetectorVersion_externalModelEndpoints' - The Amazon Sagemaker model endpoints to include in the detector version.+--+-- 'modelVersions', 'createDetectorVersion_modelVersions' - The model versions to include in the detector version.+--+-- 'ruleExecutionMode', 'createDetectorVersion_ruleExecutionMode' - The rule execution mode for the rules included in the detector version.+--+-- You can define and edit the rule mode at the detector version level,+-- when it is in draft status.+--+-- If you specify @FIRST_MATCHED@, Amazon Fraud Detector evaluates rules+-- sequentially, first to last, stopping at the first matched rule. Amazon+-- Fraud dectector then provides the outcomes for that single rule.+--+-- If you specifiy @ALL_MATCHED@, Amazon Fraud Detector evaluates all rules+-- and returns the outcomes for all matched rules.+--+-- The default behavior is @FIRST_MATCHED@.+--+-- 'tags', 'createDetectorVersion_tags' - A collection of key and value pairs.+--+-- 'detectorId', 'createDetectorVersion_detectorId' - The ID of the detector under which you want to create a new version.+--+-- 'rules', 'createDetectorVersion_rules' - The rules to include in the detector version.+newCreateDetectorVersion ::+  -- | 'detectorId'+  Prelude.Text ->+  CreateDetectorVersion+newCreateDetectorVersion pDetectorId_ =+  CreateDetectorVersion'+    { description =+        Prelude.Nothing,+      externalModelEndpoints = Prelude.Nothing,+      modelVersions = Prelude.Nothing,+      ruleExecutionMode = Prelude.Nothing,+      tags = Prelude.Nothing,+      detectorId = pDetectorId_,+      rules = Prelude.mempty+    }++-- | The description of the detector version.+createDetectorVersion_description :: Lens.Lens' CreateDetectorVersion (Prelude.Maybe Prelude.Text)+createDetectorVersion_description = Lens.lens (\CreateDetectorVersion' {description} -> description) (\s@CreateDetectorVersion' {} a -> s {description = a} :: CreateDetectorVersion)++-- | The Amazon Sagemaker model endpoints to include in the detector version.+createDetectorVersion_externalModelEndpoints :: Lens.Lens' CreateDetectorVersion (Prelude.Maybe [Prelude.Text])+createDetectorVersion_externalModelEndpoints = Lens.lens (\CreateDetectorVersion' {externalModelEndpoints} -> externalModelEndpoints) (\s@CreateDetectorVersion' {} a -> s {externalModelEndpoints = a} :: CreateDetectorVersion) Prelude.. Lens.mapping Lens.coerced++-- | The model versions to include in the detector version.+createDetectorVersion_modelVersions :: Lens.Lens' CreateDetectorVersion (Prelude.Maybe [ModelVersion])+createDetectorVersion_modelVersions = Lens.lens (\CreateDetectorVersion' {modelVersions} -> modelVersions) (\s@CreateDetectorVersion' {} a -> s {modelVersions = a} :: CreateDetectorVersion) Prelude.. Lens.mapping Lens.coerced++-- | The rule execution mode for the rules included in the detector version.+--+-- You can define and edit the rule mode at the detector version level,+-- when it is in draft status.+--+-- If you specify @FIRST_MATCHED@, Amazon Fraud Detector evaluates rules+-- sequentially, first to last, stopping at the first matched rule. Amazon+-- Fraud dectector then provides the outcomes for that single rule.+--+-- If you specifiy @ALL_MATCHED@, Amazon Fraud Detector evaluates all rules+-- and returns the outcomes for all matched rules.+--+-- The default behavior is @FIRST_MATCHED@.+createDetectorVersion_ruleExecutionMode :: Lens.Lens' CreateDetectorVersion (Prelude.Maybe RuleExecutionMode)+createDetectorVersion_ruleExecutionMode = Lens.lens (\CreateDetectorVersion' {ruleExecutionMode} -> ruleExecutionMode) (\s@CreateDetectorVersion' {} a -> s {ruleExecutionMode = a} :: CreateDetectorVersion)++-- | A collection of key and value pairs.+createDetectorVersion_tags :: Lens.Lens' CreateDetectorVersion (Prelude.Maybe [Tag])+createDetectorVersion_tags = Lens.lens (\CreateDetectorVersion' {tags} -> tags) (\s@CreateDetectorVersion' {} a -> s {tags = a} :: CreateDetectorVersion) Prelude.. Lens.mapping Lens.coerced++-- | The ID of the detector under which you want to create a new version.+createDetectorVersion_detectorId :: Lens.Lens' CreateDetectorVersion Prelude.Text+createDetectorVersion_detectorId = Lens.lens (\CreateDetectorVersion' {detectorId} -> detectorId) (\s@CreateDetectorVersion' {} a -> s {detectorId = a} :: CreateDetectorVersion)++-- | The rules to include in the detector version.+createDetectorVersion_rules :: Lens.Lens' CreateDetectorVersion [Rule]+createDetectorVersion_rules = Lens.lens (\CreateDetectorVersion' {rules} -> rules) (\s@CreateDetectorVersion' {} a -> s {rules = a} :: CreateDetectorVersion) Prelude.. Lens.coerced++instance Core.AWSRequest CreateDetectorVersion where+  type+    AWSResponse CreateDetectorVersion =+      CreateDetectorVersionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateDetectorVersionResponse'+            Prelude.<$> (x Data..?> "detectorId")+            Prelude.<*> (x Data..?> "detectorVersionId")+            Prelude.<*> (x Data..?> "status")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateDetectorVersion where+  hashWithSalt _salt CreateDetectorVersion' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` externalModelEndpoints+      `Prelude.hashWithSalt` modelVersions+      `Prelude.hashWithSalt` ruleExecutionMode+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` detectorId+      `Prelude.hashWithSalt` rules++instance Prelude.NFData CreateDetectorVersion where+  rnf CreateDetectorVersion' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf externalModelEndpoints+      `Prelude.seq` Prelude.rnf modelVersions+      `Prelude.seq` Prelude.rnf ruleExecutionMode+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf detectorId+      `Prelude.seq` Prelude.rnf rules++instance Data.ToHeaders CreateDetectorVersion where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.CreateDetectorVersion" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateDetectorVersion where+  toJSON CreateDetectorVersion' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("externalModelEndpoints" Data..=)+              Prelude.<$> externalModelEndpoints,+            ("modelVersions" Data..=) Prelude.<$> modelVersions,+            ("ruleExecutionMode" Data..=)+              Prelude.<$> ruleExecutionMode,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("detectorId" Data..= detectorId),+            Prelude.Just ("rules" Data..= rules)+          ]+      )++instance Data.ToPath CreateDetectorVersion where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateDetectorVersion where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateDetectorVersionResponse' smart constructor.+data CreateDetectorVersionResponse = CreateDetectorVersionResponse'+  { -- | The ID for the created version\'s parent detector.+    detectorId :: Prelude.Maybe Prelude.Text,+    -- | The ID for the created detector.+    detectorVersionId :: Prelude.Maybe Prelude.Text,+    -- | The status of the detector version.+    status :: Prelude.Maybe DetectorVersionStatus,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDetectorVersionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'detectorId', 'createDetectorVersionResponse_detectorId' - The ID for the created version\'s parent detector.+--+-- 'detectorVersionId', 'createDetectorVersionResponse_detectorVersionId' - The ID for the created detector.+--+-- 'status', 'createDetectorVersionResponse_status' - The status of the detector version.+--+-- 'httpStatus', 'createDetectorVersionResponse_httpStatus' - The response's http status code.+newCreateDetectorVersionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateDetectorVersionResponse+newCreateDetectorVersionResponse pHttpStatus_ =+  CreateDetectorVersionResponse'+    { detectorId =+        Prelude.Nothing,+      detectorVersionId = Prelude.Nothing,+      status = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ID for the created version\'s parent detector.+createDetectorVersionResponse_detectorId :: Lens.Lens' CreateDetectorVersionResponse (Prelude.Maybe Prelude.Text)+createDetectorVersionResponse_detectorId = Lens.lens (\CreateDetectorVersionResponse' {detectorId} -> detectorId) (\s@CreateDetectorVersionResponse' {} a -> s {detectorId = a} :: CreateDetectorVersionResponse)++-- | The ID for the created detector.+createDetectorVersionResponse_detectorVersionId :: Lens.Lens' CreateDetectorVersionResponse (Prelude.Maybe Prelude.Text)+createDetectorVersionResponse_detectorVersionId = Lens.lens (\CreateDetectorVersionResponse' {detectorVersionId} -> detectorVersionId) (\s@CreateDetectorVersionResponse' {} a -> s {detectorVersionId = a} :: CreateDetectorVersionResponse)++-- | The status of the detector version.+createDetectorVersionResponse_status :: Lens.Lens' CreateDetectorVersionResponse (Prelude.Maybe DetectorVersionStatus)+createDetectorVersionResponse_status = Lens.lens (\CreateDetectorVersionResponse' {status} -> status) (\s@CreateDetectorVersionResponse' {} a -> s {status = a} :: CreateDetectorVersionResponse)++-- | The response's http status code.+createDetectorVersionResponse_httpStatus :: Lens.Lens' CreateDetectorVersionResponse Prelude.Int+createDetectorVersionResponse_httpStatus = Lens.lens (\CreateDetectorVersionResponse' {httpStatus} -> httpStatus) (\s@CreateDetectorVersionResponse' {} a -> s {httpStatus = a} :: CreateDetectorVersionResponse)++instance Prelude.NFData CreateDetectorVersionResponse where+  rnf CreateDetectorVersionResponse' {..} =+    Prelude.rnf detectorId+      `Prelude.seq` Prelude.rnf detectorVersionId+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/CreateModel.hs view
@@ -0,0 +1,212 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.CreateModel+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a model using the specified model type.+module Amazonka.FraudDetector.CreateModel+  ( -- * Creating a Request+    CreateModel (..),+    newCreateModel,++    -- * Request Lenses+    createModel_description,+    createModel_tags,+    createModel_modelId,+    createModel_modelType,+    createModel_eventTypeName,++    -- * Destructuring the Response+    CreateModelResponse (..),+    newCreateModelResponse,++    -- * Response Lenses+    createModelResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateModel' smart constructor.+data CreateModel = CreateModel'+  { -- | The model description.+    description :: Prelude.Maybe Prelude.Text,+    -- | A collection of key and value pairs.+    tags :: Prelude.Maybe [Tag],+    -- | The model ID.+    modelId :: Prelude.Text,+    -- | The model type.+    modelType :: ModelTypeEnum,+    -- | The name of the event type.+    eventTypeName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateModel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createModel_description' - The model description.+--+-- 'tags', 'createModel_tags' - A collection of key and value pairs.+--+-- 'modelId', 'createModel_modelId' - The model ID.+--+-- 'modelType', 'createModel_modelType' - The model type.+--+-- 'eventTypeName', 'createModel_eventTypeName' - The name of the event type.+newCreateModel ::+  -- | 'modelId'+  Prelude.Text ->+  -- | 'modelType'+  ModelTypeEnum ->+  -- | 'eventTypeName'+  Prelude.Text ->+  CreateModel+newCreateModel pModelId_ pModelType_ pEventTypeName_ =+  CreateModel'+    { description = Prelude.Nothing,+      tags = Prelude.Nothing,+      modelId = pModelId_,+      modelType = pModelType_,+      eventTypeName = pEventTypeName_+    }++-- | The model description.+createModel_description :: Lens.Lens' CreateModel (Prelude.Maybe Prelude.Text)+createModel_description = Lens.lens (\CreateModel' {description} -> description) (\s@CreateModel' {} a -> s {description = a} :: CreateModel)++-- | A collection of key and value pairs.+createModel_tags :: Lens.Lens' CreateModel (Prelude.Maybe [Tag])+createModel_tags = Lens.lens (\CreateModel' {tags} -> tags) (\s@CreateModel' {} a -> s {tags = a} :: CreateModel) Prelude.. Lens.mapping Lens.coerced++-- | The model ID.+createModel_modelId :: Lens.Lens' CreateModel Prelude.Text+createModel_modelId = Lens.lens (\CreateModel' {modelId} -> modelId) (\s@CreateModel' {} a -> s {modelId = a} :: CreateModel)++-- | The model type.+createModel_modelType :: Lens.Lens' CreateModel ModelTypeEnum+createModel_modelType = Lens.lens (\CreateModel' {modelType} -> modelType) (\s@CreateModel' {} a -> s {modelType = a} :: CreateModel)++-- | The name of the event type.+createModel_eventTypeName :: Lens.Lens' CreateModel Prelude.Text+createModel_eventTypeName = Lens.lens (\CreateModel' {eventTypeName} -> eventTypeName) (\s@CreateModel' {} a -> s {eventTypeName = a} :: CreateModel)++instance Core.AWSRequest CreateModel where+  type AWSResponse CreateModel = CreateModelResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          CreateModelResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateModel where+  hashWithSalt _salt CreateModel' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` modelId+      `Prelude.hashWithSalt` modelType+      `Prelude.hashWithSalt` eventTypeName++instance Prelude.NFData CreateModel where+  rnf CreateModel' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf modelId+      `Prelude.seq` Prelude.rnf modelType+      `Prelude.seq` Prelude.rnf eventTypeName++instance Data.ToHeaders CreateModel where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.CreateModel" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateModel where+  toJSON CreateModel' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("modelId" Data..= modelId),+            Prelude.Just ("modelType" Data..= modelType),+            Prelude.Just+              ("eventTypeName" Data..= eventTypeName)+          ]+      )++instance Data.ToPath CreateModel where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateModel where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateModelResponse' smart constructor.+data CreateModelResponse = CreateModelResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateModelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createModelResponse_httpStatus' - The response's http status code.+newCreateModelResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateModelResponse+newCreateModelResponse pHttpStatus_ =+  CreateModelResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+createModelResponse_httpStatus :: Lens.Lens' CreateModelResponse Prelude.Int+createModelResponse_httpStatus = Lens.lens (\CreateModelResponse' {httpStatus} -> httpStatus) (\s@CreateModelResponse' {} a -> s {httpStatus = a} :: CreateModelResponse)++instance Prelude.NFData CreateModelResponse where+  rnf CreateModelResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/CreateModelVersion.hs view
@@ -0,0 +1,309 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.CreateModelVersion+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a version of the model using the specified model type and model+-- id.+module Amazonka.FraudDetector.CreateModelVersion+  ( -- * Creating a Request+    CreateModelVersion (..),+    newCreateModelVersion,++    -- * Request Lenses+    createModelVersion_externalEventsDetail,+    createModelVersion_ingestedEventsDetail,+    createModelVersion_tags,+    createModelVersion_modelId,+    createModelVersion_modelType,+    createModelVersion_trainingDataSource,+    createModelVersion_trainingDataSchema,++    -- * Destructuring the Response+    CreateModelVersionResponse (..),+    newCreateModelVersionResponse,++    -- * Response Lenses+    createModelVersionResponse_modelId,+    createModelVersionResponse_modelType,+    createModelVersionResponse_modelVersionNumber,+    createModelVersionResponse_status,+    createModelVersionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateModelVersion' smart constructor.+data CreateModelVersion = CreateModelVersion'+  { -- | Details of the external events data used for model version training.+    -- Required if @trainingDataSource@ is @EXTERNAL_EVENTS@.+    externalEventsDetail :: Prelude.Maybe ExternalEventsDetail,+    -- | Details of the ingested events data used for model version training.+    -- Required if @trainingDataSource@ is @INGESTED_EVENTS@.+    ingestedEventsDetail :: Prelude.Maybe IngestedEventsDetail,+    -- | A collection of key and value pairs.+    tags :: Prelude.Maybe [Tag],+    -- | The model ID.+    modelId :: Prelude.Text,+    -- | The model type.+    modelType :: ModelTypeEnum,+    -- | The training data source location in Amazon S3.+    trainingDataSource :: TrainingDataSourceEnum,+    -- | The training data schema.+    trainingDataSchema :: TrainingDataSchema+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateModelVersion' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'externalEventsDetail', 'createModelVersion_externalEventsDetail' - Details of the external events data used for model version training.+-- Required if @trainingDataSource@ is @EXTERNAL_EVENTS@.+--+-- 'ingestedEventsDetail', 'createModelVersion_ingestedEventsDetail' - Details of the ingested events data used for model version training.+-- Required if @trainingDataSource@ is @INGESTED_EVENTS@.+--+-- 'tags', 'createModelVersion_tags' - A collection of key and value pairs.+--+-- 'modelId', 'createModelVersion_modelId' - The model ID.+--+-- 'modelType', 'createModelVersion_modelType' - The model type.+--+-- 'trainingDataSource', 'createModelVersion_trainingDataSource' - The training data source location in Amazon S3.+--+-- 'trainingDataSchema', 'createModelVersion_trainingDataSchema' - The training data schema.+newCreateModelVersion ::+  -- | 'modelId'+  Prelude.Text ->+  -- | 'modelType'+  ModelTypeEnum ->+  -- | 'trainingDataSource'+  TrainingDataSourceEnum ->+  -- | 'trainingDataSchema'+  TrainingDataSchema ->+  CreateModelVersion+newCreateModelVersion+  pModelId_+  pModelType_+  pTrainingDataSource_+  pTrainingDataSchema_ =+    CreateModelVersion'+      { externalEventsDetail =+          Prelude.Nothing,+        ingestedEventsDetail = Prelude.Nothing,+        tags = Prelude.Nothing,+        modelId = pModelId_,+        modelType = pModelType_,+        trainingDataSource = pTrainingDataSource_,+        trainingDataSchema = pTrainingDataSchema_+      }++-- | Details of the external events data used for model version training.+-- Required if @trainingDataSource@ is @EXTERNAL_EVENTS@.+createModelVersion_externalEventsDetail :: Lens.Lens' CreateModelVersion (Prelude.Maybe ExternalEventsDetail)+createModelVersion_externalEventsDetail = Lens.lens (\CreateModelVersion' {externalEventsDetail} -> externalEventsDetail) (\s@CreateModelVersion' {} a -> s {externalEventsDetail = a} :: CreateModelVersion)++-- | Details of the ingested events data used for model version training.+-- Required if @trainingDataSource@ is @INGESTED_EVENTS@.+createModelVersion_ingestedEventsDetail :: Lens.Lens' CreateModelVersion (Prelude.Maybe IngestedEventsDetail)+createModelVersion_ingestedEventsDetail = Lens.lens (\CreateModelVersion' {ingestedEventsDetail} -> ingestedEventsDetail) (\s@CreateModelVersion' {} a -> s {ingestedEventsDetail = a} :: CreateModelVersion)++-- | A collection of key and value pairs.+createModelVersion_tags :: Lens.Lens' CreateModelVersion (Prelude.Maybe [Tag])+createModelVersion_tags = Lens.lens (\CreateModelVersion' {tags} -> tags) (\s@CreateModelVersion' {} a -> s {tags = a} :: CreateModelVersion) Prelude.. Lens.mapping Lens.coerced++-- | The model ID.+createModelVersion_modelId :: Lens.Lens' CreateModelVersion Prelude.Text+createModelVersion_modelId = Lens.lens (\CreateModelVersion' {modelId} -> modelId) (\s@CreateModelVersion' {} a -> s {modelId = a} :: CreateModelVersion)++-- | The model type.+createModelVersion_modelType :: Lens.Lens' CreateModelVersion ModelTypeEnum+createModelVersion_modelType = Lens.lens (\CreateModelVersion' {modelType} -> modelType) (\s@CreateModelVersion' {} a -> s {modelType = a} :: CreateModelVersion)++-- | The training data source location in Amazon S3.+createModelVersion_trainingDataSource :: Lens.Lens' CreateModelVersion TrainingDataSourceEnum+createModelVersion_trainingDataSource = Lens.lens (\CreateModelVersion' {trainingDataSource} -> trainingDataSource) (\s@CreateModelVersion' {} a -> s {trainingDataSource = a} :: CreateModelVersion)++-- | The training data schema.+createModelVersion_trainingDataSchema :: Lens.Lens' CreateModelVersion TrainingDataSchema+createModelVersion_trainingDataSchema = Lens.lens (\CreateModelVersion' {trainingDataSchema} -> trainingDataSchema) (\s@CreateModelVersion' {} a -> s {trainingDataSchema = a} :: CreateModelVersion)++instance Core.AWSRequest CreateModelVersion where+  type+    AWSResponse CreateModelVersion =+      CreateModelVersionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateModelVersionResponse'+            Prelude.<$> (x Data..?> "modelId")+            Prelude.<*> (x Data..?> "modelType")+            Prelude.<*> (x Data..?> "modelVersionNumber")+            Prelude.<*> (x Data..?> "status")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateModelVersion where+  hashWithSalt _salt CreateModelVersion' {..} =+    _salt+      `Prelude.hashWithSalt` externalEventsDetail+      `Prelude.hashWithSalt` ingestedEventsDetail+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` modelId+      `Prelude.hashWithSalt` modelType+      `Prelude.hashWithSalt` trainingDataSource+      `Prelude.hashWithSalt` trainingDataSchema++instance Prelude.NFData CreateModelVersion where+  rnf CreateModelVersion' {..} =+    Prelude.rnf externalEventsDetail+      `Prelude.seq` Prelude.rnf ingestedEventsDetail+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf modelId+      `Prelude.seq` Prelude.rnf modelType+      `Prelude.seq` Prelude.rnf trainingDataSource+      `Prelude.seq` Prelude.rnf trainingDataSchema++instance Data.ToHeaders CreateModelVersion where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.CreateModelVersion" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateModelVersion where+  toJSON CreateModelVersion' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("externalEventsDetail" Data..=)+              Prelude.<$> externalEventsDetail,+            ("ingestedEventsDetail" Data..=)+              Prelude.<$> ingestedEventsDetail,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("modelId" Data..= modelId),+            Prelude.Just ("modelType" Data..= modelType),+            Prelude.Just+              ("trainingDataSource" Data..= trainingDataSource),+            Prelude.Just+              ("trainingDataSchema" Data..= trainingDataSchema)+          ]+      )++instance Data.ToPath CreateModelVersion where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateModelVersion where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateModelVersionResponse' smart constructor.+data CreateModelVersionResponse = CreateModelVersionResponse'+  { -- | The model ID.+    modelId :: Prelude.Maybe Prelude.Text,+    -- | The model type.+    modelType :: Prelude.Maybe ModelTypeEnum,+    -- | The model version number of the model version created.+    modelVersionNumber :: Prelude.Maybe Prelude.Text,+    -- | The model version status.+    status :: 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 'CreateModelVersionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'modelId', 'createModelVersionResponse_modelId' - The model ID.+--+-- 'modelType', 'createModelVersionResponse_modelType' - The model type.+--+-- 'modelVersionNumber', 'createModelVersionResponse_modelVersionNumber' - The model version number of the model version created.+--+-- 'status', 'createModelVersionResponse_status' - The model version status.+--+-- 'httpStatus', 'createModelVersionResponse_httpStatus' - The response's http status code.+newCreateModelVersionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateModelVersionResponse+newCreateModelVersionResponse pHttpStatus_ =+  CreateModelVersionResponse'+    { modelId =+        Prelude.Nothing,+      modelType = Prelude.Nothing,+      modelVersionNumber = Prelude.Nothing,+      status = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The model ID.+createModelVersionResponse_modelId :: Lens.Lens' CreateModelVersionResponse (Prelude.Maybe Prelude.Text)+createModelVersionResponse_modelId = Lens.lens (\CreateModelVersionResponse' {modelId} -> modelId) (\s@CreateModelVersionResponse' {} a -> s {modelId = a} :: CreateModelVersionResponse)++-- | The model type.+createModelVersionResponse_modelType :: Lens.Lens' CreateModelVersionResponse (Prelude.Maybe ModelTypeEnum)+createModelVersionResponse_modelType = Lens.lens (\CreateModelVersionResponse' {modelType} -> modelType) (\s@CreateModelVersionResponse' {} a -> s {modelType = a} :: CreateModelVersionResponse)++-- | The model version number of the model version created.+createModelVersionResponse_modelVersionNumber :: Lens.Lens' CreateModelVersionResponse (Prelude.Maybe Prelude.Text)+createModelVersionResponse_modelVersionNumber = Lens.lens (\CreateModelVersionResponse' {modelVersionNumber} -> modelVersionNumber) (\s@CreateModelVersionResponse' {} a -> s {modelVersionNumber = a} :: CreateModelVersionResponse)++-- | The model version status.+createModelVersionResponse_status :: Lens.Lens' CreateModelVersionResponse (Prelude.Maybe Prelude.Text)+createModelVersionResponse_status = Lens.lens (\CreateModelVersionResponse' {status} -> status) (\s@CreateModelVersionResponse' {} a -> s {status = a} :: CreateModelVersionResponse)++-- | The response's http status code.+createModelVersionResponse_httpStatus :: Lens.Lens' CreateModelVersionResponse Prelude.Int+createModelVersionResponse_httpStatus = Lens.lens (\CreateModelVersionResponse' {httpStatus} -> httpStatus) (\s@CreateModelVersionResponse' {} a -> s {httpStatus = a} :: CreateModelVersionResponse)++instance Prelude.NFData CreateModelVersionResponse where+  rnf CreateModelVersionResponse' {..} =+    Prelude.rnf modelId+      `Prelude.seq` Prelude.rnf modelType+      `Prelude.seq` Prelude.rnf modelVersionNumber+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/CreateRule.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.FraudDetector.CreateRule+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a rule for use with the specified detector.+module Amazonka.FraudDetector.CreateRule+  ( -- * Creating a Request+    CreateRule (..),+    newCreateRule,++    -- * Request Lenses+    createRule_description,+    createRule_tags,+    createRule_ruleId,+    createRule_detectorId,+    createRule_expression,+    createRule_language,+    createRule_outcomes,++    -- * Destructuring the Response+    CreateRuleResponse (..),+    newCreateRuleResponse,++    -- * Response Lenses+    createRuleResponse_rule,+    createRuleResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateRule' smart constructor.+data CreateRule = CreateRule'+  { -- | The rule description.+    description :: Prelude.Maybe Prelude.Text,+    -- | A collection of key and value pairs.+    tags :: Prelude.Maybe [Tag],+    -- | The rule ID.+    ruleId :: Prelude.Text,+    -- | The detector ID for the rule\'s parent detector.+    detectorId :: Prelude.Text,+    -- | The rule expression.+    expression :: Data.Sensitive Prelude.Text,+    -- | The language of the rule.+    language :: Language,+    -- | The outcome or outcomes returned when the rule expression matches.+    outcomes :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateRule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createRule_description' - The rule description.+--+-- 'tags', 'createRule_tags' - A collection of key and value pairs.+--+-- 'ruleId', 'createRule_ruleId' - The rule ID.+--+-- 'detectorId', 'createRule_detectorId' - The detector ID for the rule\'s parent detector.+--+-- 'expression', 'createRule_expression' - The rule expression.+--+-- 'language', 'createRule_language' - The language of the rule.+--+-- 'outcomes', 'createRule_outcomes' - The outcome or outcomes returned when the rule expression matches.+newCreateRule ::+  -- | 'ruleId'+  Prelude.Text ->+  -- | 'detectorId'+  Prelude.Text ->+  -- | 'expression'+  Prelude.Text ->+  -- | 'language'+  Language ->+  -- | 'outcomes'+  Prelude.NonEmpty Prelude.Text ->+  CreateRule+newCreateRule+  pRuleId_+  pDetectorId_+  pExpression_+  pLanguage_+  pOutcomes_ =+    CreateRule'+      { description = Prelude.Nothing,+        tags = Prelude.Nothing,+        ruleId = pRuleId_,+        detectorId = pDetectorId_,+        expression = Data._Sensitive Lens.# pExpression_,+        language = pLanguage_,+        outcomes = Lens.coerced Lens.# pOutcomes_+      }++-- | The rule description.+createRule_description :: Lens.Lens' CreateRule (Prelude.Maybe Prelude.Text)+createRule_description = Lens.lens (\CreateRule' {description} -> description) (\s@CreateRule' {} a -> s {description = a} :: CreateRule)++-- | A collection of key and value pairs.+createRule_tags :: Lens.Lens' CreateRule (Prelude.Maybe [Tag])+createRule_tags = Lens.lens (\CreateRule' {tags} -> tags) (\s@CreateRule' {} a -> s {tags = a} :: CreateRule) Prelude.. Lens.mapping Lens.coerced++-- | The rule ID.+createRule_ruleId :: Lens.Lens' CreateRule Prelude.Text+createRule_ruleId = Lens.lens (\CreateRule' {ruleId} -> ruleId) (\s@CreateRule' {} a -> s {ruleId = a} :: CreateRule)++-- | The detector ID for the rule\'s parent detector.+createRule_detectorId :: Lens.Lens' CreateRule Prelude.Text+createRule_detectorId = Lens.lens (\CreateRule' {detectorId} -> detectorId) (\s@CreateRule' {} a -> s {detectorId = a} :: CreateRule)++-- | The rule expression.+createRule_expression :: Lens.Lens' CreateRule Prelude.Text+createRule_expression = Lens.lens (\CreateRule' {expression} -> expression) (\s@CreateRule' {} a -> s {expression = a} :: CreateRule) Prelude.. Data._Sensitive++-- | The language of the rule.+createRule_language :: Lens.Lens' CreateRule Language+createRule_language = Lens.lens (\CreateRule' {language} -> language) (\s@CreateRule' {} a -> s {language = a} :: CreateRule)++-- | The outcome or outcomes returned when the rule expression matches.+createRule_outcomes :: Lens.Lens' CreateRule (Prelude.NonEmpty Prelude.Text)+createRule_outcomes = Lens.lens (\CreateRule' {outcomes} -> outcomes) (\s@CreateRule' {} a -> s {outcomes = a} :: CreateRule) Prelude.. Lens.coerced++instance Core.AWSRequest CreateRule where+  type AWSResponse CreateRule = CreateRuleResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateRuleResponse'+            Prelude.<$> (x Data..?> "rule")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateRule where+  hashWithSalt _salt CreateRule' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` ruleId+      `Prelude.hashWithSalt` detectorId+      `Prelude.hashWithSalt` expression+      `Prelude.hashWithSalt` language+      `Prelude.hashWithSalt` outcomes++instance Prelude.NFData CreateRule where+  rnf CreateRule' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf ruleId+      `Prelude.seq` Prelude.rnf detectorId+      `Prelude.seq` Prelude.rnf expression+      `Prelude.seq` Prelude.rnf language+      `Prelude.seq` Prelude.rnf outcomes++instance Data.ToHeaders CreateRule where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.CreateRule" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateRule where+  toJSON CreateRule' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("ruleId" Data..= ruleId),+            Prelude.Just ("detectorId" Data..= detectorId),+            Prelude.Just ("expression" Data..= expression),+            Prelude.Just ("language" Data..= language),+            Prelude.Just ("outcomes" Data..= outcomes)+          ]+      )++instance Data.ToPath CreateRule where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateRule where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateRuleResponse' smart constructor.+data CreateRuleResponse = CreateRuleResponse'+  { -- | The created rule.+    rule :: Prelude.Maybe Rule,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateRuleResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'rule', 'createRuleResponse_rule' - The created rule.+--+-- 'httpStatus', 'createRuleResponse_httpStatus' - The response's http status code.+newCreateRuleResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateRuleResponse+newCreateRuleResponse pHttpStatus_ =+  CreateRuleResponse'+    { rule = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The created rule.+createRuleResponse_rule :: Lens.Lens' CreateRuleResponse (Prelude.Maybe Rule)+createRuleResponse_rule = Lens.lens (\CreateRuleResponse' {rule} -> rule) (\s@CreateRuleResponse' {} a -> s {rule = a} :: CreateRuleResponse)++-- | The response's http status code.+createRuleResponse_httpStatus :: Lens.Lens' CreateRuleResponse Prelude.Int+createRuleResponse_httpStatus = Lens.lens (\CreateRuleResponse' {httpStatus} -> httpStatus) (\s@CreateRuleResponse' {} a -> s {httpStatus = a} :: CreateRuleResponse)++instance Prelude.NFData CreateRuleResponse where+  rnf CreateRuleResponse' {..} =+    Prelude.rnf rule+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/CreateVariable.hs view
@@ -0,0 +1,258 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.CreateVariable+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a variable.+module Amazonka.FraudDetector.CreateVariable+  ( -- * Creating a Request+    CreateVariable (..),+    newCreateVariable,++    -- * Request Lenses+    createVariable_description,+    createVariable_tags,+    createVariable_variableType,+    createVariable_name,+    createVariable_dataType,+    createVariable_dataSource,+    createVariable_defaultValue,++    -- * Destructuring the Response+    CreateVariableResponse (..),+    newCreateVariableResponse,++    -- * Response Lenses+    createVariableResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateVariable' smart constructor.+data CreateVariable = CreateVariable'+  { -- | The description.+    description :: Prelude.Maybe Prelude.Text,+    -- | A collection of key and value pairs.+    tags :: Prelude.Maybe [Tag],+    -- | The variable type. For more information see+    -- <https://docs.aws.amazon.com/frauddetector/latest/ug/create-a-variable.html#variable-types Variable types>.+    --+    -- Valid Values:+    -- @AUTH_CODE | AVS | BILLING_ADDRESS_L1 | BILLING_ADDRESS_L2 | BILLING_CITY | BILLING_COUNTRY | BILLING_NAME | BILLING_PHONE | BILLING_STATE | BILLING_ZIP | CARD_BIN | CATEGORICAL | CURRENCY_CODE | EMAIL_ADDRESS | FINGERPRINT | FRAUD_LABEL | FREE_FORM_TEXT | IP_ADDRESS | NUMERIC | ORDER_ID | PAYMENT_TYPE | PHONE_NUMBER | PRICE | PRODUCT_CATEGORY | SHIPPING_ADDRESS_L1 | SHIPPING_ADDRESS_L2 | SHIPPING_CITY | SHIPPING_COUNTRY | SHIPPING_NAME | SHIPPING_PHONE | SHIPPING_STATE | SHIPPING_ZIP | USERAGENT@+    variableType :: Prelude.Maybe Prelude.Text,+    -- | The name of the variable.+    name :: Prelude.Text,+    -- | The data type.+    dataType :: DataType,+    -- | The source of the data.+    dataSource :: DataSource,+    -- | The default value for the variable when no value is received.+    defaultValue :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateVariable' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createVariable_description' - The description.+--+-- 'tags', 'createVariable_tags' - A collection of key and value pairs.+--+-- 'variableType', 'createVariable_variableType' - The variable type. For more information see+-- <https://docs.aws.amazon.com/frauddetector/latest/ug/create-a-variable.html#variable-types Variable types>.+--+-- Valid Values:+-- @AUTH_CODE | AVS | BILLING_ADDRESS_L1 | BILLING_ADDRESS_L2 | BILLING_CITY | BILLING_COUNTRY | BILLING_NAME | BILLING_PHONE | BILLING_STATE | BILLING_ZIP | CARD_BIN | CATEGORICAL | CURRENCY_CODE | EMAIL_ADDRESS | FINGERPRINT | FRAUD_LABEL | FREE_FORM_TEXT | IP_ADDRESS | NUMERIC | ORDER_ID | PAYMENT_TYPE | PHONE_NUMBER | PRICE | PRODUCT_CATEGORY | SHIPPING_ADDRESS_L1 | SHIPPING_ADDRESS_L2 | SHIPPING_CITY | SHIPPING_COUNTRY | SHIPPING_NAME | SHIPPING_PHONE | SHIPPING_STATE | SHIPPING_ZIP | USERAGENT@+--+-- 'name', 'createVariable_name' - The name of the variable.+--+-- 'dataType', 'createVariable_dataType' - The data type.+--+-- 'dataSource', 'createVariable_dataSource' - The source of the data.+--+-- 'defaultValue', 'createVariable_defaultValue' - The default value for the variable when no value is received.+newCreateVariable ::+  -- | 'name'+  Prelude.Text ->+  -- | 'dataType'+  DataType ->+  -- | 'dataSource'+  DataSource ->+  -- | 'defaultValue'+  Prelude.Text ->+  CreateVariable+newCreateVariable+  pName_+  pDataType_+  pDataSource_+  pDefaultValue_ =+    CreateVariable'+      { description = Prelude.Nothing,+        tags = Prelude.Nothing,+        variableType = Prelude.Nothing,+        name = pName_,+        dataType = pDataType_,+        dataSource = pDataSource_,+        defaultValue = pDefaultValue_+      }++-- | The description.+createVariable_description :: Lens.Lens' CreateVariable (Prelude.Maybe Prelude.Text)+createVariable_description = Lens.lens (\CreateVariable' {description} -> description) (\s@CreateVariable' {} a -> s {description = a} :: CreateVariable)++-- | A collection of key and value pairs.+createVariable_tags :: Lens.Lens' CreateVariable (Prelude.Maybe [Tag])+createVariable_tags = Lens.lens (\CreateVariable' {tags} -> tags) (\s@CreateVariable' {} a -> s {tags = a} :: CreateVariable) Prelude.. Lens.mapping Lens.coerced++-- | The variable type. For more information see+-- <https://docs.aws.amazon.com/frauddetector/latest/ug/create-a-variable.html#variable-types Variable types>.+--+-- Valid Values:+-- @AUTH_CODE | AVS | BILLING_ADDRESS_L1 | BILLING_ADDRESS_L2 | BILLING_CITY | BILLING_COUNTRY | BILLING_NAME | BILLING_PHONE | BILLING_STATE | BILLING_ZIP | CARD_BIN | CATEGORICAL | CURRENCY_CODE | EMAIL_ADDRESS | FINGERPRINT | FRAUD_LABEL | FREE_FORM_TEXT | IP_ADDRESS | NUMERIC | ORDER_ID | PAYMENT_TYPE | PHONE_NUMBER | PRICE | PRODUCT_CATEGORY | SHIPPING_ADDRESS_L1 | SHIPPING_ADDRESS_L2 | SHIPPING_CITY | SHIPPING_COUNTRY | SHIPPING_NAME | SHIPPING_PHONE | SHIPPING_STATE | SHIPPING_ZIP | USERAGENT@+createVariable_variableType :: Lens.Lens' CreateVariable (Prelude.Maybe Prelude.Text)+createVariable_variableType = Lens.lens (\CreateVariable' {variableType} -> variableType) (\s@CreateVariable' {} a -> s {variableType = a} :: CreateVariable)++-- | The name of the variable.+createVariable_name :: Lens.Lens' CreateVariable Prelude.Text+createVariable_name = Lens.lens (\CreateVariable' {name} -> name) (\s@CreateVariable' {} a -> s {name = a} :: CreateVariable)++-- | The data type.+createVariable_dataType :: Lens.Lens' CreateVariable DataType+createVariable_dataType = Lens.lens (\CreateVariable' {dataType} -> dataType) (\s@CreateVariable' {} a -> s {dataType = a} :: CreateVariable)++-- | The source of the data.+createVariable_dataSource :: Lens.Lens' CreateVariable DataSource+createVariable_dataSource = Lens.lens (\CreateVariable' {dataSource} -> dataSource) (\s@CreateVariable' {} a -> s {dataSource = a} :: CreateVariable)++-- | The default value for the variable when no value is received.+createVariable_defaultValue :: Lens.Lens' CreateVariable Prelude.Text+createVariable_defaultValue = Lens.lens (\CreateVariable' {defaultValue} -> defaultValue) (\s@CreateVariable' {} a -> s {defaultValue = a} :: CreateVariable)++instance Core.AWSRequest CreateVariable where+  type+    AWSResponse CreateVariable =+      CreateVariableResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          CreateVariableResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateVariable where+  hashWithSalt _salt CreateVariable' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` variableType+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` dataType+      `Prelude.hashWithSalt` dataSource+      `Prelude.hashWithSalt` defaultValue++instance Prelude.NFData CreateVariable where+  rnf CreateVariable' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf variableType+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf dataType+      `Prelude.seq` Prelude.rnf dataSource+      `Prelude.seq` Prelude.rnf defaultValue++instance Data.ToHeaders CreateVariable where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.CreateVariable" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateVariable where+  toJSON CreateVariable' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("tags" Data..=) Prelude.<$> tags,+            ("variableType" Data..=) Prelude.<$> variableType,+            Prelude.Just ("name" Data..= name),+            Prelude.Just ("dataType" Data..= dataType),+            Prelude.Just ("dataSource" Data..= dataSource),+            Prelude.Just ("defaultValue" Data..= defaultValue)+          ]+      )++instance Data.ToPath CreateVariable where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateVariable where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateVariableResponse' smart constructor.+data CreateVariableResponse = CreateVariableResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateVariableResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createVariableResponse_httpStatus' - The response's http status code.+newCreateVariableResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateVariableResponse+newCreateVariableResponse pHttpStatus_ =+  CreateVariableResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+createVariableResponse_httpStatus :: Lens.Lens' CreateVariableResponse Prelude.Int+createVariableResponse_httpStatus = Lens.lens (\CreateVariableResponse' {httpStatus} -> httpStatus) (\s@CreateVariableResponse' {} a -> s {httpStatus = a} :: CreateVariableResponse)++instance Prelude.NFData CreateVariableResponse where+  rnf CreateVariableResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/DeleteBatchImportJob.hs view
@@ -0,0 +1,157 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.DeleteBatchImportJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified batch import job ID record. This action does not+-- delete the data that was batch imported.+module Amazonka.FraudDetector.DeleteBatchImportJob+  ( -- * Creating a Request+    DeleteBatchImportJob (..),+    newDeleteBatchImportJob,++    -- * Request Lenses+    deleteBatchImportJob_jobId,++    -- * Destructuring the Response+    DeleteBatchImportJobResponse (..),+    newDeleteBatchImportJobResponse,++    -- * Response Lenses+    deleteBatchImportJobResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteBatchImportJob' smart constructor.+data DeleteBatchImportJob = DeleteBatchImportJob'+  { -- | The ID of the batch import job to delete.+    jobId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteBatchImportJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteBatchImportJob_jobId' - The ID of the batch import job to delete.+newDeleteBatchImportJob ::+  -- | 'jobId'+  Prelude.Text ->+  DeleteBatchImportJob+newDeleteBatchImportJob pJobId_ =+  DeleteBatchImportJob' {jobId = pJobId_}++-- | The ID of the batch import job to delete.+deleteBatchImportJob_jobId :: Lens.Lens' DeleteBatchImportJob Prelude.Text+deleteBatchImportJob_jobId = Lens.lens (\DeleteBatchImportJob' {jobId} -> jobId) (\s@DeleteBatchImportJob' {} a -> s {jobId = a} :: DeleteBatchImportJob)++instance Core.AWSRequest DeleteBatchImportJob where+  type+    AWSResponse DeleteBatchImportJob =+      DeleteBatchImportJobResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteBatchImportJobResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteBatchImportJob where+  hashWithSalt _salt DeleteBatchImportJob' {..} =+    _salt `Prelude.hashWithSalt` jobId++instance Prelude.NFData DeleteBatchImportJob where+  rnf DeleteBatchImportJob' {..} = Prelude.rnf jobId++instance Data.ToHeaders DeleteBatchImportJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.DeleteBatchImportJob" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteBatchImportJob where+  toJSON DeleteBatchImportJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("jobId" Data..= jobId)]+      )++instance Data.ToPath DeleteBatchImportJob where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteBatchImportJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteBatchImportJobResponse' smart constructor.+data DeleteBatchImportJobResponse = DeleteBatchImportJobResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteBatchImportJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteBatchImportJobResponse_httpStatus' - The response's http status code.+newDeleteBatchImportJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteBatchImportJobResponse+newDeleteBatchImportJobResponse pHttpStatus_ =+  DeleteBatchImportJobResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deleteBatchImportJobResponse_httpStatus :: Lens.Lens' DeleteBatchImportJobResponse Prelude.Int+deleteBatchImportJobResponse_httpStatus = Lens.lens (\DeleteBatchImportJobResponse' {httpStatus} -> httpStatus) (\s@DeleteBatchImportJobResponse' {} a -> s {httpStatus = a} :: DeleteBatchImportJobResponse)++instance Prelude.NFData DeleteBatchImportJobResponse where+  rnf DeleteBatchImportJobResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/DeleteBatchPredictionJob.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.FraudDetector.DeleteBatchPredictionJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a batch prediction job.+module Amazonka.FraudDetector.DeleteBatchPredictionJob+  ( -- * Creating a Request+    DeleteBatchPredictionJob (..),+    newDeleteBatchPredictionJob,++    -- * Request Lenses+    deleteBatchPredictionJob_jobId,++    -- * Destructuring the Response+    DeleteBatchPredictionJobResponse (..),+    newDeleteBatchPredictionJobResponse,++    -- * Response Lenses+    deleteBatchPredictionJobResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteBatchPredictionJob' smart constructor.+data DeleteBatchPredictionJob = DeleteBatchPredictionJob'+  { -- | The ID of the batch prediction job to delete.+    jobId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteBatchPredictionJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteBatchPredictionJob_jobId' - The ID of the batch prediction job to delete.+newDeleteBatchPredictionJob ::+  -- | 'jobId'+  Prelude.Text ->+  DeleteBatchPredictionJob+newDeleteBatchPredictionJob pJobId_ =+  DeleteBatchPredictionJob' {jobId = pJobId_}++-- | The ID of the batch prediction job to delete.+deleteBatchPredictionJob_jobId :: Lens.Lens' DeleteBatchPredictionJob Prelude.Text+deleteBatchPredictionJob_jobId = Lens.lens (\DeleteBatchPredictionJob' {jobId} -> jobId) (\s@DeleteBatchPredictionJob' {} a -> s {jobId = a} :: DeleteBatchPredictionJob)++instance Core.AWSRequest DeleteBatchPredictionJob where+  type+    AWSResponse DeleteBatchPredictionJob =+      DeleteBatchPredictionJobResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteBatchPredictionJobResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteBatchPredictionJob where+  hashWithSalt _salt DeleteBatchPredictionJob' {..} =+    _salt `Prelude.hashWithSalt` jobId++instance Prelude.NFData DeleteBatchPredictionJob where+  rnf DeleteBatchPredictionJob' {..} = Prelude.rnf jobId++instance Data.ToHeaders DeleteBatchPredictionJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.DeleteBatchPredictionJob" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteBatchPredictionJob where+  toJSON DeleteBatchPredictionJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("jobId" Data..= jobId)]+      )++instance Data.ToPath DeleteBatchPredictionJob where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteBatchPredictionJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteBatchPredictionJobResponse' smart constructor.+data DeleteBatchPredictionJobResponse = DeleteBatchPredictionJobResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteBatchPredictionJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteBatchPredictionJobResponse_httpStatus' - The response's http status code.+newDeleteBatchPredictionJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteBatchPredictionJobResponse+newDeleteBatchPredictionJobResponse pHttpStatus_ =+  DeleteBatchPredictionJobResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deleteBatchPredictionJobResponse_httpStatus :: Lens.Lens' DeleteBatchPredictionJobResponse Prelude.Int+deleteBatchPredictionJobResponse_httpStatus = Lens.lens (\DeleteBatchPredictionJobResponse' {httpStatus} -> httpStatus) (\s@DeleteBatchPredictionJobResponse' {} a -> s {httpStatus = a} :: DeleteBatchPredictionJobResponse)++instance+  Prelude.NFData+    DeleteBatchPredictionJobResponse+  where+  rnf DeleteBatchPredictionJobResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/DeleteDetector.hs view
@@ -0,0 +1,157 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.DeleteDetector+-- 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 detector. Before deleting a detector, you must first delete+-- all detector versions and rule versions associated with the detector.+--+-- When you delete a detector, Amazon Fraud Detector permanently deletes+-- the detector and the data is no longer stored in Amazon Fraud Detector.+module Amazonka.FraudDetector.DeleteDetector+  ( -- * Creating a Request+    DeleteDetector (..),+    newDeleteDetector,++    -- * Request Lenses+    deleteDetector_detectorId,++    -- * Destructuring the Response+    DeleteDetectorResponse (..),+    newDeleteDetectorResponse,++    -- * Response Lenses+    deleteDetectorResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteDetector' smart constructor.+data DeleteDetector = DeleteDetector'+  { -- | The ID of the detector to delete.+    detectorId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDetector' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'detectorId', 'deleteDetector_detectorId' - The ID of the detector to delete.+newDeleteDetector ::+  -- | 'detectorId'+  Prelude.Text ->+  DeleteDetector+newDeleteDetector pDetectorId_ =+  DeleteDetector' {detectorId = pDetectorId_}++-- | The ID of the detector to delete.+deleteDetector_detectorId :: Lens.Lens' DeleteDetector Prelude.Text+deleteDetector_detectorId = Lens.lens (\DeleteDetector' {detectorId} -> detectorId) (\s@DeleteDetector' {} a -> s {detectorId = a} :: DeleteDetector)++instance Core.AWSRequest DeleteDetector where+  type+    AWSResponse DeleteDetector =+      DeleteDetectorResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteDetectorResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteDetector where+  hashWithSalt _salt DeleteDetector' {..} =+    _salt `Prelude.hashWithSalt` detectorId++instance Prelude.NFData DeleteDetector where+  rnf DeleteDetector' {..} = Prelude.rnf detectorId++instance Data.ToHeaders DeleteDetector where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.DeleteDetector" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteDetector where+  toJSON DeleteDetector' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("detectorId" Data..= detectorId)]+      )++instance Data.ToPath DeleteDetector where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteDetector where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteDetectorResponse' smart constructor.+data DeleteDetectorResponse = DeleteDetectorResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDetectorResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteDetectorResponse_httpStatus' - The response's http status code.+newDeleteDetectorResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteDetectorResponse+newDeleteDetectorResponse pHttpStatus_ =+  DeleteDetectorResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+deleteDetectorResponse_httpStatus :: Lens.Lens' DeleteDetectorResponse Prelude.Int+deleteDetectorResponse_httpStatus = Lens.lens (\DeleteDetectorResponse' {httpStatus} -> httpStatus) (\s@DeleteDetectorResponse' {} a -> s {httpStatus = a} :: DeleteDetectorResponse)++instance Prelude.NFData DeleteDetectorResponse where+  rnf DeleteDetectorResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/DeleteDetectorVersion.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.FraudDetector.DeleteDetectorVersion+-- 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 detector version. You cannot delete detector versions that+-- are in @ACTIVE@ status.+--+-- When you delete a detector version, Amazon Fraud Detector permanently+-- deletes the detector and the data is no longer stored in Amazon Fraud+-- Detector.+module Amazonka.FraudDetector.DeleteDetectorVersion+  ( -- * Creating a Request+    DeleteDetectorVersion (..),+    newDeleteDetectorVersion,++    -- * Request Lenses+    deleteDetectorVersion_detectorId,+    deleteDetectorVersion_detectorVersionId,++    -- * Destructuring the Response+    DeleteDetectorVersionResponse (..),+    newDeleteDetectorVersionResponse,++    -- * Response Lenses+    deleteDetectorVersionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteDetectorVersion' smart constructor.+data DeleteDetectorVersion = DeleteDetectorVersion'+  { -- | The ID of the parent detector for the detector version to delete.+    detectorId :: Prelude.Text,+    -- | The ID of the detector version to delete.+    detectorVersionId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDetectorVersion' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'detectorId', 'deleteDetectorVersion_detectorId' - The ID of the parent detector for the detector version to delete.+--+-- 'detectorVersionId', 'deleteDetectorVersion_detectorVersionId' - The ID of the detector version to delete.+newDeleteDetectorVersion ::+  -- | 'detectorId'+  Prelude.Text ->+  -- | 'detectorVersionId'+  Prelude.Text ->+  DeleteDetectorVersion+newDeleteDetectorVersion+  pDetectorId_+  pDetectorVersionId_ =+    DeleteDetectorVersion'+      { detectorId = pDetectorId_,+        detectorVersionId = pDetectorVersionId_+      }++-- | The ID of the parent detector for the detector version to delete.+deleteDetectorVersion_detectorId :: Lens.Lens' DeleteDetectorVersion Prelude.Text+deleteDetectorVersion_detectorId = Lens.lens (\DeleteDetectorVersion' {detectorId} -> detectorId) (\s@DeleteDetectorVersion' {} a -> s {detectorId = a} :: DeleteDetectorVersion)++-- | The ID of the detector version to delete.+deleteDetectorVersion_detectorVersionId :: Lens.Lens' DeleteDetectorVersion Prelude.Text+deleteDetectorVersion_detectorVersionId = Lens.lens (\DeleteDetectorVersion' {detectorVersionId} -> detectorVersionId) (\s@DeleteDetectorVersion' {} a -> s {detectorVersionId = a} :: DeleteDetectorVersion)++instance Core.AWSRequest DeleteDetectorVersion where+  type+    AWSResponse DeleteDetectorVersion =+      DeleteDetectorVersionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteDetectorVersionResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteDetectorVersion where+  hashWithSalt _salt DeleteDetectorVersion' {..} =+    _salt+      `Prelude.hashWithSalt` detectorId+      `Prelude.hashWithSalt` detectorVersionId++instance Prelude.NFData DeleteDetectorVersion where+  rnf DeleteDetectorVersion' {..} =+    Prelude.rnf detectorId+      `Prelude.seq` Prelude.rnf detectorVersionId++instance Data.ToHeaders DeleteDetectorVersion where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.DeleteDetectorVersion" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteDetectorVersion where+  toJSON DeleteDetectorVersion' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("detectorId" Data..= detectorId),+            Prelude.Just+              ("detectorVersionId" Data..= detectorVersionId)+          ]+      )++instance Data.ToPath DeleteDetectorVersion where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteDetectorVersion where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteDetectorVersionResponse' smart constructor.+data DeleteDetectorVersionResponse = DeleteDetectorVersionResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDetectorVersionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteDetectorVersionResponse_httpStatus' - The response's http status code.+newDeleteDetectorVersionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteDetectorVersionResponse+newDeleteDetectorVersionResponse pHttpStatus_ =+  DeleteDetectorVersionResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deleteDetectorVersionResponse_httpStatus :: Lens.Lens' DeleteDetectorVersionResponse Prelude.Int+deleteDetectorVersionResponse_httpStatus = Lens.lens (\DeleteDetectorVersionResponse' {httpStatus} -> httpStatus) (\s@DeleteDetectorVersionResponse' {} a -> s {httpStatus = a} :: DeleteDetectorVersionResponse)++instance Prelude.NFData DeleteDetectorVersionResponse where+  rnf DeleteDetectorVersionResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/DeleteEntityType.hs view
@@ -0,0 +1,162 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.DeleteEntityType+-- 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 entity type.+--+-- You cannot delete an entity type that is included in an event type.+--+-- When you delete an entity type, Amazon Fraud Detector permanently+-- deletes that entity type and the data is no longer stored in Amazon+-- Fraud Detector.+module Amazonka.FraudDetector.DeleteEntityType+  ( -- * Creating a Request+    DeleteEntityType (..),+    newDeleteEntityType,++    -- * Request Lenses+    deleteEntityType_name,++    -- * Destructuring the Response+    DeleteEntityTypeResponse (..),+    newDeleteEntityTypeResponse,++    -- * Response Lenses+    deleteEntityTypeResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteEntityType' smart constructor.+data DeleteEntityType = DeleteEntityType'+  { -- | The name of the entity type to delete.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteEntityType' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteEntityType_name' - The name of the entity type to delete.+newDeleteEntityType ::+  -- | 'name'+  Prelude.Text ->+  DeleteEntityType+newDeleteEntityType pName_ =+  DeleteEntityType' {name = pName_}++-- | The name of the entity type to delete.+deleteEntityType_name :: Lens.Lens' DeleteEntityType Prelude.Text+deleteEntityType_name = Lens.lens (\DeleteEntityType' {name} -> name) (\s@DeleteEntityType' {} a -> s {name = a} :: DeleteEntityType)++instance Core.AWSRequest DeleteEntityType where+  type+    AWSResponse DeleteEntityType =+      DeleteEntityTypeResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteEntityTypeResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteEntityType where+  hashWithSalt _salt DeleteEntityType' {..} =+    _salt `Prelude.hashWithSalt` name++instance Prelude.NFData DeleteEntityType where+  rnf DeleteEntityType' {..} = Prelude.rnf name++instance Data.ToHeaders DeleteEntityType where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.DeleteEntityType" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteEntityType where+  toJSON DeleteEntityType' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("name" Data..= name)]+      )++instance Data.ToPath DeleteEntityType where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteEntityType where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteEntityTypeResponse' smart constructor.+data DeleteEntityTypeResponse = DeleteEntityTypeResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteEntityTypeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteEntityTypeResponse_httpStatus' - The response's http status code.+newDeleteEntityTypeResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteEntityTypeResponse+newDeleteEntityTypeResponse pHttpStatus_ =+  DeleteEntityTypeResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deleteEntityTypeResponse_httpStatus :: Lens.Lens' DeleteEntityTypeResponse Prelude.Int+deleteEntityTypeResponse_httpStatus = Lens.lens (\DeleteEntityTypeResponse' {httpStatus} -> httpStatus) (\s@DeleteEntityTypeResponse' {} a -> s {httpStatus = a} :: DeleteEntityTypeResponse)++instance Prelude.NFData DeleteEntityTypeResponse where+  rnf DeleteEntityTypeResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/DeleteEvent.hs view
@@ -0,0 +1,191 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.DeleteEvent+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified event.+--+-- When you delete an event, Amazon Fraud Detector permanently deletes that+-- event and the event data is no longer stored in Amazon Fraud Detector.+module Amazonka.FraudDetector.DeleteEvent+  ( -- * Creating a Request+    DeleteEvent (..),+    newDeleteEvent,++    -- * Request Lenses+    deleteEvent_deleteAuditHistory,+    deleteEvent_eventId,+    deleteEvent_eventTypeName,++    -- * Destructuring the Response+    DeleteEventResponse (..),+    newDeleteEventResponse,++    -- * Response Lenses+    deleteEventResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteEvent' smart constructor.+data DeleteEvent = DeleteEvent'+  { -- | Specifies whether or not to delete any predictions associated with the+    -- event.+    deleteAuditHistory :: Prelude.Maybe Prelude.Bool,+    -- | The ID of the event to delete.+    eventId :: Prelude.Text,+    -- | The name of the event type.+    eventTypeName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteEvent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'deleteAuditHistory', 'deleteEvent_deleteAuditHistory' - Specifies whether or not to delete any predictions associated with the+-- event.+--+-- 'eventId', 'deleteEvent_eventId' - The ID of the event to delete.+--+-- 'eventTypeName', 'deleteEvent_eventTypeName' - The name of the event type.+newDeleteEvent ::+  -- | 'eventId'+  Prelude.Text ->+  -- | 'eventTypeName'+  Prelude.Text ->+  DeleteEvent+newDeleteEvent pEventId_ pEventTypeName_ =+  DeleteEvent'+    { deleteAuditHistory = Prelude.Nothing,+      eventId = pEventId_,+      eventTypeName = pEventTypeName_+    }++-- | Specifies whether or not to delete any predictions associated with the+-- event.+deleteEvent_deleteAuditHistory :: Lens.Lens' DeleteEvent (Prelude.Maybe Prelude.Bool)+deleteEvent_deleteAuditHistory = Lens.lens (\DeleteEvent' {deleteAuditHistory} -> deleteAuditHistory) (\s@DeleteEvent' {} a -> s {deleteAuditHistory = a} :: DeleteEvent)++-- | The ID of the event to delete.+deleteEvent_eventId :: Lens.Lens' DeleteEvent Prelude.Text+deleteEvent_eventId = Lens.lens (\DeleteEvent' {eventId} -> eventId) (\s@DeleteEvent' {} a -> s {eventId = a} :: DeleteEvent)++-- | The name of the event type.+deleteEvent_eventTypeName :: Lens.Lens' DeleteEvent Prelude.Text+deleteEvent_eventTypeName = Lens.lens (\DeleteEvent' {eventTypeName} -> eventTypeName) (\s@DeleteEvent' {} a -> s {eventTypeName = a} :: DeleteEvent)++instance Core.AWSRequest DeleteEvent where+  type AWSResponse DeleteEvent = DeleteEventResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteEventResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteEvent where+  hashWithSalt _salt DeleteEvent' {..} =+    _salt+      `Prelude.hashWithSalt` deleteAuditHistory+      `Prelude.hashWithSalt` eventId+      `Prelude.hashWithSalt` eventTypeName++instance Prelude.NFData DeleteEvent where+  rnf DeleteEvent' {..} =+    Prelude.rnf deleteAuditHistory+      `Prelude.seq` Prelude.rnf eventId+      `Prelude.seq` Prelude.rnf eventTypeName++instance Data.ToHeaders DeleteEvent where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.DeleteEvent" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteEvent where+  toJSON DeleteEvent' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("deleteAuditHistory" Data..=)+              Prelude.<$> deleteAuditHistory,+            Prelude.Just ("eventId" Data..= eventId),+            Prelude.Just+              ("eventTypeName" Data..= eventTypeName)+          ]+      )++instance Data.ToPath DeleteEvent where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteEvent where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteEventResponse' smart constructor.+data DeleteEventResponse = DeleteEventResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteEventResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteEventResponse_httpStatus' - The response's http status code.+newDeleteEventResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteEventResponse+newDeleteEventResponse pHttpStatus_ =+  DeleteEventResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+deleteEventResponse_httpStatus :: Lens.Lens' DeleteEventResponse Prelude.Int+deleteEventResponse_httpStatus = Lens.lens (\DeleteEventResponse' {httpStatus} -> httpStatus) (\s@DeleteEventResponse' {} a -> s {httpStatus = a} :: DeleteEventResponse)++instance Prelude.NFData DeleteEventResponse where+  rnf DeleteEventResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/DeleteEventType.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.FraudDetector.DeleteEventType+-- 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 event type.+--+-- You cannot delete an event type that is used in a detector or a model.+--+-- When you delete an event type, Amazon Fraud Detector permanently deletes+-- that event type and the data is no longer stored in Amazon Fraud+-- Detector.+module Amazonka.FraudDetector.DeleteEventType+  ( -- * Creating a Request+    DeleteEventType (..),+    newDeleteEventType,++    -- * Request Lenses+    deleteEventType_name,++    -- * Destructuring the Response+    DeleteEventTypeResponse (..),+    newDeleteEventTypeResponse,++    -- * Response Lenses+    deleteEventTypeResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteEventType' smart constructor.+data DeleteEventType = DeleteEventType'+  { -- | The name of the event type to delete.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteEventType' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteEventType_name' - The name of the event type to delete.+newDeleteEventType ::+  -- | 'name'+  Prelude.Text ->+  DeleteEventType+newDeleteEventType pName_ =+  DeleteEventType' {name = pName_}++-- | The name of the event type to delete.+deleteEventType_name :: Lens.Lens' DeleteEventType Prelude.Text+deleteEventType_name = Lens.lens (\DeleteEventType' {name} -> name) (\s@DeleteEventType' {} a -> s {name = a} :: DeleteEventType)++instance Core.AWSRequest DeleteEventType where+  type+    AWSResponse DeleteEventType =+      DeleteEventTypeResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteEventTypeResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteEventType where+  hashWithSalt _salt DeleteEventType' {..} =+    _salt `Prelude.hashWithSalt` name++instance Prelude.NFData DeleteEventType where+  rnf DeleteEventType' {..} = Prelude.rnf name++instance Data.ToHeaders DeleteEventType where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.DeleteEventType" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteEventType where+  toJSON DeleteEventType' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("name" Data..= name)]+      )++instance Data.ToPath DeleteEventType where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteEventType where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteEventTypeResponse' smart constructor.+data DeleteEventTypeResponse = DeleteEventTypeResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteEventTypeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteEventTypeResponse_httpStatus' - The response's http status code.+newDeleteEventTypeResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteEventTypeResponse+newDeleteEventTypeResponse pHttpStatus_ =+  DeleteEventTypeResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+deleteEventTypeResponse_httpStatus :: Lens.Lens' DeleteEventTypeResponse Prelude.Int+deleteEventTypeResponse_httpStatus = Lens.lens (\DeleteEventTypeResponse' {httpStatus} -> httpStatus) (\s@DeleteEventTypeResponse' {} a -> s {httpStatus = a} :: DeleteEventTypeResponse)++instance Prelude.NFData DeleteEventTypeResponse where+  rnf DeleteEventTypeResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/DeleteEventsByEventType.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.FraudDetector.DeleteEventsByEventType+-- 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 all events of a particular event type.+module Amazonka.FraudDetector.DeleteEventsByEventType+  ( -- * Creating a Request+    DeleteEventsByEventType (..),+    newDeleteEventsByEventType,++    -- * Request Lenses+    deleteEventsByEventType_eventTypeName,++    -- * Destructuring the Response+    DeleteEventsByEventTypeResponse (..),+    newDeleteEventsByEventTypeResponse,++    -- * Response Lenses+    deleteEventsByEventTypeResponse_eventTypeName,+    deleteEventsByEventTypeResponse_eventsDeletionStatus,+    deleteEventsByEventTypeResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteEventsByEventType' smart constructor.+data DeleteEventsByEventType = DeleteEventsByEventType'+  { -- | The name of the event type.+    eventTypeName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteEventsByEventType' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventTypeName', 'deleteEventsByEventType_eventTypeName' - The name of the event type.+newDeleteEventsByEventType ::+  -- | 'eventTypeName'+  Prelude.Text ->+  DeleteEventsByEventType+newDeleteEventsByEventType pEventTypeName_ =+  DeleteEventsByEventType'+    { eventTypeName =+        pEventTypeName_+    }++-- | The name of the event type.+deleteEventsByEventType_eventTypeName :: Lens.Lens' DeleteEventsByEventType Prelude.Text+deleteEventsByEventType_eventTypeName = Lens.lens (\DeleteEventsByEventType' {eventTypeName} -> eventTypeName) (\s@DeleteEventsByEventType' {} a -> s {eventTypeName = a} :: DeleteEventsByEventType)++instance Core.AWSRequest DeleteEventsByEventType where+  type+    AWSResponse DeleteEventsByEventType =+      DeleteEventsByEventTypeResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteEventsByEventTypeResponse'+            Prelude.<$> (x Data..?> "eventTypeName")+            Prelude.<*> (x Data..?> "eventsDeletionStatus")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteEventsByEventType where+  hashWithSalt _salt DeleteEventsByEventType' {..} =+    _salt `Prelude.hashWithSalt` eventTypeName++instance Prelude.NFData DeleteEventsByEventType where+  rnf DeleteEventsByEventType' {..} =+    Prelude.rnf eventTypeName++instance Data.ToHeaders DeleteEventsByEventType where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.DeleteEventsByEventType" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteEventsByEventType where+  toJSON DeleteEventsByEventType' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("eventTypeName" Data..= eventTypeName)+          ]+      )++instance Data.ToPath DeleteEventsByEventType where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteEventsByEventType where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteEventsByEventTypeResponse' smart constructor.+data DeleteEventsByEventTypeResponse = DeleteEventsByEventTypeResponse'+  { -- | Name of event type for which to delete the events.+    eventTypeName :: Prelude.Maybe Prelude.Text,+    -- | The status of the delete request.+    eventsDeletionStatus :: 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 'DeleteEventsByEventTypeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventTypeName', 'deleteEventsByEventTypeResponse_eventTypeName' - Name of event type for which to delete the events.+--+-- 'eventsDeletionStatus', 'deleteEventsByEventTypeResponse_eventsDeletionStatus' - The status of the delete request.+--+-- 'httpStatus', 'deleteEventsByEventTypeResponse_httpStatus' - The response's http status code.+newDeleteEventsByEventTypeResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteEventsByEventTypeResponse+newDeleteEventsByEventTypeResponse pHttpStatus_ =+  DeleteEventsByEventTypeResponse'+    { eventTypeName =+        Prelude.Nothing,+      eventsDeletionStatus = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Name of event type for which to delete the events.+deleteEventsByEventTypeResponse_eventTypeName :: Lens.Lens' DeleteEventsByEventTypeResponse (Prelude.Maybe Prelude.Text)+deleteEventsByEventTypeResponse_eventTypeName = Lens.lens (\DeleteEventsByEventTypeResponse' {eventTypeName} -> eventTypeName) (\s@DeleteEventsByEventTypeResponse' {} a -> s {eventTypeName = a} :: DeleteEventsByEventTypeResponse)++-- | The status of the delete request.+deleteEventsByEventTypeResponse_eventsDeletionStatus :: Lens.Lens' DeleteEventsByEventTypeResponse (Prelude.Maybe Prelude.Text)+deleteEventsByEventTypeResponse_eventsDeletionStatus = Lens.lens (\DeleteEventsByEventTypeResponse' {eventsDeletionStatus} -> eventsDeletionStatus) (\s@DeleteEventsByEventTypeResponse' {} a -> s {eventsDeletionStatus = a} :: DeleteEventsByEventTypeResponse)++-- | The response's http status code.+deleteEventsByEventTypeResponse_httpStatus :: Lens.Lens' DeleteEventsByEventTypeResponse Prelude.Int+deleteEventsByEventTypeResponse_httpStatus = Lens.lens (\DeleteEventsByEventTypeResponse' {httpStatus} -> httpStatus) (\s@DeleteEventsByEventTypeResponse' {} a -> s {httpStatus = a} :: DeleteEventsByEventTypeResponse)++instance+  Prelude.NFData+    DeleteEventsByEventTypeResponse+  where+  rnf DeleteEventsByEventTypeResponse' {..} =+    Prelude.rnf eventTypeName+      `Prelude.seq` Prelude.rnf eventsDeletionStatus+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/DeleteExternalModel.hs view
@@ -0,0 +1,166 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.DeleteExternalModel+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes a SageMaker model from Amazon Fraud Detector.+--+-- You can remove an Amazon SageMaker model if it is not associated with a+-- detector version. Removing a SageMaker model disconnects it from Amazon+-- Fraud Detector, but the model remains available in SageMaker.+module Amazonka.FraudDetector.DeleteExternalModel+  ( -- * Creating a Request+    DeleteExternalModel (..),+    newDeleteExternalModel,++    -- * Request Lenses+    deleteExternalModel_modelEndpoint,++    -- * Destructuring the Response+    DeleteExternalModelResponse (..),+    newDeleteExternalModelResponse,++    -- * Response Lenses+    deleteExternalModelResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteExternalModel' smart constructor.+data DeleteExternalModel = DeleteExternalModel'+  { -- | The endpoint of the Amazon Sagemaker model to delete.+    modelEndpoint :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteExternalModel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'modelEndpoint', 'deleteExternalModel_modelEndpoint' - The endpoint of the Amazon Sagemaker model to delete.+newDeleteExternalModel ::+  -- | 'modelEndpoint'+  Prelude.Text ->+  DeleteExternalModel+newDeleteExternalModel pModelEndpoint_ =+  DeleteExternalModel'+    { modelEndpoint =+        pModelEndpoint_+    }++-- | The endpoint of the Amazon Sagemaker model to delete.+deleteExternalModel_modelEndpoint :: Lens.Lens' DeleteExternalModel Prelude.Text+deleteExternalModel_modelEndpoint = Lens.lens (\DeleteExternalModel' {modelEndpoint} -> modelEndpoint) (\s@DeleteExternalModel' {} a -> s {modelEndpoint = a} :: DeleteExternalModel)++instance Core.AWSRequest DeleteExternalModel where+  type+    AWSResponse DeleteExternalModel =+      DeleteExternalModelResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteExternalModelResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteExternalModel where+  hashWithSalt _salt DeleteExternalModel' {..} =+    _salt `Prelude.hashWithSalt` modelEndpoint++instance Prelude.NFData DeleteExternalModel where+  rnf DeleteExternalModel' {..} =+    Prelude.rnf modelEndpoint++instance Data.ToHeaders DeleteExternalModel where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.DeleteExternalModel" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteExternalModel where+  toJSON DeleteExternalModel' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("modelEndpoint" Data..= modelEndpoint)+          ]+      )++instance Data.ToPath DeleteExternalModel where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteExternalModel where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteExternalModelResponse' smart constructor.+data DeleteExternalModelResponse = DeleteExternalModelResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteExternalModelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteExternalModelResponse_httpStatus' - The response's http status code.+newDeleteExternalModelResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteExternalModelResponse+newDeleteExternalModelResponse pHttpStatus_ =+  DeleteExternalModelResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deleteExternalModelResponse_httpStatus :: Lens.Lens' DeleteExternalModelResponse Prelude.Int+deleteExternalModelResponse_httpStatus = Lens.lens (\DeleteExternalModelResponse' {httpStatus} -> httpStatus) (\s@DeleteExternalModelResponse' {} a -> s {httpStatus = a} :: DeleteExternalModelResponse)++instance Prelude.NFData DeleteExternalModelResponse where+  rnf DeleteExternalModelResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/DeleteLabel.hs view
@@ -0,0 +1,158 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.DeleteLabel+-- 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 label.+--+-- You cannot delete labels that are included in an event type in Amazon+-- Fraud Detector.+--+-- You cannot delete a label assigned to an event ID. You must first delete+-- the relevant event ID.+--+-- When you delete a label, Amazon Fraud Detector permanently deletes that+-- label and the data is no longer stored in Amazon Fraud Detector.+module Amazonka.FraudDetector.DeleteLabel+  ( -- * Creating a Request+    DeleteLabel (..),+    newDeleteLabel,++    -- * Request Lenses+    deleteLabel_name,++    -- * Destructuring the Response+    DeleteLabelResponse (..),+    newDeleteLabelResponse,++    -- * Response Lenses+    deleteLabelResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteLabel' smart constructor.+data DeleteLabel = DeleteLabel'+  { -- | The name of the label to delete.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteLabel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteLabel_name' - The name of the label to delete.+newDeleteLabel ::+  -- | 'name'+  Prelude.Text ->+  DeleteLabel+newDeleteLabel pName_ = DeleteLabel' {name = pName_}++-- | The name of the label to delete.+deleteLabel_name :: Lens.Lens' DeleteLabel Prelude.Text+deleteLabel_name = Lens.lens (\DeleteLabel' {name} -> name) (\s@DeleteLabel' {} a -> s {name = a} :: DeleteLabel)++instance Core.AWSRequest DeleteLabel where+  type AWSResponse DeleteLabel = DeleteLabelResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteLabelResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteLabel where+  hashWithSalt _salt DeleteLabel' {..} =+    _salt `Prelude.hashWithSalt` name++instance Prelude.NFData DeleteLabel where+  rnf DeleteLabel' {..} = Prelude.rnf name++instance Data.ToHeaders DeleteLabel where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.DeleteLabel" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteLabel where+  toJSON DeleteLabel' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("name" Data..= name)]+      )++instance Data.ToPath DeleteLabel where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteLabel where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteLabelResponse' smart constructor.+data DeleteLabelResponse = DeleteLabelResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteLabelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteLabelResponse_httpStatus' - The response's http status code.+newDeleteLabelResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteLabelResponse+newDeleteLabelResponse pHttpStatus_ =+  DeleteLabelResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+deleteLabelResponse_httpStatus :: Lens.Lens' DeleteLabelResponse Prelude.Int+deleteLabelResponse_httpStatus = Lens.lens (\DeleteLabelResponse' {httpStatus} -> httpStatus) (\s@DeleteLabelResponse' {} a -> s {httpStatus = a} :: DeleteLabelResponse)++instance Prelude.NFData DeleteLabelResponse where+  rnf DeleteLabelResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/DeleteModel.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.FraudDetector.DeleteModel+-- 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 model.+--+-- You can delete models and model versions in Amazon Fraud Detector,+-- provided that they are not associated with a detector version.+--+-- When you delete a model, Amazon Fraud Detector permanently deletes that+-- model and the data is no longer stored in Amazon Fraud Detector.+module Amazonka.FraudDetector.DeleteModel+  ( -- * Creating a Request+    DeleteModel (..),+    newDeleteModel,++    -- * Request Lenses+    deleteModel_modelId,+    deleteModel_modelType,++    -- * Destructuring the Response+    DeleteModelResponse (..),+    newDeleteModelResponse,++    -- * Response Lenses+    deleteModelResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteModel' smart constructor.+data DeleteModel = DeleteModel'+  { -- | The model ID of the model to delete.+    modelId :: Prelude.Text,+    -- | The model type of the model to delete.+    modelType :: ModelTypeEnum+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteModel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'modelId', 'deleteModel_modelId' - The model ID of the model to delete.+--+-- 'modelType', 'deleteModel_modelType' - The model type of the model to delete.+newDeleteModel ::+  -- | 'modelId'+  Prelude.Text ->+  -- | 'modelType'+  ModelTypeEnum ->+  DeleteModel+newDeleteModel pModelId_ pModelType_ =+  DeleteModel'+    { modelId = pModelId_,+      modelType = pModelType_+    }++-- | The model ID of the model to delete.+deleteModel_modelId :: Lens.Lens' DeleteModel Prelude.Text+deleteModel_modelId = Lens.lens (\DeleteModel' {modelId} -> modelId) (\s@DeleteModel' {} a -> s {modelId = a} :: DeleteModel)++-- | The model type of the model to delete.+deleteModel_modelType :: Lens.Lens' DeleteModel ModelTypeEnum+deleteModel_modelType = Lens.lens (\DeleteModel' {modelType} -> modelType) (\s@DeleteModel' {} a -> s {modelType = a} :: DeleteModel)++instance Core.AWSRequest DeleteModel where+  type AWSResponse DeleteModel = DeleteModelResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteModelResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteModel where+  hashWithSalt _salt DeleteModel' {..} =+    _salt+      `Prelude.hashWithSalt` modelId+      `Prelude.hashWithSalt` modelType++instance Prelude.NFData DeleteModel where+  rnf DeleteModel' {..} =+    Prelude.rnf modelId+      `Prelude.seq` Prelude.rnf modelType++instance Data.ToHeaders DeleteModel where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.DeleteModel" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteModel where+  toJSON DeleteModel' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("modelId" Data..= modelId),+            Prelude.Just ("modelType" Data..= modelType)+          ]+      )++instance Data.ToPath DeleteModel where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteModel where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteModelResponse' smart constructor.+data DeleteModelResponse = DeleteModelResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteModelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteModelResponse_httpStatus' - The response's http status code.+newDeleteModelResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteModelResponse+newDeleteModelResponse pHttpStatus_ =+  DeleteModelResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+deleteModelResponse_httpStatus :: Lens.Lens' DeleteModelResponse Prelude.Int+deleteModelResponse_httpStatus = Lens.lens (\DeleteModelResponse' {httpStatus} -> httpStatus) (\s@DeleteModelResponse' {} a -> s {httpStatus = a} :: DeleteModelResponse)++instance Prelude.NFData DeleteModelResponse where+  rnf DeleteModelResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/DeleteModelVersion.hs view
@@ -0,0 +1,202 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.DeleteModelVersion+-- 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 model version.+--+-- You can delete models and model versions in Amazon Fraud Detector,+-- provided that they are not associated with a detector version.+--+-- When you delete a model version, Amazon Fraud Detector permanently+-- deletes that model version and the data is no longer stored in Amazon+-- Fraud Detector.+module Amazonka.FraudDetector.DeleteModelVersion+  ( -- * Creating a Request+    DeleteModelVersion (..),+    newDeleteModelVersion,++    -- * Request Lenses+    deleteModelVersion_modelId,+    deleteModelVersion_modelType,+    deleteModelVersion_modelVersionNumber,++    -- * Destructuring the Response+    DeleteModelVersionResponse (..),+    newDeleteModelVersionResponse,++    -- * Response Lenses+    deleteModelVersionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteModelVersion' smart constructor.+data DeleteModelVersion = DeleteModelVersion'+  { -- | The model ID of the model version to delete.+    modelId :: Prelude.Text,+    -- | The model type of the model version to delete.+    modelType :: ModelTypeEnum,+    -- | The model version number of the model version to delete.+    modelVersionNumber :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteModelVersion' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'modelId', 'deleteModelVersion_modelId' - The model ID of the model version to delete.+--+-- 'modelType', 'deleteModelVersion_modelType' - The model type of the model version to delete.+--+-- 'modelVersionNumber', 'deleteModelVersion_modelVersionNumber' - The model version number of the model version to delete.+newDeleteModelVersion ::+  -- | 'modelId'+  Prelude.Text ->+  -- | 'modelType'+  ModelTypeEnum ->+  -- | 'modelVersionNumber'+  Prelude.Text ->+  DeleteModelVersion+newDeleteModelVersion+  pModelId_+  pModelType_+  pModelVersionNumber_ =+    DeleteModelVersion'+      { modelId = pModelId_,+        modelType = pModelType_,+        modelVersionNumber = pModelVersionNumber_+      }++-- | The model ID of the model version to delete.+deleteModelVersion_modelId :: Lens.Lens' DeleteModelVersion Prelude.Text+deleteModelVersion_modelId = Lens.lens (\DeleteModelVersion' {modelId} -> modelId) (\s@DeleteModelVersion' {} a -> s {modelId = a} :: DeleteModelVersion)++-- | The model type of the model version to delete.+deleteModelVersion_modelType :: Lens.Lens' DeleteModelVersion ModelTypeEnum+deleteModelVersion_modelType = Lens.lens (\DeleteModelVersion' {modelType} -> modelType) (\s@DeleteModelVersion' {} a -> s {modelType = a} :: DeleteModelVersion)++-- | The model version number of the model version to delete.+deleteModelVersion_modelVersionNumber :: Lens.Lens' DeleteModelVersion Prelude.Text+deleteModelVersion_modelVersionNumber = Lens.lens (\DeleteModelVersion' {modelVersionNumber} -> modelVersionNumber) (\s@DeleteModelVersion' {} a -> s {modelVersionNumber = a} :: DeleteModelVersion)++instance Core.AWSRequest DeleteModelVersion where+  type+    AWSResponse DeleteModelVersion =+      DeleteModelVersionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteModelVersionResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteModelVersion where+  hashWithSalt _salt DeleteModelVersion' {..} =+    _salt+      `Prelude.hashWithSalt` modelId+      `Prelude.hashWithSalt` modelType+      `Prelude.hashWithSalt` modelVersionNumber++instance Prelude.NFData DeleteModelVersion where+  rnf DeleteModelVersion' {..} =+    Prelude.rnf modelId+      `Prelude.seq` Prelude.rnf modelType+      `Prelude.seq` Prelude.rnf modelVersionNumber++instance Data.ToHeaders DeleteModelVersion where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.DeleteModelVersion" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteModelVersion where+  toJSON DeleteModelVersion' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("modelId" Data..= modelId),+            Prelude.Just ("modelType" Data..= modelType),+            Prelude.Just+              ("modelVersionNumber" Data..= modelVersionNumber)+          ]+      )++instance Data.ToPath DeleteModelVersion where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteModelVersion where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteModelVersionResponse' smart constructor.+data DeleteModelVersionResponse = DeleteModelVersionResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteModelVersionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteModelVersionResponse_httpStatus' - The response's http status code.+newDeleteModelVersionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteModelVersionResponse+newDeleteModelVersionResponse pHttpStatus_ =+  DeleteModelVersionResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deleteModelVersionResponse_httpStatus :: Lens.Lens' DeleteModelVersionResponse Prelude.Int+deleteModelVersionResponse_httpStatus = Lens.lens (\DeleteModelVersionResponse' {httpStatus} -> httpStatus) (\s@DeleteModelVersionResponse' {} a -> s {httpStatus = a} :: DeleteModelVersionResponse)++instance Prelude.NFData DeleteModelVersionResponse where+  rnf DeleteModelVersionResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/DeleteOutcome.hs view
@@ -0,0 +1,158 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.DeleteOutcome+-- 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 outcome.+--+-- You cannot delete an outcome that is used in a rule version.+--+-- When you delete an outcome, Amazon Fraud Detector permanently deletes+-- that outcome and the data is no longer stored in Amazon Fraud Detector.+module Amazonka.FraudDetector.DeleteOutcome+  ( -- * Creating a Request+    DeleteOutcome (..),+    newDeleteOutcome,++    -- * Request Lenses+    deleteOutcome_name,++    -- * Destructuring the Response+    DeleteOutcomeResponse (..),+    newDeleteOutcomeResponse,++    -- * Response Lenses+    deleteOutcomeResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteOutcome' smart constructor.+data DeleteOutcome = DeleteOutcome'+  { -- | The name of the outcome to delete.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteOutcome' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteOutcome_name' - The name of the outcome to delete.+newDeleteOutcome ::+  -- | 'name'+  Prelude.Text ->+  DeleteOutcome+newDeleteOutcome pName_ =+  DeleteOutcome' {name = pName_}++-- | The name of the outcome to delete.+deleteOutcome_name :: Lens.Lens' DeleteOutcome Prelude.Text+deleteOutcome_name = Lens.lens (\DeleteOutcome' {name} -> name) (\s@DeleteOutcome' {} a -> s {name = a} :: DeleteOutcome)++instance Core.AWSRequest DeleteOutcome where+  type+    AWSResponse DeleteOutcome =+      DeleteOutcomeResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteOutcomeResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteOutcome where+  hashWithSalt _salt DeleteOutcome' {..} =+    _salt `Prelude.hashWithSalt` name++instance Prelude.NFData DeleteOutcome where+  rnf DeleteOutcome' {..} = Prelude.rnf name++instance Data.ToHeaders DeleteOutcome where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.DeleteOutcome" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteOutcome where+  toJSON DeleteOutcome' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("name" Data..= name)]+      )++instance Data.ToPath DeleteOutcome where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteOutcome where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteOutcomeResponse' smart constructor.+data DeleteOutcomeResponse = DeleteOutcomeResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteOutcomeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteOutcomeResponse_httpStatus' - The response's http status code.+newDeleteOutcomeResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteOutcomeResponse+newDeleteOutcomeResponse pHttpStatus_ =+  DeleteOutcomeResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+deleteOutcomeResponse_httpStatus :: Lens.Lens' DeleteOutcomeResponse Prelude.Int+deleteOutcomeResponse_httpStatus = Lens.lens (\DeleteOutcomeResponse' {httpStatus} -> httpStatus) (\s@DeleteOutcomeResponse' {} a -> s {httpStatus = a} :: DeleteOutcomeResponse)++instance Prelude.NFData DeleteOutcomeResponse where+  rnf DeleteOutcomeResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/DeleteRule.hs view
@@ -0,0 +1,152 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.DeleteRule+-- 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 rule. You cannot delete a rule if it is used by an @ACTIVE@+-- or @INACTIVE@ detector version.+--+-- When you delete a rule, Amazon Fraud Detector permanently deletes that+-- rule and the data is no longer stored in Amazon Fraud Detector.+module Amazonka.FraudDetector.DeleteRule+  ( -- * Creating a Request+    DeleteRule (..),+    newDeleteRule,++    -- * Request Lenses+    deleteRule_rule,++    -- * Destructuring the Response+    DeleteRuleResponse (..),+    newDeleteRuleResponse,++    -- * Response Lenses+    deleteRuleResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteRule' smart constructor.+data DeleteRule = DeleteRule'+  { rule :: Rule+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteRule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'rule', 'deleteRule_rule' - Undocumented member.+newDeleteRule ::+  -- | 'rule'+  Rule ->+  DeleteRule+newDeleteRule pRule_ = DeleteRule' {rule = pRule_}++-- | Undocumented member.+deleteRule_rule :: Lens.Lens' DeleteRule Rule+deleteRule_rule = Lens.lens (\DeleteRule' {rule} -> rule) (\s@DeleteRule' {} a -> s {rule = a} :: DeleteRule)++instance Core.AWSRequest DeleteRule where+  type AWSResponse DeleteRule = DeleteRuleResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteRuleResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteRule where+  hashWithSalt _salt DeleteRule' {..} =+    _salt `Prelude.hashWithSalt` rule++instance Prelude.NFData DeleteRule where+  rnf DeleteRule' {..} = Prelude.rnf rule++instance Data.ToHeaders DeleteRule where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.DeleteRule" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteRule where+  toJSON DeleteRule' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("rule" Data..= rule)]+      )++instance Data.ToPath DeleteRule where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteRule where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteRuleResponse' smart constructor.+data DeleteRuleResponse = DeleteRuleResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteRuleResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteRuleResponse_httpStatus' - The response's http status code.+newDeleteRuleResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteRuleResponse+newDeleteRuleResponse pHttpStatus_ =+  DeleteRuleResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+deleteRuleResponse_httpStatus :: Lens.Lens' DeleteRuleResponse Prelude.Int+deleteRuleResponse_httpStatus = Lens.lens (\DeleteRuleResponse' {httpStatus} -> httpStatus) (\s@DeleteRuleResponse' {} a -> s {httpStatus = a} :: DeleteRuleResponse)++instance Prelude.NFData DeleteRuleResponse where+  rnf DeleteRuleResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/DeleteVariable.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.FraudDetector.DeleteVariable+-- 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 variable.+--+-- You can\'t delete variables that are included in an event type in Amazon+-- Fraud Detector.+--+-- Amazon Fraud Detector automatically deletes model output variables and+-- SageMaker model output variables when you delete the model. You can\'t+-- delete these variables manually.+--+-- When you delete a variable, Amazon Fraud Detector permanently deletes+-- that variable and the data is no longer stored in Amazon Fraud Detector.+module Amazonka.FraudDetector.DeleteVariable+  ( -- * Creating a Request+    DeleteVariable (..),+    newDeleteVariable,++    -- * Request Lenses+    deleteVariable_name,++    -- * Destructuring the Response+    DeleteVariableResponse (..),+    newDeleteVariableResponse,++    -- * Response Lenses+    deleteVariableResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteVariable' smart constructor.+data DeleteVariable = DeleteVariable'+  { -- | The name of the variable to delete.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteVariable' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteVariable_name' - The name of the variable to delete.+newDeleteVariable ::+  -- | 'name'+  Prelude.Text ->+  DeleteVariable+newDeleteVariable pName_ =+  DeleteVariable' {name = pName_}++-- | The name of the variable to delete.+deleteVariable_name :: Lens.Lens' DeleteVariable Prelude.Text+deleteVariable_name = Lens.lens (\DeleteVariable' {name} -> name) (\s@DeleteVariable' {} a -> s {name = a} :: DeleteVariable)++instance Core.AWSRequest DeleteVariable where+  type+    AWSResponse DeleteVariable =+      DeleteVariableResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteVariableResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteVariable where+  hashWithSalt _salt DeleteVariable' {..} =+    _salt `Prelude.hashWithSalt` name++instance Prelude.NFData DeleteVariable where+  rnf DeleteVariable' {..} = Prelude.rnf name++instance Data.ToHeaders DeleteVariable where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.DeleteVariable" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteVariable where+  toJSON DeleteVariable' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("name" Data..= name)]+      )++instance Data.ToPath DeleteVariable where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteVariable where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteVariableResponse' smart constructor.+data DeleteVariableResponse = DeleteVariableResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteVariableResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteVariableResponse_httpStatus' - The response's http status code.+newDeleteVariableResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteVariableResponse+newDeleteVariableResponse pHttpStatus_ =+  DeleteVariableResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+deleteVariableResponse_httpStatus :: Lens.Lens' DeleteVariableResponse Prelude.Int+deleteVariableResponse_httpStatus = Lens.lens (\DeleteVariableResponse' {httpStatus} -> httpStatus) (\s@DeleteVariableResponse' {} a -> s {httpStatus = a} :: DeleteVariableResponse)++instance Prelude.NFData DeleteVariableResponse where+  rnf DeleteVariableResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/DescribeDetector.hs view
@@ -0,0 +1,237 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.DescribeDetector+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets all versions for a specified detector.+module Amazonka.FraudDetector.DescribeDetector+  ( -- * Creating a Request+    DescribeDetector (..),+    newDescribeDetector,++    -- * Request Lenses+    describeDetector_maxResults,+    describeDetector_nextToken,+    describeDetector_detectorId,++    -- * Destructuring the Response+    DescribeDetectorResponse (..),+    newDescribeDetectorResponse,++    -- * Response Lenses+    describeDetectorResponse_arn,+    describeDetectorResponse_detectorId,+    describeDetectorResponse_detectorVersionSummaries,+    describeDetectorResponse_nextToken,+    describeDetectorResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeDetector' smart constructor.+data DescribeDetector = DescribeDetector'+  { -- | The maximum number of results to return for the request.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The next token from the previous response.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The detector ID.+    detectorId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDetector' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeDetector_maxResults' - The maximum number of results to return for the request.+--+-- 'nextToken', 'describeDetector_nextToken' - The next token from the previous response.+--+-- 'detectorId', 'describeDetector_detectorId' - The detector ID.+newDescribeDetector ::+  -- | 'detectorId'+  Prelude.Text ->+  DescribeDetector+newDescribeDetector pDetectorId_ =+  DescribeDetector'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      detectorId = pDetectorId_+    }++-- | The maximum number of results to return for the request.+describeDetector_maxResults :: Lens.Lens' DescribeDetector (Prelude.Maybe Prelude.Natural)+describeDetector_maxResults = Lens.lens (\DescribeDetector' {maxResults} -> maxResults) (\s@DescribeDetector' {} a -> s {maxResults = a} :: DescribeDetector)++-- | The next token from the previous response.+describeDetector_nextToken :: Lens.Lens' DescribeDetector (Prelude.Maybe Prelude.Text)+describeDetector_nextToken = Lens.lens (\DescribeDetector' {nextToken} -> nextToken) (\s@DescribeDetector' {} a -> s {nextToken = a} :: DescribeDetector)++-- | The detector ID.+describeDetector_detectorId :: Lens.Lens' DescribeDetector Prelude.Text+describeDetector_detectorId = Lens.lens (\DescribeDetector' {detectorId} -> detectorId) (\s@DescribeDetector' {} a -> s {detectorId = a} :: DescribeDetector)++instance Core.AWSRequest DescribeDetector where+  type+    AWSResponse DescribeDetector =+      DescribeDetectorResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeDetectorResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "detectorId")+            Prelude.<*> ( x+                            Data..?> "detectorVersionSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeDetector where+  hashWithSalt _salt DescribeDetector' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` detectorId++instance Prelude.NFData DescribeDetector where+  rnf DescribeDetector' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf detectorId++instance Data.ToHeaders DescribeDetector where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.DescribeDetector" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeDetector where+  toJSON DescribeDetector' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just ("detectorId" Data..= detectorId)+          ]+      )++instance Data.ToPath DescribeDetector where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeDetector where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeDetectorResponse' smart constructor.+data DescribeDetectorResponse = DescribeDetectorResponse'+  { -- | The detector ARN.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The detector ID.+    detectorId :: Prelude.Maybe Prelude.Text,+    -- | The status and description for each detector version.+    detectorVersionSummaries :: Prelude.Maybe [DetectorVersionSummary],+    -- | The next token to be used for subsequent requests.+    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 'DescribeDetectorResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeDetectorResponse_arn' - The detector ARN.+--+-- 'detectorId', 'describeDetectorResponse_detectorId' - The detector ID.+--+-- 'detectorVersionSummaries', 'describeDetectorResponse_detectorVersionSummaries' - The status and description for each detector version.+--+-- 'nextToken', 'describeDetectorResponse_nextToken' - The next token to be used for subsequent requests.+--+-- 'httpStatus', 'describeDetectorResponse_httpStatus' - The response's http status code.+newDescribeDetectorResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeDetectorResponse+newDescribeDetectorResponse pHttpStatus_ =+  DescribeDetectorResponse'+    { arn = Prelude.Nothing,+      detectorId = Prelude.Nothing,+      detectorVersionSummaries = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The detector ARN.+describeDetectorResponse_arn :: Lens.Lens' DescribeDetectorResponse (Prelude.Maybe Prelude.Text)+describeDetectorResponse_arn = Lens.lens (\DescribeDetectorResponse' {arn} -> arn) (\s@DescribeDetectorResponse' {} a -> s {arn = a} :: DescribeDetectorResponse)++-- | The detector ID.+describeDetectorResponse_detectorId :: Lens.Lens' DescribeDetectorResponse (Prelude.Maybe Prelude.Text)+describeDetectorResponse_detectorId = Lens.lens (\DescribeDetectorResponse' {detectorId} -> detectorId) (\s@DescribeDetectorResponse' {} a -> s {detectorId = a} :: DescribeDetectorResponse)++-- | The status and description for each detector version.+describeDetectorResponse_detectorVersionSummaries :: Lens.Lens' DescribeDetectorResponse (Prelude.Maybe [DetectorVersionSummary])+describeDetectorResponse_detectorVersionSummaries = Lens.lens (\DescribeDetectorResponse' {detectorVersionSummaries} -> detectorVersionSummaries) (\s@DescribeDetectorResponse' {} a -> s {detectorVersionSummaries = a} :: DescribeDetectorResponse) Prelude.. Lens.mapping Lens.coerced++-- | The next token to be used for subsequent requests.+describeDetectorResponse_nextToken :: Lens.Lens' DescribeDetectorResponse (Prelude.Maybe Prelude.Text)+describeDetectorResponse_nextToken = Lens.lens (\DescribeDetectorResponse' {nextToken} -> nextToken) (\s@DescribeDetectorResponse' {} a -> s {nextToken = a} :: DescribeDetectorResponse)++-- | The response's http status code.+describeDetectorResponse_httpStatus :: Lens.Lens' DescribeDetectorResponse Prelude.Int+describeDetectorResponse_httpStatus = Lens.lens (\DescribeDetectorResponse' {httpStatus} -> httpStatus) (\s@DescribeDetectorResponse' {} a -> s {httpStatus = a} :: DescribeDetectorResponse)++instance Prelude.NFData DescribeDetectorResponse where+  rnf DescribeDetectorResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf detectorId+      `Prelude.seq` Prelude.rnf detectorVersionSummaries+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/DescribeModelVersions.hs view
@@ -0,0 +1,242 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.DescribeModelVersions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets all of the model versions for the specified model type or for the+-- specified model type and model ID. You can also get details for a+-- single, specified model version.+module Amazonka.FraudDetector.DescribeModelVersions+  ( -- * Creating a Request+    DescribeModelVersions (..),+    newDescribeModelVersions,++    -- * Request Lenses+    describeModelVersions_maxResults,+    describeModelVersions_modelId,+    describeModelVersions_modelType,+    describeModelVersions_modelVersionNumber,+    describeModelVersions_nextToken,++    -- * Destructuring the Response+    DescribeModelVersionsResponse (..),+    newDescribeModelVersionsResponse,++    -- * Response Lenses+    describeModelVersionsResponse_modelVersionDetails,+    describeModelVersionsResponse_nextToken,+    describeModelVersionsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeModelVersions' smart constructor.+data DescribeModelVersions = DescribeModelVersions'+  { -- | The maximum number of results to return.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The model ID.+    modelId :: Prelude.Maybe Prelude.Text,+    -- | The model type.+    modelType :: Prelude.Maybe ModelTypeEnum,+    -- | The model version number.+    modelVersionNumber :: Prelude.Maybe Prelude.Text,+    -- | The next token from the previous results.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeModelVersions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeModelVersions_maxResults' - The maximum number of results to return.+--+-- 'modelId', 'describeModelVersions_modelId' - The model ID.+--+-- 'modelType', 'describeModelVersions_modelType' - The model type.+--+-- 'modelVersionNumber', 'describeModelVersions_modelVersionNumber' - The model version number.+--+-- 'nextToken', 'describeModelVersions_nextToken' - The next token from the previous results.+newDescribeModelVersions ::+  DescribeModelVersions+newDescribeModelVersions =+  DescribeModelVersions'+    { maxResults =+        Prelude.Nothing,+      modelId = Prelude.Nothing,+      modelType = Prelude.Nothing,+      modelVersionNumber = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of results to return.+describeModelVersions_maxResults :: Lens.Lens' DescribeModelVersions (Prelude.Maybe Prelude.Natural)+describeModelVersions_maxResults = Lens.lens (\DescribeModelVersions' {maxResults} -> maxResults) (\s@DescribeModelVersions' {} a -> s {maxResults = a} :: DescribeModelVersions)++-- | The model ID.+describeModelVersions_modelId :: Lens.Lens' DescribeModelVersions (Prelude.Maybe Prelude.Text)+describeModelVersions_modelId = Lens.lens (\DescribeModelVersions' {modelId} -> modelId) (\s@DescribeModelVersions' {} a -> s {modelId = a} :: DescribeModelVersions)++-- | The model type.+describeModelVersions_modelType :: Lens.Lens' DescribeModelVersions (Prelude.Maybe ModelTypeEnum)+describeModelVersions_modelType = Lens.lens (\DescribeModelVersions' {modelType} -> modelType) (\s@DescribeModelVersions' {} a -> s {modelType = a} :: DescribeModelVersions)++-- | The model version number.+describeModelVersions_modelVersionNumber :: Lens.Lens' DescribeModelVersions (Prelude.Maybe Prelude.Text)+describeModelVersions_modelVersionNumber = Lens.lens (\DescribeModelVersions' {modelVersionNumber} -> modelVersionNumber) (\s@DescribeModelVersions' {} a -> s {modelVersionNumber = a} :: DescribeModelVersions)++-- | The next token from the previous results.+describeModelVersions_nextToken :: Lens.Lens' DescribeModelVersions (Prelude.Maybe Prelude.Text)+describeModelVersions_nextToken = Lens.lens (\DescribeModelVersions' {nextToken} -> nextToken) (\s@DescribeModelVersions' {} a -> s {nextToken = a} :: DescribeModelVersions)++instance Core.AWSRequest DescribeModelVersions where+  type+    AWSResponse DescribeModelVersions =+      DescribeModelVersionsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeModelVersionsResponse'+            Prelude.<$> ( x+                            Data..?> "modelVersionDetails"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeModelVersions where+  hashWithSalt _salt DescribeModelVersions' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` modelId+      `Prelude.hashWithSalt` modelType+      `Prelude.hashWithSalt` modelVersionNumber+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData DescribeModelVersions where+  rnf DescribeModelVersions' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf modelId+      `Prelude.seq` Prelude.rnf modelType+      `Prelude.seq` Prelude.rnf modelVersionNumber+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders DescribeModelVersions where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.DescribeModelVersions" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeModelVersions where+  toJSON DescribeModelVersions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("modelId" Data..=) Prelude.<$> modelId,+            ("modelType" Data..=) Prelude.<$> modelType,+            ("modelVersionNumber" Data..=)+              Prelude.<$> modelVersionNumber,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath DescribeModelVersions where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeModelVersions where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeModelVersionsResponse' smart constructor.+data DescribeModelVersionsResponse = DescribeModelVersionsResponse'+  { -- | The model version details.+    modelVersionDetails :: Prelude.Maybe [ModelVersionDetail],+    -- | The next token.+    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 'DescribeModelVersionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'modelVersionDetails', 'describeModelVersionsResponse_modelVersionDetails' - The model version details.+--+-- 'nextToken', 'describeModelVersionsResponse_nextToken' - The next token.+--+-- 'httpStatus', 'describeModelVersionsResponse_httpStatus' - The response's http status code.+newDescribeModelVersionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeModelVersionsResponse+newDescribeModelVersionsResponse pHttpStatus_ =+  DescribeModelVersionsResponse'+    { modelVersionDetails =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The model version details.+describeModelVersionsResponse_modelVersionDetails :: Lens.Lens' DescribeModelVersionsResponse (Prelude.Maybe [ModelVersionDetail])+describeModelVersionsResponse_modelVersionDetails = Lens.lens (\DescribeModelVersionsResponse' {modelVersionDetails} -> modelVersionDetails) (\s@DescribeModelVersionsResponse' {} a -> s {modelVersionDetails = a} :: DescribeModelVersionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The next token.+describeModelVersionsResponse_nextToken :: Lens.Lens' DescribeModelVersionsResponse (Prelude.Maybe Prelude.Text)+describeModelVersionsResponse_nextToken = Lens.lens (\DescribeModelVersionsResponse' {nextToken} -> nextToken) (\s@DescribeModelVersionsResponse' {} a -> s {nextToken = a} :: DescribeModelVersionsResponse)++-- | The response's http status code.+describeModelVersionsResponse_httpStatus :: Lens.Lens' DescribeModelVersionsResponse Prelude.Int+describeModelVersionsResponse_httpStatus = Lens.lens (\DescribeModelVersionsResponse' {httpStatus} -> httpStatus) (\s@DescribeModelVersionsResponse' {} a -> s {httpStatus = a} :: DescribeModelVersionsResponse)++instance Prelude.NFData DescribeModelVersionsResponse where+  rnf DescribeModelVersionsResponse' {..} =+    Prelude.rnf modelVersionDetails+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/GetBatchImportJobs.hs view
@@ -0,0 +1,215 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.GetBatchImportJobs+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets all batch import jobs or a specific job of the specified ID. This+-- is a paginated API. If you provide a null @maxResults@, this action+-- retrieves a maximum of 50 records per page. If you provide a+-- @maxResults@, the value must be between 1 and 50. To get the next page+-- results, provide the pagination token from the+-- @GetBatchImportJobsResponse@ as part of your request. A null pagination+-- token fetches the records from the beginning.+module Amazonka.FraudDetector.GetBatchImportJobs+  ( -- * Creating a Request+    GetBatchImportJobs (..),+    newGetBatchImportJobs,++    -- * Request Lenses+    getBatchImportJobs_jobId,+    getBatchImportJobs_maxResults,+    getBatchImportJobs_nextToken,++    -- * Destructuring the Response+    GetBatchImportJobsResponse (..),+    newGetBatchImportJobsResponse,++    -- * Response Lenses+    getBatchImportJobsResponse_batchImports,+    getBatchImportJobsResponse_nextToken,+    getBatchImportJobsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetBatchImportJobs' smart constructor.+data GetBatchImportJobs = GetBatchImportJobs'+  { -- | The ID of the batch import job to get.+    jobId :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of objects to return for request.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The next token from the previous request.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetBatchImportJobs' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getBatchImportJobs_jobId' - The ID of the batch import job to get.+--+-- 'maxResults', 'getBatchImportJobs_maxResults' - The maximum number of objects to return for request.+--+-- 'nextToken', 'getBatchImportJobs_nextToken' - The next token from the previous request.+newGetBatchImportJobs ::+  GetBatchImportJobs+newGetBatchImportJobs =+  GetBatchImportJobs'+    { jobId = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The ID of the batch import job to get.+getBatchImportJobs_jobId :: Lens.Lens' GetBatchImportJobs (Prelude.Maybe Prelude.Text)+getBatchImportJobs_jobId = Lens.lens (\GetBatchImportJobs' {jobId} -> jobId) (\s@GetBatchImportJobs' {} a -> s {jobId = a} :: GetBatchImportJobs)++-- | The maximum number of objects to return for request.+getBatchImportJobs_maxResults :: Lens.Lens' GetBatchImportJobs (Prelude.Maybe Prelude.Natural)+getBatchImportJobs_maxResults = Lens.lens (\GetBatchImportJobs' {maxResults} -> maxResults) (\s@GetBatchImportJobs' {} a -> s {maxResults = a} :: GetBatchImportJobs)++-- | The next token from the previous request.+getBatchImportJobs_nextToken :: Lens.Lens' GetBatchImportJobs (Prelude.Maybe Prelude.Text)+getBatchImportJobs_nextToken = Lens.lens (\GetBatchImportJobs' {nextToken} -> nextToken) (\s@GetBatchImportJobs' {} a -> s {nextToken = a} :: GetBatchImportJobs)++instance Core.AWSRequest GetBatchImportJobs where+  type+    AWSResponse GetBatchImportJobs =+      GetBatchImportJobsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetBatchImportJobsResponse'+            Prelude.<$> (x Data..?> "batchImports" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetBatchImportJobs where+  hashWithSalt _salt GetBatchImportJobs' {..} =+    _salt+      `Prelude.hashWithSalt` jobId+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData GetBatchImportJobs where+  rnf GetBatchImportJobs' {..} =+    Prelude.rnf jobId+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders GetBatchImportJobs where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.GetBatchImportJobs" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetBatchImportJobs where+  toJSON GetBatchImportJobs' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("jobId" Data..=) Prelude.<$> jobId,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath GetBatchImportJobs where+  toPath = Prelude.const "/"++instance Data.ToQuery GetBatchImportJobs where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetBatchImportJobsResponse' smart constructor.+data GetBatchImportJobsResponse = GetBatchImportJobsResponse'+  { -- | An array containing the details of each batch import job.+    batchImports :: Prelude.Maybe [BatchImport],+    -- | The next token for the subsequent resquest.+    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 'GetBatchImportJobsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'batchImports', 'getBatchImportJobsResponse_batchImports' - An array containing the details of each batch import job.+--+-- 'nextToken', 'getBatchImportJobsResponse_nextToken' - The next token for the subsequent resquest.+--+-- 'httpStatus', 'getBatchImportJobsResponse_httpStatus' - The response's http status code.+newGetBatchImportJobsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetBatchImportJobsResponse+newGetBatchImportJobsResponse pHttpStatus_ =+  GetBatchImportJobsResponse'+    { batchImports =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array containing the details of each batch import job.+getBatchImportJobsResponse_batchImports :: Lens.Lens' GetBatchImportJobsResponse (Prelude.Maybe [BatchImport])+getBatchImportJobsResponse_batchImports = Lens.lens (\GetBatchImportJobsResponse' {batchImports} -> batchImports) (\s@GetBatchImportJobsResponse' {} a -> s {batchImports = a} :: GetBatchImportJobsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The next token for the subsequent resquest.+getBatchImportJobsResponse_nextToken :: Lens.Lens' GetBatchImportJobsResponse (Prelude.Maybe Prelude.Text)+getBatchImportJobsResponse_nextToken = Lens.lens (\GetBatchImportJobsResponse' {nextToken} -> nextToken) (\s@GetBatchImportJobsResponse' {} a -> s {nextToken = a} :: GetBatchImportJobsResponse)++-- | The response's http status code.+getBatchImportJobsResponse_httpStatus :: Lens.Lens' GetBatchImportJobsResponse Prelude.Int+getBatchImportJobsResponse_httpStatus = Lens.lens (\GetBatchImportJobsResponse' {httpStatus} -> httpStatus) (\s@GetBatchImportJobsResponse' {} a -> s {httpStatus = a} :: GetBatchImportJobsResponse)++instance Prelude.NFData GetBatchImportJobsResponse where+  rnf GetBatchImportJobsResponse' {..} =+    Prelude.rnf batchImports+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/GetBatchPredictionJobs.hs view
@@ -0,0 +1,221 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.GetBatchPredictionJobs+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets all batch prediction jobs or a specific job if you specify a job+-- ID. This is a paginated API. If you provide a null maxResults, this+-- action retrieves a maximum of 50 records per page. If you provide a+-- maxResults, the value must be between 1 and 50. To get the next page+-- results, provide the pagination token from the+-- GetBatchPredictionJobsResponse as part of your request. A null+-- pagination token fetches the records from the beginning.+module Amazonka.FraudDetector.GetBatchPredictionJobs+  ( -- * Creating a Request+    GetBatchPredictionJobs (..),+    newGetBatchPredictionJobs,++    -- * Request Lenses+    getBatchPredictionJobs_jobId,+    getBatchPredictionJobs_maxResults,+    getBatchPredictionJobs_nextToken,++    -- * Destructuring the Response+    GetBatchPredictionJobsResponse (..),+    newGetBatchPredictionJobsResponse,++    -- * Response Lenses+    getBatchPredictionJobsResponse_batchPredictions,+    getBatchPredictionJobsResponse_nextToken,+    getBatchPredictionJobsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetBatchPredictionJobs' smart constructor.+data GetBatchPredictionJobs = GetBatchPredictionJobs'+  { -- | The batch prediction job for which to get the details.+    jobId :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of objects to return for the request.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The next token from the previous request.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetBatchPredictionJobs' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getBatchPredictionJobs_jobId' - The batch prediction job for which to get the details.+--+-- 'maxResults', 'getBatchPredictionJobs_maxResults' - The maximum number of objects to return for the request.+--+-- 'nextToken', 'getBatchPredictionJobs_nextToken' - The next token from the previous request.+newGetBatchPredictionJobs ::+  GetBatchPredictionJobs+newGetBatchPredictionJobs =+  GetBatchPredictionJobs'+    { jobId = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The batch prediction job for which to get the details.+getBatchPredictionJobs_jobId :: Lens.Lens' GetBatchPredictionJobs (Prelude.Maybe Prelude.Text)+getBatchPredictionJobs_jobId = Lens.lens (\GetBatchPredictionJobs' {jobId} -> jobId) (\s@GetBatchPredictionJobs' {} a -> s {jobId = a} :: GetBatchPredictionJobs)++-- | The maximum number of objects to return for the request.+getBatchPredictionJobs_maxResults :: Lens.Lens' GetBatchPredictionJobs (Prelude.Maybe Prelude.Natural)+getBatchPredictionJobs_maxResults = Lens.lens (\GetBatchPredictionJobs' {maxResults} -> maxResults) (\s@GetBatchPredictionJobs' {} a -> s {maxResults = a} :: GetBatchPredictionJobs)++-- | The next token from the previous request.+getBatchPredictionJobs_nextToken :: Lens.Lens' GetBatchPredictionJobs (Prelude.Maybe Prelude.Text)+getBatchPredictionJobs_nextToken = Lens.lens (\GetBatchPredictionJobs' {nextToken} -> nextToken) (\s@GetBatchPredictionJobs' {} a -> s {nextToken = a} :: GetBatchPredictionJobs)++instance Core.AWSRequest GetBatchPredictionJobs where+  type+    AWSResponse GetBatchPredictionJobs =+      GetBatchPredictionJobsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetBatchPredictionJobsResponse'+            Prelude.<$> ( x+                            Data..?> "batchPredictions"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetBatchPredictionJobs where+  hashWithSalt _salt GetBatchPredictionJobs' {..} =+    _salt+      `Prelude.hashWithSalt` jobId+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData GetBatchPredictionJobs where+  rnf GetBatchPredictionJobs' {..} =+    Prelude.rnf jobId+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders GetBatchPredictionJobs where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.GetBatchPredictionJobs" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetBatchPredictionJobs where+  toJSON GetBatchPredictionJobs' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("jobId" Data..=) Prelude.<$> jobId,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath GetBatchPredictionJobs where+  toPath = Prelude.const "/"++instance Data.ToQuery GetBatchPredictionJobs where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetBatchPredictionJobsResponse' smart constructor.+data GetBatchPredictionJobsResponse = GetBatchPredictionJobsResponse'+  { -- | An array containing the details of each batch prediction job.+    batchPredictions :: Prelude.Maybe [BatchPrediction],+    -- | The next token for the subsequent request.+    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 'GetBatchPredictionJobsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'batchPredictions', 'getBatchPredictionJobsResponse_batchPredictions' - An array containing the details of each batch prediction job.+--+-- 'nextToken', 'getBatchPredictionJobsResponse_nextToken' - The next token for the subsequent request.+--+-- 'httpStatus', 'getBatchPredictionJobsResponse_httpStatus' - The response's http status code.+newGetBatchPredictionJobsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetBatchPredictionJobsResponse+newGetBatchPredictionJobsResponse pHttpStatus_ =+  GetBatchPredictionJobsResponse'+    { batchPredictions =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array containing the details of each batch prediction job.+getBatchPredictionJobsResponse_batchPredictions :: Lens.Lens' GetBatchPredictionJobsResponse (Prelude.Maybe [BatchPrediction])+getBatchPredictionJobsResponse_batchPredictions = Lens.lens (\GetBatchPredictionJobsResponse' {batchPredictions} -> batchPredictions) (\s@GetBatchPredictionJobsResponse' {} a -> s {batchPredictions = a} :: GetBatchPredictionJobsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The next token for the subsequent request.+getBatchPredictionJobsResponse_nextToken :: Lens.Lens' GetBatchPredictionJobsResponse (Prelude.Maybe Prelude.Text)+getBatchPredictionJobsResponse_nextToken = Lens.lens (\GetBatchPredictionJobsResponse' {nextToken} -> nextToken) (\s@GetBatchPredictionJobsResponse' {} a -> s {nextToken = a} :: GetBatchPredictionJobsResponse)++-- | The response's http status code.+getBatchPredictionJobsResponse_httpStatus :: Lens.Lens' GetBatchPredictionJobsResponse Prelude.Int+getBatchPredictionJobsResponse_httpStatus = Lens.lens (\GetBatchPredictionJobsResponse' {httpStatus} -> httpStatus) (\s@GetBatchPredictionJobsResponse' {} a -> s {httpStatus = a} :: GetBatchPredictionJobsResponse)++instance+  Prelude.NFData+    GetBatchPredictionJobsResponse+  where+  rnf GetBatchPredictionJobsResponse' {..} =+    Prelude.rnf batchPredictions+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/GetDeleteEventsByEventTypeStatus.hs view
@@ -0,0 +1,208 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.GetDeleteEventsByEventTypeStatus+-- 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 of a @DeleteEventsByEventType@ action.+module Amazonka.FraudDetector.GetDeleteEventsByEventTypeStatus+  ( -- * Creating a Request+    GetDeleteEventsByEventTypeStatus (..),+    newGetDeleteEventsByEventTypeStatus,++    -- * Request Lenses+    getDeleteEventsByEventTypeStatus_eventTypeName,++    -- * Destructuring the Response+    GetDeleteEventsByEventTypeStatusResponse (..),+    newGetDeleteEventsByEventTypeStatusResponse,++    -- * Response Lenses+    getDeleteEventsByEventTypeStatusResponse_eventTypeName,+    getDeleteEventsByEventTypeStatusResponse_eventsDeletionStatus,+    getDeleteEventsByEventTypeStatusResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetDeleteEventsByEventTypeStatus' smart constructor.+data GetDeleteEventsByEventTypeStatus = GetDeleteEventsByEventTypeStatus'+  { -- | Name of event type for which to get the deletion status.+    eventTypeName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDeleteEventsByEventTypeStatus' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventTypeName', 'getDeleteEventsByEventTypeStatus_eventTypeName' - Name of event type for which to get the deletion status.+newGetDeleteEventsByEventTypeStatus ::+  -- | 'eventTypeName'+  Prelude.Text ->+  GetDeleteEventsByEventTypeStatus+newGetDeleteEventsByEventTypeStatus pEventTypeName_ =+  GetDeleteEventsByEventTypeStatus'+    { eventTypeName =+        pEventTypeName_+    }++-- | Name of event type for which to get the deletion status.+getDeleteEventsByEventTypeStatus_eventTypeName :: Lens.Lens' GetDeleteEventsByEventTypeStatus Prelude.Text+getDeleteEventsByEventTypeStatus_eventTypeName = Lens.lens (\GetDeleteEventsByEventTypeStatus' {eventTypeName} -> eventTypeName) (\s@GetDeleteEventsByEventTypeStatus' {} a -> s {eventTypeName = a} :: GetDeleteEventsByEventTypeStatus)++instance+  Core.AWSRequest+    GetDeleteEventsByEventTypeStatus+  where+  type+    AWSResponse GetDeleteEventsByEventTypeStatus =+      GetDeleteEventsByEventTypeStatusResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetDeleteEventsByEventTypeStatusResponse'+            Prelude.<$> (x Data..?> "eventTypeName")+            Prelude.<*> (x Data..?> "eventsDeletionStatus")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    GetDeleteEventsByEventTypeStatus+  where+  hashWithSalt+    _salt+    GetDeleteEventsByEventTypeStatus' {..} =+      _salt `Prelude.hashWithSalt` eventTypeName++instance+  Prelude.NFData+    GetDeleteEventsByEventTypeStatus+  where+  rnf GetDeleteEventsByEventTypeStatus' {..} =+    Prelude.rnf eventTypeName++instance+  Data.ToHeaders+    GetDeleteEventsByEventTypeStatus+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.GetDeleteEventsByEventTypeStatus" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetDeleteEventsByEventTypeStatus where+  toJSON GetDeleteEventsByEventTypeStatus' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("eventTypeName" Data..= eventTypeName)+          ]+      )++instance Data.ToPath GetDeleteEventsByEventTypeStatus where+  toPath = Prelude.const "/"++instance+  Data.ToQuery+    GetDeleteEventsByEventTypeStatus+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetDeleteEventsByEventTypeStatusResponse' smart constructor.+data GetDeleteEventsByEventTypeStatusResponse = GetDeleteEventsByEventTypeStatusResponse'+  { -- | The event type name.+    eventTypeName :: Prelude.Maybe Prelude.Text,+    -- | The deletion status.+    eventsDeletionStatus :: Prelude.Maybe AsyncJobStatus,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDeleteEventsByEventTypeStatusResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventTypeName', 'getDeleteEventsByEventTypeStatusResponse_eventTypeName' - The event type name.+--+-- 'eventsDeletionStatus', 'getDeleteEventsByEventTypeStatusResponse_eventsDeletionStatus' - The deletion status.+--+-- 'httpStatus', 'getDeleteEventsByEventTypeStatusResponse_httpStatus' - The response's http status code.+newGetDeleteEventsByEventTypeStatusResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetDeleteEventsByEventTypeStatusResponse+newGetDeleteEventsByEventTypeStatusResponse+  pHttpStatus_ =+    GetDeleteEventsByEventTypeStatusResponse'+      { eventTypeName =+          Prelude.Nothing,+        eventsDeletionStatus =+          Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | The event type name.+getDeleteEventsByEventTypeStatusResponse_eventTypeName :: Lens.Lens' GetDeleteEventsByEventTypeStatusResponse (Prelude.Maybe Prelude.Text)+getDeleteEventsByEventTypeStatusResponse_eventTypeName = Lens.lens (\GetDeleteEventsByEventTypeStatusResponse' {eventTypeName} -> eventTypeName) (\s@GetDeleteEventsByEventTypeStatusResponse' {} a -> s {eventTypeName = a} :: GetDeleteEventsByEventTypeStatusResponse)++-- | The deletion status.+getDeleteEventsByEventTypeStatusResponse_eventsDeletionStatus :: Lens.Lens' GetDeleteEventsByEventTypeStatusResponse (Prelude.Maybe AsyncJobStatus)+getDeleteEventsByEventTypeStatusResponse_eventsDeletionStatus = Lens.lens (\GetDeleteEventsByEventTypeStatusResponse' {eventsDeletionStatus} -> eventsDeletionStatus) (\s@GetDeleteEventsByEventTypeStatusResponse' {} a -> s {eventsDeletionStatus = a} :: GetDeleteEventsByEventTypeStatusResponse)++-- | The response's http status code.+getDeleteEventsByEventTypeStatusResponse_httpStatus :: Lens.Lens' GetDeleteEventsByEventTypeStatusResponse Prelude.Int+getDeleteEventsByEventTypeStatusResponse_httpStatus = Lens.lens (\GetDeleteEventsByEventTypeStatusResponse' {httpStatus} -> httpStatus) (\s@GetDeleteEventsByEventTypeStatusResponse' {} a -> s {httpStatus = a} :: GetDeleteEventsByEventTypeStatusResponse)++instance+  Prelude.NFData+    GetDeleteEventsByEventTypeStatusResponse+  where+  rnf GetDeleteEventsByEventTypeStatusResponse' {..} =+    Prelude.rnf eventTypeName+      `Prelude.seq` Prelude.rnf eventsDeletionStatus+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/GetDetectorVersion.hs view
@@ -0,0 +1,337 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.GetDetectorVersion+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a particular detector version.+module Amazonka.FraudDetector.GetDetectorVersion+  ( -- * Creating a Request+    GetDetectorVersion (..),+    newGetDetectorVersion,++    -- * Request Lenses+    getDetectorVersion_detectorId,+    getDetectorVersion_detectorVersionId,++    -- * Destructuring the Response+    GetDetectorVersionResponse (..),+    newGetDetectorVersionResponse,++    -- * Response Lenses+    getDetectorVersionResponse_arn,+    getDetectorVersionResponse_createdTime,+    getDetectorVersionResponse_description,+    getDetectorVersionResponse_detectorId,+    getDetectorVersionResponse_detectorVersionId,+    getDetectorVersionResponse_externalModelEndpoints,+    getDetectorVersionResponse_lastUpdatedTime,+    getDetectorVersionResponse_modelVersions,+    getDetectorVersionResponse_ruleExecutionMode,+    getDetectorVersionResponse_rules,+    getDetectorVersionResponse_status,+    getDetectorVersionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetDetectorVersion' smart constructor.+data GetDetectorVersion = GetDetectorVersion'+  { -- | The detector ID.+    detectorId :: Prelude.Text,+    -- | The detector version ID.+    detectorVersionId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDetectorVersion' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'detectorId', 'getDetectorVersion_detectorId' - The detector ID.+--+-- 'detectorVersionId', 'getDetectorVersion_detectorVersionId' - The detector version ID.+newGetDetectorVersion ::+  -- | 'detectorId'+  Prelude.Text ->+  -- | 'detectorVersionId'+  Prelude.Text ->+  GetDetectorVersion+newGetDetectorVersion+  pDetectorId_+  pDetectorVersionId_ =+    GetDetectorVersion'+      { detectorId = pDetectorId_,+        detectorVersionId = pDetectorVersionId_+      }++-- | The detector ID.+getDetectorVersion_detectorId :: Lens.Lens' GetDetectorVersion Prelude.Text+getDetectorVersion_detectorId = Lens.lens (\GetDetectorVersion' {detectorId} -> detectorId) (\s@GetDetectorVersion' {} a -> s {detectorId = a} :: GetDetectorVersion)++-- | The detector version ID.+getDetectorVersion_detectorVersionId :: Lens.Lens' GetDetectorVersion Prelude.Text+getDetectorVersion_detectorVersionId = Lens.lens (\GetDetectorVersion' {detectorVersionId} -> detectorVersionId) (\s@GetDetectorVersion' {} a -> s {detectorVersionId = a} :: GetDetectorVersion)++instance Core.AWSRequest GetDetectorVersion where+  type+    AWSResponse GetDetectorVersion =+      GetDetectorVersionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetDetectorVersionResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "createdTime")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "detectorId")+            Prelude.<*> (x Data..?> "detectorVersionId")+            Prelude.<*> ( x+                            Data..?> "externalModelEndpoints"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "lastUpdatedTime")+            Prelude.<*> (x Data..?> "modelVersions" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "ruleExecutionMode")+            Prelude.<*> (x Data..?> "rules" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "status")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetDetectorVersion where+  hashWithSalt _salt GetDetectorVersion' {..} =+    _salt+      `Prelude.hashWithSalt` detectorId+      `Prelude.hashWithSalt` detectorVersionId++instance Prelude.NFData GetDetectorVersion where+  rnf GetDetectorVersion' {..} =+    Prelude.rnf detectorId+      `Prelude.seq` Prelude.rnf detectorVersionId++instance Data.ToHeaders GetDetectorVersion where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.GetDetectorVersion" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetDetectorVersion where+  toJSON GetDetectorVersion' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("detectorId" Data..= detectorId),+            Prelude.Just+              ("detectorVersionId" Data..= detectorVersionId)+          ]+      )++instance Data.ToPath GetDetectorVersion where+  toPath = Prelude.const "/"++instance Data.ToQuery GetDetectorVersion where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetDetectorVersionResponse' smart constructor.+data GetDetectorVersionResponse = GetDetectorVersionResponse'+  { -- | The detector version ARN.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The timestamp when the detector version was created.+    createdTime :: Prelude.Maybe Prelude.Text,+    -- | The detector version description.+    description :: Prelude.Maybe Prelude.Text,+    -- | The detector ID.+    detectorId :: Prelude.Maybe Prelude.Text,+    -- | The detector version ID.+    detectorVersionId :: Prelude.Maybe Prelude.Text,+    -- | The Amazon SageMaker model endpoints included in the detector version.+    externalModelEndpoints :: Prelude.Maybe [Prelude.Text],+    -- | The timestamp when the detector version was last updated.+    lastUpdatedTime :: Prelude.Maybe Prelude.Text,+    -- | The model versions included in the detector version.+    modelVersions :: Prelude.Maybe [ModelVersion],+    -- | The execution mode of the rule in the dectector+    --+    -- @FIRST_MATCHED@ indicates that Amazon Fraud Detector evaluates rules+    -- sequentially, first to last, stopping at the first matched rule. Amazon+    -- Fraud dectector then provides the outcomes for that single rule.+    --+    -- @ALL_MATCHED@ indicates that Amazon Fraud Detector evaluates all rules+    -- and returns the outcomes for all matched rules. You can define and edit+    -- the rule mode at the detector version level, when it is in draft status.+    ruleExecutionMode :: Prelude.Maybe RuleExecutionMode,+    -- | The rules included in the detector version.+    rules :: Prelude.Maybe [Rule],+    -- | The status of the detector version.+    status :: Prelude.Maybe DetectorVersionStatus,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDetectorVersionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getDetectorVersionResponse_arn' - The detector version ARN.+--+-- 'createdTime', 'getDetectorVersionResponse_createdTime' - The timestamp when the detector version was created.+--+-- 'description', 'getDetectorVersionResponse_description' - The detector version description.+--+-- 'detectorId', 'getDetectorVersionResponse_detectorId' - The detector ID.+--+-- 'detectorVersionId', 'getDetectorVersionResponse_detectorVersionId' - The detector version ID.+--+-- 'externalModelEndpoints', 'getDetectorVersionResponse_externalModelEndpoints' - The Amazon SageMaker model endpoints included in the detector version.+--+-- 'lastUpdatedTime', 'getDetectorVersionResponse_lastUpdatedTime' - The timestamp when the detector version was last updated.+--+-- 'modelVersions', 'getDetectorVersionResponse_modelVersions' - The model versions included in the detector version.+--+-- 'ruleExecutionMode', 'getDetectorVersionResponse_ruleExecutionMode' - The execution mode of the rule in the dectector+--+-- @FIRST_MATCHED@ indicates that Amazon Fraud Detector evaluates rules+-- sequentially, first to last, stopping at the first matched rule. Amazon+-- Fraud dectector then provides the outcomes for that single rule.+--+-- @ALL_MATCHED@ indicates that Amazon Fraud Detector evaluates all rules+-- and returns the outcomes for all matched rules. You can define and edit+-- the rule mode at the detector version level, when it is in draft status.+--+-- 'rules', 'getDetectorVersionResponse_rules' - The rules included in the detector version.+--+-- 'status', 'getDetectorVersionResponse_status' - The status of the detector version.+--+-- 'httpStatus', 'getDetectorVersionResponse_httpStatus' - The response's http status code.+newGetDetectorVersionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetDetectorVersionResponse+newGetDetectorVersionResponse pHttpStatus_ =+  GetDetectorVersionResponse'+    { arn = Prelude.Nothing,+      createdTime = Prelude.Nothing,+      description = Prelude.Nothing,+      detectorId = Prelude.Nothing,+      detectorVersionId = Prelude.Nothing,+      externalModelEndpoints = Prelude.Nothing,+      lastUpdatedTime = Prelude.Nothing,+      modelVersions = Prelude.Nothing,+      ruleExecutionMode = Prelude.Nothing,+      rules = Prelude.Nothing,+      status = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The detector version ARN.+getDetectorVersionResponse_arn :: Lens.Lens' GetDetectorVersionResponse (Prelude.Maybe Prelude.Text)+getDetectorVersionResponse_arn = Lens.lens (\GetDetectorVersionResponse' {arn} -> arn) (\s@GetDetectorVersionResponse' {} a -> s {arn = a} :: GetDetectorVersionResponse)++-- | The timestamp when the detector version was created.+getDetectorVersionResponse_createdTime :: Lens.Lens' GetDetectorVersionResponse (Prelude.Maybe Prelude.Text)+getDetectorVersionResponse_createdTime = Lens.lens (\GetDetectorVersionResponse' {createdTime} -> createdTime) (\s@GetDetectorVersionResponse' {} a -> s {createdTime = a} :: GetDetectorVersionResponse)++-- | The detector version description.+getDetectorVersionResponse_description :: Lens.Lens' GetDetectorVersionResponse (Prelude.Maybe Prelude.Text)+getDetectorVersionResponse_description = Lens.lens (\GetDetectorVersionResponse' {description} -> description) (\s@GetDetectorVersionResponse' {} a -> s {description = a} :: GetDetectorVersionResponse)++-- | The detector ID.+getDetectorVersionResponse_detectorId :: Lens.Lens' GetDetectorVersionResponse (Prelude.Maybe Prelude.Text)+getDetectorVersionResponse_detectorId = Lens.lens (\GetDetectorVersionResponse' {detectorId} -> detectorId) (\s@GetDetectorVersionResponse' {} a -> s {detectorId = a} :: GetDetectorVersionResponse)++-- | The detector version ID.+getDetectorVersionResponse_detectorVersionId :: Lens.Lens' GetDetectorVersionResponse (Prelude.Maybe Prelude.Text)+getDetectorVersionResponse_detectorVersionId = Lens.lens (\GetDetectorVersionResponse' {detectorVersionId} -> detectorVersionId) (\s@GetDetectorVersionResponse' {} a -> s {detectorVersionId = a} :: GetDetectorVersionResponse)++-- | The Amazon SageMaker model endpoints included in the detector version.+getDetectorVersionResponse_externalModelEndpoints :: Lens.Lens' GetDetectorVersionResponse (Prelude.Maybe [Prelude.Text])+getDetectorVersionResponse_externalModelEndpoints = Lens.lens (\GetDetectorVersionResponse' {externalModelEndpoints} -> externalModelEndpoints) (\s@GetDetectorVersionResponse' {} a -> s {externalModelEndpoints = a} :: GetDetectorVersionResponse) Prelude.. Lens.mapping Lens.coerced++-- | The timestamp when the detector version was last updated.+getDetectorVersionResponse_lastUpdatedTime :: Lens.Lens' GetDetectorVersionResponse (Prelude.Maybe Prelude.Text)+getDetectorVersionResponse_lastUpdatedTime = Lens.lens (\GetDetectorVersionResponse' {lastUpdatedTime} -> lastUpdatedTime) (\s@GetDetectorVersionResponse' {} a -> s {lastUpdatedTime = a} :: GetDetectorVersionResponse)++-- | The model versions included in the detector version.+getDetectorVersionResponse_modelVersions :: Lens.Lens' GetDetectorVersionResponse (Prelude.Maybe [ModelVersion])+getDetectorVersionResponse_modelVersions = Lens.lens (\GetDetectorVersionResponse' {modelVersions} -> modelVersions) (\s@GetDetectorVersionResponse' {} a -> s {modelVersions = a} :: GetDetectorVersionResponse) Prelude.. Lens.mapping Lens.coerced++-- | The execution mode of the rule in the dectector+--+-- @FIRST_MATCHED@ indicates that Amazon Fraud Detector evaluates rules+-- sequentially, first to last, stopping at the first matched rule. Amazon+-- Fraud dectector then provides the outcomes for that single rule.+--+-- @ALL_MATCHED@ indicates that Amazon Fraud Detector evaluates all rules+-- and returns the outcomes for all matched rules. You can define and edit+-- the rule mode at the detector version level, when it is in draft status.+getDetectorVersionResponse_ruleExecutionMode :: Lens.Lens' GetDetectorVersionResponse (Prelude.Maybe RuleExecutionMode)+getDetectorVersionResponse_ruleExecutionMode = Lens.lens (\GetDetectorVersionResponse' {ruleExecutionMode} -> ruleExecutionMode) (\s@GetDetectorVersionResponse' {} a -> s {ruleExecutionMode = a} :: GetDetectorVersionResponse)++-- | The rules included in the detector version.+getDetectorVersionResponse_rules :: Lens.Lens' GetDetectorVersionResponse (Prelude.Maybe [Rule])+getDetectorVersionResponse_rules = Lens.lens (\GetDetectorVersionResponse' {rules} -> rules) (\s@GetDetectorVersionResponse' {} a -> s {rules = a} :: GetDetectorVersionResponse) Prelude.. Lens.mapping Lens.coerced++-- | The status of the detector version.+getDetectorVersionResponse_status :: Lens.Lens' GetDetectorVersionResponse (Prelude.Maybe DetectorVersionStatus)+getDetectorVersionResponse_status = Lens.lens (\GetDetectorVersionResponse' {status} -> status) (\s@GetDetectorVersionResponse' {} a -> s {status = a} :: GetDetectorVersionResponse)++-- | The response's http status code.+getDetectorVersionResponse_httpStatus :: Lens.Lens' GetDetectorVersionResponse Prelude.Int+getDetectorVersionResponse_httpStatus = Lens.lens (\GetDetectorVersionResponse' {httpStatus} -> httpStatus) (\s@GetDetectorVersionResponse' {} a -> s {httpStatus = a} :: GetDetectorVersionResponse)++instance Prelude.NFData GetDetectorVersionResponse where+  rnf GetDetectorVersionResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdTime+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf detectorId+      `Prelude.seq` Prelude.rnf detectorVersionId+      `Prelude.seq` Prelude.rnf externalModelEndpoints+      `Prelude.seq` Prelude.rnf lastUpdatedTime+      `Prelude.seq` Prelude.rnf modelVersions+      `Prelude.seq` Prelude.rnf ruleExecutionMode+      `Prelude.seq` Prelude.rnf rules+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/GetDetectors.hs view
@@ -0,0 +1,212 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.GetDetectors+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets all detectors or a single detector if a @detectorId@ is specified.+-- This is a paginated API. If you provide a null @maxResults@, this action+-- retrieves a maximum of 10 records per page. If you provide a+-- @maxResults@, the value must be between 5 and 10. To get the next page+-- results, provide the pagination token from the @GetDetectorsResponse@ as+-- part of your request. A null pagination token fetches the records from+-- the beginning.+module Amazonka.FraudDetector.GetDetectors+  ( -- * Creating a Request+    GetDetectors (..),+    newGetDetectors,++    -- * Request Lenses+    getDetectors_detectorId,+    getDetectors_maxResults,+    getDetectors_nextToken,++    -- * Destructuring the Response+    GetDetectorsResponse (..),+    newGetDetectorsResponse,++    -- * Response Lenses+    getDetectorsResponse_detectors,+    getDetectorsResponse_nextToken,+    getDetectorsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetDetectors' smart constructor.+data GetDetectors = GetDetectors'+  { -- | The detector ID.+    detectorId :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of objects to return for the request.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The next token for the subsequent request.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDetectors' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'detectorId', 'getDetectors_detectorId' - The detector ID.+--+-- 'maxResults', 'getDetectors_maxResults' - The maximum number of objects to return for the request.+--+-- 'nextToken', 'getDetectors_nextToken' - The next token for the subsequent request.+newGetDetectors ::+  GetDetectors+newGetDetectors =+  GetDetectors'+    { detectorId = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The detector ID.+getDetectors_detectorId :: Lens.Lens' GetDetectors (Prelude.Maybe Prelude.Text)+getDetectors_detectorId = Lens.lens (\GetDetectors' {detectorId} -> detectorId) (\s@GetDetectors' {} a -> s {detectorId = a} :: GetDetectors)++-- | The maximum number of objects to return for the request.+getDetectors_maxResults :: Lens.Lens' GetDetectors (Prelude.Maybe Prelude.Natural)+getDetectors_maxResults = Lens.lens (\GetDetectors' {maxResults} -> maxResults) (\s@GetDetectors' {} a -> s {maxResults = a} :: GetDetectors)++-- | The next token for the subsequent request.+getDetectors_nextToken :: Lens.Lens' GetDetectors (Prelude.Maybe Prelude.Text)+getDetectors_nextToken = Lens.lens (\GetDetectors' {nextToken} -> nextToken) (\s@GetDetectors' {} a -> s {nextToken = a} :: GetDetectors)++instance Core.AWSRequest GetDetectors where+  type AWSResponse GetDetectors = GetDetectorsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetDetectorsResponse'+            Prelude.<$> (x Data..?> "detectors" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetDetectors where+  hashWithSalt _salt GetDetectors' {..} =+    _salt+      `Prelude.hashWithSalt` detectorId+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData GetDetectors where+  rnf GetDetectors' {..} =+    Prelude.rnf detectorId+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders GetDetectors where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.GetDetectors" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetDetectors where+  toJSON GetDetectors' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("detectorId" Data..=) Prelude.<$> detectorId,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath GetDetectors where+  toPath = Prelude.const "/"++instance Data.ToQuery GetDetectors where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetDetectorsResponse' smart constructor.+data GetDetectorsResponse = GetDetectorsResponse'+  { -- | The detectors.+    detectors :: Prelude.Maybe [Detector],+    -- | The next page token.+    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 'GetDetectorsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'detectors', 'getDetectorsResponse_detectors' - The detectors.+--+-- 'nextToken', 'getDetectorsResponse_nextToken' - The next page token.+--+-- 'httpStatus', 'getDetectorsResponse_httpStatus' - The response's http status code.+newGetDetectorsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetDetectorsResponse+newGetDetectorsResponse pHttpStatus_ =+  GetDetectorsResponse'+    { detectors = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The detectors.+getDetectorsResponse_detectors :: Lens.Lens' GetDetectorsResponse (Prelude.Maybe [Detector])+getDetectorsResponse_detectors = Lens.lens (\GetDetectorsResponse' {detectors} -> detectors) (\s@GetDetectorsResponse' {} a -> s {detectors = a} :: GetDetectorsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The next page token.+getDetectorsResponse_nextToken :: Lens.Lens' GetDetectorsResponse (Prelude.Maybe Prelude.Text)+getDetectorsResponse_nextToken = Lens.lens (\GetDetectorsResponse' {nextToken} -> nextToken) (\s@GetDetectorsResponse' {} a -> s {nextToken = a} :: GetDetectorsResponse)++-- | The response's http status code.+getDetectorsResponse_httpStatus :: Lens.Lens' GetDetectorsResponse Prelude.Int+getDetectorsResponse_httpStatus = Lens.lens (\GetDetectorsResponse' {httpStatus} -> httpStatus) (\s@GetDetectorsResponse' {} a -> s {httpStatus = a} :: GetDetectorsResponse)++instance Prelude.NFData GetDetectorsResponse where+  rnf GetDetectorsResponse' {..} =+    Prelude.rnf detectors+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/GetEntityTypes.hs view
@@ -0,0 +1,215 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.GetEntityTypes+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets all entity types or a specific entity type if a name is specified.+-- This is a paginated API. If you provide a null @maxResults@, this action+-- retrieves a maximum of 10 records per page. If you provide a+-- @maxResults@, the value must be between 5 and 10. To get the next page+-- results, provide the pagination token from the @GetEntityTypesResponse@+-- as part of your request. A null pagination token fetches the records+-- from the beginning.+module Amazonka.FraudDetector.GetEntityTypes+  ( -- * Creating a Request+    GetEntityTypes (..),+    newGetEntityTypes,++    -- * Request Lenses+    getEntityTypes_maxResults,+    getEntityTypes_name,+    getEntityTypes_nextToken,++    -- * Destructuring the Response+    GetEntityTypesResponse (..),+    newGetEntityTypesResponse,++    -- * Response Lenses+    getEntityTypesResponse_entityTypes,+    getEntityTypesResponse_nextToken,+    getEntityTypesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetEntityTypes' smart constructor.+data GetEntityTypes = GetEntityTypes'+  { -- | The maximum number of objects to return for the request.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The name.+    name :: Prelude.Maybe Prelude.Text,+    -- | The next token for the subsequent request.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetEntityTypes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getEntityTypes_maxResults' - The maximum number of objects to return for the request.+--+-- 'name', 'getEntityTypes_name' - The name.+--+-- 'nextToken', 'getEntityTypes_nextToken' - The next token for the subsequent request.+newGetEntityTypes ::+  GetEntityTypes+newGetEntityTypes =+  GetEntityTypes'+    { maxResults = Prelude.Nothing,+      name = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of objects to return for the request.+getEntityTypes_maxResults :: Lens.Lens' GetEntityTypes (Prelude.Maybe Prelude.Natural)+getEntityTypes_maxResults = Lens.lens (\GetEntityTypes' {maxResults} -> maxResults) (\s@GetEntityTypes' {} a -> s {maxResults = a} :: GetEntityTypes)++-- | The name.+getEntityTypes_name :: Lens.Lens' GetEntityTypes (Prelude.Maybe Prelude.Text)+getEntityTypes_name = Lens.lens (\GetEntityTypes' {name} -> name) (\s@GetEntityTypes' {} a -> s {name = a} :: GetEntityTypes)++-- | The next token for the subsequent request.+getEntityTypes_nextToken :: Lens.Lens' GetEntityTypes (Prelude.Maybe Prelude.Text)+getEntityTypes_nextToken = Lens.lens (\GetEntityTypes' {nextToken} -> nextToken) (\s@GetEntityTypes' {} a -> s {nextToken = a} :: GetEntityTypes)++instance Core.AWSRequest GetEntityTypes where+  type+    AWSResponse GetEntityTypes =+      GetEntityTypesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetEntityTypesResponse'+            Prelude.<$> (x Data..?> "entityTypes" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetEntityTypes where+  hashWithSalt _salt GetEntityTypes' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData GetEntityTypes where+  rnf GetEntityTypes' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders GetEntityTypes where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.GetEntityTypes" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetEntityTypes where+  toJSON GetEntityTypes' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("name" Data..=) Prelude.<$> name,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath GetEntityTypes where+  toPath = Prelude.const "/"++instance Data.ToQuery GetEntityTypes where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetEntityTypesResponse' smart constructor.+data GetEntityTypesResponse = GetEntityTypesResponse'+  { -- | An array of entity types.+    entityTypes :: Prelude.Maybe [EntityType],+    -- | The next page token.+    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 'GetEntityTypesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'entityTypes', 'getEntityTypesResponse_entityTypes' - An array of entity types.+--+-- 'nextToken', 'getEntityTypesResponse_nextToken' - The next page token.+--+-- 'httpStatus', 'getEntityTypesResponse_httpStatus' - The response's http status code.+newGetEntityTypesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetEntityTypesResponse+newGetEntityTypesResponse pHttpStatus_ =+  GetEntityTypesResponse'+    { entityTypes =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array of entity types.+getEntityTypesResponse_entityTypes :: Lens.Lens' GetEntityTypesResponse (Prelude.Maybe [EntityType])+getEntityTypesResponse_entityTypes = Lens.lens (\GetEntityTypesResponse' {entityTypes} -> entityTypes) (\s@GetEntityTypesResponse' {} a -> s {entityTypes = a} :: GetEntityTypesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The next page token.+getEntityTypesResponse_nextToken :: Lens.Lens' GetEntityTypesResponse (Prelude.Maybe Prelude.Text)+getEntityTypesResponse_nextToken = Lens.lens (\GetEntityTypesResponse' {nextToken} -> nextToken) (\s@GetEntityTypesResponse' {} a -> s {nextToken = a} :: GetEntityTypesResponse)++-- | The response's http status code.+getEntityTypesResponse_httpStatus :: Lens.Lens' GetEntityTypesResponse Prelude.Int+getEntityTypesResponse_httpStatus = Lens.lens (\GetEntityTypesResponse' {httpStatus} -> httpStatus) (\s@GetEntityTypesResponse' {} a -> s {httpStatus = a} :: GetEntityTypesResponse)++instance Prelude.NFData GetEntityTypesResponse where+  rnf GetEntityTypesResponse' {..} =+    Prelude.rnf entityTypes+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/GetEvent.hs view
@@ -0,0 +1,187 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.GetEvent+-- 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 details of events stored with Amazon Fraud Detector. This+-- action does not retrieve prediction results.+module Amazonka.FraudDetector.GetEvent+  ( -- * Creating a Request+    GetEvent (..),+    newGetEvent,++    -- * Request Lenses+    getEvent_eventId,+    getEvent_eventTypeName,++    -- * Destructuring the Response+    GetEventResponse (..),+    newGetEventResponse,++    -- * Response Lenses+    getEventResponse_event,+    getEventResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetEvent' smart constructor.+data GetEvent = GetEvent'+  { -- | The ID of the event to retrieve.+    eventId :: Prelude.Text,+    -- | The event type of the event to retrieve.+    eventTypeName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetEvent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventId', 'getEvent_eventId' - The ID of the event to retrieve.+--+-- 'eventTypeName', 'getEvent_eventTypeName' - The event type of the event to retrieve.+newGetEvent ::+  -- | 'eventId'+  Prelude.Text ->+  -- | 'eventTypeName'+  Prelude.Text ->+  GetEvent+newGetEvent pEventId_ pEventTypeName_ =+  GetEvent'+    { eventId = pEventId_,+      eventTypeName = pEventTypeName_+    }++-- | The ID of the event to retrieve.+getEvent_eventId :: Lens.Lens' GetEvent Prelude.Text+getEvent_eventId = Lens.lens (\GetEvent' {eventId} -> eventId) (\s@GetEvent' {} a -> s {eventId = a} :: GetEvent)++-- | The event type of the event to retrieve.+getEvent_eventTypeName :: Lens.Lens' GetEvent Prelude.Text+getEvent_eventTypeName = Lens.lens (\GetEvent' {eventTypeName} -> eventTypeName) (\s@GetEvent' {} a -> s {eventTypeName = a} :: GetEvent)++instance Core.AWSRequest GetEvent where+  type AWSResponse GetEvent = GetEventResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetEventResponse'+            Prelude.<$> (x Data..?> "event")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetEvent where+  hashWithSalt _salt GetEvent' {..} =+    _salt+      `Prelude.hashWithSalt` eventId+      `Prelude.hashWithSalt` eventTypeName++instance Prelude.NFData GetEvent where+  rnf GetEvent' {..} =+    Prelude.rnf eventId+      `Prelude.seq` Prelude.rnf eventTypeName++instance Data.ToHeaders GetEvent where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.GetEvent" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetEvent where+  toJSON GetEvent' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("eventId" Data..= eventId),+            Prelude.Just+              ("eventTypeName" Data..= eventTypeName)+          ]+      )++instance Data.ToPath GetEvent where+  toPath = Prelude.const "/"++instance Data.ToQuery GetEvent where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetEventResponse' smart constructor.+data GetEventResponse = GetEventResponse'+  { -- | The details of the event.+    event :: Prelude.Maybe Event,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetEventResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'event', 'getEventResponse_event' - The details of the event.+--+-- 'httpStatus', 'getEventResponse_httpStatus' - The response's http status code.+newGetEventResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetEventResponse+newGetEventResponse pHttpStatus_ =+  GetEventResponse'+    { event = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The details of the event.+getEventResponse_event :: Lens.Lens' GetEventResponse (Prelude.Maybe Event)+getEventResponse_event = Lens.lens (\GetEventResponse' {event} -> event) (\s@GetEventResponse' {} a -> s {event = a} :: GetEventResponse)++-- | The response's http status code.+getEventResponse_httpStatus :: Lens.Lens' GetEventResponse Prelude.Int+getEventResponse_httpStatus = Lens.lens (\GetEventResponse' {httpStatus} -> httpStatus) (\s@GetEventResponse' {} a -> s {httpStatus = a} :: GetEventResponse)++instance Prelude.NFData GetEventResponse where+  rnf GetEventResponse' {..} =+    Prelude.rnf event+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/GetEventPrediction.hs view
@@ -0,0 +1,403 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.GetEventPrediction+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Evaluates an event against a detector version. If a version ID is not+-- provided, the detector’s (@ACTIVE@) version is used.+module Amazonka.FraudDetector.GetEventPrediction+  ( -- * Creating a Request+    GetEventPrediction (..),+    newGetEventPrediction,++    -- * Request Lenses+    getEventPrediction_detectorVersionId,+    getEventPrediction_externalModelEndpointDataBlobs,+    getEventPrediction_detectorId,+    getEventPrediction_eventId,+    getEventPrediction_eventTypeName,+    getEventPrediction_entities,+    getEventPrediction_eventTimestamp,+    getEventPrediction_eventVariables,++    -- * Destructuring the Response+    GetEventPredictionResponse (..),+    newGetEventPredictionResponse,++    -- * Response Lenses+    getEventPredictionResponse_externalModelOutputs,+    getEventPredictionResponse_modelScores,+    getEventPredictionResponse_ruleResults,+    getEventPredictionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetEventPrediction' smart constructor.+data GetEventPrediction = GetEventPrediction'+  { -- | The detector version ID.+    detectorVersionId :: Prelude.Maybe Prelude.Text,+    -- | The Amazon SageMaker model endpoint input data blobs.+    externalModelEndpointDataBlobs :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text ModelEndpointDataBlob)),+    -- | The detector ID.+    detectorId :: Prelude.Text,+    -- | The unique ID used to identify the event.+    eventId :: Prelude.Text,+    -- | The event type associated with the detector specified for the+    -- prediction.+    eventTypeName :: Prelude.Text,+    -- | The entity type (associated with the detector\'s event type) and+    -- specific entity ID representing who performed the event. If an entity id+    -- is not available, use \"UNKNOWN.\"+    entities :: [Data.Sensitive Entity],+    -- | Timestamp that defines when the event under evaluation occurred. The+    -- timestamp must be specified using ISO 8601 standard in UTC.+    eventTimestamp :: Prelude.Text,+    -- | Names of the event type\'s variables you defined in Amazon Fraud+    -- Detector to represent data elements and their corresponding values for+    -- the event you are sending for evaluation.+    --+    -- You must provide at least one eventVariable+    --+    -- To ensure most accurate fraud prediction and to simplify your data+    -- preparation, Amazon Fraud Detector will replace all missing variables or+    -- values as follows:+    --+    -- __For Amazon Fraud Detector trained models:__+    --+    -- If a null value is provided explicitly for a variable or if a variable+    -- is missing, model will replace the null value or the missing variable+    -- (no variable name in the eventVariables map) with calculated default+    -- mean\/medians for numeric variables and with special values for+    -- categorical variables.+    --+    -- __For imported SageMaker models:__+    --+    -- If a null value is provided explicitly for a variable, the model and+    -- rules will use “null” as the value. If a variable is not provided (no+    -- variable name in the eventVariables map), model and rules will use the+    -- default value that is provided for the variable.+    eventVariables :: Prelude.HashMap Prelude.Text (Data.Sensitive Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetEventPrediction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'detectorVersionId', 'getEventPrediction_detectorVersionId' - The detector version ID.+--+-- 'externalModelEndpointDataBlobs', 'getEventPrediction_externalModelEndpointDataBlobs' - The Amazon SageMaker model endpoint input data blobs.+--+-- 'detectorId', 'getEventPrediction_detectorId' - The detector ID.+--+-- 'eventId', 'getEventPrediction_eventId' - The unique ID used to identify the event.+--+-- 'eventTypeName', 'getEventPrediction_eventTypeName' - The event type associated with the detector specified for the+-- prediction.+--+-- 'entities', 'getEventPrediction_entities' - The entity type (associated with the detector\'s event type) and+-- specific entity ID representing who performed the event. If an entity id+-- is not available, use \"UNKNOWN.\"+--+-- 'eventTimestamp', 'getEventPrediction_eventTimestamp' - Timestamp that defines when the event under evaluation occurred. The+-- timestamp must be specified using ISO 8601 standard in UTC.+--+-- 'eventVariables', 'getEventPrediction_eventVariables' - Names of the event type\'s variables you defined in Amazon Fraud+-- Detector to represent data elements and their corresponding values for+-- the event you are sending for evaluation.+--+-- You must provide at least one eventVariable+--+-- To ensure most accurate fraud prediction and to simplify your data+-- preparation, Amazon Fraud Detector will replace all missing variables or+-- values as follows:+--+-- __For Amazon Fraud Detector trained models:__+--+-- If a null value is provided explicitly for a variable or if a variable+-- is missing, model will replace the null value or the missing variable+-- (no variable name in the eventVariables map) with calculated default+-- mean\/medians for numeric variables and with special values for+-- categorical variables.+--+-- __For imported SageMaker models:__+--+-- If a null value is provided explicitly for a variable, the model and+-- rules will use “null” as the value. If a variable is not provided (no+-- variable name in the eventVariables map), model and rules will use the+-- default value that is provided for the variable.+newGetEventPrediction ::+  -- | 'detectorId'+  Prelude.Text ->+  -- | 'eventId'+  Prelude.Text ->+  -- | 'eventTypeName'+  Prelude.Text ->+  -- | 'eventTimestamp'+  Prelude.Text ->+  GetEventPrediction+newGetEventPrediction+  pDetectorId_+  pEventId_+  pEventTypeName_+  pEventTimestamp_ =+    GetEventPrediction'+      { detectorVersionId =+          Prelude.Nothing,+        externalModelEndpointDataBlobs = Prelude.Nothing,+        detectorId = pDetectorId_,+        eventId = pEventId_,+        eventTypeName = pEventTypeName_,+        entities = Prelude.mempty,+        eventTimestamp = pEventTimestamp_,+        eventVariables = Prelude.mempty+      }++-- | The detector version ID.+getEventPrediction_detectorVersionId :: Lens.Lens' GetEventPrediction (Prelude.Maybe Prelude.Text)+getEventPrediction_detectorVersionId = Lens.lens (\GetEventPrediction' {detectorVersionId} -> detectorVersionId) (\s@GetEventPrediction' {} a -> s {detectorVersionId = a} :: GetEventPrediction)++-- | The Amazon SageMaker model endpoint input data blobs.+getEventPrediction_externalModelEndpointDataBlobs :: Lens.Lens' GetEventPrediction (Prelude.Maybe (Prelude.HashMap Prelude.Text ModelEndpointDataBlob))+getEventPrediction_externalModelEndpointDataBlobs = Lens.lens (\GetEventPrediction' {externalModelEndpointDataBlobs} -> externalModelEndpointDataBlobs) (\s@GetEventPrediction' {} a -> s {externalModelEndpointDataBlobs = a} :: GetEventPrediction) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | The detector ID.+getEventPrediction_detectorId :: Lens.Lens' GetEventPrediction Prelude.Text+getEventPrediction_detectorId = Lens.lens (\GetEventPrediction' {detectorId} -> detectorId) (\s@GetEventPrediction' {} a -> s {detectorId = a} :: GetEventPrediction)++-- | The unique ID used to identify the event.+getEventPrediction_eventId :: Lens.Lens' GetEventPrediction Prelude.Text+getEventPrediction_eventId = Lens.lens (\GetEventPrediction' {eventId} -> eventId) (\s@GetEventPrediction' {} a -> s {eventId = a} :: GetEventPrediction)++-- | The event type associated with the detector specified for the+-- prediction.+getEventPrediction_eventTypeName :: Lens.Lens' GetEventPrediction Prelude.Text+getEventPrediction_eventTypeName = Lens.lens (\GetEventPrediction' {eventTypeName} -> eventTypeName) (\s@GetEventPrediction' {} a -> s {eventTypeName = a} :: GetEventPrediction)++-- | The entity type (associated with the detector\'s event type) and+-- specific entity ID representing who performed the event. If an entity id+-- is not available, use \"UNKNOWN.\"+getEventPrediction_entities :: Lens.Lens' GetEventPrediction [Entity]+getEventPrediction_entities = Lens.lens (\GetEventPrediction' {entities} -> entities) (\s@GetEventPrediction' {} a -> s {entities = a} :: GetEventPrediction) Prelude.. Lens.coerced++-- | Timestamp that defines when the event under evaluation occurred. The+-- timestamp must be specified using ISO 8601 standard in UTC.+getEventPrediction_eventTimestamp :: Lens.Lens' GetEventPrediction Prelude.Text+getEventPrediction_eventTimestamp = Lens.lens (\GetEventPrediction' {eventTimestamp} -> eventTimestamp) (\s@GetEventPrediction' {} a -> s {eventTimestamp = a} :: GetEventPrediction)++-- | Names of the event type\'s variables you defined in Amazon Fraud+-- Detector to represent data elements and their corresponding values for+-- the event you are sending for evaluation.+--+-- You must provide at least one eventVariable+--+-- To ensure most accurate fraud prediction and to simplify your data+-- preparation, Amazon Fraud Detector will replace all missing variables or+-- values as follows:+--+-- __For Amazon Fraud Detector trained models:__+--+-- If a null value is provided explicitly for a variable or if a variable+-- is missing, model will replace the null value or the missing variable+-- (no variable name in the eventVariables map) with calculated default+-- mean\/medians for numeric variables and with special values for+-- categorical variables.+--+-- __For imported SageMaker models:__+--+-- If a null value is provided explicitly for a variable, the model and+-- rules will use “null” as the value. If a variable is not provided (no+-- variable name in the eventVariables map), model and rules will use the+-- default value that is provided for the variable.+getEventPrediction_eventVariables :: Lens.Lens' GetEventPrediction (Prelude.HashMap Prelude.Text Prelude.Text)+getEventPrediction_eventVariables = Lens.lens (\GetEventPrediction' {eventVariables} -> eventVariables) (\s@GetEventPrediction' {} a -> s {eventVariables = a} :: GetEventPrediction) Prelude.. Lens.coerced++instance Core.AWSRequest GetEventPrediction where+  type+    AWSResponse GetEventPrediction =+      GetEventPredictionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetEventPredictionResponse'+            Prelude.<$> ( x+                            Data..?> "externalModelOutputs"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "modelScores" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "ruleResults" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetEventPrediction where+  hashWithSalt _salt GetEventPrediction' {..} =+    _salt+      `Prelude.hashWithSalt` detectorVersionId+      `Prelude.hashWithSalt` externalModelEndpointDataBlobs+      `Prelude.hashWithSalt` detectorId+      `Prelude.hashWithSalt` eventId+      `Prelude.hashWithSalt` eventTypeName+      `Prelude.hashWithSalt` entities+      `Prelude.hashWithSalt` eventTimestamp+      `Prelude.hashWithSalt` eventVariables++instance Prelude.NFData GetEventPrediction where+  rnf GetEventPrediction' {..} =+    Prelude.rnf detectorVersionId+      `Prelude.seq` Prelude.rnf externalModelEndpointDataBlobs+      `Prelude.seq` Prelude.rnf detectorId+      `Prelude.seq` Prelude.rnf eventId+      `Prelude.seq` Prelude.rnf eventTypeName+      `Prelude.seq` Prelude.rnf entities+      `Prelude.seq` Prelude.rnf eventTimestamp+      `Prelude.seq` Prelude.rnf eventVariables++instance Data.ToHeaders GetEventPrediction where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.GetEventPrediction" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetEventPrediction where+  toJSON GetEventPrediction' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("detectorVersionId" Data..=)+              Prelude.<$> detectorVersionId,+            ("externalModelEndpointDataBlobs" Data..=)+              Prelude.<$> externalModelEndpointDataBlobs,+            Prelude.Just ("detectorId" Data..= detectorId),+            Prelude.Just ("eventId" Data..= eventId),+            Prelude.Just ("eventTypeName" Data..= eventTypeName),+            Prelude.Just ("entities" Data..= entities),+            Prelude.Just+              ("eventTimestamp" Data..= eventTimestamp),+            Prelude.Just+              ("eventVariables" Data..= eventVariables)+          ]+      )++instance Data.ToPath GetEventPrediction where+  toPath = Prelude.const "/"++instance Data.ToQuery GetEventPrediction where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetEventPredictionResponse' smart constructor.+data GetEventPredictionResponse = GetEventPredictionResponse'+  { -- | The model scores for Amazon SageMaker models.+    externalModelOutputs :: Prelude.Maybe [ExternalModelOutputs],+    -- | The model scores. Amazon Fraud Detector generates model scores between 0+    -- and 1000, where 0 is low fraud risk and 1000 is high fraud risk. Model+    -- scores are directly related to the false positive rate (FPR). For+    -- example, a score of 600 corresponds to an estimated 10% false positive+    -- rate whereas a score of 900 corresponds to an estimated 2% false+    -- positive rate.+    modelScores :: Prelude.Maybe [ModelScores],+    -- | The results from the rules.+    ruleResults :: Prelude.Maybe [RuleResult],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetEventPredictionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'externalModelOutputs', 'getEventPredictionResponse_externalModelOutputs' - The model scores for Amazon SageMaker models.+--+-- 'modelScores', 'getEventPredictionResponse_modelScores' - The model scores. Amazon Fraud Detector generates model scores between 0+-- and 1000, where 0 is low fraud risk and 1000 is high fraud risk. Model+-- scores are directly related to the false positive rate (FPR). For+-- example, a score of 600 corresponds to an estimated 10% false positive+-- rate whereas a score of 900 corresponds to an estimated 2% false+-- positive rate.+--+-- 'ruleResults', 'getEventPredictionResponse_ruleResults' - The results from the rules.+--+-- 'httpStatus', 'getEventPredictionResponse_httpStatus' - The response's http status code.+newGetEventPredictionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetEventPredictionResponse+newGetEventPredictionResponse pHttpStatus_ =+  GetEventPredictionResponse'+    { externalModelOutputs =+        Prelude.Nothing,+      modelScores = Prelude.Nothing,+      ruleResults = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The model scores for Amazon SageMaker models.+getEventPredictionResponse_externalModelOutputs :: Lens.Lens' GetEventPredictionResponse (Prelude.Maybe [ExternalModelOutputs])+getEventPredictionResponse_externalModelOutputs = Lens.lens (\GetEventPredictionResponse' {externalModelOutputs} -> externalModelOutputs) (\s@GetEventPredictionResponse' {} a -> s {externalModelOutputs = a} :: GetEventPredictionResponse) Prelude.. Lens.mapping Lens.coerced++-- | The model scores. Amazon Fraud Detector generates model scores between 0+-- and 1000, where 0 is low fraud risk and 1000 is high fraud risk. Model+-- scores are directly related to the false positive rate (FPR). For+-- example, a score of 600 corresponds to an estimated 10% false positive+-- rate whereas a score of 900 corresponds to an estimated 2% false+-- positive rate.+getEventPredictionResponse_modelScores :: Lens.Lens' GetEventPredictionResponse (Prelude.Maybe [ModelScores])+getEventPredictionResponse_modelScores = Lens.lens (\GetEventPredictionResponse' {modelScores} -> modelScores) (\s@GetEventPredictionResponse' {} a -> s {modelScores = a} :: GetEventPredictionResponse) Prelude.. Lens.mapping Lens.coerced++-- | The results from the rules.+getEventPredictionResponse_ruleResults :: Lens.Lens' GetEventPredictionResponse (Prelude.Maybe [RuleResult])+getEventPredictionResponse_ruleResults = Lens.lens (\GetEventPredictionResponse' {ruleResults} -> ruleResults) (\s@GetEventPredictionResponse' {} a -> s {ruleResults = a} :: GetEventPredictionResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getEventPredictionResponse_httpStatus :: Lens.Lens' GetEventPredictionResponse Prelude.Int+getEventPredictionResponse_httpStatus = Lens.lens (\GetEventPredictionResponse' {httpStatus} -> httpStatus) (\s@GetEventPredictionResponse' {} a -> s {httpStatus = a} :: GetEventPredictionResponse)++instance Prelude.NFData GetEventPredictionResponse where+  rnf GetEventPredictionResponse' {..} =+    Prelude.rnf externalModelOutputs+      `Prelude.seq` Prelude.rnf modelScores+      `Prelude.seq` Prelude.rnf ruleResults+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/GetEventPredictionMetadata.hs view
@@ -0,0 +1,454 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.GetEventPredictionMetadata+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets details of the past fraud predictions for the specified event ID,+-- event type, detector ID, and detector version ID that was generated in+-- the specified time period.+module Amazonka.FraudDetector.GetEventPredictionMetadata+  ( -- * Creating a Request+    GetEventPredictionMetadata (..),+    newGetEventPredictionMetadata,++    -- * Request Lenses+    getEventPredictionMetadata_eventId,+    getEventPredictionMetadata_eventTypeName,+    getEventPredictionMetadata_detectorId,+    getEventPredictionMetadata_detectorVersionId,+    getEventPredictionMetadata_predictionTimestamp,++    -- * Destructuring the Response+    GetEventPredictionMetadataResponse (..),+    newGetEventPredictionMetadataResponse,++    -- * Response Lenses+    getEventPredictionMetadataResponse_detectorId,+    getEventPredictionMetadataResponse_detectorVersionId,+    getEventPredictionMetadataResponse_detectorVersionStatus,+    getEventPredictionMetadataResponse_entityId,+    getEventPredictionMetadataResponse_entityType,+    getEventPredictionMetadataResponse_evaluatedExternalModels,+    getEventPredictionMetadataResponse_evaluatedModelVersions,+    getEventPredictionMetadataResponse_eventId,+    getEventPredictionMetadataResponse_eventTimestamp,+    getEventPredictionMetadataResponse_eventTypeName,+    getEventPredictionMetadataResponse_eventVariables,+    getEventPredictionMetadataResponse_outcomes,+    getEventPredictionMetadataResponse_predictionTimestamp,+    getEventPredictionMetadataResponse_ruleExecutionMode,+    getEventPredictionMetadataResponse_rules,+    getEventPredictionMetadataResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetEventPredictionMetadata' smart constructor.+data GetEventPredictionMetadata = GetEventPredictionMetadata'+  { -- | The event ID.+    eventId :: Prelude.Text,+    -- | The event type associated with the detector specified for the+    -- prediction.+    eventTypeName :: Prelude.Text,+    -- | The detector ID.+    detectorId :: Prelude.Text,+    -- | The detector version ID.+    detectorVersionId :: Prelude.Text,+    -- | The timestamp that defines when the prediction was generated. The+    -- timestamp must be specified using ISO 8601 standard in UTC.+    --+    -- We recommend calling+    -- <https://docs.aws.amazon.com/frauddetector/latest/api/API_ListEventPredictions.html ListEventPredictions>+    -- first, and using the @predictionTimestamp@ value in the response to+    -- provide an accurate prediction timestamp value.+    predictionTimestamp :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetEventPredictionMetadata' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventId', 'getEventPredictionMetadata_eventId' - The event ID.+--+-- 'eventTypeName', 'getEventPredictionMetadata_eventTypeName' - The event type associated with the detector specified for the+-- prediction.+--+-- 'detectorId', 'getEventPredictionMetadata_detectorId' - The detector ID.+--+-- 'detectorVersionId', 'getEventPredictionMetadata_detectorVersionId' - The detector version ID.+--+-- 'predictionTimestamp', 'getEventPredictionMetadata_predictionTimestamp' - The timestamp that defines when the prediction was generated. The+-- timestamp must be specified using ISO 8601 standard in UTC.+--+-- We recommend calling+-- <https://docs.aws.amazon.com/frauddetector/latest/api/API_ListEventPredictions.html ListEventPredictions>+-- first, and using the @predictionTimestamp@ value in the response to+-- provide an accurate prediction timestamp value.+newGetEventPredictionMetadata ::+  -- | 'eventId'+  Prelude.Text ->+  -- | 'eventTypeName'+  Prelude.Text ->+  -- | 'detectorId'+  Prelude.Text ->+  -- | 'detectorVersionId'+  Prelude.Text ->+  -- | 'predictionTimestamp'+  Prelude.Text ->+  GetEventPredictionMetadata+newGetEventPredictionMetadata+  pEventId_+  pEventTypeName_+  pDetectorId_+  pDetectorVersionId_+  pPredictionTimestamp_ =+    GetEventPredictionMetadata'+      { eventId = pEventId_,+        eventTypeName = pEventTypeName_,+        detectorId = pDetectorId_,+        detectorVersionId = pDetectorVersionId_,+        predictionTimestamp = pPredictionTimestamp_+      }++-- | The event ID.+getEventPredictionMetadata_eventId :: Lens.Lens' GetEventPredictionMetadata Prelude.Text+getEventPredictionMetadata_eventId = Lens.lens (\GetEventPredictionMetadata' {eventId} -> eventId) (\s@GetEventPredictionMetadata' {} a -> s {eventId = a} :: GetEventPredictionMetadata)++-- | The event type associated with the detector specified for the+-- prediction.+getEventPredictionMetadata_eventTypeName :: Lens.Lens' GetEventPredictionMetadata Prelude.Text+getEventPredictionMetadata_eventTypeName = Lens.lens (\GetEventPredictionMetadata' {eventTypeName} -> eventTypeName) (\s@GetEventPredictionMetadata' {} a -> s {eventTypeName = a} :: GetEventPredictionMetadata)++-- | The detector ID.+getEventPredictionMetadata_detectorId :: Lens.Lens' GetEventPredictionMetadata Prelude.Text+getEventPredictionMetadata_detectorId = Lens.lens (\GetEventPredictionMetadata' {detectorId} -> detectorId) (\s@GetEventPredictionMetadata' {} a -> s {detectorId = a} :: GetEventPredictionMetadata)++-- | The detector version ID.+getEventPredictionMetadata_detectorVersionId :: Lens.Lens' GetEventPredictionMetadata Prelude.Text+getEventPredictionMetadata_detectorVersionId = Lens.lens (\GetEventPredictionMetadata' {detectorVersionId} -> detectorVersionId) (\s@GetEventPredictionMetadata' {} a -> s {detectorVersionId = a} :: GetEventPredictionMetadata)++-- | The timestamp that defines when the prediction was generated. The+-- timestamp must be specified using ISO 8601 standard in UTC.+--+-- We recommend calling+-- <https://docs.aws.amazon.com/frauddetector/latest/api/API_ListEventPredictions.html ListEventPredictions>+-- first, and using the @predictionTimestamp@ value in the response to+-- provide an accurate prediction timestamp value.+getEventPredictionMetadata_predictionTimestamp :: Lens.Lens' GetEventPredictionMetadata Prelude.Text+getEventPredictionMetadata_predictionTimestamp = Lens.lens (\GetEventPredictionMetadata' {predictionTimestamp} -> predictionTimestamp) (\s@GetEventPredictionMetadata' {} a -> s {predictionTimestamp = a} :: GetEventPredictionMetadata)++instance Core.AWSRequest GetEventPredictionMetadata where+  type+    AWSResponse GetEventPredictionMetadata =+      GetEventPredictionMetadataResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetEventPredictionMetadataResponse'+            Prelude.<$> (x Data..?> "detectorId")+            Prelude.<*> (x Data..?> "detectorVersionId")+            Prelude.<*> (x Data..?> "detectorVersionStatus")+            Prelude.<*> (x Data..?> "entityId")+            Prelude.<*> (x Data..?> "entityType")+            Prelude.<*> ( x+                            Data..?> "evaluatedExternalModels"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..?> "evaluatedModelVersions"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "eventId")+            Prelude.<*> (x Data..?> "eventTimestamp")+            Prelude.<*> (x Data..?> "eventTypeName")+            Prelude.<*> (x Data..?> "eventVariables" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "outcomes" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "predictionTimestamp")+            Prelude.<*> (x Data..?> "ruleExecutionMode")+            Prelude.<*> (x Data..?> "rules" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetEventPredictionMetadata where+  hashWithSalt _salt GetEventPredictionMetadata' {..} =+    _salt+      `Prelude.hashWithSalt` eventId+      `Prelude.hashWithSalt` eventTypeName+      `Prelude.hashWithSalt` detectorId+      `Prelude.hashWithSalt` detectorVersionId+      `Prelude.hashWithSalt` predictionTimestamp++instance Prelude.NFData GetEventPredictionMetadata where+  rnf GetEventPredictionMetadata' {..} =+    Prelude.rnf eventId+      `Prelude.seq` Prelude.rnf eventTypeName+      `Prelude.seq` Prelude.rnf detectorId+      `Prelude.seq` Prelude.rnf detectorVersionId+      `Prelude.seq` Prelude.rnf predictionTimestamp++instance Data.ToHeaders GetEventPredictionMetadata where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.GetEventPredictionMetadata" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetEventPredictionMetadata where+  toJSON GetEventPredictionMetadata' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("eventId" Data..= eventId),+            Prelude.Just ("eventTypeName" Data..= eventTypeName),+            Prelude.Just ("detectorId" Data..= detectorId),+            Prelude.Just+              ("detectorVersionId" Data..= detectorVersionId),+            Prelude.Just+              ("predictionTimestamp" Data..= predictionTimestamp)+          ]+      )++instance Data.ToPath GetEventPredictionMetadata where+  toPath = Prelude.const "/"++instance Data.ToQuery GetEventPredictionMetadata where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetEventPredictionMetadataResponse' smart constructor.+data GetEventPredictionMetadataResponse = GetEventPredictionMetadataResponse'+  { -- | The detector ID.+    detectorId :: Prelude.Maybe Prelude.Text,+    -- | The detector version ID.+    detectorVersionId :: Prelude.Maybe Prelude.Text,+    -- | The status of the detector version.+    detectorVersionStatus :: Prelude.Maybe Prelude.Text,+    -- | The entity ID.+    entityId :: Prelude.Maybe Prelude.Text,+    -- | The entity type.+    entityType :: Prelude.Maybe Prelude.Text,+    -- | External (Amazon SageMaker) models that were evaluated for generating+    -- predictions.+    evaluatedExternalModels :: Prelude.Maybe [EvaluatedExternalModel],+    -- | Model versions that were evaluated for generating predictions.+    evaluatedModelVersions :: Prelude.Maybe [EvaluatedModelVersion],+    -- | The event ID.+    eventId :: Prelude.Maybe Prelude.Text,+    -- | The timestamp for when the prediction was generated for the associated+    -- event ID.+    eventTimestamp :: Prelude.Maybe Prelude.Text,+    -- | The event type associated with the detector specified for this+    -- prediction.+    eventTypeName :: Prelude.Maybe Prelude.Text,+    -- | A list of event variables that influenced the prediction scores.+    eventVariables :: Prelude.Maybe [EventVariableSummary],+    -- | The outcomes of the matched rule, based on the rule execution mode.+    outcomes :: Prelude.Maybe [Prelude.Text],+    -- | The timestamp that defines when the prediction was generated.+    predictionTimestamp :: Prelude.Maybe Prelude.Text,+    -- | The execution mode of the rule used for evaluating variable values.+    ruleExecutionMode :: Prelude.Maybe RuleExecutionMode,+    -- | List of rules associated with the detector version that were used for+    -- evaluating variable values.+    rules :: Prelude.Maybe [EvaluatedRule],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetEventPredictionMetadataResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'detectorId', 'getEventPredictionMetadataResponse_detectorId' - The detector ID.+--+-- 'detectorVersionId', 'getEventPredictionMetadataResponse_detectorVersionId' - The detector version ID.+--+-- 'detectorVersionStatus', 'getEventPredictionMetadataResponse_detectorVersionStatus' - The status of the detector version.+--+-- 'entityId', 'getEventPredictionMetadataResponse_entityId' - The entity ID.+--+-- 'entityType', 'getEventPredictionMetadataResponse_entityType' - The entity type.+--+-- 'evaluatedExternalModels', 'getEventPredictionMetadataResponse_evaluatedExternalModels' - External (Amazon SageMaker) models that were evaluated for generating+-- predictions.+--+-- 'evaluatedModelVersions', 'getEventPredictionMetadataResponse_evaluatedModelVersions' - Model versions that were evaluated for generating predictions.+--+-- 'eventId', 'getEventPredictionMetadataResponse_eventId' - The event ID.+--+-- 'eventTimestamp', 'getEventPredictionMetadataResponse_eventTimestamp' - The timestamp for when the prediction was generated for the associated+-- event ID.+--+-- 'eventTypeName', 'getEventPredictionMetadataResponse_eventTypeName' - The event type associated with the detector specified for this+-- prediction.+--+-- 'eventVariables', 'getEventPredictionMetadataResponse_eventVariables' - A list of event variables that influenced the prediction scores.+--+-- 'outcomes', 'getEventPredictionMetadataResponse_outcomes' - The outcomes of the matched rule, based on the rule execution mode.+--+-- 'predictionTimestamp', 'getEventPredictionMetadataResponse_predictionTimestamp' - The timestamp that defines when the prediction was generated.+--+-- 'ruleExecutionMode', 'getEventPredictionMetadataResponse_ruleExecutionMode' - The execution mode of the rule used for evaluating variable values.+--+-- 'rules', 'getEventPredictionMetadataResponse_rules' - List of rules associated with the detector version that were used for+-- evaluating variable values.+--+-- 'httpStatus', 'getEventPredictionMetadataResponse_httpStatus' - The response's http status code.+newGetEventPredictionMetadataResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetEventPredictionMetadataResponse+newGetEventPredictionMetadataResponse pHttpStatus_ =+  GetEventPredictionMetadataResponse'+    { detectorId =+        Prelude.Nothing,+      detectorVersionId = Prelude.Nothing,+      detectorVersionStatus = Prelude.Nothing,+      entityId = Prelude.Nothing,+      entityType = Prelude.Nothing,+      evaluatedExternalModels =+        Prelude.Nothing,+      evaluatedModelVersions =+        Prelude.Nothing,+      eventId = Prelude.Nothing,+      eventTimestamp = Prelude.Nothing,+      eventTypeName = Prelude.Nothing,+      eventVariables = Prelude.Nothing,+      outcomes = Prelude.Nothing,+      predictionTimestamp = Prelude.Nothing,+      ruleExecutionMode = Prelude.Nothing,+      rules = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The detector ID.+getEventPredictionMetadataResponse_detectorId :: Lens.Lens' GetEventPredictionMetadataResponse (Prelude.Maybe Prelude.Text)+getEventPredictionMetadataResponse_detectorId = Lens.lens (\GetEventPredictionMetadataResponse' {detectorId} -> detectorId) (\s@GetEventPredictionMetadataResponse' {} a -> s {detectorId = a} :: GetEventPredictionMetadataResponse)++-- | The detector version ID.+getEventPredictionMetadataResponse_detectorVersionId :: Lens.Lens' GetEventPredictionMetadataResponse (Prelude.Maybe Prelude.Text)+getEventPredictionMetadataResponse_detectorVersionId = Lens.lens (\GetEventPredictionMetadataResponse' {detectorVersionId} -> detectorVersionId) (\s@GetEventPredictionMetadataResponse' {} a -> s {detectorVersionId = a} :: GetEventPredictionMetadataResponse)++-- | The status of the detector version.+getEventPredictionMetadataResponse_detectorVersionStatus :: Lens.Lens' GetEventPredictionMetadataResponse (Prelude.Maybe Prelude.Text)+getEventPredictionMetadataResponse_detectorVersionStatus = Lens.lens (\GetEventPredictionMetadataResponse' {detectorVersionStatus} -> detectorVersionStatus) (\s@GetEventPredictionMetadataResponse' {} a -> s {detectorVersionStatus = a} :: GetEventPredictionMetadataResponse)++-- | The entity ID.+getEventPredictionMetadataResponse_entityId :: Lens.Lens' GetEventPredictionMetadataResponse (Prelude.Maybe Prelude.Text)+getEventPredictionMetadataResponse_entityId = Lens.lens (\GetEventPredictionMetadataResponse' {entityId} -> entityId) (\s@GetEventPredictionMetadataResponse' {} a -> s {entityId = a} :: GetEventPredictionMetadataResponse)++-- | The entity type.+getEventPredictionMetadataResponse_entityType :: Lens.Lens' GetEventPredictionMetadataResponse (Prelude.Maybe Prelude.Text)+getEventPredictionMetadataResponse_entityType = Lens.lens (\GetEventPredictionMetadataResponse' {entityType} -> entityType) (\s@GetEventPredictionMetadataResponse' {} a -> s {entityType = a} :: GetEventPredictionMetadataResponse)++-- | External (Amazon SageMaker) models that were evaluated for generating+-- predictions.+getEventPredictionMetadataResponse_evaluatedExternalModels :: Lens.Lens' GetEventPredictionMetadataResponse (Prelude.Maybe [EvaluatedExternalModel])+getEventPredictionMetadataResponse_evaluatedExternalModels = Lens.lens (\GetEventPredictionMetadataResponse' {evaluatedExternalModels} -> evaluatedExternalModels) (\s@GetEventPredictionMetadataResponse' {} a -> s {evaluatedExternalModels = a} :: GetEventPredictionMetadataResponse) Prelude.. Lens.mapping Lens.coerced++-- | Model versions that were evaluated for generating predictions.+getEventPredictionMetadataResponse_evaluatedModelVersions :: Lens.Lens' GetEventPredictionMetadataResponse (Prelude.Maybe [EvaluatedModelVersion])+getEventPredictionMetadataResponse_evaluatedModelVersions = Lens.lens (\GetEventPredictionMetadataResponse' {evaluatedModelVersions} -> evaluatedModelVersions) (\s@GetEventPredictionMetadataResponse' {} a -> s {evaluatedModelVersions = a} :: GetEventPredictionMetadataResponse) Prelude.. Lens.mapping Lens.coerced++-- | The event ID.+getEventPredictionMetadataResponse_eventId :: Lens.Lens' GetEventPredictionMetadataResponse (Prelude.Maybe Prelude.Text)+getEventPredictionMetadataResponse_eventId = Lens.lens (\GetEventPredictionMetadataResponse' {eventId} -> eventId) (\s@GetEventPredictionMetadataResponse' {} a -> s {eventId = a} :: GetEventPredictionMetadataResponse)++-- | The timestamp for when the prediction was generated for the associated+-- event ID.+getEventPredictionMetadataResponse_eventTimestamp :: Lens.Lens' GetEventPredictionMetadataResponse (Prelude.Maybe Prelude.Text)+getEventPredictionMetadataResponse_eventTimestamp = Lens.lens (\GetEventPredictionMetadataResponse' {eventTimestamp} -> eventTimestamp) (\s@GetEventPredictionMetadataResponse' {} a -> s {eventTimestamp = a} :: GetEventPredictionMetadataResponse)++-- | The event type associated with the detector specified for this+-- prediction.+getEventPredictionMetadataResponse_eventTypeName :: Lens.Lens' GetEventPredictionMetadataResponse (Prelude.Maybe Prelude.Text)+getEventPredictionMetadataResponse_eventTypeName = Lens.lens (\GetEventPredictionMetadataResponse' {eventTypeName} -> eventTypeName) (\s@GetEventPredictionMetadataResponse' {} a -> s {eventTypeName = a} :: GetEventPredictionMetadataResponse)++-- | A list of event variables that influenced the prediction scores.+getEventPredictionMetadataResponse_eventVariables :: Lens.Lens' GetEventPredictionMetadataResponse (Prelude.Maybe [EventVariableSummary])+getEventPredictionMetadataResponse_eventVariables = Lens.lens (\GetEventPredictionMetadataResponse' {eventVariables} -> eventVariables) (\s@GetEventPredictionMetadataResponse' {} a -> s {eventVariables = a} :: GetEventPredictionMetadataResponse) Prelude.. Lens.mapping Lens.coerced++-- | The outcomes of the matched rule, based on the rule execution mode.+getEventPredictionMetadataResponse_outcomes :: Lens.Lens' GetEventPredictionMetadataResponse (Prelude.Maybe [Prelude.Text])+getEventPredictionMetadataResponse_outcomes = Lens.lens (\GetEventPredictionMetadataResponse' {outcomes} -> outcomes) (\s@GetEventPredictionMetadataResponse' {} a -> s {outcomes = a} :: GetEventPredictionMetadataResponse) Prelude.. Lens.mapping Lens.coerced++-- | The timestamp that defines when the prediction was generated.+getEventPredictionMetadataResponse_predictionTimestamp :: Lens.Lens' GetEventPredictionMetadataResponse (Prelude.Maybe Prelude.Text)+getEventPredictionMetadataResponse_predictionTimestamp = Lens.lens (\GetEventPredictionMetadataResponse' {predictionTimestamp} -> predictionTimestamp) (\s@GetEventPredictionMetadataResponse' {} a -> s {predictionTimestamp = a} :: GetEventPredictionMetadataResponse)++-- | The execution mode of the rule used for evaluating variable values.+getEventPredictionMetadataResponse_ruleExecutionMode :: Lens.Lens' GetEventPredictionMetadataResponse (Prelude.Maybe RuleExecutionMode)+getEventPredictionMetadataResponse_ruleExecutionMode = Lens.lens (\GetEventPredictionMetadataResponse' {ruleExecutionMode} -> ruleExecutionMode) (\s@GetEventPredictionMetadataResponse' {} a -> s {ruleExecutionMode = a} :: GetEventPredictionMetadataResponse)++-- | List of rules associated with the detector version that were used for+-- evaluating variable values.+getEventPredictionMetadataResponse_rules :: Lens.Lens' GetEventPredictionMetadataResponse (Prelude.Maybe [EvaluatedRule])+getEventPredictionMetadataResponse_rules = Lens.lens (\GetEventPredictionMetadataResponse' {rules} -> rules) (\s@GetEventPredictionMetadataResponse' {} a -> s {rules = a} :: GetEventPredictionMetadataResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getEventPredictionMetadataResponse_httpStatus :: Lens.Lens' GetEventPredictionMetadataResponse Prelude.Int+getEventPredictionMetadataResponse_httpStatus = Lens.lens (\GetEventPredictionMetadataResponse' {httpStatus} -> httpStatus) (\s@GetEventPredictionMetadataResponse' {} a -> s {httpStatus = a} :: GetEventPredictionMetadataResponse)++instance+  Prelude.NFData+    GetEventPredictionMetadataResponse+  where+  rnf GetEventPredictionMetadataResponse' {..} =+    Prelude.rnf detectorId+      `Prelude.seq` Prelude.rnf detectorVersionId+      `Prelude.seq` Prelude.rnf detectorVersionStatus+      `Prelude.seq` Prelude.rnf entityId+      `Prelude.seq` Prelude.rnf entityType+      `Prelude.seq` Prelude.rnf evaluatedExternalModels+      `Prelude.seq` Prelude.rnf evaluatedModelVersions+      `Prelude.seq` Prelude.rnf eventId+      `Prelude.seq` Prelude.rnf eventTimestamp+      `Prelude.seq` Prelude.rnf eventTypeName+      `Prelude.seq` Prelude.rnf eventVariables+      `Prelude.seq` Prelude.rnf outcomes+      `Prelude.seq` Prelude.rnf predictionTimestamp+      `Prelude.seq` Prelude.rnf ruleExecutionMode+      `Prelude.seq` Prelude.rnf rules+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/GetEventTypes.hs view
@@ -0,0 +1,215 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.GetEventTypes+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets all event types or a specific event type if name is provided. This+-- is a paginated API. If you provide a null @maxResults@, this action+-- retrieves a maximum of 10 records per page. If you provide a+-- @maxResults@, the value must be between 5 and 10. To get the next page+-- results, provide the pagination token from the @GetEventTypesResponse@+-- as part of your request. A null pagination token fetches the records+-- from the beginning.+module Amazonka.FraudDetector.GetEventTypes+  ( -- * Creating a Request+    GetEventTypes (..),+    newGetEventTypes,++    -- * Request Lenses+    getEventTypes_maxResults,+    getEventTypes_name,+    getEventTypes_nextToken,++    -- * Destructuring the Response+    GetEventTypesResponse (..),+    newGetEventTypesResponse,++    -- * Response Lenses+    getEventTypesResponse_eventTypes,+    getEventTypesResponse_nextToken,+    getEventTypesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetEventTypes' smart constructor.+data GetEventTypes = GetEventTypes'+  { -- | The maximum number of objects to return for the request.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The name.+    name :: Prelude.Maybe Prelude.Text,+    -- | The next token for the subsequent request.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetEventTypes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getEventTypes_maxResults' - The maximum number of objects to return for the request.+--+-- 'name', 'getEventTypes_name' - The name.+--+-- 'nextToken', 'getEventTypes_nextToken' - The next token for the subsequent request.+newGetEventTypes ::+  GetEventTypes+newGetEventTypes =+  GetEventTypes'+    { maxResults = Prelude.Nothing,+      name = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of objects to return for the request.+getEventTypes_maxResults :: Lens.Lens' GetEventTypes (Prelude.Maybe Prelude.Natural)+getEventTypes_maxResults = Lens.lens (\GetEventTypes' {maxResults} -> maxResults) (\s@GetEventTypes' {} a -> s {maxResults = a} :: GetEventTypes)++-- | The name.+getEventTypes_name :: Lens.Lens' GetEventTypes (Prelude.Maybe Prelude.Text)+getEventTypes_name = Lens.lens (\GetEventTypes' {name} -> name) (\s@GetEventTypes' {} a -> s {name = a} :: GetEventTypes)++-- | The next token for the subsequent request.+getEventTypes_nextToken :: Lens.Lens' GetEventTypes (Prelude.Maybe Prelude.Text)+getEventTypes_nextToken = Lens.lens (\GetEventTypes' {nextToken} -> nextToken) (\s@GetEventTypes' {} a -> s {nextToken = a} :: GetEventTypes)++instance Core.AWSRequest GetEventTypes where+  type+    AWSResponse GetEventTypes =+      GetEventTypesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetEventTypesResponse'+            Prelude.<$> (x Data..?> "eventTypes" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetEventTypes where+  hashWithSalt _salt GetEventTypes' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData GetEventTypes where+  rnf GetEventTypes' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders GetEventTypes where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.GetEventTypes" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetEventTypes where+  toJSON GetEventTypes' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("name" Data..=) Prelude.<$> name,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath GetEventTypes where+  toPath = Prelude.const "/"++instance Data.ToQuery GetEventTypes where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetEventTypesResponse' smart constructor.+data GetEventTypesResponse = GetEventTypesResponse'+  { -- | An array of event types.+    eventTypes :: Prelude.Maybe [Data.Sensitive EventType],+    -- | The next page token.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetEventTypesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventTypes', 'getEventTypesResponse_eventTypes' - An array of event types.+--+-- 'nextToken', 'getEventTypesResponse_nextToken' - The next page token.+--+-- 'httpStatus', 'getEventTypesResponse_httpStatus' - The response's http status code.+newGetEventTypesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetEventTypesResponse+newGetEventTypesResponse pHttpStatus_ =+  GetEventTypesResponse'+    { eventTypes =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array of event types.+getEventTypesResponse_eventTypes :: Lens.Lens' GetEventTypesResponse (Prelude.Maybe [EventType])+getEventTypesResponse_eventTypes = Lens.lens (\GetEventTypesResponse' {eventTypes} -> eventTypes) (\s@GetEventTypesResponse' {} a -> s {eventTypes = a} :: GetEventTypesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The next page token.+getEventTypesResponse_nextToken :: Lens.Lens' GetEventTypesResponse (Prelude.Maybe Prelude.Text)+getEventTypesResponse_nextToken = Lens.lens (\GetEventTypesResponse' {nextToken} -> nextToken) (\s@GetEventTypesResponse' {} a -> s {nextToken = a} :: GetEventTypesResponse)++-- | The response's http status code.+getEventTypesResponse_httpStatus :: Lens.Lens' GetEventTypesResponse Prelude.Int+getEventTypesResponse_httpStatus = Lens.lens (\GetEventTypesResponse' {httpStatus} -> httpStatus) (\s@GetEventTypesResponse' {} a -> s {httpStatus = a} :: GetEventTypesResponse)++instance Prelude.NFData GetEventTypesResponse where+  rnf GetEventTypesResponse' {..} =+    Prelude.rnf eventTypes+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/GetExternalModels.hs view
@@ -0,0 +1,215 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.GetExternalModels+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the details for one or more Amazon SageMaker models that have been+-- imported into the service. This is a paginated API. If you provide a+-- null @maxResults@, this actions retrieves a maximum of 10 records per+-- page. If you provide a @maxResults@, the value must be between 5 and 10.+-- To get the next page results, provide the pagination token from the+-- @GetExternalModelsResult@ as part of your request. A null pagination+-- token fetches the records from the beginning.+module Amazonka.FraudDetector.GetExternalModels+  ( -- * Creating a Request+    GetExternalModels (..),+    newGetExternalModels,++    -- * Request Lenses+    getExternalModels_maxResults,+    getExternalModels_modelEndpoint,+    getExternalModels_nextToken,++    -- * Destructuring the Response+    GetExternalModelsResponse (..),+    newGetExternalModelsResponse,++    -- * Response Lenses+    getExternalModelsResponse_externalModels,+    getExternalModelsResponse_nextToken,+    getExternalModelsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetExternalModels' smart constructor.+data GetExternalModels = GetExternalModels'+  { -- | The maximum number of objects to return for the request.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The Amazon SageMaker model endpoint.+    modelEndpoint :: Prelude.Maybe Prelude.Text,+    -- | The next page token for the request.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetExternalModels' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getExternalModels_maxResults' - The maximum number of objects to return for the request.+--+-- 'modelEndpoint', 'getExternalModels_modelEndpoint' - The Amazon SageMaker model endpoint.+--+-- 'nextToken', 'getExternalModels_nextToken' - The next page token for the request.+newGetExternalModels ::+  GetExternalModels+newGetExternalModels =+  GetExternalModels'+    { maxResults = Prelude.Nothing,+      modelEndpoint = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of objects to return for the request.+getExternalModels_maxResults :: Lens.Lens' GetExternalModels (Prelude.Maybe Prelude.Natural)+getExternalModels_maxResults = Lens.lens (\GetExternalModels' {maxResults} -> maxResults) (\s@GetExternalModels' {} a -> s {maxResults = a} :: GetExternalModels)++-- | The Amazon SageMaker model endpoint.+getExternalModels_modelEndpoint :: Lens.Lens' GetExternalModels (Prelude.Maybe Prelude.Text)+getExternalModels_modelEndpoint = Lens.lens (\GetExternalModels' {modelEndpoint} -> modelEndpoint) (\s@GetExternalModels' {} a -> s {modelEndpoint = a} :: GetExternalModels)++-- | The next page token for the request.+getExternalModels_nextToken :: Lens.Lens' GetExternalModels (Prelude.Maybe Prelude.Text)+getExternalModels_nextToken = Lens.lens (\GetExternalModels' {nextToken} -> nextToken) (\s@GetExternalModels' {} a -> s {nextToken = a} :: GetExternalModels)++instance Core.AWSRequest GetExternalModels where+  type+    AWSResponse GetExternalModels =+      GetExternalModelsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetExternalModelsResponse'+            Prelude.<$> (x Data..?> "externalModels" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetExternalModels where+  hashWithSalt _salt GetExternalModels' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` modelEndpoint+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData GetExternalModels where+  rnf GetExternalModels' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf modelEndpoint+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders GetExternalModels where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.GetExternalModels" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetExternalModels where+  toJSON GetExternalModels' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("modelEndpoint" Data..=) Prelude.<$> modelEndpoint,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath GetExternalModels where+  toPath = Prelude.const "/"++instance Data.ToQuery GetExternalModels where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetExternalModelsResponse' smart constructor.+data GetExternalModelsResponse = GetExternalModelsResponse'+  { -- | Gets the Amazon SageMaker models.+    externalModels :: Prelude.Maybe [ExternalModel],+    -- | The next page token to be used in subsequent requests.+    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 'GetExternalModelsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'externalModels', 'getExternalModelsResponse_externalModels' - Gets the Amazon SageMaker models.+--+-- 'nextToken', 'getExternalModelsResponse_nextToken' - The next page token to be used in subsequent requests.+--+-- 'httpStatus', 'getExternalModelsResponse_httpStatus' - The response's http status code.+newGetExternalModelsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetExternalModelsResponse+newGetExternalModelsResponse pHttpStatus_ =+  GetExternalModelsResponse'+    { externalModels =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Gets the Amazon SageMaker models.+getExternalModelsResponse_externalModels :: Lens.Lens' GetExternalModelsResponse (Prelude.Maybe [ExternalModel])+getExternalModelsResponse_externalModels = Lens.lens (\GetExternalModelsResponse' {externalModels} -> externalModels) (\s@GetExternalModelsResponse' {} a -> s {externalModels = a} :: GetExternalModelsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The next page token to be used in subsequent requests.+getExternalModelsResponse_nextToken :: Lens.Lens' GetExternalModelsResponse (Prelude.Maybe Prelude.Text)+getExternalModelsResponse_nextToken = Lens.lens (\GetExternalModelsResponse' {nextToken} -> nextToken) (\s@GetExternalModelsResponse' {} a -> s {nextToken = a} :: GetExternalModelsResponse)++-- | The response's http status code.+getExternalModelsResponse_httpStatus :: Lens.Lens' GetExternalModelsResponse Prelude.Int+getExternalModelsResponse_httpStatus = Lens.lens (\GetExternalModelsResponse' {httpStatus} -> httpStatus) (\s@GetExternalModelsResponse' {} a -> s {httpStatus = a} :: GetExternalModelsResponse)++instance Prelude.NFData GetExternalModelsResponse where+  rnf GetExternalModelsResponse' {..} =+    Prelude.rnf externalModels+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/GetKMSEncryptionKey.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.FraudDetector.GetKMSEncryptionKey+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the encryption key if a KMS key has been specified to be used to+-- encrypt content in Amazon Fraud Detector.+module Amazonka.FraudDetector.GetKMSEncryptionKey+  ( -- * Creating a Request+    GetKMSEncryptionKey (..),+    newGetKMSEncryptionKey,++    -- * Destructuring the Response+    GetKMSEncryptionKeyResponse (..),+    newGetKMSEncryptionKeyResponse,++    -- * Response Lenses+    getKMSEncryptionKeyResponse_kmsKey,+    getKMSEncryptionKeyResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetKMSEncryptionKey' smart constructor.+data GetKMSEncryptionKey = GetKMSEncryptionKey'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetKMSEncryptionKey' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newGetKMSEncryptionKey ::+  GetKMSEncryptionKey+newGetKMSEncryptionKey = GetKMSEncryptionKey'++instance Core.AWSRequest GetKMSEncryptionKey where+  type+    AWSResponse GetKMSEncryptionKey =+      GetKMSEncryptionKeyResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetKMSEncryptionKeyResponse'+            Prelude.<$> (x Data..?> "kmsKey")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetKMSEncryptionKey where+  hashWithSalt _salt _ =+    _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData GetKMSEncryptionKey where+  rnf _ = ()++instance Data.ToHeaders GetKMSEncryptionKey where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.GetKMSEncryptionKey" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetKMSEncryptionKey where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath GetKMSEncryptionKey where+  toPath = Prelude.const "/"++instance Data.ToQuery GetKMSEncryptionKey where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetKMSEncryptionKeyResponse' smart constructor.+data GetKMSEncryptionKeyResponse = GetKMSEncryptionKeyResponse'+  { -- | The KMS encryption key.+    kmsKey :: Prelude.Maybe KMSKey,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetKMSEncryptionKeyResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'kmsKey', 'getKMSEncryptionKeyResponse_kmsKey' - The KMS encryption key.+--+-- 'httpStatus', 'getKMSEncryptionKeyResponse_httpStatus' - The response's http status code.+newGetKMSEncryptionKeyResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetKMSEncryptionKeyResponse+newGetKMSEncryptionKeyResponse pHttpStatus_ =+  GetKMSEncryptionKeyResponse'+    { kmsKey =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The KMS encryption key.+getKMSEncryptionKeyResponse_kmsKey :: Lens.Lens' GetKMSEncryptionKeyResponse (Prelude.Maybe KMSKey)+getKMSEncryptionKeyResponse_kmsKey = Lens.lens (\GetKMSEncryptionKeyResponse' {kmsKey} -> kmsKey) (\s@GetKMSEncryptionKeyResponse' {} a -> s {kmsKey = a} :: GetKMSEncryptionKeyResponse)++-- | The response's http status code.+getKMSEncryptionKeyResponse_httpStatus :: Lens.Lens' GetKMSEncryptionKeyResponse Prelude.Int+getKMSEncryptionKeyResponse_httpStatus = Lens.lens (\GetKMSEncryptionKeyResponse' {httpStatus} -> httpStatus) (\s@GetKMSEncryptionKeyResponse' {} a -> s {httpStatus = a} :: GetKMSEncryptionKeyResponse)++instance Prelude.NFData GetKMSEncryptionKeyResponse where+  rnf GetKMSEncryptionKeyResponse' {..} =+    Prelude.rnf kmsKey+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/GetLabels.hs view
@@ -0,0 +1,211 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.GetLabels+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets all labels or a specific label if name is provided. This is a+-- paginated API. If you provide a null @maxResults@, this action retrieves+-- a maximum of 50 records per page. If you provide a @maxResults@, the+-- value must be between 10 and 50. To get the next page results, provide+-- the pagination token from the @GetGetLabelsResponse@ as part of your+-- request. A null pagination token fetches the records from the beginning.+module Amazonka.FraudDetector.GetLabels+  ( -- * Creating a Request+    GetLabels (..),+    newGetLabels,++    -- * Request Lenses+    getLabels_maxResults,+    getLabels_name,+    getLabels_nextToken,++    -- * Destructuring the Response+    GetLabelsResponse (..),+    newGetLabelsResponse,++    -- * Response Lenses+    getLabelsResponse_labels,+    getLabelsResponse_nextToken,+    getLabelsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetLabels' smart constructor.+data GetLabels = GetLabels'+  { -- | The maximum number of objects to return for the request.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The name of the label or labels to get.+    name :: Prelude.Maybe Prelude.Text,+    -- | The next token for the subsequent request.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetLabels' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getLabels_maxResults' - The maximum number of objects to return for the request.+--+-- 'name', 'getLabels_name' - The name of the label or labels to get.+--+-- 'nextToken', 'getLabels_nextToken' - The next token for the subsequent request.+newGetLabels ::+  GetLabels+newGetLabels =+  GetLabels'+    { maxResults = Prelude.Nothing,+      name = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of objects to return for the request.+getLabels_maxResults :: Lens.Lens' GetLabels (Prelude.Maybe Prelude.Natural)+getLabels_maxResults = Lens.lens (\GetLabels' {maxResults} -> maxResults) (\s@GetLabels' {} a -> s {maxResults = a} :: GetLabels)++-- | The name of the label or labels to get.+getLabels_name :: Lens.Lens' GetLabels (Prelude.Maybe Prelude.Text)+getLabels_name = Lens.lens (\GetLabels' {name} -> name) (\s@GetLabels' {} a -> s {name = a} :: GetLabels)++-- | The next token for the subsequent request.+getLabels_nextToken :: Lens.Lens' GetLabels (Prelude.Maybe Prelude.Text)+getLabels_nextToken = Lens.lens (\GetLabels' {nextToken} -> nextToken) (\s@GetLabels' {} a -> s {nextToken = a} :: GetLabels)++instance Core.AWSRequest GetLabels where+  type AWSResponse GetLabels = GetLabelsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetLabelsResponse'+            Prelude.<$> (x Data..?> "labels" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetLabels where+  hashWithSalt _salt GetLabels' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData GetLabels where+  rnf GetLabels' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders GetLabels where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.GetLabels" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetLabels where+  toJSON GetLabels' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("name" Data..=) Prelude.<$> name,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath GetLabels where+  toPath = Prelude.const "/"++instance Data.ToQuery GetLabels where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetLabelsResponse' smart constructor.+data GetLabelsResponse = GetLabelsResponse'+  { -- | An array of labels.+    labels :: Prelude.Maybe [Label],+    -- | The next page token.+    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 'GetLabelsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'labels', 'getLabelsResponse_labels' - An array of labels.+--+-- 'nextToken', 'getLabelsResponse_nextToken' - The next page token.+--+-- 'httpStatus', 'getLabelsResponse_httpStatus' - The response's http status code.+newGetLabelsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetLabelsResponse+newGetLabelsResponse pHttpStatus_ =+  GetLabelsResponse'+    { labels = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array of labels.+getLabelsResponse_labels :: Lens.Lens' GetLabelsResponse (Prelude.Maybe [Label])+getLabelsResponse_labels = Lens.lens (\GetLabelsResponse' {labels} -> labels) (\s@GetLabelsResponse' {} a -> s {labels = a} :: GetLabelsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The next page token.+getLabelsResponse_nextToken :: Lens.Lens' GetLabelsResponse (Prelude.Maybe Prelude.Text)+getLabelsResponse_nextToken = Lens.lens (\GetLabelsResponse' {nextToken} -> nextToken) (\s@GetLabelsResponse' {} a -> s {nextToken = a} :: GetLabelsResponse)++-- | The response's http status code.+getLabelsResponse_httpStatus :: Lens.Lens' GetLabelsResponse Prelude.Int+getLabelsResponse_httpStatus = Lens.lens (\GetLabelsResponse' {httpStatus} -> httpStatus) (\s@GetLabelsResponse' {} a -> s {httpStatus = a} :: GetLabelsResponse)++instance Prelude.NFData GetLabelsResponse where+  rnf GetLabelsResponse' {..} =+    Prelude.rnf labels+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/GetModelVersion.hs view
@@ -0,0 +1,374 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.GetModelVersion+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the details of the specified model version.+module Amazonka.FraudDetector.GetModelVersion+  ( -- * Creating a Request+    GetModelVersion (..),+    newGetModelVersion,++    -- * Request Lenses+    getModelVersion_modelId,+    getModelVersion_modelType,+    getModelVersion_modelVersionNumber,++    -- * Destructuring the Response+    GetModelVersionResponse (..),+    newGetModelVersionResponse,++    -- * Response Lenses+    getModelVersionResponse_arn,+    getModelVersionResponse_externalEventsDetail,+    getModelVersionResponse_ingestedEventsDetail,+    getModelVersionResponse_modelId,+    getModelVersionResponse_modelType,+    getModelVersionResponse_modelVersionNumber,+    getModelVersionResponse_status,+    getModelVersionResponse_trainingDataSchema,+    getModelVersionResponse_trainingDataSource,+    getModelVersionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetModelVersion' smart constructor.+data GetModelVersion = GetModelVersion'+  { -- | The model ID.+    modelId :: Prelude.Text,+    -- | The model type.+    modelType :: ModelTypeEnum,+    -- | The model version number.+    modelVersionNumber :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetModelVersion' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'modelId', 'getModelVersion_modelId' - The model ID.+--+-- 'modelType', 'getModelVersion_modelType' - The model type.+--+-- 'modelVersionNumber', 'getModelVersion_modelVersionNumber' - The model version number.+newGetModelVersion ::+  -- | 'modelId'+  Prelude.Text ->+  -- | 'modelType'+  ModelTypeEnum ->+  -- | 'modelVersionNumber'+  Prelude.Text ->+  GetModelVersion+newGetModelVersion+  pModelId_+  pModelType_+  pModelVersionNumber_ =+    GetModelVersion'+      { modelId = pModelId_,+        modelType = pModelType_,+        modelVersionNumber = pModelVersionNumber_+      }++-- | The model ID.+getModelVersion_modelId :: Lens.Lens' GetModelVersion Prelude.Text+getModelVersion_modelId = Lens.lens (\GetModelVersion' {modelId} -> modelId) (\s@GetModelVersion' {} a -> s {modelId = a} :: GetModelVersion)++-- | The model type.+getModelVersion_modelType :: Lens.Lens' GetModelVersion ModelTypeEnum+getModelVersion_modelType = Lens.lens (\GetModelVersion' {modelType} -> modelType) (\s@GetModelVersion' {} a -> s {modelType = a} :: GetModelVersion)++-- | The model version number.+getModelVersion_modelVersionNumber :: Lens.Lens' GetModelVersion Prelude.Text+getModelVersion_modelVersionNumber = Lens.lens (\GetModelVersion' {modelVersionNumber} -> modelVersionNumber) (\s@GetModelVersion' {} a -> s {modelVersionNumber = a} :: GetModelVersion)++instance Core.AWSRequest GetModelVersion where+  type+    AWSResponse GetModelVersion =+      GetModelVersionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetModelVersionResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "externalEventsDetail")+            Prelude.<*> (x Data..?> "ingestedEventsDetail")+            Prelude.<*> (x Data..?> "modelId")+            Prelude.<*> (x Data..?> "modelType")+            Prelude.<*> (x Data..?> "modelVersionNumber")+            Prelude.<*> (x Data..?> "status")+            Prelude.<*> (x Data..?> "trainingDataSchema")+            Prelude.<*> (x Data..?> "trainingDataSource")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetModelVersion where+  hashWithSalt _salt GetModelVersion' {..} =+    _salt+      `Prelude.hashWithSalt` modelId+      `Prelude.hashWithSalt` modelType+      `Prelude.hashWithSalt` modelVersionNumber++instance Prelude.NFData GetModelVersion where+  rnf GetModelVersion' {..} =+    Prelude.rnf modelId+      `Prelude.seq` Prelude.rnf modelType+      `Prelude.seq` Prelude.rnf modelVersionNumber++instance Data.ToHeaders GetModelVersion where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.GetModelVersion" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetModelVersion where+  toJSON GetModelVersion' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("modelId" Data..= modelId),+            Prelude.Just ("modelType" Data..= modelType),+            Prelude.Just+              ("modelVersionNumber" Data..= modelVersionNumber)+          ]+      )++instance Data.ToPath GetModelVersion where+  toPath = Prelude.const "/"++instance Data.ToQuery GetModelVersion where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetModelVersionResponse' smart constructor.+data GetModelVersionResponse = GetModelVersionResponse'+  { -- | The model version ARN.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The details of the external events data used for training the model+    -- version. This will be populated if the @trainingDataSource@ is+    -- @EXTERNAL_EVENTS@+    externalEventsDetail :: Prelude.Maybe ExternalEventsDetail,+    -- | The details of the ingested events data used for training the model+    -- version. This will be populated if the @trainingDataSource@ is+    -- @INGESTED_EVENTS@.+    ingestedEventsDetail :: Prelude.Maybe IngestedEventsDetail,+    -- | The model ID.+    modelId :: Prelude.Maybe Prelude.Text,+    -- | The model type.+    modelType :: Prelude.Maybe ModelTypeEnum,+    -- | The model version number.+    modelVersionNumber :: Prelude.Maybe Prelude.Text,+    -- | The model version status.+    --+    -- Possible values are:+    --+    -- -   @TRAINING_IN_PROGRESS@+    --+    -- -   @TRAINING_COMPLETE@+    --+    -- -   @ACTIVATE_REQUESTED@+    --+    -- -   @ACTIVATE_IN_PROGRESS@+    --+    -- -   @ACTIVE@+    --+    -- -   @INACTIVATE_REQUESTED@+    --+    -- -   @INACTIVATE_IN_PROGRESS@+    --+    -- -   @INACTIVE@+    --+    -- -   @ERROR@+    status :: Prelude.Maybe Prelude.Text,+    -- | The training data schema.+    trainingDataSchema :: Prelude.Maybe TrainingDataSchema,+    -- | The training data source.+    trainingDataSource :: Prelude.Maybe TrainingDataSourceEnum,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetModelVersionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getModelVersionResponse_arn' - The model version ARN.+--+-- 'externalEventsDetail', 'getModelVersionResponse_externalEventsDetail' - The details of the external events data used for training the model+-- version. This will be populated if the @trainingDataSource@ is+-- @EXTERNAL_EVENTS@+--+-- 'ingestedEventsDetail', 'getModelVersionResponse_ingestedEventsDetail' - The details of the ingested events data used for training the model+-- version. This will be populated if the @trainingDataSource@ is+-- @INGESTED_EVENTS@.+--+-- 'modelId', 'getModelVersionResponse_modelId' - The model ID.+--+-- 'modelType', 'getModelVersionResponse_modelType' - The model type.+--+-- 'modelVersionNumber', 'getModelVersionResponse_modelVersionNumber' - The model version number.+--+-- 'status', 'getModelVersionResponse_status' - The model version status.+--+-- Possible values are:+--+-- -   @TRAINING_IN_PROGRESS@+--+-- -   @TRAINING_COMPLETE@+--+-- -   @ACTIVATE_REQUESTED@+--+-- -   @ACTIVATE_IN_PROGRESS@+--+-- -   @ACTIVE@+--+-- -   @INACTIVATE_REQUESTED@+--+-- -   @INACTIVATE_IN_PROGRESS@+--+-- -   @INACTIVE@+--+-- -   @ERROR@+--+-- 'trainingDataSchema', 'getModelVersionResponse_trainingDataSchema' - The training data schema.+--+-- 'trainingDataSource', 'getModelVersionResponse_trainingDataSource' - The training data source.+--+-- 'httpStatus', 'getModelVersionResponse_httpStatus' - The response's http status code.+newGetModelVersionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetModelVersionResponse+newGetModelVersionResponse pHttpStatus_ =+  GetModelVersionResponse'+    { arn = Prelude.Nothing,+      externalEventsDetail = Prelude.Nothing,+      ingestedEventsDetail = Prelude.Nothing,+      modelId = Prelude.Nothing,+      modelType = Prelude.Nothing,+      modelVersionNumber = Prelude.Nothing,+      status = Prelude.Nothing,+      trainingDataSchema = Prelude.Nothing,+      trainingDataSource = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The model version ARN.+getModelVersionResponse_arn :: Lens.Lens' GetModelVersionResponse (Prelude.Maybe Prelude.Text)+getModelVersionResponse_arn = Lens.lens (\GetModelVersionResponse' {arn} -> arn) (\s@GetModelVersionResponse' {} a -> s {arn = a} :: GetModelVersionResponse)++-- | The details of the external events data used for training the model+-- version. This will be populated if the @trainingDataSource@ is+-- @EXTERNAL_EVENTS@+getModelVersionResponse_externalEventsDetail :: Lens.Lens' GetModelVersionResponse (Prelude.Maybe ExternalEventsDetail)+getModelVersionResponse_externalEventsDetail = Lens.lens (\GetModelVersionResponse' {externalEventsDetail} -> externalEventsDetail) (\s@GetModelVersionResponse' {} a -> s {externalEventsDetail = a} :: GetModelVersionResponse)++-- | The details of the ingested events data used for training the model+-- version. This will be populated if the @trainingDataSource@ is+-- @INGESTED_EVENTS@.+getModelVersionResponse_ingestedEventsDetail :: Lens.Lens' GetModelVersionResponse (Prelude.Maybe IngestedEventsDetail)+getModelVersionResponse_ingestedEventsDetail = Lens.lens (\GetModelVersionResponse' {ingestedEventsDetail} -> ingestedEventsDetail) (\s@GetModelVersionResponse' {} a -> s {ingestedEventsDetail = a} :: GetModelVersionResponse)++-- | The model ID.+getModelVersionResponse_modelId :: Lens.Lens' GetModelVersionResponse (Prelude.Maybe Prelude.Text)+getModelVersionResponse_modelId = Lens.lens (\GetModelVersionResponse' {modelId} -> modelId) (\s@GetModelVersionResponse' {} a -> s {modelId = a} :: GetModelVersionResponse)++-- | The model type.+getModelVersionResponse_modelType :: Lens.Lens' GetModelVersionResponse (Prelude.Maybe ModelTypeEnum)+getModelVersionResponse_modelType = Lens.lens (\GetModelVersionResponse' {modelType} -> modelType) (\s@GetModelVersionResponse' {} a -> s {modelType = a} :: GetModelVersionResponse)++-- | The model version number.+getModelVersionResponse_modelVersionNumber :: Lens.Lens' GetModelVersionResponse (Prelude.Maybe Prelude.Text)+getModelVersionResponse_modelVersionNumber = Lens.lens (\GetModelVersionResponse' {modelVersionNumber} -> modelVersionNumber) (\s@GetModelVersionResponse' {} a -> s {modelVersionNumber = a} :: GetModelVersionResponse)++-- | The model version status.+--+-- Possible values are:+--+-- -   @TRAINING_IN_PROGRESS@+--+-- -   @TRAINING_COMPLETE@+--+-- -   @ACTIVATE_REQUESTED@+--+-- -   @ACTIVATE_IN_PROGRESS@+--+-- -   @ACTIVE@+--+-- -   @INACTIVATE_REQUESTED@+--+-- -   @INACTIVATE_IN_PROGRESS@+--+-- -   @INACTIVE@+--+-- -   @ERROR@+getModelVersionResponse_status :: Lens.Lens' GetModelVersionResponse (Prelude.Maybe Prelude.Text)+getModelVersionResponse_status = Lens.lens (\GetModelVersionResponse' {status} -> status) (\s@GetModelVersionResponse' {} a -> s {status = a} :: GetModelVersionResponse)++-- | The training data schema.+getModelVersionResponse_trainingDataSchema :: Lens.Lens' GetModelVersionResponse (Prelude.Maybe TrainingDataSchema)+getModelVersionResponse_trainingDataSchema = Lens.lens (\GetModelVersionResponse' {trainingDataSchema} -> trainingDataSchema) (\s@GetModelVersionResponse' {} a -> s {trainingDataSchema = a} :: GetModelVersionResponse)++-- | The training data source.+getModelVersionResponse_trainingDataSource :: Lens.Lens' GetModelVersionResponse (Prelude.Maybe TrainingDataSourceEnum)+getModelVersionResponse_trainingDataSource = Lens.lens (\GetModelVersionResponse' {trainingDataSource} -> trainingDataSource) (\s@GetModelVersionResponse' {} a -> s {trainingDataSource = a} :: GetModelVersionResponse)++-- | The response's http status code.+getModelVersionResponse_httpStatus :: Lens.Lens' GetModelVersionResponse Prelude.Int+getModelVersionResponse_httpStatus = Lens.lens (\GetModelVersionResponse' {httpStatus} -> httpStatus) (\s@GetModelVersionResponse' {} a -> s {httpStatus = a} :: GetModelVersionResponse)++instance Prelude.NFData GetModelVersionResponse where+  rnf GetModelVersionResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf externalEventsDetail+      `Prelude.seq` Prelude.rnf ingestedEventsDetail+      `Prelude.seq` Prelude.rnf modelId+      `Prelude.seq` Prelude.rnf modelType+      `Prelude.seq` Prelude.rnf modelVersionNumber+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf trainingDataSchema+      `Prelude.seq` Prelude.rnf trainingDataSource+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/GetModels.hs view
@@ -0,0 +1,229 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.GetModels+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets one or more models. Gets all models for the Amazon Web Services+-- account if no model type and no model id provided. Gets all models for+-- the Amazon Web Services account and model type, if the model type is+-- specified but model id is not provided. Gets a specific model if (model+-- type, model id) tuple is specified.+--+-- This is a paginated API. If you provide a null @maxResults@, this action+-- retrieves a maximum of 10 records per page. If you provide a+-- @maxResults@, the value must be between 1 and 10. To get the next page+-- results, provide the pagination token from the response as part of your+-- request. A null pagination token fetches the records from the beginning.+module Amazonka.FraudDetector.GetModels+  ( -- * Creating a Request+    GetModels (..),+    newGetModels,++    -- * Request Lenses+    getModels_maxResults,+    getModels_modelId,+    getModels_modelType,+    getModels_nextToken,++    -- * Destructuring the Response+    GetModelsResponse (..),+    newGetModelsResponse,++    -- * Response Lenses+    getModelsResponse_models,+    getModelsResponse_nextToken,+    getModelsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetModels' smart constructor.+data GetModels = GetModels'+  { -- | The maximum number of objects to return for the request.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The model ID.+    modelId :: Prelude.Maybe Prelude.Text,+    -- | The model type.+    modelType :: Prelude.Maybe ModelTypeEnum,+    -- | The next token for the subsequent request.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetModels' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getModels_maxResults' - The maximum number of objects to return for the request.+--+-- 'modelId', 'getModels_modelId' - The model ID.+--+-- 'modelType', 'getModels_modelType' - The model type.+--+-- 'nextToken', 'getModels_nextToken' - The next token for the subsequent request.+newGetModels ::+  GetModels+newGetModels =+  GetModels'+    { maxResults = Prelude.Nothing,+      modelId = Prelude.Nothing,+      modelType = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of objects to return for the request.+getModels_maxResults :: Lens.Lens' GetModels (Prelude.Maybe Prelude.Natural)+getModels_maxResults = Lens.lens (\GetModels' {maxResults} -> maxResults) (\s@GetModels' {} a -> s {maxResults = a} :: GetModels)++-- | The model ID.+getModels_modelId :: Lens.Lens' GetModels (Prelude.Maybe Prelude.Text)+getModels_modelId = Lens.lens (\GetModels' {modelId} -> modelId) (\s@GetModels' {} a -> s {modelId = a} :: GetModels)++-- | The model type.+getModels_modelType :: Lens.Lens' GetModels (Prelude.Maybe ModelTypeEnum)+getModels_modelType = Lens.lens (\GetModels' {modelType} -> modelType) (\s@GetModels' {} a -> s {modelType = a} :: GetModels)++-- | The next token for the subsequent request.+getModels_nextToken :: Lens.Lens' GetModels (Prelude.Maybe Prelude.Text)+getModels_nextToken = Lens.lens (\GetModels' {nextToken} -> nextToken) (\s@GetModels' {} a -> s {nextToken = a} :: GetModels)++instance Core.AWSRequest GetModels where+  type AWSResponse GetModels = GetModelsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetModelsResponse'+            Prelude.<$> (x Data..?> "models" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetModels where+  hashWithSalt _salt GetModels' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` modelId+      `Prelude.hashWithSalt` modelType+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData GetModels where+  rnf GetModels' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf modelId+      `Prelude.seq` Prelude.rnf modelType+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders GetModels where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.GetModels" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetModels where+  toJSON GetModels' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("modelId" Data..=) Prelude.<$> modelId,+            ("modelType" Data..=) Prelude.<$> modelType,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath GetModels where+  toPath = Prelude.const "/"++instance Data.ToQuery GetModels where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetModelsResponse' smart constructor.+data GetModelsResponse = GetModelsResponse'+  { -- | The array of models.+    models :: Prelude.Maybe [Model],+    -- | The next page token to be used in subsequent requests.+    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 'GetModelsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'models', 'getModelsResponse_models' - The array of models.+--+-- 'nextToken', 'getModelsResponse_nextToken' - The next page token to be used in subsequent requests.+--+-- 'httpStatus', 'getModelsResponse_httpStatus' - The response's http status code.+newGetModelsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetModelsResponse+newGetModelsResponse pHttpStatus_ =+  GetModelsResponse'+    { models = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The array of models.+getModelsResponse_models :: Lens.Lens' GetModelsResponse (Prelude.Maybe [Model])+getModelsResponse_models = Lens.lens (\GetModelsResponse' {models} -> models) (\s@GetModelsResponse' {} a -> s {models = a} :: GetModelsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The next page token to be used in subsequent requests.+getModelsResponse_nextToken :: Lens.Lens' GetModelsResponse (Prelude.Maybe Prelude.Text)+getModelsResponse_nextToken = Lens.lens (\GetModelsResponse' {nextToken} -> nextToken) (\s@GetModelsResponse' {} a -> s {nextToken = a} :: GetModelsResponse)++-- | The response's http status code.+getModelsResponse_httpStatus :: Lens.Lens' GetModelsResponse Prelude.Int+getModelsResponse_httpStatus = Lens.lens (\GetModelsResponse' {httpStatus} -> httpStatus) (\s@GetModelsResponse' {} a -> s {httpStatus = a} :: GetModelsResponse)++instance Prelude.NFData GetModelsResponse where+  rnf GetModelsResponse' {..} =+    Prelude.rnf models+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/GetOutcomes.hs view
@@ -0,0 +1,211 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.GetOutcomes+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets one or more outcomes. This is a paginated API. If you provide a+-- null @maxResults@, this actions retrieves a maximum of 100 records per+-- page. If you provide a @maxResults@, the value must be between 50 and+-- 100. To get the next page results, provide the pagination token from the+-- @GetOutcomesResult@ as part of your request. A null pagination token+-- fetches the records from the beginning.+module Amazonka.FraudDetector.GetOutcomes+  ( -- * Creating a Request+    GetOutcomes (..),+    newGetOutcomes,++    -- * Request Lenses+    getOutcomes_maxResults,+    getOutcomes_name,+    getOutcomes_nextToken,++    -- * Destructuring the Response+    GetOutcomesResponse (..),+    newGetOutcomesResponse,++    -- * Response Lenses+    getOutcomesResponse_nextToken,+    getOutcomesResponse_outcomes,+    getOutcomesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetOutcomes' smart constructor.+data GetOutcomes = GetOutcomes'+  { -- | The maximum number of objects to return for the request.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The name of the outcome or outcomes to get.+    name :: Prelude.Maybe Prelude.Text,+    -- | The next page token for the request.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetOutcomes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getOutcomes_maxResults' - The maximum number of objects to return for the request.+--+-- 'name', 'getOutcomes_name' - The name of the outcome or outcomes to get.+--+-- 'nextToken', 'getOutcomes_nextToken' - The next page token for the request.+newGetOutcomes ::+  GetOutcomes+newGetOutcomes =+  GetOutcomes'+    { maxResults = Prelude.Nothing,+      name = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of objects to return for the request.+getOutcomes_maxResults :: Lens.Lens' GetOutcomes (Prelude.Maybe Prelude.Natural)+getOutcomes_maxResults = Lens.lens (\GetOutcomes' {maxResults} -> maxResults) (\s@GetOutcomes' {} a -> s {maxResults = a} :: GetOutcomes)++-- | The name of the outcome or outcomes to get.+getOutcomes_name :: Lens.Lens' GetOutcomes (Prelude.Maybe Prelude.Text)+getOutcomes_name = Lens.lens (\GetOutcomes' {name} -> name) (\s@GetOutcomes' {} a -> s {name = a} :: GetOutcomes)++-- | The next page token for the request.+getOutcomes_nextToken :: Lens.Lens' GetOutcomes (Prelude.Maybe Prelude.Text)+getOutcomes_nextToken = Lens.lens (\GetOutcomes' {nextToken} -> nextToken) (\s@GetOutcomes' {} a -> s {nextToken = a} :: GetOutcomes)++instance Core.AWSRequest GetOutcomes where+  type AWSResponse GetOutcomes = GetOutcomesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetOutcomesResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (x Data..?> "outcomes" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetOutcomes where+  hashWithSalt _salt GetOutcomes' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData GetOutcomes where+  rnf GetOutcomes' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders GetOutcomes where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.GetOutcomes" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetOutcomes where+  toJSON GetOutcomes' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("name" Data..=) Prelude.<$> name,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath GetOutcomes where+  toPath = Prelude.const "/"++instance Data.ToQuery GetOutcomes where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetOutcomesResponse' smart constructor.+data GetOutcomesResponse = GetOutcomesResponse'+  { -- | The next page token for subsequent requests.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The outcomes.+    outcomes :: Prelude.Maybe [Outcome],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetOutcomesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getOutcomesResponse_nextToken' - The next page token for subsequent requests.+--+-- 'outcomes', 'getOutcomesResponse_outcomes' - The outcomes.+--+-- 'httpStatus', 'getOutcomesResponse_httpStatus' - The response's http status code.+newGetOutcomesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetOutcomesResponse+newGetOutcomesResponse pHttpStatus_ =+  GetOutcomesResponse'+    { nextToken = Prelude.Nothing,+      outcomes = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The next page token for subsequent requests.+getOutcomesResponse_nextToken :: Lens.Lens' GetOutcomesResponse (Prelude.Maybe Prelude.Text)+getOutcomesResponse_nextToken = Lens.lens (\GetOutcomesResponse' {nextToken} -> nextToken) (\s@GetOutcomesResponse' {} a -> s {nextToken = a} :: GetOutcomesResponse)++-- | The outcomes.+getOutcomesResponse_outcomes :: Lens.Lens' GetOutcomesResponse (Prelude.Maybe [Outcome])+getOutcomesResponse_outcomes = Lens.lens (\GetOutcomesResponse' {outcomes} -> outcomes) (\s@GetOutcomesResponse' {} a -> s {outcomes = a} :: GetOutcomesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getOutcomesResponse_httpStatus :: Lens.Lens' GetOutcomesResponse Prelude.Int+getOutcomesResponse_httpStatus = Lens.lens (\GetOutcomesResponse' {httpStatus} -> httpStatus) (\s@GetOutcomesResponse' {} a -> s {httpStatus = a} :: GetOutcomesResponse)++instance Prelude.NFData GetOutcomesResponse where+  rnf GetOutcomesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf outcomes+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/GetRules.hs view
@@ -0,0 +1,243 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.GetRules+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Get all rules for a detector (paginated) if @ruleId@ and @ruleVersion@+-- are not specified. Gets all rules for the detector and the @ruleId@ if+-- present (paginated). Gets a specific rule if both the @ruleId@ and the+-- @ruleVersion@ are specified.+--+-- This is a paginated API. Providing null maxResults results in retrieving+-- maximum of 100 records per page. If you provide maxResults the value+-- must be between 50 and 100. To get the next page result, a provide a+-- pagination token from GetRulesResult as part of your request. Null+-- pagination token fetches the records from the beginning.+module Amazonka.FraudDetector.GetRules+  ( -- * Creating a Request+    GetRules (..),+    newGetRules,++    -- * Request Lenses+    getRules_maxResults,+    getRules_nextToken,+    getRules_ruleId,+    getRules_ruleVersion,+    getRules_detectorId,++    -- * Destructuring the Response+    GetRulesResponse (..),+    newGetRulesResponse,++    -- * Response Lenses+    getRulesResponse_nextToken,+    getRulesResponse_ruleDetails,+    getRulesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetRules' smart constructor.+data GetRules = GetRules'+  { -- | The maximum number of rules to return for the request.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The next page token.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The rule ID.+    ruleId :: Prelude.Maybe Prelude.Text,+    -- | The rule version.+    ruleVersion :: Prelude.Maybe Prelude.Text,+    -- | The detector ID.+    detectorId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetRules' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getRules_maxResults' - The maximum number of rules to return for the request.+--+-- 'nextToken', 'getRules_nextToken' - The next page token.+--+-- 'ruleId', 'getRules_ruleId' - The rule ID.+--+-- 'ruleVersion', 'getRules_ruleVersion' - The rule version.+--+-- 'detectorId', 'getRules_detectorId' - The detector ID.+newGetRules ::+  -- | 'detectorId'+  Prelude.Text ->+  GetRules+newGetRules pDetectorId_ =+  GetRules'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      ruleId = Prelude.Nothing,+      ruleVersion = Prelude.Nothing,+      detectorId = pDetectorId_+    }++-- | The maximum number of rules to return for the request.+getRules_maxResults :: Lens.Lens' GetRules (Prelude.Maybe Prelude.Natural)+getRules_maxResults = Lens.lens (\GetRules' {maxResults} -> maxResults) (\s@GetRules' {} a -> s {maxResults = a} :: GetRules)++-- | The next page token.+getRules_nextToken :: Lens.Lens' GetRules (Prelude.Maybe Prelude.Text)+getRules_nextToken = Lens.lens (\GetRules' {nextToken} -> nextToken) (\s@GetRules' {} a -> s {nextToken = a} :: GetRules)++-- | The rule ID.+getRules_ruleId :: Lens.Lens' GetRules (Prelude.Maybe Prelude.Text)+getRules_ruleId = Lens.lens (\GetRules' {ruleId} -> ruleId) (\s@GetRules' {} a -> s {ruleId = a} :: GetRules)++-- | The rule version.+getRules_ruleVersion :: Lens.Lens' GetRules (Prelude.Maybe Prelude.Text)+getRules_ruleVersion = Lens.lens (\GetRules' {ruleVersion} -> ruleVersion) (\s@GetRules' {} a -> s {ruleVersion = a} :: GetRules)++-- | The detector ID.+getRules_detectorId :: Lens.Lens' GetRules Prelude.Text+getRules_detectorId = Lens.lens (\GetRules' {detectorId} -> detectorId) (\s@GetRules' {} a -> s {detectorId = a} :: GetRules)++instance Core.AWSRequest GetRules where+  type AWSResponse GetRules = GetRulesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetRulesResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (x Data..?> "ruleDetails" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetRules where+  hashWithSalt _salt GetRules' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` ruleId+      `Prelude.hashWithSalt` ruleVersion+      `Prelude.hashWithSalt` detectorId++instance Prelude.NFData GetRules where+  rnf GetRules' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf ruleId+      `Prelude.seq` Prelude.rnf ruleVersion+      `Prelude.seq` Prelude.rnf detectorId++instance Data.ToHeaders GetRules where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.GetRules" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetRules where+  toJSON GetRules' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("ruleId" Data..=) Prelude.<$> ruleId,+            ("ruleVersion" Data..=) Prelude.<$> ruleVersion,+            Prelude.Just ("detectorId" Data..= detectorId)+          ]+      )++instance Data.ToPath GetRules where+  toPath = Prelude.const "/"++instance Data.ToQuery GetRules where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetRulesResponse' smart constructor.+data GetRulesResponse = GetRulesResponse'+  { -- | The next page token to be used in subsequent requests.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The details of the requested rule.+    ruleDetails :: Prelude.Maybe [RuleDetail],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetRulesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getRulesResponse_nextToken' - The next page token to be used in subsequent requests.+--+-- 'ruleDetails', 'getRulesResponse_ruleDetails' - The details of the requested rule.+--+-- 'httpStatus', 'getRulesResponse_httpStatus' - The response's http status code.+newGetRulesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetRulesResponse+newGetRulesResponse pHttpStatus_ =+  GetRulesResponse'+    { nextToken = Prelude.Nothing,+      ruleDetails = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The next page token to be used in subsequent requests.+getRulesResponse_nextToken :: Lens.Lens' GetRulesResponse (Prelude.Maybe Prelude.Text)+getRulesResponse_nextToken = Lens.lens (\GetRulesResponse' {nextToken} -> nextToken) (\s@GetRulesResponse' {} a -> s {nextToken = a} :: GetRulesResponse)++-- | The details of the requested rule.+getRulesResponse_ruleDetails :: Lens.Lens' GetRulesResponse (Prelude.Maybe [RuleDetail])+getRulesResponse_ruleDetails = Lens.lens (\GetRulesResponse' {ruleDetails} -> ruleDetails) (\s@GetRulesResponse' {} a -> s {ruleDetails = a} :: GetRulesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getRulesResponse_httpStatus :: Lens.Lens' GetRulesResponse Prelude.Int+getRulesResponse_httpStatus = Lens.lens (\GetRulesResponse' {httpStatus} -> httpStatus) (\s@GetRulesResponse' {} a -> s {httpStatus = a} :: GetRulesResponse)++instance Prelude.NFData GetRulesResponse where+  rnf GetRulesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf ruleDetails+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/GetVariables.hs view
@@ -0,0 +1,211 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.GetVariables+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets all of the variables or the specific variable. This is a paginated+-- API. Providing null @maxSizePerPage@ results in retrieving maximum of+-- 100 records per page. If you provide @maxSizePerPage@ the value must be+-- between 50 and 100. To get the next page result, a provide a pagination+-- token from @GetVariablesResult@ as part of your request. Null pagination+-- token fetches the records from the beginning.+module Amazonka.FraudDetector.GetVariables+  ( -- * Creating a Request+    GetVariables (..),+    newGetVariables,++    -- * Request Lenses+    getVariables_maxResults,+    getVariables_name,+    getVariables_nextToken,++    -- * Destructuring the Response+    GetVariablesResponse (..),+    newGetVariablesResponse,++    -- * Response Lenses+    getVariablesResponse_nextToken,+    getVariablesResponse_variables,+    getVariablesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetVariables' smart constructor.+data GetVariables = GetVariables'+  { -- | The max size per page determined for the get variable request.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The name of the variable.+    name :: Prelude.Maybe Prelude.Text,+    -- | The next page token of the get variable request.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetVariables' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getVariables_maxResults' - The max size per page determined for the get variable request.+--+-- 'name', 'getVariables_name' - The name of the variable.+--+-- 'nextToken', 'getVariables_nextToken' - The next page token of the get variable request.+newGetVariables ::+  GetVariables+newGetVariables =+  GetVariables'+    { maxResults = Prelude.Nothing,+      name = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The max size per page determined for the get variable request.+getVariables_maxResults :: Lens.Lens' GetVariables (Prelude.Maybe Prelude.Natural)+getVariables_maxResults = Lens.lens (\GetVariables' {maxResults} -> maxResults) (\s@GetVariables' {} a -> s {maxResults = a} :: GetVariables)++-- | The name of the variable.+getVariables_name :: Lens.Lens' GetVariables (Prelude.Maybe Prelude.Text)+getVariables_name = Lens.lens (\GetVariables' {name} -> name) (\s@GetVariables' {} a -> s {name = a} :: GetVariables)++-- | The next page token of the get variable request.+getVariables_nextToken :: Lens.Lens' GetVariables (Prelude.Maybe Prelude.Text)+getVariables_nextToken = Lens.lens (\GetVariables' {nextToken} -> nextToken) (\s@GetVariables' {} a -> s {nextToken = a} :: GetVariables)++instance Core.AWSRequest GetVariables where+  type AWSResponse GetVariables = GetVariablesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetVariablesResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (x Data..?> "variables" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetVariables where+  hashWithSalt _salt GetVariables' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData GetVariables where+  rnf GetVariables' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders GetVariables where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.GetVariables" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetVariables where+  toJSON GetVariables' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("name" Data..=) Prelude.<$> name,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath GetVariables where+  toPath = Prelude.const "/"++instance Data.ToQuery GetVariables where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetVariablesResponse' smart constructor.+data GetVariablesResponse = GetVariablesResponse'+  { -- | The next page token to be used in subsequent requests.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The names of the variables returned.+    variables :: Prelude.Maybe [Variable],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetVariablesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getVariablesResponse_nextToken' - The next page token to be used in subsequent requests.+--+-- 'variables', 'getVariablesResponse_variables' - The names of the variables returned.+--+-- 'httpStatus', 'getVariablesResponse_httpStatus' - The response's http status code.+newGetVariablesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetVariablesResponse+newGetVariablesResponse pHttpStatus_ =+  GetVariablesResponse'+    { nextToken = Prelude.Nothing,+      variables = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The next page token to be used in subsequent requests.+getVariablesResponse_nextToken :: Lens.Lens' GetVariablesResponse (Prelude.Maybe Prelude.Text)+getVariablesResponse_nextToken = Lens.lens (\GetVariablesResponse' {nextToken} -> nextToken) (\s@GetVariablesResponse' {} a -> s {nextToken = a} :: GetVariablesResponse)++-- | The names of the variables returned.+getVariablesResponse_variables :: Lens.Lens' GetVariablesResponse (Prelude.Maybe [Variable])+getVariablesResponse_variables = Lens.lens (\GetVariablesResponse' {variables} -> variables) (\s@GetVariablesResponse' {} a -> s {variables = a} :: GetVariablesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getVariablesResponse_httpStatus :: Lens.Lens' GetVariablesResponse Prelude.Int+getVariablesResponse_httpStatus = Lens.lens (\GetVariablesResponse' {httpStatus} -> httpStatus) (\s@GetVariablesResponse' {} a -> s {httpStatus = a} :: GetVariablesResponse)++instance Prelude.NFData GetVariablesResponse where+  rnf GetVariablesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf variables+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/Lens.hs view
@@ -0,0 +1,1080 @@+{-# 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.FraudDetector.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.FraudDetector.Lens+  ( -- * Operations++    -- ** BatchCreateVariable+    batchCreateVariable_tags,+    batchCreateVariable_variableEntries,+    batchCreateVariableResponse_errors,+    batchCreateVariableResponse_httpStatus,++    -- ** BatchGetVariable+    batchGetVariable_names,+    batchGetVariableResponse_errors,+    batchGetVariableResponse_variables,+    batchGetVariableResponse_httpStatus,++    -- ** CancelBatchImportJob+    cancelBatchImportJob_jobId,+    cancelBatchImportJobResponse_httpStatus,++    -- ** CancelBatchPredictionJob+    cancelBatchPredictionJob_jobId,+    cancelBatchPredictionJobResponse_httpStatus,++    -- ** CreateBatchImportJob+    createBatchImportJob_tags,+    createBatchImportJob_jobId,+    createBatchImportJob_inputPath,+    createBatchImportJob_outputPath,+    createBatchImportJob_eventTypeName,+    createBatchImportJob_iamRoleArn,+    createBatchImportJobResponse_httpStatus,++    -- ** CreateBatchPredictionJob+    createBatchPredictionJob_detectorVersion,+    createBatchPredictionJob_tags,+    createBatchPredictionJob_jobId,+    createBatchPredictionJob_inputPath,+    createBatchPredictionJob_outputPath,+    createBatchPredictionJob_eventTypeName,+    createBatchPredictionJob_detectorName,+    createBatchPredictionJob_iamRoleArn,+    createBatchPredictionJobResponse_httpStatus,++    -- ** CreateDetectorVersion+    createDetectorVersion_description,+    createDetectorVersion_externalModelEndpoints,+    createDetectorVersion_modelVersions,+    createDetectorVersion_ruleExecutionMode,+    createDetectorVersion_tags,+    createDetectorVersion_detectorId,+    createDetectorVersion_rules,+    createDetectorVersionResponse_detectorId,+    createDetectorVersionResponse_detectorVersionId,+    createDetectorVersionResponse_status,+    createDetectorVersionResponse_httpStatus,++    -- ** CreateModel+    createModel_description,+    createModel_tags,+    createModel_modelId,+    createModel_modelType,+    createModel_eventTypeName,+    createModelResponse_httpStatus,++    -- ** CreateModelVersion+    createModelVersion_externalEventsDetail,+    createModelVersion_ingestedEventsDetail,+    createModelVersion_tags,+    createModelVersion_modelId,+    createModelVersion_modelType,+    createModelVersion_trainingDataSource,+    createModelVersion_trainingDataSchema,+    createModelVersionResponse_modelId,+    createModelVersionResponse_modelType,+    createModelVersionResponse_modelVersionNumber,+    createModelVersionResponse_status,+    createModelVersionResponse_httpStatus,++    -- ** CreateRule+    createRule_description,+    createRule_tags,+    createRule_ruleId,+    createRule_detectorId,+    createRule_expression,+    createRule_language,+    createRule_outcomes,+    createRuleResponse_rule,+    createRuleResponse_httpStatus,++    -- ** CreateVariable+    createVariable_description,+    createVariable_tags,+    createVariable_variableType,+    createVariable_name,+    createVariable_dataType,+    createVariable_dataSource,+    createVariable_defaultValue,+    createVariableResponse_httpStatus,++    -- ** DeleteBatchImportJob+    deleteBatchImportJob_jobId,+    deleteBatchImportJobResponse_httpStatus,++    -- ** DeleteBatchPredictionJob+    deleteBatchPredictionJob_jobId,+    deleteBatchPredictionJobResponse_httpStatus,++    -- ** DeleteDetector+    deleteDetector_detectorId,+    deleteDetectorResponse_httpStatus,++    -- ** DeleteDetectorVersion+    deleteDetectorVersion_detectorId,+    deleteDetectorVersion_detectorVersionId,+    deleteDetectorVersionResponse_httpStatus,++    -- ** DeleteEntityType+    deleteEntityType_name,+    deleteEntityTypeResponse_httpStatus,++    -- ** DeleteEvent+    deleteEvent_deleteAuditHistory,+    deleteEvent_eventId,+    deleteEvent_eventTypeName,+    deleteEventResponse_httpStatus,++    -- ** DeleteEventType+    deleteEventType_name,+    deleteEventTypeResponse_httpStatus,++    -- ** DeleteEventsByEventType+    deleteEventsByEventType_eventTypeName,+    deleteEventsByEventTypeResponse_eventTypeName,+    deleteEventsByEventTypeResponse_eventsDeletionStatus,+    deleteEventsByEventTypeResponse_httpStatus,++    -- ** DeleteExternalModel+    deleteExternalModel_modelEndpoint,+    deleteExternalModelResponse_httpStatus,++    -- ** DeleteLabel+    deleteLabel_name,+    deleteLabelResponse_httpStatus,++    -- ** DeleteModel+    deleteModel_modelId,+    deleteModel_modelType,+    deleteModelResponse_httpStatus,++    -- ** DeleteModelVersion+    deleteModelVersion_modelId,+    deleteModelVersion_modelType,+    deleteModelVersion_modelVersionNumber,+    deleteModelVersionResponse_httpStatus,++    -- ** DeleteOutcome+    deleteOutcome_name,+    deleteOutcomeResponse_httpStatus,++    -- ** DeleteRule+    deleteRule_rule,+    deleteRuleResponse_httpStatus,++    -- ** DeleteVariable+    deleteVariable_name,+    deleteVariableResponse_httpStatus,++    -- ** DescribeDetector+    describeDetector_maxResults,+    describeDetector_nextToken,+    describeDetector_detectorId,+    describeDetectorResponse_arn,+    describeDetectorResponse_detectorId,+    describeDetectorResponse_detectorVersionSummaries,+    describeDetectorResponse_nextToken,+    describeDetectorResponse_httpStatus,++    -- ** DescribeModelVersions+    describeModelVersions_maxResults,+    describeModelVersions_modelId,+    describeModelVersions_modelType,+    describeModelVersions_modelVersionNumber,+    describeModelVersions_nextToken,+    describeModelVersionsResponse_modelVersionDetails,+    describeModelVersionsResponse_nextToken,+    describeModelVersionsResponse_httpStatus,++    -- ** GetBatchImportJobs+    getBatchImportJobs_jobId,+    getBatchImportJobs_maxResults,+    getBatchImportJobs_nextToken,+    getBatchImportJobsResponse_batchImports,+    getBatchImportJobsResponse_nextToken,+    getBatchImportJobsResponse_httpStatus,++    -- ** GetBatchPredictionJobs+    getBatchPredictionJobs_jobId,+    getBatchPredictionJobs_maxResults,+    getBatchPredictionJobs_nextToken,+    getBatchPredictionJobsResponse_batchPredictions,+    getBatchPredictionJobsResponse_nextToken,+    getBatchPredictionJobsResponse_httpStatus,++    -- ** GetDeleteEventsByEventTypeStatus+    getDeleteEventsByEventTypeStatus_eventTypeName,+    getDeleteEventsByEventTypeStatusResponse_eventTypeName,+    getDeleteEventsByEventTypeStatusResponse_eventsDeletionStatus,+    getDeleteEventsByEventTypeStatusResponse_httpStatus,++    -- ** GetDetectorVersion+    getDetectorVersion_detectorId,+    getDetectorVersion_detectorVersionId,+    getDetectorVersionResponse_arn,+    getDetectorVersionResponse_createdTime,+    getDetectorVersionResponse_description,+    getDetectorVersionResponse_detectorId,+    getDetectorVersionResponse_detectorVersionId,+    getDetectorVersionResponse_externalModelEndpoints,+    getDetectorVersionResponse_lastUpdatedTime,+    getDetectorVersionResponse_modelVersions,+    getDetectorVersionResponse_ruleExecutionMode,+    getDetectorVersionResponse_rules,+    getDetectorVersionResponse_status,+    getDetectorVersionResponse_httpStatus,++    -- ** GetDetectors+    getDetectors_detectorId,+    getDetectors_maxResults,+    getDetectors_nextToken,+    getDetectorsResponse_detectors,+    getDetectorsResponse_nextToken,+    getDetectorsResponse_httpStatus,++    -- ** GetEntityTypes+    getEntityTypes_maxResults,+    getEntityTypes_name,+    getEntityTypes_nextToken,+    getEntityTypesResponse_entityTypes,+    getEntityTypesResponse_nextToken,+    getEntityTypesResponse_httpStatus,++    -- ** GetEvent+    getEvent_eventId,+    getEvent_eventTypeName,+    getEventResponse_event,+    getEventResponse_httpStatus,++    -- ** GetEventPrediction+    getEventPrediction_detectorVersionId,+    getEventPrediction_externalModelEndpointDataBlobs,+    getEventPrediction_detectorId,+    getEventPrediction_eventId,+    getEventPrediction_eventTypeName,+    getEventPrediction_entities,+    getEventPrediction_eventTimestamp,+    getEventPrediction_eventVariables,+    getEventPredictionResponse_externalModelOutputs,+    getEventPredictionResponse_modelScores,+    getEventPredictionResponse_ruleResults,+    getEventPredictionResponse_httpStatus,++    -- ** GetEventPredictionMetadata+    getEventPredictionMetadata_eventId,+    getEventPredictionMetadata_eventTypeName,+    getEventPredictionMetadata_detectorId,+    getEventPredictionMetadata_detectorVersionId,+    getEventPredictionMetadata_predictionTimestamp,+    getEventPredictionMetadataResponse_detectorId,+    getEventPredictionMetadataResponse_detectorVersionId,+    getEventPredictionMetadataResponse_detectorVersionStatus,+    getEventPredictionMetadataResponse_entityId,+    getEventPredictionMetadataResponse_entityType,+    getEventPredictionMetadataResponse_evaluatedExternalModels,+    getEventPredictionMetadataResponse_evaluatedModelVersions,+    getEventPredictionMetadataResponse_eventId,+    getEventPredictionMetadataResponse_eventTimestamp,+    getEventPredictionMetadataResponse_eventTypeName,+    getEventPredictionMetadataResponse_eventVariables,+    getEventPredictionMetadataResponse_outcomes,+    getEventPredictionMetadataResponse_predictionTimestamp,+    getEventPredictionMetadataResponse_ruleExecutionMode,+    getEventPredictionMetadataResponse_rules,+    getEventPredictionMetadataResponse_httpStatus,++    -- ** GetEventTypes+    getEventTypes_maxResults,+    getEventTypes_name,+    getEventTypes_nextToken,+    getEventTypesResponse_eventTypes,+    getEventTypesResponse_nextToken,+    getEventTypesResponse_httpStatus,++    -- ** GetExternalModels+    getExternalModels_maxResults,+    getExternalModels_modelEndpoint,+    getExternalModels_nextToken,+    getExternalModelsResponse_externalModels,+    getExternalModelsResponse_nextToken,+    getExternalModelsResponse_httpStatus,++    -- ** GetKMSEncryptionKey+    getKMSEncryptionKeyResponse_kmsKey,+    getKMSEncryptionKeyResponse_httpStatus,++    -- ** GetLabels+    getLabels_maxResults,+    getLabels_name,+    getLabels_nextToken,+    getLabelsResponse_labels,+    getLabelsResponse_nextToken,+    getLabelsResponse_httpStatus,++    -- ** GetModelVersion+    getModelVersion_modelId,+    getModelVersion_modelType,+    getModelVersion_modelVersionNumber,+    getModelVersionResponse_arn,+    getModelVersionResponse_externalEventsDetail,+    getModelVersionResponse_ingestedEventsDetail,+    getModelVersionResponse_modelId,+    getModelVersionResponse_modelType,+    getModelVersionResponse_modelVersionNumber,+    getModelVersionResponse_status,+    getModelVersionResponse_trainingDataSchema,+    getModelVersionResponse_trainingDataSource,+    getModelVersionResponse_httpStatus,++    -- ** GetModels+    getModels_maxResults,+    getModels_modelId,+    getModels_modelType,+    getModels_nextToken,+    getModelsResponse_models,+    getModelsResponse_nextToken,+    getModelsResponse_httpStatus,++    -- ** GetOutcomes+    getOutcomes_maxResults,+    getOutcomes_name,+    getOutcomes_nextToken,+    getOutcomesResponse_nextToken,+    getOutcomesResponse_outcomes,+    getOutcomesResponse_httpStatus,++    -- ** GetRules+    getRules_maxResults,+    getRules_nextToken,+    getRules_ruleId,+    getRules_ruleVersion,+    getRules_detectorId,+    getRulesResponse_nextToken,+    getRulesResponse_ruleDetails,+    getRulesResponse_httpStatus,++    -- ** GetVariables+    getVariables_maxResults,+    getVariables_name,+    getVariables_nextToken,+    getVariablesResponse_nextToken,+    getVariablesResponse_variables,+    getVariablesResponse_httpStatus,++    -- ** ListEventPredictions+    listEventPredictions_detectorId,+    listEventPredictions_detectorVersionId,+    listEventPredictions_eventId,+    listEventPredictions_eventType,+    listEventPredictions_maxResults,+    listEventPredictions_nextToken,+    listEventPredictions_predictionTimeRange,+    listEventPredictionsResponse_eventPredictionSummaries,+    listEventPredictionsResponse_nextToken,+    listEventPredictionsResponse_httpStatus,++    -- ** ListTagsForResource+    listTagsForResource_maxResults,+    listTagsForResource_nextToken,+    listTagsForResource_resourceARN,+    listTagsForResourceResponse_nextToken,+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,++    -- ** PutDetector+    putDetector_description,+    putDetector_tags,+    putDetector_detectorId,+    putDetector_eventTypeName,+    putDetectorResponse_httpStatus,++    -- ** PutEntityType+    putEntityType_description,+    putEntityType_tags,+    putEntityType_name,+    putEntityTypeResponse_httpStatus,++    -- ** PutEventType+    putEventType_description,+    putEventType_eventIngestion,+    putEventType_labels,+    putEventType_tags,+    putEventType_name,+    putEventType_eventVariables,+    putEventType_entityTypes,+    putEventTypeResponse_httpStatus,++    -- ** PutExternalModel+    putExternalModel_tags,+    putExternalModel_modelEndpoint,+    putExternalModel_modelSource,+    putExternalModel_invokeModelEndpointRoleArn,+    putExternalModel_inputConfiguration,+    putExternalModel_outputConfiguration,+    putExternalModel_modelEndpointStatus,+    putExternalModelResponse_httpStatus,++    -- ** PutKMSEncryptionKey+    putKMSEncryptionKey_kmsEncryptionKeyArn,+    putKMSEncryptionKeyResponse_httpStatus,++    -- ** PutLabel+    putLabel_description,+    putLabel_tags,+    putLabel_name,+    putLabelResponse_httpStatus,++    -- ** PutOutcome+    putOutcome_description,+    putOutcome_tags,+    putOutcome_name,+    putOutcomeResponse_httpStatus,++    -- ** SendEvent+    sendEvent_assignedLabel,+    sendEvent_labelTimestamp,+    sendEvent_eventId,+    sendEvent_eventTypeName,+    sendEvent_eventTimestamp,+    sendEvent_eventVariables,+    sendEvent_entities,+    sendEventResponse_httpStatus,++    -- ** TagResource+    tagResource_resourceARN,+    tagResource_tags,+    tagResourceResponse_httpStatus,++    -- ** UntagResource+    untagResource_resourceARN,+    untagResource_tagKeys,+    untagResourceResponse_httpStatus,++    -- ** UpdateDetectorVersion+    updateDetectorVersion_description,+    updateDetectorVersion_modelVersions,+    updateDetectorVersion_ruleExecutionMode,+    updateDetectorVersion_detectorId,+    updateDetectorVersion_detectorVersionId,+    updateDetectorVersion_externalModelEndpoints,+    updateDetectorVersion_rules,+    updateDetectorVersionResponse_httpStatus,++    -- ** UpdateDetectorVersionMetadata+    updateDetectorVersionMetadata_detectorId,+    updateDetectorVersionMetadata_detectorVersionId,+    updateDetectorVersionMetadata_description,+    updateDetectorVersionMetadataResponse_httpStatus,++    -- ** UpdateDetectorVersionStatus+    updateDetectorVersionStatus_detectorId,+    updateDetectorVersionStatus_detectorVersionId,+    updateDetectorVersionStatus_status,+    updateDetectorVersionStatusResponse_httpStatus,++    -- ** UpdateEventLabel+    updateEventLabel_eventId,+    updateEventLabel_eventTypeName,+    updateEventLabel_assignedLabel,+    updateEventLabel_labelTimestamp,+    updateEventLabelResponse_httpStatus,++    -- ** UpdateModel+    updateModel_description,+    updateModel_modelId,+    updateModel_modelType,+    updateModelResponse_httpStatus,++    -- ** UpdateModelVersion+    updateModelVersion_externalEventsDetail,+    updateModelVersion_ingestedEventsDetail,+    updateModelVersion_tags,+    updateModelVersion_modelId,+    updateModelVersion_modelType,+    updateModelVersion_majorVersionNumber,+    updateModelVersionResponse_modelId,+    updateModelVersionResponse_modelType,+    updateModelVersionResponse_modelVersionNumber,+    updateModelVersionResponse_status,+    updateModelVersionResponse_httpStatus,++    -- ** UpdateModelVersionStatus+    updateModelVersionStatus_modelId,+    updateModelVersionStatus_modelType,+    updateModelVersionStatus_modelVersionNumber,+    updateModelVersionStatus_status,+    updateModelVersionStatusResponse_httpStatus,++    -- ** UpdateRuleMetadata+    updateRuleMetadata_rule,+    updateRuleMetadata_description,+    updateRuleMetadataResponse_httpStatus,++    -- ** UpdateRuleVersion+    updateRuleVersion_description,+    updateRuleVersion_tags,+    updateRuleVersion_rule,+    updateRuleVersion_expression,+    updateRuleVersion_language,+    updateRuleVersion_outcomes,+    updateRuleVersionResponse_rule,+    updateRuleVersionResponse_httpStatus,++    -- ** UpdateVariable+    updateVariable_defaultValue,+    updateVariable_description,+    updateVariable_variableType,+    updateVariable_name,+    updateVariableResponse_httpStatus,++    -- * Types++    -- ** ATIMetricDataPoint+    aTIMetricDataPoint_adr,+    aTIMetricDataPoint_atodr,+    aTIMetricDataPoint_cr,+    aTIMetricDataPoint_threshold,++    -- ** ATIModelPerformance+    aTIModelPerformance_asi,++    -- ** ATITrainingMetricsValue+    aTITrainingMetricsValue_metricDataPoints,+    aTITrainingMetricsValue_modelPerformance,++    -- ** AggregatedLogOddsMetric+    aggregatedLogOddsMetric_variableNames,+    aggregatedLogOddsMetric_aggregatedVariablesImportance,++    -- ** AggregatedVariablesImpactExplanation+    aggregatedVariablesImpactExplanation_eventVariableNames,+    aggregatedVariablesImpactExplanation_logOddsImpact,+    aggregatedVariablesImpactExplanation_relativeImpact,++    -- ** AggregatedVariablesImportanceMetrics+    aggregatedVariablesImportanceMetrics_logOddsMetrics,++    -- ** BatchCreateVariableError+    batchCreateVariableError_code,+    batchCreateVariableError_message,+    batchCreateVariableError_name,++    -- ** BatchGetVariableError+    batchGetVariableError_code,+    batchGetVariableError_message,+    batchGetVariableError_name,++    -- ** BatchImport+    batchImport_arn,+    batchImport_completionTime,+    batchImport_eventTypeName,+    batchImport_failedRecordsCount,+    batchImport_failureReason,+    batchImport_iamRoleArn,+    batchImport_inputPath,+    batchImport_jobId,+    batchImport_outputPath,+    batchImport_processedRecordsCount,+    batchImport_startTime,+    batchImport_status,+    batchImport_totalRecordsCount,++    -- ** BatchPrediction+    batchPrediction_arn,+    batchPrediction_completionTime,+    batchPrediction_detectorName,+    batchPrediction_detectorVersion,+    batchPrediction_eventTypeName,+    batchPrediction_failureReason,+    batchPrediction_iamRoleArn,+    batchPrediction_inputPath,+    batchPrediction_jobId,+    batchPrediction_lastHeartbeatTime,+    batchPrediction_outputPath,+    batchPrediction_processedRecordsCount,+    batchPrediction_startTime,+    batchPrediction_status,+    batchPrediction_totalRecordsCount,++    -- ** DataValidationMetrics+    dataValidationMetrics_fieldLevelMessages,+    dataValidationMetrics_fileLevelMessages,++    -- ** Detector+    detector_arn,+    detector_createdTime,+    detector_description,+    detector_detectorId,+    detector_eventTypeName,+    detector_lastUpdatedTime,++    -- ** DetectorVersionSummary+    detectorVersionSummary_description,+    detectorVersionSummary_detectorVersionId,+    detectorVersionSummary_lastUpdatedTime,+    detectorVersionSummary_status,++    -- ** Entity+    entity_entityType,+    entity_entityId,++    -- ** EntityType+    entityType_arn,+    entityType_createdTime,+    entityType_description,+    entityType_lastUpdatedTime,+    entityType_name,++    -- ** EvaluatedExternalModel+    evaluatedExternalModel_inputVariables,+    evaluatedExternalModel_modelEndpoint,+    evaluatedExternalModel_outputVariables,+    evaluatedExternalModel_useEventVariables,++    -- ** EvaluatedModelVersion+    evaluatedModelVersion_evaluations,+    evaluatedModelVersion_modelId,+    evaluatedModelVersion_modelType,+    evaluatedModelVersion_modelVersion,++    -- ** EvaluatedRule+    evaluatedRule_evaluated,+    evaluatedRule_expression,+    evaluatedRule_expressionWithValues,+    evaluatedRule_matched,+    evaluatedRule_outcomes,+    evaluatedRule_ruleId,+    evaluatedRule_ruleVersion,++    -- ** Event+    event_currentLabel,+    event_entities,+    event_eventId,+    event_eventTimestamp,+    event_eventTypeName,+    event_eventVariables,+    event_labelTimestamp,++    -- ** EventPredictionSummary+    eventPredictionSummary_detectorId,+    eventPredictionSummary_detectorVersionId,+    eventPredictionSummary_eventId,+    eventPredictionSummary_eventTimestamp,+    eventPredictionSummary_eventTypeName,+    eventPredictionSummary_predictionTimestamp,++    -- ** EventType+    eventType_arn,+    eventType_createdTime,+    eventType_description,+    eventType_entityTypes,+    eventType_eventIngestion,+    eventType_eventVariables,+    eventType_ingestedEventStatistics,+    eventType_labels,+    eventType_lastUpdatedTime,+    eventType_name,++    -- ** EventVariableSummary+    eventVariableSummary_name,+    eventVariableSummary_source,+    eventVariableSummary_value,++    -- ** ExternalEventsDetail+    externalEventsDetail_dataLocation,+    externalEventsDetail_dataAccessRoleArn,++    -- ** ExternalModel+    externalModel_arn,+    externalModel_createdTime,+    externalModel_inputConfiguration,+    externalModel_invokeModelEndpointRoleArn,+    externalModel_lastUpdatedTime,+    externalModel_modelEndpoint,+    externalModel_modelEndpointStatus,+    externalModel_modelSource,+    externalModel_outputConfiguration,++    -- ** ExternalModelOutputs+    externalModelOutputs_externalModel,+    externalModelOutputs_outputs,++    -- ** ExternalModelSummary+    externalModelSummary_modelEndpoint,+    externalModelSummary_modelSource,++    -- ** FieldValidationMessage+    fieldValidationMessage_content,+    fieldValidationMessage_fieldName,+    fieldValidationMessage_identifier,+    fieldValidationMessage_title,+    fieldValidationMessage_type,++    -- ** FileValidationMessage+    fileValidationMessage_content,+    fileValidationMessage_title,+    fileValidationMessage_type,++    -- ** FilterCondition+    filterCondition_value,++    -- ** IngestedEventStatistics+    ingestedEventStatistics_eventDataSizeInBytes,+    ingestedEventStatistics_lastUpdatedTime,+    ingestedEventStatistics_leastRecentEvent,+    ingestedEventStatistics_mostRecentEvent,+    ingestedEventStatistics_numberOfEvents,++    -- ** IngestedEventsDetail+    ingestedEventsDetail_ingestedEventsTimeWindow,++    -- ** IngestedEventsTimeWindow+    ingestedEventsTimeWindow_startTime,+    ingestedEventsTimeWindow_endTime,++    -- ** KMSKey+    kmsKey_kmsEncryptionKeyArn,++    -- ** Label+    label_arn,+    label_createdTime,+    label_description,+    label_lastUpdatedTime,+    label_name,++    -- ** LabelSchema+    labelSchema_labelMapper,+    labelSchema_unlabeledEventsTreatment,++    -- ** LogOddsMetric+    logOddsMetric_variableName,+    logOddsMetric_variableType,+    logOddsMetric_variableImportance,++    -- ** MetricDataPoint+    metricDataPoint_fpr,+    metricDataPoint_precision,+    metricDataPoint_threshold,+    metricDataPoint_tpr,++    -- ** Model+    model_arn,+    model_createdTime,+    model_description,+    model_eventTypeName,+    model_lastUpdatedTime,+    model_modelId,+    model_modelType,++    -- ** ModelEndpointDataBlob+    modelEndpointDataBlob_byteBuffer,+    modelEndpointDataBlob_contentType,++    -- ** ModelInputConfiguration+    modelInputConfiguration_csvInputTemplate,+    modelInputConfiguration_eventTypeName,+    modelInputConfiguration_format,+    modelInputConfiguration_jsonInputTemplate,+    modelInputConfiguration_useEventVariables,++    -- ** ModelOutputConfiguration+    modelOutputConfiguration_csvIndexToVariableMap,+    modelOutputConfiguration_jsonKeyToVariableMap,+    modelOutputConfiguration_format,++    -- ** ModelScores+    modelScores_modelVersion,+    modelScores_scores,++    -- ** ModelVersion+    modelVersion_arn,+    modelVersion_modelId,+    modelVersion_modelType,+    modelVersion_modelVersionNumber,++    -- ** ModelVersionDetail+    modelVersionDetail_arn,+    modelVersionDetail_createdTime,+    modelVersionDetail_externalEventsDetail,+    modelVersionDetail_ingestedEventsDetail,+    modelVersionDetail_lastUpdatedTime,+    modelVersionDetail_modelId,+    modelVersionDetail_modelType,+    modelVersionDetail_modelVersionNumber,+    modelVersionDetail_status,+    modelVersionDetail_trainingDataSchema,+    modelVersionDetail_trainingDataSource,+    modelVersionDetail_trainingResult,+    modelVersionDetail_trainingResultV2,++    -- ** ModelVersionEvaluation+    modelVersionEvaluation_evaluationScore,+    modelVersionEvaluation_outputVariableName,+    modelVersionEvaluation_predictionExplanations,++    -- ** OFIMetricDataPoint+    oFIMetricDataPoint_fpr,+    oFIMetricDataPoint_precision,+    oFIMetricDataPoint_threshold,+    oFIMetricDataPoint_tpr,++    -- ** OFIModelPerformance+    oFIModelPerformance_auc,++    -- ** OFITrainingMetricsValue+    oFITrainingMetricsValue_metricDataPoints,+    oFITrainingMetricsValue_modelPerformance,++    -- ** Outcome+    outcome_arn,+    outcome_createdTime,+    outcome_description,+    outcome_lastUpdatedTime,+    outcome_name,++    -- ** PredictionExplanations+    predictionExplanations_aggregatedVariablesImpactExplanations,+    predictionExplanations_variableImpactExplanations,++    -- ** PredictionTimeRange+    predictionTimeRange_startTime,+    predictionTimeRange_endTime,++    -- ** Rule+    rule_detectorId,+    rule_ruleId,+    rule_ruleVersion,++    -- ** RuleDetail+    ruleDetail_arn,+    ruleDetail_createdTime,+    ruleDetail_description,+    ruleDetail_detectorId,+    ruleDetail_expression,+    ruleDetail_language,+    ruleDetail_lastUpdatedTime,+    ruleDetail_outcomes,+    ruleDetail_ruleId,+    ruleDetail_ruleVersion,++    -- ** RuleResult+    ruleResult_outcomes,+    ruleResult_ruleId,++    -- ** TFIMetricDataPoint+    tFIMetricDataPoint_fpr,+    tFIMetricDataPoint_precision,+    tFIMetricDataPoint_threshold,+    tFIMetricDataPoint_tpr,++    -- ** TFIModelPerformance+    tFIModelPerformance_auc,++    -- ** TFITrainingMetricsValue+    tFITrainingMetricsValue_metricDataPoints,+    tFITrainingMetricsValue_modelPerformance,++    -- ** Tag+    tag_key,+    tag_value,++    -- ** TrainingDataSchema+    trainingDataSchema_labelSchema,+    trainingDataSchema_modelVariables,++    -- ** TrainingMetrics+    trainingMetrics_auc,+    trainingMetrics_metricDataPoints,++    -- ** TrainingMetricsV2+    trainingMetricsV2_ati,+    trainingMetricsV2_ofi,+    trainingMetricsV2_tfi,++    -- ** TrainingResult+    trainingResult_dataValidationMetrics,+    trainingResult_trainingMetrics,+    trainingResult_variableImportanceMetrics,++    -- ** TrainingResultV2+    trainingResultV2_aggregatedVariablesImportanceMetrics,+    trainingResultV2_dataValidationMetrics,+    trainingResultV2_trainingMetricsV2,+    trainingResultV2_variableImportanceMetrics,++    -- ** Variable+    variable_arn,+    variable_createdTime,+    variable_dataSource,+    variable_dataType,+    variable_defaultValue,+    variable_description,+    variable_lastUpdatedTime,+    variable_name,+    variable_variableType,++    -- ** VariableEntry+    variableEntry_dataSource,+    variableEntry_dataType,+    variableEntry_defaultValue,+    variableEntry_description,+    variableEntry_name,+    variableEntry_variableType,++    -- ** VariableImpactExplanation+    variableImpactExplanation_eventVariableName,+    variableImpactExplanation_logOddsImpact,+    variableImpactExplanation_relativeImpact,++    -- ** VariableImportanceMetrics+    variableImportanceMetrics_logOddsMetrics,+  )+where++import Amazonka.FraudDetector.BatchCreateVariable+import Amazonka.FraudDetector.BatchGetVariable+import Amazonka.FraudDetector.CancelBatchImportJob+import Amazonka.FraudDetector.CancelBatchPredictionJob+import Amazonka.FraudDetector.CreateBatchImportJob+import Amazonka.FraudDetector.CreateBatchPredictionJob+import Amazonka.FraudDetector.CreateDetectorVersion+import Amazonka.FraudDetector.CreateModel+import Amazonka.FraudDetector.CreateModelVersion+import Amazonka.FraudDetector.CreateRule+import Amazonka.FraudDetector.CreateVariable+import Amazonka.FraudDetector.DeleteBatchImportJob+import Amazonka.FraudDetector.DeleteBatchPredictionJob+import Amazonka.FraudDetector.DeleteDetector+import Amazonka.FraudDetector.DeleteDetectorVersion+import Amazonka.FraudDetector.DeleteEntityType+import Amazonka.FraudDetector.DeleteEvent+import Amazonka.FraudDetector.DeleteEventType+import Amazonka.FraudDetector.DeleteEventsByEventType+import Amazonka.FraudDetector.DeleteExternalModel+import Amazonka.FraudDetector.DeleteLabel+import Amazonka.FraudDetector.DeleteModel+import Amazonka.FraudDetector.DeleteModelVersion+import Amazonka.FraudDetector.DeleteOutcome+import Amazonka.FraudDetector.DeleteRule+import Amazonka.FraudDetector.DeleteVariable+import Amazonka.FraudDetector.DescribeDetector+import Amazonka.FraudDetector.DescribeModelVersions+import Amazonka.FraudDetector.GetBatchImportJobs+import Amazonka.FraudDetector.GetBatchPredictionJobs+import Amazonka.FraudDetector.GetDeleteEventsByEventTypeStatus+import Amazonka.FraudDetector.GetDetectorVersion+import Amazonka.FraudDetector.GetDetectors+import Amazonka.FraudDetector.GetEntityTypes+import Amazonka.FraudDetector.GetEvent+import Amazonka.FraudDetector.GetEventPrediction+import Amazonka.FraudDetector.GetEventPredictionMetadata+import Amazonka.FraudDetector.GetEventTypes+import Amazonka.FraudDetector.GetExternalModels+import Amazonka.FraudDetector.GetKMSEncryptionKey+import Amazonka.FraudDetector.GetLabels+import Amazonka.FraudDetector.GetModelVersion+import Amazonka.FraudDetector.GetModels+import Amazonka.FraudDetector.GetOutcomes+import Amazonka.FraudDetector.GetRules+import Amazonka.FraudDetector.GetVariables+import Amazonka.FraudDetector.ListEventPredictions+import Amazonka.FraudDetector.ListTagsForResource+import Amazonka.FraudDetector.PutDetector+import Amazonka.FraudDetector.PutEntityType+import Amazonka.FraudDetector.PutEventType+import Amazonka.FraudDetector.PutExternalModel+import Amazonka.FraudDetector.PutKMSEncryptionKey+import Amazonka.FraudDetector.PutLabel+import Amazonka.FraudDetector.PutOutcome+import Amazonka.FraudDetector.SendEvent+import Amazonka.FraudDetector.TagResource+import Amazonka.FraudDetector.Types.ATIMetricDataPoint+import Amazonka.FraudDetector.Types.ATIModelPerformance+import Amazonka.FraudDetector.Types.ATITrainingMetricsValue+import Amazonka.FraudDetector.Types.AggregatedLogOddsMetric+import Amazonka.FraudDetector.Types.AggregatedVariablesImpactExplanation+import Amazonka.FraudDetector.Types.AggregatedVariablesImportanceMetrics+import Amazonka.FraudDetector.Types.BatchCreateVariableError+import Amazonka.FraudDetector.Types.BatchGetVariableError+import Amazonka.FraudDetector.Types.BatchImport+import Amazonka.FraudDetector.Types.BatchPrediction+import Amazonka.FraudDetector.Types.DataValidationMetrics+import Amazonka.FraudDetector.Types.Detector+import Amazonka.FraudDetector.Types.DetectorVersionSummary+import Amazonka.FraudDetector.Types.Entity+import Amazonka.FraudDetector.Types.EntityType+import Amazonka.FraudDetector.Types.EvaluatedExternalModel+import Amazonka.FraudDetector.Types.EvaluatedModelVersion+import Amazonka.FraudDetector.Types.EvaluatedRule+import Amazonka.FraudDetector.Types.Event+import Amazonka.FraudDetector.Types.EventPredictionSummary+import Amazonka.FraudDetector.Types.EventType+import Amazonka.FraudDetector.Types.EventVariableSummary+import Amazonka.FraudDetector.Types.ExternalEventsDetail+import Amazonka.FraudDetector.Types.ExternalModel+import Amazonka.FraudDetector.Types.ExternalModelOutputs+import Amazonka.FraudDetector.Types.ExternalModelSummary+import Amazonka.FraudDetector.Types.FieldValidationMessage+import Amazonka.FraudDetector.Types.FileValidationMessage+import Amazonka.FraudDetector.Types.FilterCondition+import Amazonka.FraudDetector.Types.IngestedEventStatistics+import Amazonka.FraudDetector.Types.IngestedEventsDetail+import Amazonka.FraudDetector.Types.IngestedEventsTimeWindow+import Amazonka.FraudDetector.Types.KMSKey+import Amazonka.FraudDetector.Types.Label+import Amazonka.FraudDetector.Types.LabelSchema+import Amazonka.FraudDetector.Types.LogOddsMetric+import Amazonka.FraudDetector.Types.MetricDataPoint+import Amazonka.FraudDetector.Types.Model+import Amazonka.FraudDetector.Types.ModelEndpointDataBlob+import Amazonka.FraudDetector.Types.ModelInputConfiguration+import Amazonka.FraudDetector.Types.ModelOutputConfiguration+import Amazonka.FraudDetector.Types.ModelScores+import Amazonka.FraudDetector.Types.ModelVersion+import Amazonka.FraudDetector.Types.ModelVersionDetail+import Amazonka.FraudDetector.Types.ModelVersionEvaluation+import Amazonka.FraudDetector.Types.OFIMetricDataPoint+import Amazonka.FraudDetector.Types.OFIModelPerformance+import Amazonka.FraudDetector.Types.OFITrainingMetricsValue+import Amazonka.FraudDetector.Types.Outcome+import Amazonka.FraudDetector.Types.PredictionExplanations+import Amazonka.FraudDetector.Types.PredictionTimeRange+import Amazonka.FraudDetector.Types.Rule+import Amazonka.FraudDetector.Types.RuleDetail+import Amazonka.FraudDetector.Types.RuleResult+import Amazonka.FraudDetector.Types.TFIMetricDataPoint+import Amazonka.FraudDetector.Types.TFIModelPerformance+import Amazonka.FraudDetector.Types.TFITrainingMetricsValue+import Amazonka.FraudDetector.Types.Tag+import Amazonka.FraudDetector.Types.TrainingDataSchema+import Amazonka.FraudDetector.Types.TrainingMetrics+import Amazonka.FraudDetector.Types.TrainingMetricsV2+import Amazonka.FraudDetector.Types.TrainingResult+import Amazonka.FraudDetector.Types.TrainingResultV2+import Amazonka.FraudDetector.Types.Variable+import Amazonka.FraudDetector.Types.VariableEntry+import Amazonka.FraudDetector.Types.VariableImpactExplanation+import Amazonka.FraudDetector.Types.VariableImportanceMetrics+import Amazonka.FraudDetector.UntagResource+import Amazonka.FraudDetector.UpdateDetectorVersion+import Amazonka.FraudDetector.UpdateDetectorVersionMetadata+import Amazonka.FraudDetector.UpdateDetectorVersionStatus+import Amazonka.FraudDetector.UpdateEventLabel+import Amazonka.FraudDetector.UpdateModel+import Amazonka.FraudDetector.UpdateModelVersion+import Amazonka.FraudDetector.UpdateModelVersionStatus+import Amazonka.FraudDetector.UpdateRuleMetadata+import Amazonka.FraudDetector.UpdateRuleVersion+import Amazonka.FraudDetector.UpdateVariable
+ gen/Amazonka/FraudDetector/ListEventPredictions.hs view
@@ -0,0 +1,290 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.ListEventPredictions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a list of past predictions. The list can be filtered by detector+-- ID, detector version ID, event ID, event type, or by specifying a time+-- period. If filter is not specified, the most recent prediction is+-- returned.+--+-- For example, the following filter lists all past predictions for @xyz@+-- event type - @{ \"eventType\":{ \"value\": \"xyz\" }” } @+--+-- This is a paginated API. If you provide a null @maxResults@, this action+-- will retrieve a maximum of 10 records per page. If you provide a+-- @maxResults@, the value must be between 50 and 100. To get the next page+-- results, provide the @nextToken@ from the response as part of your+-- request. A null @nextToken@ fetches the records from the beginning.+module Amazonka.FraudDetector.ListEventPredictions+  ( -- * Creating a Request+    ListEventPredictions (..),+    newListEventPredictions,++    -- * Request Lenses+    listEventPredictions_detectorId,+    listEventPredictions_detectorVersionId,+    listEventPredictions_eventId,+    listEventPredictions_eventType,+    listEventPredictions_maxResults,+    listEventPredictions_nextToken,+    listEventPredictions_predictionTimeRange,++    -- * Destructuring the Response+    ListEventPredictionsResponse (..),+    newListEventPredictionsResponse,++    -- * Response Lenses+    listEventPredictionsResponse_eventPredictionSummaries,+    listEventPredictionsResponse_nextToken,+    listEventPredictionsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListEventPredictions' smart constructor.+data ListEventPredictions = ListEventPredictions'+  { -- | The detector ID.+    detectorId :: Prelude.Maybe FilterCondition,+    -- | The detector version ID.+    detectorVersionId :: Prelude.Maybe FilterCondition,+    -- | The event ID.+    eventId :: Prelude.Maybe FilterCondition,+    -- | The event type associated with the detector.+    eventType :: Prelude.Maybe FilterCondition,+    -- | The maximum number of predictions to return for the request.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Identifies the next page of results to return. Use the token to make the+    -- call again to retrieve the next page. Keep all other arguments+    -- unchanged. Each pagination token expires after 24 hours.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The time period for when the predictions were generated.+    predictionTimeRange :: Prelude.Maybe PredictionTimeRange+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListEventPredictions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'detectorId', 'listEventPredictions_detectorId' - The detector ID.+--+-- 'detectorVersionId', 'listEventPredictions_detectorVersionId' - The detector version ID.+--+-- 'eventId', 'listEventPredictions_eventId' - The event ID.+--+-- 'eventType', 'listEventPredictions_eventType' - The event type associated with the detector.+--+-- 'maxResults', 'listEventPredictions_maxResults' - The maximum number of predictions to return for the request.+--+-- 'nextToken', 'listEventPredictions_nextToken' - Identifies the next page of results to return. Use the token to make the+-- call again to retrieve the next page. Keep all other arguments+-- unchanged. Each pagination token expires after 24 hours.+--+-- 'predictionTimeRange', 'listEventPredictions_predictionTimeRange' - The time period for when the predictions were generated.+newListEventPredictions ::+  ListEventPredictions+newListEventPredictions =+  ListEventPredictions'+    { detectorId = Prelude.Nothing,+      detectorVersionId = Prelude.Nothing,+      eventId = Prelude.Nothing,+      eventType = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      predictionTimeRange = Prelude.Nothing+    }++-- | The detector ID.+listEventPredictions_detectorId :: Lens.Lens' ListEventPredictions (Prelude.Maybe FilterCondition)+listEventPredictions_detectorId = Lens.lens (\ListEventPredictions' {detectorId} -> detectorId) (\s@ListEventPredictions' {} a -> s {detectorId = a} :: ListEventPredictions)++-- | The detector version ID.+listEventPredictions_detectorVersionId :: Lens.Lens' ListEventPredictions (Prelude.Maybe FilterCondition)+listEventPredictions_detectorVersionId = Lens.lens (\ListEventPredictions' {detectorVersionId} -> detectorVersionId) (\s@ListEventPredictions' {} a -> s {detectorVersionId = a} :: ListEventPredictions)++-- | The event ID.+listEventPredictions_eventId :: Lens.Lens' ListEventPredictions (Prelude.Maybe FilterCondition)+listEventPredictions_eventId = Lens.lens (\ListEventPredictions' {eventId} -> eventId) (\s@ListEventPredictions' {} a -> s {eventId = a} :: ListEventPredictions)++-- | The event type associated with the detector.+listEventPredictions_eventType :: Lens.Lens' ListEventPredictions (Prelude.Maybe FilterCondition)+listEventPredictions_eventType = Lens.lens (\ListEventPredictions' {eventType} -> eventType) (\s@ListEventPredictions' {} a -> s {eventType = a} :: ListEventPredictions)++-- | The maximum number of predictions to return for the request.+listEventPredictions_maxResults :: Lens.Lens' ListEventPredictions (Prelude.Maybe Prelude.Natural)+listEventPredictions_maxResults = Lens.lens (\ListEventPredictions' {maxResults} -> maxResults) (\s@ListEventPredictions' {} a -> s {maxResults = a} :: ListEventPredictions)++-- | Identifies the next page of results to return. Use the token to make the+-- call again to retrieve the next page. Keep all other arguments+-- unchanged. Each pagination token expires after 24 hours.+listEventPredictions_nextToken :: Lens.Lens' ListEventPredictions (Prelude.Maybe Prelude.Text)+listEventPredictions_nextToken = Lens.lens (\ListEventPredictions' {nextToken} -> nextToken) (\s@ListEventPredictions' {} a -> s {nextToken = a} :: ListEventPredictions)++-- | The time period for when the predictions were generated.+listEventPredictions_predictionTimeRange :: Lens.Lens' ListEventPredictions (Prelude.Maybe PredictionTimeRange)+listEventPredictions_predictionTimeRange = Lens.lens (\ListEventPredictions' {predictionTimeRange} -> predictionTimeRange) (\s@ListEventPredictions' {} a -> s {predictionTimeRange = a} :: ListEventPredictions)++instance Core.AWSRequest ListEventPredictions where+  type+    AWSResponse ListEventPredictions =+      ListEventPredictionsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListEventPredictionsResponse'+            Prelude.<$> ( x+                            Data..?> "eventPredictionSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListEventPredictions where+  hashWithSalt _salt ListEventPredictions' {..} =+    _salt+      `Prelude.hashWithSalt` detectorId+      `Prelude.hashWithSalt` detectorVersionId+      `Prelude.hashWithSalt` eventId+      `Prelude.hashWithSalt` eventType+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` predictionTimeRange++instance Prelude.NFData ListEventPredictions where+  rnf ListEventPredictions' {..} =+    Prelude.rnf detectorId+      `Prelude.seq` Prelude.rnf detectorVersionId+      `Prelude.seq` Prelude.rnf eventId+      `Prelude.seq` Prelude.rnf eventType+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf predictionTimeRange++instance Data.ToHeaders ListEventPredictions where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.ListEventPredictions" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListEventPredictions where+  toJSON ListEventPredictions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("detectorId" Data..=) Prelude.<$> detectorId,+            ("detectorVersionId" Data..=)+              Prelude.<$> detectorVersionId,+            ("eventId" Data..=) Prelude.<$> eventId,+            ("eventType" Data..=) Prelude.<$> eventType,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("predictionTimeRange" Data..=)+              Prelude.<$> predictionTimeRange+          ]+      )++instance Data.ToPath ListEventPredictions where+  toPath = Prelude.const "/"++instance Data.ToQuery ListEventPredictions where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListEventPredictionsResponse' smart constructor.+data ListEventPredictionsResponse = ListEventPredictionsResponse'+  { -- | The summary of the past predictions.+    eventPredictionSummaries :: Prelude.Maybe [EventPredictionSummary],+    -- | Identifies the next page of results to return. Use the token to make the+    -- call again to retrieve the next page. Keep all other arguments+    -- unchanged. Each pagination token expires after 24 hours.+    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 'ListEventPredictionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventPredictionSummaries', 'listEventPredictionsResponse_eventPredictionSummaries' - The summary of the past predictions.+--+-- 'nextToken', 'listEventPredictionsResponse_nextToken' - Identifies the next page of results to return. Use the token to make the+-- call again to retrieve the next page. Keep all other arguments+-- unchanged. Each pagination token expires after 24 hours.+--+-- 'httpStatus', 'listEventPredictionsResponse_httpStatus' - The response's http status code.+newListEventPredictionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListEventPredictionsResponse+newListEventPredictionsResponse pHttpStatus_ =+  ListEventPredictionsResponse'+    { eventPredictionSummaries =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The summary of the past predictions.+listEventPredictionsResponse_eventPredictionSummaries :: Lens.Lens' ListEventPredictionsResponse (Prelude.Maybe [EventPredictionSummary])+listEventPredictionsResponse_eventPredictionSummaries = Lens.lens (\ListEventPredictionsResponse' {eventPredictionSummaries} -> eventPredictionSummaries) (\s@ListEventPredictionsResponse' {} a -> s {eventPredictionSummaries = a} :: ListEventPredictionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | Identifies the next page of results to return. Use the token to make the+-- call again to retrieve the next page. Keep all other arguments+-- unchanged. Each pagination token expires after 24 hours.+listEventPredictionsResponse_nextToken :: Lens.Lens' ListEventPredictionsResponse (Prelude.Maybe Prelude.Text)+listEventPredictionsResponse_nextToken = Lens.lens (\ListEventPredictionsResponse' {nextToken} -> nextToken) (\s@ListEventPredictionsResponse' {} a -> s {nextToken = a} :: ListEventPredictionsResponse)++-- | The response's http status code.+listEventPredictionsResponse_httpStatus :: Lens.Lens' ListEventPredictionsResponse Prelude.Int+listEventPredictionsResponse_httpStatus = Lens.lens (\ListEventPredictionsResponse' {httpStatus} -> httpStatus) (\s@ListEventPredictionsResponse' {} a -> s {httpStatus = a} :: ListEventPredictionsResponse)++instance Prelude.NFData ListEventPredictionsResponse where+  rnf ListEventPredictionsResponse' {..} =+    Prelude.rnf eventPredictionSummaries+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/ListTagsForResource.hs view
@@ -0,0 +1,214 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.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)+--+-- Lists all tags associated with the resource. This is a paginated API. To+-- get the next page results, provide the pagination token from the+-- response as part of your request. A null pagination token fetches the+-- records from the beginning.+module Amazonka.FraudDetector.ListTagsForResource+  ( -- * Creating a Request+    ListTagsForResource (..),+    newListTagsForResource,++    -- * Request Lenses+    listTagsForResource_maxResults,+    listTagsForResource_nextToken,+    listTagsForResource_resourceARN,++    -- * Destructuring the Response+    ListTagsForResourceResponse (..),+    newListTagsForResourceResponse,++    -- * Response Lenses+    listTagsForResourceResponse_nextToken,+    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.FraudDetector.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 maximum number of objects to return for the request.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The next token from the previous results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The ARN that specifies the resource whose tags you want to list.+    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:+--+-- 'maxResults', 'listTagsForResource_maxResults' - The maximum number of objects to return for the request.+--+-- 'nextToken', 'listTagsForResource_nextToken' - The next token from the previous results.+--+-- 'resourceARN', 'listTagsForResource_resourceARN' - The ARN that specifies the resource whose tags you want to list.+newListTagsForResource ::+  -- | 'resourceARN'+  Prelude.Text ->+  ListTagsForResource+newListTagsForResource pResourceARN_ =+  ListTagsForResource'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      resourceARN = pResourceARN_+    }++-- | The maximum number of objects to return for the request.+listTagsForResource_maxResults :: Lens.Lens' ListTagsForResource (Prelude.Maybe Prelude.Natural)+listTagsForResource_maxResults = Lens.lens (\ListTagsForResource' {maxResults} -> maxResults) (\s@ListTagsForResource' {} a -> s {maxResults = a} :: ListTagsForResource)++-- | The next token from the previous results.+listTagsForResource_nextToken :: Lens.Lens' ListTagsForResource (Prelude.Maybe Prelude.Text)+listTagsForResource_nextToken = Lens.lens (\ListTagsForResource' {nextToken} -> nextToken) (\s@ListTagsForResource' {} a -> s {nextToken = a} :: ListTagsForResource)++-- | The ARN that specifies the resource whose tags you want to list.+listTagsForResource_resourceARN :: Lens.Lens' ListTagsForResource Prelude.Text+listTagsForResource_resourceARN = Lens.lens (\ListTagsForResource' {resourceARN} -> resourceARN) (\s@ListTagsForResource' {} a -> s {resourceARN = a} :: ListTagsForResource)++instance Core.AWSRequest ListTagsForResource where+  type+    AWSResponse ListTagsForResource =+      ListTagsForResourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListTagsForResourceResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListTagsForResource where+  hashWithSalt _salt ListTagsForResource' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` resourceARN++instance Prelude.NFData ListTagsForResource where+  rnf ListTagsForResource' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf resourceARN++instance Data.ToHeaders ListTagsForResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.ListTagsForResource" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListTagsForResource where+  toJSON ListTagsForResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just ("resourceARN" Data..= resourceARN)+          ]+      )++instance Data.ToPath ListTagsForResource where+  toPath = Prelude.const "/"++instance Data.ToQuery ListTagsForResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListTagsForResourceResponse' smart constructor.+data ListTagsForResourceResponse = ListTagsForResourceResponse'+  { -- | The next token for subsequent requests.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A collection of key and value pairs.+    tags :: Prelude.Maybe [Tag],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listTagsForResourceResponse_nextToken' - The next token for subsequent requests.+--+-- 'tags', 'listTagsForResourceResponse_tags' - A collection of key and value pairs.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+  ListTagsForResourceResponse'+    { nextToken =+        Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The next token for subsequent requests.+listTagsForResourceResponse_nextToken :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe Prelude.Text)+listTagsForResourceResponse_nextToken = Lens.lens (\ListTagsForResourceResponse' {nextToken} -> nextToken) (\s@ListTagsForResourceResponse' {} a -> s {nextToken = a} :: ListTagsForResourceResponse)++-- | A collection of key and value pairs.+listTagsForResourceResponse_tags :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe [Tag])+listTagsForResourceResponse_tags = Lens.lens (\ListTagsForResourceResponse' {tags} -> tags) (\s@ListTagsForResourceResponse' {} a -> s {tags = a} :: ListTagsForResourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listTagsForResourceResponse_httpStatus :: Lens.Lens' ListTagsForResourceResponse Prelude.Int+listTagsForResourceResponse_httpStatus = Lens.lens (\ListTagsForResourceResponse' {httpStatus} -> httpStatus) (\s@ListTagsForResourceResponse' {} a -> s {httpStatus = a} :: ListTagsForResourceResponse)++instance Prelude.NFData ListTagsForResourceResponse where+  rnf ListTagsForResourceResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/PutDetector.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.FraudDetector.PutDetector+-- 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 a detector.+module Amazonka.FraudDetector.PutDetector+  ( -- * Creating a Request+    PutDetector (..),+    newPutDetector,++    -- * Request Lenses+    putDetector_description,+    putDetector_tags,+    putDetector_detectorId,+    putDetector_eventTypeName,++    -- * Destructuring the Response+    PutDetectorResponse (..),+    newPutDetectorResponse,++    -- * Response Lenses+    putDetectorResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newPutDetector' smart constructor.+data PutDetector = PutDetector'+  { -- | The description of the detector.+    description :: Prelude.Maybe Prelude.Text,+    -- | A collection of key and value pairs.+    tags :: Prelude.Maybe [Tag],+    -- | The detector ID.+    detectorId :: Prelude.Text,+    -- | The name of the event type.+    eventTypeName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutDetector' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putDetector_description' - The description of the detector.+--+-- 'tags', 'putDetector_tags' - A collection of key and value pairs.+--+-- 'detectorId', 'putDetector_detectorId' - The detector ID.+--+-- 'eventTypeName', 'putDetector_eventTypeName' - The name of the event type.+newPutDetector ::+  -- | 'detectorId'+  Prelude.Text ->+  -- | 'eventTypeName'+  Prelude.Text ->+  PutDetector+newPutDetector pDetectorId_ pEventTypeName_ =+  PutDetector'+    { description = Prelude.Nothing,+      tags = Prelude.Nothing,+      detectorId = pDetectorId_,+      eventTypeName = pEventTypeName_+    }++-- | The description of the detector.+putDetector_description :: Lens.Lens' PutDetector (Prelude.Maybe Prelude.Text)+putDetector_description = Lens.lens (\PutDetector' {description} -> description) (\s@PutDetector' {} a -> s {description = a} :: PutDetector)++-- | A collection of key and value pairs.+putDetector_tags :: Lens.Lens' PutDetector (Prelude.Maybe [Tag])+putDetector_tags = Lens.lens (\PutDetector' {tags} -> tags) (\s@PutDetector' {} a -> s {tags = a} :: PutDetector) Prelude.. Lens.mapping Lens.coerced++-- | The detector ID.+putDetector_detectorId :: Lens.Lens' PutDetector Prelude.Text+putDetector_detectorId = Lens.lens (\PutDetector' {detectorId} -> detectorId) (\s@PutDetector' {} a -> s {detectorId = a} :: PutDetector)++-- | The name of the event type.+putDetector_eventTypeName :: Lens.Lens' PutDetector Prelude.Text+putDetector_eventTypeName = Lens.lens (\PutDetector' {eventTypeName} -> eventTypeName) (\s@PutDetector' {} a -> s {eventTypeName = a} :: PutDetector)++instance Core.AWSRequest PutDetector where+  type AWSResponse PutDetector = PutDetectorResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          PutDetectorResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable PutDetector where+  hashWithSalt _salt PutDetector' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` detectorId+      `Prelude.hashWithSalt` eventTypeName++instance Prelude.NFData PutDetector where+  rnf PutDetector' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf detectorId+      `Prelude.seq` Prelude.rnf eventTypeName++instance Data.ToHeaders PutDetector where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.PutDetector" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON PutDetector where+  toJSON PutDetector' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("detectorId" Data..= detectorId),+            Prelude.Just+              ("eventTypeName" Data..= eventTypeName)+          ]+      )++instance Data.ToPath PutDetector where+  toPath = Prelude.const "/"++instance Data.ToQuery PutDetector where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPutDetectorResponse' smart constructor.+data PutDetectorResponse = PutDetectorResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutDetectorResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putDetectorResponse_httpStatus' - The response's http status code.+newPutDetectorResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  PutDetectorResponse+newPutDetectorResponse pHttpStatus_ =+  PutDetectorResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+putDetectorResponse_httpStatus :: Lens.Lens' PutDetectorResponse Prelude.Int+putDetectorResponse_httpStatus = Lens.lens (\PutDetectorResponse' {httpStatus} -> httpStatus) (\s@PutDetectorResponse' {} a -> s {httpStatus = a} :: PutDetectorResponse)++instance Prelude.NFData PutDetectorResponse where+  rnf PutDetectorResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/PutEntityType.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.FraudDetector.PutEntityType+-- 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 an entity type. An entity represents who is+-- performing the event. As part of a fraud prediction, you pass the entity+-- ID to indicate the specific entity who performed the event. An entity+-- type classifies the entity. Example classifications include customer,+-- merchant, or account.+module Amazonka.FraudDetector.PutEntityType+  ( -- * Creating a Request+    PutEntityType (..),+    newPutEntityType,++    -- * Request Lenses+    putEntityType_description,+    putEntityType_tags,+    putEntityType_name,++    -- * Destructuring the Response+    PutEntityTypeResponse (..),+    newPutEntityTypeResponse,++    -- * Response Lenses+    putEntityTypeResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newPutEntityType' smart constructor.+data PutEntityType = PutEntityType'+  { -- | The description.+    description :: Prelude.Maybe Prelude.Text,+    -- | A collection of key and value pairs.+    tags :: Prelude.Maybe [Tag],+    -- | The name of the entity type.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutEntityType' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putEntityType_description' - The description.+--+-- 'tags', 'putEntityType_tags' - A collection of key and value pairs.+--+-- 'name', 'putEntityType_name' - The name of the entity type.+newPutEntityType ::+  -- | 'name'+  Prelude.Text ->+  PutEntityType+newPutEntityType pName_ =+  PutEntityType'+    { description = Prelude.Nothing,+      tags = Prelude.Nothing,+      name = pName_+    }++-- | The description.+putEntityType_description :: Lens.Lens' PutEntityType (Prelude.Maybe Prelude.Text)+putEntityType_description = Lens.lens (\PutEntityType' {description} -> description) (\s@PutEntityType' {} a -> s {description = a} :: PutEntityType)++-- | A collection of key and value pairs.+putEntityType_tags :: Lens.Lens' PutEntityType (Prelude.Maybe [Tag])+putEntityType_tags = Lens.lens (\PutEntityType' {tags} -> tags) (\s@PutEntityType' {} a -> s {tags = a} :: PutEntityType) Prelude.. Lens.mapping Lens.coerced++-- | The name of the entity type.+putEntityType_name :: Lens.Lens' PutEntityType Prelude.Text+putEntityType_name = Lens.lens (\PutEntityType' {name} -> name) (\s@PutEntityType' {} a -> s {name = a} :: PutEntityType)++instance Core.AWSRequest PutEntityType where+  type+    AWSResponse PutEntityType =+      PutEntityTypeResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          PutEntityTypeResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable PutEntityType where+  hashWithSalt _salt PutEntityType' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name++instance Prelude.NFData PutEntityType where+  rnf PutEntityType' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders PutEntityType where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.PutEntityType" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON PutEntityType where+  toJSON PutEntityType' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("name" Data..= name)+          ]+      )++instance Data.ToPath PutEntityType where+  toPath = Prelude.const "/"++instance Data.ToQuery PutEntityType where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPutEntityTypeResponse' smart constructor.+data PutEntityTypeResponse = PutEntityTypeResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutEntityTypeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putEntityTypeResponse_httpStatus' - The response's http status code.+newPutEntityTypeResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  PutEntityTypeResponse+newPutEntityTypeResponse pHttpStatus_ =+  PutEntityTypeResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+putEntityTypeResponse_httpStatus :: Lens.Lens' PutEntityTypeResponse Prelude.Int+putEntityTypeResponse_httpStatus = Lens.lens (\PutEntityTypeResponse' {httpStatus} -> httpStatus) (\s@PutEntityTypeResponse' {} a -> s {httpStatus = a} :: PutEntityTypeResponse)++instance Prelude.NFData PutEntityTypeResponse where+  rnf PutEntityTypeResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/PutEventType.hs view
@@ -0,0 +1,250 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.PutEventType+-- 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 an event type. An event is a business activity that+-- is evaluated for fraud risk. With Amazon Fraud Detector, you generate+-- fraud predictions for events. An event type defines the structure for an+-- event sent to Amazon Fraud Detector. This includes the variables sent as+-- part of the event, the entity performing the event (such as a customer),+-- and the labels that classify the event. Example event types include+-- online payment transactions, account registrations, and authentications.+module Amazonka.FraudDetector.PutEventType+  ( -- * Creating a Request+    PutEventType (..),+    newPutEventType,++    -- * Request Lenses+    putEventType_description,+    putEventType_eventIngestion,+    putEventType_labels,+    putEventType_tags,+    putEventType_name,+    putEventType_eventVariables,+    putEventType_entityTypes,++    -- * Destructuring the Response+    PutEventTypeResponse (..),+    newPutEventTypeResponse,++    -- * Response Lenses+    putEventTypeResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newPutEventType' smart constructor.+data PutEventType = PutEventType'+  { -- | The description of the event type.+    description :: Prelude.Maybe Prelude.Text,+    -- | Specifies if ingenstion is enabled or disabled.+    eventIngestion :: Prelude.Maybe EventIngestion,+    -- | The event type labels.+    labels :: Prelude.Maybe [Prelude.Text],+    -- | A collection of key and value pairs.+    tags :: Prelude.Maybe [Tag],+    -- | The name.+    name :: Prelude.Text,+    -- | The event type variables.+    eventVariables :: Prelude.NonEmpty Prelude.Text,+    -- | The entity type for the event type. Example entity types: customer,+    -- merchant, account.+    entityTypes :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutEventType' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putEventType_description' - The description of the event type.+--+-- 'eventIngestion', 'putEventType_eventIngestion' - Specifies if ingenstion is enabled or disabled.+--+-- 'labels', 'putEventType_labels' - The event type labels.+--+-- 'tags', 'putEventType_tags' - A collection of key and value pairs.+--+-- 'name', 'putEventType_name' - The name.+--+-- 'eventVariables', 'putEventType_eventVariables' - The event type variables.+--+-- 'entityTypes', 'putEventType_entityTypes' - The entity type for the event type. Example entity types: customer,+-- merchant, account.+newPutEventType ::+  -- | 'name'+  Prelude.Text ->+  -- | 'eventVariables'+  Prelude.NonEmpty Prelude.Text ->+  -- | 'entityTypes'+  Prelude.NonEmpty Prelude.Text ->+  PutEventType+newPutEventType pName_ pEventVariables_ pEntityTypes_ =+  PutEventType'+    { description = Prelude.Nothing,+      eventIngestion = Prelude.Nothing,+      labels = Prelude.Nothing,+      tags = Prelude.Nothing,+      name = pName_,+      eventVariables =+        Lens.coerced Lens.# pEventVariables_,+      entityTypes = Lens.coerced Lens.# pEntityTypes_+    }++-- | The description of the event type.+putEventType_description :: Lens.Lens' PutEventType (Prelude.Maybe Prelude.Text)+putEventType_description = Lens.lens (\PutEventType' {description} -> description) (\s@PutEventType' {} a -> s {description = a} :: PutEventType)++-- | Specifies if ingenstion is enabled or disabled.+putEventType_eventIngestion :: Lens.Lens' PutEventType (Prelude.Maybe EventIngestion)+putEventType_eventIngestion = Lens.lens (\PutEventType' {eventIngestion} -> eventIngestion) (\s@PutEventType' {} a -> s {eventIngestion = a} :: PutEventType)++-- | The event type labels.+putEventType_labels :: Lens.Lens' PutEventType (Prelude.Maybe [Prelude.Text])+putEventType_labels = Lens.lens (\PutEventType' {labels} -> labels) (\s@PutEventType' {} a -> s {labels = a} :: PutEventType) Prelude.. Lens.mapping Lens.coerced++-- | A collection of key and value pairs.+putEventType_tags :: Lens.Lens' PutEventType (Prelude.Maybe [Tag])+putEventType_tags = Lens.lens (\PutEventType' {tags} -> tags) (\s@PutEventType' {} a -> s {tags = a} :: PutEventType) Prelude.. Lens.mapping Lens.coerced++-- | The name.+putEventType_name :: Lens.Lens' PutEventType Prelude.Text+putEventType_name = Lens.lens (\PutEventType' {name} -> name) (\s@PutEventType' {} a -> s {name = a} :: PutEventType)++-- | The event type variables.+putEventType_eventVariables :: Lens.Lens' PutEventType (Prelude.NonEmpty Prelude.Text)+putEventType_eventVariables = Lens.lens (\PutEventType' {eventVariables} -> eventVariables) (\s@PutEventType' {} a -> s {eventVariables = a} :: PutEventType) Prelude.. Lens.coerced++-- | The entity type for the event type. Example entity types: customer,+-- merchant, account.+putEventType_entityTypes :: Lens.Lens' PutEventType (Prelude.NonEmpty Prelude.Text)+putEventType_entityTypes = Lens.lens (\PutEventType' {entityTypes} -> entityTypes) (\s@PutEventType' {} a -> s {entityTypes = a} :: PutEventType) Prelude.. Lens.coerced++instance Core.AWSRequest PutEventType where+  type AWSResponse PutEventType = PutEventTypeResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          PutEventTypeResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable PutEventType where+  hashWithSalt _salt PutEventType' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` eventIngestion+      `Prelude.hashWithSalt` labels+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` eventVariables+      `Prelude.hashWithSalt` entityTypes++instance Prelude.NFData PutEventType where+  rnf PutEventType' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf eventIngestion+      `Prelude.seq` Prelude.rnf labels+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf eventVariables+      `Prelude.seq` Prelude.rnf entityTypes++instance Data.ToHeaders PutEventType where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.PutEventType" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON PutEventType where+  toJSON PutEventType' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("eventIngestion" Data..=)+              Prelude.<$> eventIngestion,+            ("labels" Data..=) Prelude.<$> labels,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("name" Data..= name),+            Prelude.Just+              ("eventVariables" Data..= eventVariables),+            Prelude.Just ("entityTypes" Data..= entityTypes)+          ]+      )++instance Data.ToPath PutEventType where+  toPath = Prelude.const "/"++instance Data.ToQuery PutEventType where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPutEventTypeResponse' smart constructor.+data PutEventTypeResponse = PutEventTypeResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutEventTypeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putEventTypeResponse_httpStatus' - The response's http status code.+newPutEventTypeResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  PutEventTypeResponse+newPutEventTypeResponse pHttpStatus_ =+  PutEventTypeResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+putEventTypeResponse_httpStatus :: Lens.Lens' PutEventTypeResponse Prelude.Int+putEventTypeResponse_httpStatus = Lens.lens (\PutEventTypeResponse' {httpStatus} -> httpStatus) (\s@PutEventTypeResponse' {} a -> s {httpStatus = a} :: PutEventTypeResponse)++instance Prelude.NFData PutEventTypeResponse where+  rnf PutEventTypeResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/PutExternalModel.hs view
@@ -0,0 +1,264 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.PutExternalModel+-- 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 an Amazon SageMaker model endpoint. You can also use+-- this action to update the configuration of the model endpoint, including+-- the IAM role and\/or the mapped variables.+module Amazonka.FraudDetector.PutExternalModel+  ( -- * Creating a Request+    PutExternalModel (..),+    newPutExternalModel,++    -- * Request Lenses+    putExternalModel_tags,+    putExternalModel_modelEndpoint,+    putExternalModel_modelSource,+    putExternalModel_invokeModelEndpointRoleArn,+    putExternalModel_inputConfiguration,+    putExternalModel_outputConfiguration,+    putExternalModel_modelEndpointStatus,++    -- * Destructuring the Response+    PutExternalModelResponse (..),+    newPutExternalModelResponse,++    -- * Response Lenses+    putExternalModelResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newPutExternalModel' smart constructor.+data PutExternalModel = PutExternalModel'+  { -- | A collection of key and value pairs.+    tags :: Prelude.Maybe [Tag],+    -- | The model endpoints name.+    modelEndpoint :: Prelude.Text,+    -- | The source of the model.+    modelSource :: ModelSource,+    -- | The IAM role used to invoke the model endpoint.+    invokeModelEndpointRoleArn :: Prelude.Text,+    -- | The model endpoint input configuration.+    inputConfiguration :: ModelInputConfiguration,+    -- | The model endpoint output configuration.+    outputConfiguration :: ModelOutputConfiguration,+    -- | The model endpoint’s status in Amazon Fraud Detector.+    modelEndpointStatus :: ModelEndpointStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutExternalModel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putExternalModel_tags' - A collection of key and value pairs.+--+-- 'modelEndpoint', 'putExternalModel_modelEndpoint' - The model endpoints name.+--+-- 'modelSource', 'putExternalModel_modelSource' - The source of the model.+--+-- 'invokeModelEndpointRoleArn', 'putExternalModel_invokeModelEndpointRoleArn' - The IAM role used to invoke the model endpoint.+--+-- 'inputConfiguration', 'putExternalModel_inputConfiguration' - The model endpoint input configuration.+--+-- 'outputConfiguration', 'putExternalModel_outputConfiguration' - The model endpoint output configuration.+--+-- 'modelEndpointStatus', 'putExternalModel_modelEndpointStatus' - The model endpoint’s status in Amazon Fraud Detector.+newPutExternalModel ::+  -- | 'modelEndpoint'+  Prelude.Text ->+  -- | 'modelSource'+  ModelSource ->+  -- | 'invokeModelEndpointRoleArn'+  Prelude.Text ->+  -- | 'inputConfiguration'+  ModelInputConfiguration ->+  -- | 'outputConfiguration'+  ModelOutputConfiguration ->+  -- | 'modelEndpointStatus'+  ModelEndpointStatus ->+  PutExternalModel+newPutExternalModel+  pModelEndpoint_+  pModelSource_+  pInvokeModelEndpointRoleArn_+  pInputConfiguration_+  pOutputConfiguration_+  pModelEndpointStatus_ =+    PutExternalModel'+      { tags = Prelude.Nothing,+        modelEndpoint = pModelEndpoint_,+        modelSource = pModelSource_,+        invokeModelEndpointRoleArn =+          pInvokeModelEndpointRoleArn_,+        inputConfiguration = pInputConfiguration_,+        outputConfiguration = pOutputConfiguration_,+        modelEndpointStatus = pModelEndpointStatus_+      }++-- | A collection of key and value pairs.+putExternalModel_tags :: Lens.Lens' PutExternalModel (Prelude.Maybe [Tag])+putExternalModel_tags = Lens.lens (\PutExternalModel' {tags} -> tags) (\s@PutExternalModel' {} a -> s {tags = a} :: PutExternalModel) Prelude.. Lens.mapping Lens.coerced++-- | The model endpoints name.+putExternalModel_modelEndpoint :: Lens.Lens' PutExternalModel Prelude.Text+putExternalModel_modelEndpoint = Lens.lens (\PutExternalModel' {modelEndpoint} -> modelEndpoint) (\s@PutExternalModel' {} a -> s {modelEndpoint = a} :: PutExternalModel)++-- | The source of the model.+putExternalModel_modelSource :: Lens.Lens' PutExternalModel ModelSource+putExternalModel_modelSource = Lens.lens (\PutExternalModel' {modelSource} -> modelSource) (\s@PutExternalModel' {} a -> s {modelSource = a} :: PutExternalModel)++-- | The IAM role used to invoke the model endpoint.+putExternalModel_invokeModelEndpointRoleArn :: Lens.Lens' PutExternalModel Prelude.Text+putExternalModel_invokeModelEndpointRoleArn = Lens.lens (\PutExternalModel' {invokeModelEndpointRoleArn} -> invokeModelEndpointRoleArn) (\s@PutExternalModel' {} a -> s {invokeModelEndpointRoleArn = a} :: PutExternalModel)++-- | The model endpoint input configuration.+putExternalModel_inputConfiguration :: Lens.Lens' PutExternalModel ModelInputConfiguration+putExternalModel_inputConfiguration = Lens.lens (\PutExternalModel' {inputConfiguration} -> inputConfiguration) (\s@PutExternalModel' {} a -> s {inputConfiguration = a} :: PutExternalModel)++-- | The model endpoint output configuration.+putExternalModel_outputConfiguration :: Lens.Lens' PutExternalModel ModelOutputConfiguration+putExternalModel_outputConfiguration = Lens.lens (\PutExternalModel' {outputConfiguration} -> outputConfiguration) (\s@PutExternalModel' {} a -> s {outputConfiguration = a} :: PutExternalModel)++-- | The model endpoint’s status in Amazon Fraud Detector.+putExternalModel_modelEndpointStatus :: Lens.Lens' PutExternalModel ModelEndpointStatus+putExternalModel_modelEndpointStatus = Lens.lens (\PutExternalModel' {modelEndpointStatus} -> modelEndpointStatus) (\s@PutExternalModel' {} a -> s {modelEndpointStatus = a} :: PutExternalModel)++instance Core.AWSRequest PutExternalModel where+  type+    AWSResponse PutExternalModel =+      PutExternalModelResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          PutExternalModelResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable PutExternalModel where+  hashWithSalt _salt PutExternalModel' {..} =+    _salt+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` modelEndpoint+      `Prelude.hashWithSalt` modelSource+      `Prelude.hashWithSalt` invokeModelEndpointRoleArn+      `Prelude.hashWithSalt` inputConfiguration+      `Prelude.hashWithSalt` outputConfiguration+      `Prelude.hashWithSalt` modelEndpointStatus++instance Prelude.NFData PutExternalModel where+  rnf PutExternalModel' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf modelEndpoint+      `Prelude.seq` Prelude.rnf modelSource+      `Prelude.seq` Prelude.rnf invokeModelEndpointRoleArn+      `Prelude.seq` Prelude.rnf inputConfiguration+      `Prelude.seq` Prelude.rnf outputConfiguration+      `Prelude.seq` Prelude.rnf modelEndpointStatus++instance Data.ToHeaders PutExternalModel where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.PutExternalModel" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON PutExternalModel where+  toJSON PutExternalModel' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("modelEndpoint" Data..= modelEndpoint),+            Prelude.Just ("modelSource" Data..= modelSource),+            Prelude.Just+              ( "invokeModelEndpointRoleArn"+                  Data..= invokeModelEndpointRoleArn+              ),+            Prelude.Just+              ("inputConfiguration" Data..= inputConfiguration),+            Prelude.Just+              ("outputConfiguration" Data..= outputConfiguration),+            Prelude.Just+              ("modelEndpointStatus" Data..= modelEndpointStatus)+          ]+      )++instance Data.ToPath PutExternalModel where+  toPath = Prelude.const "/"++instance Data.ToQuery PutExternalModel where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPutExternalModelResponse' smart constructor.+data PutExternalModelResponse = PutExternalModelResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutExternalModelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putExternalModelResponse_httpStatus' - The response's http status code.+newPutExternalModelResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  PutExternalModelResponse+newPutExternalModelResponse pHttpStatus_ =+  PutExternalModelResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+putExternalModelResponse_httpStatus :: Lens.Lens' PutExternalModelResponse Prelude.Int+putExternalModelResponse_httpStatus = Lens.lens (\PutExternalModelResponse' {httpStatus} -> httpStatus) (\s@PutExternalModelResponse' {} a -> s {httpStatus = a} :: PutExternalModelResponse)++instance Prelude.NFData PutExternalModelResponse where+  rnf PutExternalModelResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/PutKMSEncryptionKey.hs view
@@ -0,0 +1,172 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.PutKMSEncryptionKey+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Specifies the KMS key to be used to encrypt content in Amazon Fraud+-- Detector.+module Amazonka.FraudDetector.PutKMSEncryptionKey+  ( -- * Creating a Request+    PutKMSEncryptionKey (..),+    newPutKMSEncryptionKey,++    -- * Request Lenses+    putKMSEncryptionKey_kmsEncryptionKeyArn,++    -- * Destructuring the Response+    PutKMSEncryptionKeyResponse (..),+    newPutKMSEncryptionKeyResponse,++    -- * Response Lenses+    putKMSEncryptionKeyResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newPutKMSEncryptionKey' smart constructor.+data PutKMSEncryptionKey = PutKMSEncryptionKey'+  { -- | The KMS encryption key ARN.+    --+    -- The KMS key must be single-Region key. Amazon Fraud Detector does not+    -- support multi-Region KMS key.+    kmsEncryptionKeyArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutKMSEncryptionKey' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'kmsEncryptionKeyArn', 'putKMSEncryptionKey_kmsEncryptionKeyArn' - The KMS encryption key ARN.+--+-- The KMS key must be single-Region key. Amazon Fraud Detector does not+-- support multi-Region KMS key.+newPutKMSEncryptionKey ::+  -- | 'kmsEncryptionKeyArn'+  Prelude.Text ->+  PutKMSEncryptionKey+newPutKMSEncryptionKey pKmsEncryptionKeyArn_ =+  PutKMSEncryptionKey'+    { kmsEncryptionKeyArn =+        pKmsEncryptionKeyArn_+    }++-- | The KMS encryption key ARN.+--+-- The KMS key must be single-Region key. Amazon Fraud Detector does not+-- support multi-Region KMS key.+putKMSEncryptionKey_kmsEncryptionKeyArn :: Lens.Lens' PutKMSEncryptionKey Prelude.Text+putKMSEncryptionKey_kmsEncryptionKeyArn = Lens.lens (\PutKMSEncryptionKey' {kmsEncryptionKeyArn} -> kmsEncryptionKeyArn) (\s@PutKMSEncryptionKey' {} a -> s {kmsEncryptionKeyArn = a} :: PutKMSEncryptionKey)++instance Core.AWSRequest PutKMSEncryptionKey where+  type+    AWSResponse PutKMSEncryptionKey =+      PutKMSEncryptionKeyResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          PutKMSEncryptionKeyResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable PutKMSEncryptionKey where+  hashWithSalt _salt PutKMSEncryptionKey' {..} =+    _salt `Prelude.hashWithSalt` kmsEncryptionKeyArn++instance Prelude.NFData PutKMSEncryptionKey where+  rnf PutKMSEncryptionKey' {..} =+    Prelude.rnf kmsEncryptionKeyArn++instance Data.ToHeaders PutKMSEncryptionKey where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.PutKMSEncryptionKey" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON PutKMSEncryptionKey where+  toJSON PutKMSEncryptionKey' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("kmsEncryptionKeyArn" Data..= kmsEncryptionKeyArn)+          ]+      )++instance Data.ToPath PutKMSEncryptionKey where+  toPath = Prelude.const "/"++instance Data.ToQuery PutKMSEncryptionKey where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPutKMSEncryptionKeyResponse' smart constructor.+data PutKMSEncryptionKeyResponse = PutKMSEncryptionKeyResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutKMSEncryptionKeyResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putKMSEncryptionKeyResponse_httpStatus' - The response's http status code.+newPutKMSEncryptionKeyResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  PutKMSEncryptionKeyResponse+newPutKMSEncryptionKeyResponse pHttpStatus_ =+  PutKMSEncryptionKeyResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+putKMSEncryptionKeyResponse_httpStatus :: Lens.Lens' PutKMSEncryptionKeyResponse Prelude.Int+putKMSEncryptionKeyResponse_httpStatus = Lens.lens (\PutKMSEncryptionKeyResponse' {httpStatus} -> httpStatus) (\s@PutKMSEncryptionKeyResponse' {} a -> s {httpStatus = a} :: PutKMSEncryptionKeyResponse)++instance Prelude.NFData PutKMSEncryptionKeyResponse where+  rnf PutKMSEncryptionKeyResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/PutLabel.hs view
@@ -0,0 +1,181 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.PutLabel+-- 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 label. A label classifies an event as fraudulent or+-- legitimate. Labels are associated with event types and used to train+-- supervised machine learning models in Amazon Fraud Detector.+module Amazonka.FraudDetector.PutLabel+  ( -- * Creating a Request+    PutLabel (..),+    newPutLabel,++    -- * Request Lenses+    putLabel_description,+    putLabel_tags,+    putLabel_name,++    -- * Destructuring the Response+    PutLabelResponse (..),+    newPutLabelResponse,++    -- * Response Lenses+    putLabelResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newPutLabel' smart constructor.+data PutLabel = PutLabel'+  { -- | The label description.+    description :: Prelude.Maybe Prelude.Text,+    tags :: Prelude.Maybe [Tag],+    -- | The label name.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutLabel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putLabel_description' - The label description.+--+-- 'tags', 'putLabel_tags' -+--+-- 'name', 'putLabel_name' - The label name.+newPutLabel ::+  -- | 'name'+  Prelude.Text ->+  PutLabel+newPutLabel pName_ =+  PutLabel'+    { description = Prelude.Nothing,+      tags = Prelude.Nothing,+      name = pName_+    }++-- | The label description.+putLabel_description :: Lens.Lens' PutLabel (Prelude.Maybe Prelude.Text)+putLabel_description = Lens.lens (\PutLabel' {description} -> description) (\s@PutLabel' {} a -> s {description = a} :: PutLabel)++putLabel_tags :: Lens.Lens' PutLabel (Prelude.Maybe [Tag])+putLabel_tags = Lens.lens (\PutLabel' {tags} -> tags) (\s@PutLabel' {} a -> s {tags = a} :: PutLabel) Prelude.. Lens.mapping Lens.coerced++-- | The label name.+putLabel_name :: Lens.Lens' PutLabel Prelude.Text+putLabel_name = Lens.lens (\PutLabel' {name} -> name) (\s@PutLabel' {} a -> s {name = a} :: PutLabel)++instance Core.AWSRequest PutLabel where+  type AWSResponse PutLabel = PutLabelResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          PutLabelResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable PutLabel where+  hashWithSalt _salt PutLabel' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name++instance Prelude.NFData PutLabel where+  rnf PutLabel' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders PutLabel where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.PutLabel" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON PutLabel where+  toJSON PutLabel' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("name" Data..= name)+          ]+      )++instance Data.ToPath PutLabel where+  toPath = Prelude.const "/"++instance Data.ToQuery PutLabel where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPutLabelResponse' smart constructor.+data PutLabelResponse = PutLabelResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutLabelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putLabelResponse_httpStatus' - The response's http status code.+newPutLabelResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  PutLabelResponse+newPutLabelResponse pHttpStatus_ =+  PutLabelResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+putLabelResponse_httpStatus :: Lens.Lens' PutLabelResponse Prelude.Int+putLabelResponse_httpStatus = Lens.lens (\PutLabelResponse' {httpStatus} -> httpStatus) (\s@PutLabelResponse' {} a -> s {httpStatus = a} :: PutLabelResponse)++instance Prelude.NFData PutLabelResponse where+  rnf PutLabelResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/PutOutcome.hs view
@@ -0,0 +1,181 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.PutOutcome+-- 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 an outcome.+module Amazonka.FraudDetector.PutOutcome+  ( -- * Creating a Request+    PutOutcome (..),+    newPutOutcome,++    -- * Request Lenses+    putOutcome_description,+    putOutcome_tags,+    putOutcome_name,++    -- * Destructuring the Response+    PutOutcomeResponse (..),+    newPutOutcomeResponse,++    -- * Response Lenses+    putOutcomeResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newPutOutcome' smart constructor.+data PutOutcome = PutOutcome'+  { -- | The outcome description.+    description :: Prelude.Maybe Prelude.Text,+    -- | A collection of key and value pairs.+    tags :: Prelude.Maybe [Tag],+    -- | The name of the outcome.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutOutcome' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putOutcome_description' - The outcome description.+--+-- 'tags', 'putOutcome_tags' - A collection of key and value pairs.+--+-- 'name', 'putOutcome_name' - The name of the outcome.+newPutOutcome ::+  -- | 'name'+  Prelude.Text ->+  PutOutcome+newPutOutcome pName_ =+  PutOutcome'+    { description = Prelude.Nothing,+      tags = Prelude.Nothing,+      name = pName_+    }++-- | The outcome description.+putOutcome_description :: Lens.Lens' PutOutcome (Prelude.Maybe Prelude.Text)+putOutcome_description = Lens.lens (\PutOutcome' {description} -> description) (\s@PutOutcome' {} a -> s {description = a} :: PutOutcome)++-- | A collection of key and value pairs.+putOutcome_tags :: Lens.Lens' PutOutcome (Prelude.Maybe [Tag])+putOutcome_tags = Lens.lens (\PutOutcome' {tags} -> tags) (\s@PutOutcome' {} a -> s {tags = a} :: PutOutcome) Prelude.. Lens.mapping Lens.coerced++-- | The name of the outcome.+putOutcome_name :: Lens.Lens' PutOutcome Prelude.Text+putOutcome_name = Lens.lens (\PutOutcome' {name} -> name) (\s@PutOutcome' {} a -> s {name = a} :: PutOutcome)++instance Core.AWSRequest PutOutcome where+  type AWSResponse PutOutcome = PutOutcomeResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          PutOutcomeResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable PutOutcome where+  hashWithSalt _salt PutOutcome' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name++instance Prelude.NFData PutOutcome where+  rnf PutOutcome' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders PutOutcome where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.PutOutcome" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON PutOutcome where+  toJSON PutOutcome' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("name" Data..= name)+          ]+      )++instance Data.ToPath PutOutcome where+  toPath = Prelude.const "/"++instance Data.ToQuery PutOutcome where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPutOutcomeResponse' smart constructor.+data PutOutcomeResponse = PutOutcomeResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutOutcomeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putOutcomeResponse_httpStatus' - The response's http status code.+newPutOutcomeResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  PutOutcomeResponse+newPutOutcomeResponse pHttpStatus_ =+  PutOutcomeResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+putOutcomeResponse_httpStatus :: Lens.Lens' PutOutcomeResponse Prelude.Int+putOutcomeResponse_httpStatus = Lens.lens (\PutOutcomeResponse' {httpStatus} -> httpStatus) (\s@PutOutcomeResponse' {} a -> s {httpStatus = a} :: PutOutcomeResponse)++instance Prelude.NFData PutOutcomeResponse where+  rnf PutOutcomeResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/SendEvent.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.FraudDetector.SendEvent+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Stores events in Amazon Fraud Detector without generating fraud+-- predictions for those events. For example, you can use @SendEvent@ to+-- upload a historical dataset, which you can then later use to train a+-- model.+module Amazonka.FraudDetector.SendEvent+  ( -- * Creating a Request+    SendEvent (..),+    newSendEvent,++    -- * Request Lenses+    sendEvent_assignedLabel,+    sendEvent_labelTimestamp,+    sendEvent_eventId,+    sendEvent_eventTypeName,+    sendEvent_eventTimestamp,+    sendEvent_eventVariables,+    sendEvent_entities,++    -- * Destructuring the Response+    SendEventResponse (..),+    newSendEventResponse,++    -- * Response Lenses+    sendEventResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newSendEvent' smart constructor.+data SendEvent = SendEvent'+  { -- | The label to associate with the event. Required if specifying+    -- @labelTimestamp@.+    assignedLabel :: Prelude.Maybe Prelude.Text,+    -- | The timestamp associated with the label. Required if specifying+    -- @assignedLabel@.+    labelTimestamp :: Prelude.Maybe Prelude.Text,+    -- | The event ID to upload.+    eventId :: Prelude.Text,+    -- | The event type name of the event.+    eventTypeName :: Prelude.Text,+    -- | The timestamp that defines when the event under evaluation occurred. The+    -- timestamp must be specified using ISO 8601 standard in UTC.+    eventTimestamp :: Prelude.Text,+    -- | Names of the event type\'s variables you defined in Amazon Fraud+    -- Detector to represent data elements and their corresponding values for+    -- the event you are sending for evaluation.+    eventVariables :: Prelude.HashMap Prelude.Text (Data.Sensitive Prelude.Text),+    -- | An array of entities.+    entities :: [Data.Sensitive Entity]+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SendEvent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'assignedLabel', 'sendEvent_assignedLabel' - The label to associate with the event. Required if specifying+-- @labelTimestamp@.+--+-- 'labelTimestamp', 'sendEvent_labelTimestamp' - The timestamp associated with the label. Required if specifying+-- @assignedLabel@.+--+-- 'eventId', 'sendEvent_eventId' - The event ID to upload.+--+-- 'eventTypeName', 'sendEvent_eventTypeName' - The event type name of the event.+--+-- 'eventTimestamp', 'sendEvent_eventTimestamp' - The timestamp that defines when the event under evaluation occurred. The+-- timestamp must be specified using ISO 8601 standard in UTC.+--+-- 'eventVariables', 'sendEvent_eventVariables' - Names of the event type\'s variables you defined in Amazon Fraud+-- Detector to represent data elements and their corresponding values for+-- the event you are sending for evaluation.+--+-- 'entities', 'sendEvent_entities' - An array of entities.+newSendEvent ::+  -- | 'eventId'+  Prelude.Text ->+  -- | 'eventTypeName'+  Prelude.Text ->+  -- | 'eventTimestamp'+  Prelude.Text ->+  SendEvent+newSendEvent+  pEventId_+  pEventTypeName_+  pEventTimestamp_ =+    SendEvent'+      { assignedLabel = Prelude.Nothing,+        labelTimestamp = Prelude.Nothing,+        eventId = pEventId_,+        eventTypeName = pEventTypeName_,+        eventTimestamp = pEventTimestamp_,+        eventVariables = Prelude.mempty,+        entities = Prelude.mempty+      }++-- | The label to associate with the event. Required if specifying+-- @labelTimestamp@.+sendEvent_assignedLabel :: Lens.Lens' SendEvent (Prelude.Maybe Prelude.Text)+sendEvent_assignedLabel = Lens.lens (\SendEvent' {assignedLabel} -> assignedLabel) (\s@SendEvent' {} a -> s {assignedLabel = a} :: SendEvent)++-- | The timestamp associated with the label. Required if specifying+-- @assignedLabel@.+sendEvent_labelTimestamp :: Lens.Lens' SendEvent (Prelude.Maybe Prelude.Text)+sendEvent_labelTimestamp = Lens.lens (\SendEvent' {labelTimestamp} -> labelTimestamp) (\s@SendEvent' {} a -> s {labelTimestamp = a} :: SendEvent)++-- | The event ID to upload.+sendEvent_eventId :: Lens.Lens' SendEvent Prelude.Text+sendEvent_eventId = Lens.lens (\SendEvent' {eventId} -> eventId) (\s@SendEvent' {} a -> s {eventId = a} :: SendEvent)++-- | The event type name of the event.+sendEvent_eventTypeName :: Lens.Lens' SendEvent Prelude.Text+sendEvent_eventTypeName = Lens.lens (\SendEvent' {eventTypeName} -> eventTypeName) (\s@SendEvent' {} a -> s {eventTypeName = a} :: SendEvent)++-- | The timestamp that defines when the event under evaluation occurred. The+-- timestamp must be specified using ISO 8601 standard in UTC.+sendEvent_eventTimestamp :: Lens.Lens' SendEvent Prelude.Text+sendEvent_eventTimestamp = Lens.lens (\SendEvent' {eventTimestamp} -> eventTimestamp) (\s@SendEvent' {} a -> s {eventTimestamp = a} :: SendEvent)++-- | Names of the event type\'s variables you defined in Amazon Fraud+-- Detector to represent data elements and their corresponding values for+-- the event you are sending for evaluation.+sendEvent_eventVariables :: Lens.Lens' SendEvent (Prelude.HashMap Prelude.Text Prelude.Text)+sendEvent_eventVariables = Lens.lens (\SendEvent' {eventVariables} -> eventVariables) (\s@SendEvent' {} a -> s {eventVariables = a} :: SendEvent) Prelude.. Lens.coerced++-- | An array of entities.+sendEvent_entities :: Lens.Lens' SendEvent [Entity]+sendEvent_entities = Lens.lens (\SendEvent' {entities} -> entities) (\s@SendEvent' {} a -> s {entities = a} :: SendEvent) Prelude.. Lens.coerced++instance Core.AWSRequest SendEvent where+  type AWSResponse SendEvent = SendEventResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          SendEventResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable SendEvent where+  hashWithSalt _salt SendEvent' {..} =+    _salt+      `Prelude.hashWithSalt` assignedLabel+      `Prelude.hashWithSalt` labelTimestamp+      `Prelude.hashWithSalt` eventId+      `Prelude.hashWithSalt` eventTypeName+      `Prelude.hashWithSalt` eventTimestamp+      `Prelude.hashWithSalt` eventVariables+      `Prelude.hashWithSalt` entities++instance Prelude.NFData SendEvent where+  rnf SendEvent' {..} =+    Prelude.rnf assignedLabel+      `Prelude.seq` Prelude.rnf labelTimestamp+      `Prelude.seq` Prelude.rnf eventId+      `Prelude.seq` Prelude.rnf eventTypeName+      `Prelude.seq` Prelude.rnf eventTimestamp+      `Prelude.seq` Prelude.rnf eventVariables+      `Prelude.seq` Prelude.rnf entities++instance Data.ToHeaders SendEvent where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.SendEvent" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON SendEvent where+  toJSON SendEvent' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("assignedLabel" Data..=) Prelude.<$> assignedLabel,+            ("labelTimestamp" Data..=)+              Prelude.<$> labelTimestamp,+            Prelude.Just ("eventId" Data..= eventId),+            Prelude.Just ("eventTypeName" Data..= eventTypeName),+            Prelude.Just+              ("eventTimestamp" Data..= eventTimestamp),+            Prelude.Just+              ("eventVariables" Data..= eventVariables),+            Prelude.Just ("entities" Data..= entities)+          ]+      )++instance Data.ToPath SendEvent where+  toPath = Prelude.const "/"++instance Data.ToQuery SendEvent where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newSendEventResponse' smart constructor.+data SendEventResponse = SendEventResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SendEventResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'sendEventResponse_httpStatus' - The response's http status code.+newSendEventResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  SendEventResponse+newSendEventResponse pHttpStatus_ =+  SendEventResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+sendEventResponse_httpStatus :: Lens.Lens' SendEventResponse Prelude.Int+sendEventResponse_httpStatus = Lens.lens (\SendEventResponse' {httpStatus} -> httpStatus) (\s@SendEventResponse' {} a -> s {httpStatus = a} :: SendEventResponse)++instance Prelude.NFData SendEventResponse where+  rnf SendEventResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/TagResource.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.FraudDetector.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)+--+-- Assigns tags to a resource.+module Amazonka.FraudDetector.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.FraudDetector.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 resource ARN.+    resourceARN :: Prelude.Text,+    -- | The tags to assign to the resource.+    tags :: [Tag]+  }+  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 resource ARN.+--+-- 'tags', 'tagResource_tags' - The tags to assign to the resource.+newTagResource ::+  -- | 'resourceARN'+  Prelude.Text ->+  TagResource+newTagResource pResourceARN_ =+  TagResource'+    { resourceARN = pResourceARN_,+      tags = Prelude.mempty+    }++-- | The resource ARN.+tagResource_resourceARN :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceARN = Lens.lens (\TagResource' {resourceARN} -> resourceARN) (\s@TagResource' {} a -> s {resourceARN = a} :: TagResource)++-- | The tags to assign to the resource.+tagResource_tags :: Lens.Lens' TagResource [Tag]+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+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.TagResource" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON TagResource where+  toJSON TagResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("resourceARN" Data..= resourceARN),+            Prelude.Just ("tags" Data..= tags)+          ]+      )++instance Data.ToPath TagResource where+  toPath = Prelude.const "/"++instance Data.ToQuery TagResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newTagResourceResponse' smart constructor.+data TagResourceResponse = TagResourceResponse'+  { -- | 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/FraudDetector/Types.hs view
@@ -0,0 +1,817 @@+{-# 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.FraudDetector.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.FraudDetector.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _AccessDeniedException,+    _ConflictException,+    _InternalServerException,+    _ResourceNotFoundException,+    _ResourceUnavailableException,+    _ThrottlingException,+    _ValidationException,++    -- * AsyncJobStatus+    AsyncJobStatus (..),++    -- * DataSource+    DataSource (..),++    -- * DataType+    DataType (..),++    -- * DetectorVersionStatus+    DetectorVersionStatus (..),++    -- * EventIngestion+    EventIngestion (..),++    -- * Language+    Language (..),++    -- * ModelEndpointStatus+    ModelEndpointStatus (..),++    -- * ModelInputDataFormat+    ModelInputDataFormat (..),++    -- * ModelOutputDataFormat+    ModelOutputDataFormat (..),++    -- * ModelSource+    ModelSource (..),++    -- * ModelTypeEnum+    ModelTypeEnum (..),++    -- * ModelVersionStatus+    ModelVersionStatus (..),++    -- * RuleExecutionMode+    RuleExecutionMode (..),++    -- * TrainingDataSourceEnum+    TrainingDataSourceEnum (..),++    -- * UnlabeledEventsTreatment+    UnlabeledEventsTreatment (..),++    -- * ATIMetricDataPoint+    ATIMetricDataPoint (..),+    newATIMetricDataPoint,+    aTIMetricDataPoint_adr,+    aTIMetricDataPoint_atodr,+    aTIMetricDataPoint_cr,+    aTIMetricDataPoint_threshold,++    -- * ATIModelPerformance+    ATIModelPerformance (..),+    newATIModelPerformance,+    aTIModelPerformance_asi,++    -- * ATITrainingMetricsValue+    ATITrainingMetricsValue (..),+    newATITrainingMetricsValue,+    aTITrainingMetricsValue_metricDataPoints,+    aTITrainingMetricsValue_modelPerformance,++    -- * AggregatedLogOddsMetric+    AggregatedLogOddsMetric (..),+    newAggregatedLogOddsMetric,+    aggregatedLogOddsMetric_variableNames,+    aggregatedLogOddsMetric_aggregatedVariablesImportance,++    -- * AggregatedVariablesImpactExplanation+    AggregatedVariablesImpactExplanation (..),+    newAggregatedVariablesImpactExplanation,+    aggregatedVariablesImpactExplanation_eventVariableNames,+    aggregatedVariablesImpactExplanation_logOddsImpact,+    aggregatedVariablesImpactExplanation_relativeImpact,++    -- * AggregatedVariablesImportanceMetrics+    AggregatedVariablesImportanceMetrics (..),+    newAggregatedVariablesImportanceMetrics,+    aggregatedVariablesImportanceMetrics_logOddsMetrics,++    -- * BatchCreateVariableError+    BatchCreateVariableError (..),+    newBatchCreateVariableError,+    batchCreateVariableError_code,+    batchCreateVariableError_message,+    batchCreateVariableError_name,++    -- * BatchGetVariableError+    BatchGetVariableError (..),+    newBatchGetVariableError,+    batchGetVariableError_code,+    batchGetVariableError_message,+    batchGetVariableError_name,++    -- * BatchImport+    BatchImport (..),+    newBatchImport,+    batchImport_arn,+    batchImport_completionTime,+    batchImport_eventTypeName,+    batchImport_failedRecordsCount,+    batchImport_failureReason,+    batchImport_iamRoleArn,+    batchImport_inputPath,+    batchImport_jobId,+    batchImport_outputPath,+    batchImport_processedRecordsCount,+    batchImport_startTime,+    batchImport_status,+    batchImport_totalRecordsCount,++    -- * BatchPrediction+    BatchPrediction (..),+    newBatchPrediction,+    batchPrediction_arn,+    batchPrediction_completionTime,+    batchPrediction_detectorName,+    batchPrediction_detectorVersion,+    batchPrediction_eventTypeName,+    batchPrediction_failureReason,+    batchPrediction_iamRoleArn,+    batchPrediction_inputPath,+    batchPrediction_jobId,+    batchPrediction_lastHeartbeatTime,+    batchPrediction_outputPath,+    batchPrediction_processedRecordsCount,+    batchPrediction_startTime,+    batchPrediction_status,+    batchPrediction_totalRecordsCount,++    -- * DataValidationMetrics+    DataValidationMetrics (..),+    newDataValidationMetrics,+    dataValidationMetrics_fieldLevelMessages,+    dataValidationMetrics_fileLevelMessages,++    -- * Detector+    Detector (..),+    newDetector,+    detector_arn,+    detector_createdTime,+    detector_description,+    detector_detectorId,+    detector_eventTypeName,+    detector_lastUpdatedTime,++    -- * DetectorVersionSummary+    DetectorVersionSummary (..),+    newDetectorVersionSummary,+    detectorVersionSummary_description,+    detectorVersionSummary_detectorVersionId,+    detectorVersionSummary_lastUpdatedTime,+    detectorVersionSummary_status,++    -- * Entity+    Entity (..),+    newEntity,+    entity_entityType,+    entity_entityId,++    -- * EntityType+    EntityType (..),+    newEntityType,+    entityType_arn,+    entityType_createdTime,+    entityType_description,+    entityType_lastUpdatedTime,+    entityType_name,++    -- * EvaluatedExternalModel+    EvaluatedExternalModel (..),+    newEvaluatedExternalModel,+    evaluatedExternalModel_inputVariables,+    evaluatedExternalModel_modelEndpoint,+    evaluatedExternalModel_outputVariables,+    evaluatedExternalModel_useEventVariables,++    -- * EvaluatedModelVersion+    EvaluatedModelVersion (..),+    newEvaluatedModelVersion,+    evaluatedModelVersion_evaluations,+    evaluatedModelVersion_modelId,+    evaluatedModelVersion_modelType,+    evaluatedModelVersion_modelVersion,++    -- * EvaluatedRule+    EvaluatedRule (..),+    newEvaluatedRule,+    evaluatedRule_evaluated,+    evaluatedRule_expression,+    evaluatedRule_expressionWithValues,+    evaluatedRule_matched,+    evaluatedRule_outcomes,+    evaluatedRule_ruleId,+    evaluatedRule_ruleVersion,++    -- * Event+    Event (..),+    newEvent,+    event_currentLabel,+    event_entities,+    event_eventId,+    event_eventTimestamp,+    event_eventTypeName,+    event_eventVariables,+    event_labelTimestamp,++    -- * EventPredictionSummary+    EventPredictionSummary (..),+    newEventPredictionSummary,+    eventPredictionSummary_detectorId,+    eventPredictionSummary_detectorVersionId,+    eventPredictionSummary_eventId,+    eventPredictionSummary_eventTimestamp,+    eventPredictionSummary_eventTypeName,+    eventPredictionSummary_predictionTimestamp,++    -- * EventType+    EventType (..),+    newEventType,+    eventType_arn,+    eventType_createdTime,+    eventType_description,+    eventType_entityTypes,+    eventType_eventIngestion,+    eventType_eventVariables,+    eventType_ingestedEventStatistics,+    eventType_labels,+    eventType_lastUpdatedTime,+    eventType_name,++    -- * EventVariableSummary+    EventVariableSummary (..),+    newEventVariableSummary,+    eventVariableSummary_name,+    eventVariableSummary_source,+    eventVariableSummary_value,++    -- * ExternalEventsDetail+    ExternalEventsDetail (..),+    newExternalEventsDetail,+    externalEventsDetail_dataLocation,+    externalEventsDetail_dataAccessRoleArn,++    -- * ExternalModel+    ExternalModel (..),+    newExternalModel,+    externalModel_arn,+    externalModel_createdTime,+    externalModel_inputConfiguration,+    externalModel_invokeModelEndpointRoleArn,+    externalModel_lastUpdatedTime,+    externalModel_modelEndpoint,+    externalModel_modelEndpointStatus,+    externalModel_modelSource,+    externalModel_outputConfiguration,++    -- * ExternalModelOutputs+    ExternalModelOutputs (..),+    newExternalModelOutputs,+    externalModelOutputs_externalModel,+    externalModelOutputs_outputs,++    -- * ExternalModelSummary+    ExternalModelSummary (..),+    newExternalModelSummary,+    externalModelSummary_modelEndpoint,+    externalModelSummary_modelSource,++    -- * FieldValidationMessage+    FieldValidationMessage (..),+    newFieldValidationMessage,+    fieldValidationMessage_content,+    fieldValidationMessage_fieldName,+    fieldValidationMessage_identifier,+    fieldValidationMessage_title,+    fieldValidationMessage_type,++    -- * FileValidationMessage+    FileValidationMessage (..),+    newFileValidationMessage,+    fileValidationMessage_content,+    fileValidationMessage_title,+    fileValidationMessage_type,++    -- * FilterCondition+    FilterCondition (..),+    newFilterCondition,+    filterCondition_value,++    -- * IngestedEventStatistics+    IngestedEventStatistics (..),+    newIngestedEventStatistics,+    ingestedEventStatistics_eventDataSizeInBytes,+    ingestedEventStatistics_lastUpdatedTime,+    ingestedEventStatistics_leastRecentEvent,+    ingestedEventStatistics_mostRecentEvent,+    ingestedEventStatistics_numberOfEvents,++    -- * IngestedEventsDetail+    IngestedEventsDetail (..),+    newIngestedEventsDetail,+    ingestedEventsDetail_ingestedEventsTimeWindow,++    -- * IngestedEventsTimeWindow+    IngestedEventsTimeWindow (..),+    newIngestedEventsTimeWindow,+    ingestedEventsTimeWindow_startTime,+    ingestedEventsTimeWindow_endTime,++    -- * KMSKey+    KMSKey (..),+    newKMSKey,+    kmsKey_kmsEncryptionKeyArn,++    -- * Label+    Label (..),+    newLabel,+    label_arn,+    label_createdTime,+    label_description,+    label_lastUpdatedTime,+    label_name,++    -- * LabelSchema+    LabelSchema (..),+    newLabelSchema,+    labelSchema_labelMapper,+    labelSchema_unlabeledEventsTreatment,++    -- * LogOddsMetric+    LogOddsMetric (..),+    newLogOddsMetric,+    logOddsMetric_variableName,+    logOddsMetric_variableType,+    logOddsMetric_variableImportance,++    -- * MetricDataPoint+    MetricDataPoint (..),+    newMetricDataPoint,+    metricDataPoint_fpr,+    metricDataPoint_precision,+    metricDataPoint_threshold,+    metricDataPoint_tpr,++    -- * Model+    Model (..),+    newModel,+    model_arn,+    model_createdTime,+    model_description,+    model_eventTypeName,+    model_lastUpdatedTime,+    model_modelId,+    model_modelType,++    -- * ModelEndpointDataBlob+    ModelEndpointDataBlob (..),+    newModelEndpointDataBlob,+    modelEndpointDataBlob_byteBuffer,+    modelEndpointDataBlob_contentType,++    -- * ModelInputConfiguration+    ModelInputConfiguration (..),+    newModelInputConfiguration,+    modelInputConfiguration_csvInputTemplate,+    modelInputConfiguration_eventTypeName,+    modelInputConfiguration_format,+    modelInputConfiguration_jsonInputTemplate,+    modelInputConfiguration_useEventVariables,++    -- * ModelOutputConfiguration+    ModelOutputConfiguration (..),+    newModelOutputConfiguration,+    modelOutputConfiguration_csvIndexToVariableMap,+    modelOutputConfiguration_jsonKeyToVariableMap,+    modelOutputConfiguration_format,++    -- * ModelScores+    ModelScores (..),+    newModelScores,+    modelScores_modelVersion,+    modelScores_scores,++    -- * ModelVersion+    ModelVersion (..),+    newModelVersion,+    modelVersion_arn,+    modelVersion_modelId,+    modelVersion_modelType,+    modelVersion_modelVersionNumber,++    -- * ModelVersionDetail+    ModelVersionDetail (..),+    newModelVersionDetail,+    modelVersionDetail_arn,+    modelVersionDetail_createdTime,+    modelVersionDetail_externalEventsDetail,+    modelVersionDetail_ingestedEventsDetail,+    modelVersionDetail_lastUpdatedTime,+    modelVersionDetail_modelId,+    modelVersionDetail_modelType,+    modelVersionDetail_modelVersionNumber,+    modelVersionDetail_status,+    modelVersionDetail_trainingDataSchema,+    modelVersionDetail_trainingDataSource,+    modelVersionDetail_trainingResult,+    modelVersionDetail_trainingResultV2,++    -- * ModelVersionEvaluation+    ModelVersionEvaluation (..),+    newModelVersionEvaluation,+    modelVersionEvaluation_evaluationScore,+    modelVersionEvaluation_outputVariableName,+    modelVersionEvaluation_predictionExplanations,++    -- * OFIMetricDataPoint+    OFIMetricDataPoint (..),+    newOFIMetricDataPoint,+    oFIMetricDataPoint_fpr,+    oFIMetricDataPoint_precision,+    oFIMetricDataPoint_threshold,+    oFIMetricDataPoint_tpr,++    -- * OFIModelPerformance+    OFIModelPerformance (..),+    newOFIModelPerformance,+    oFIModelPerformance_auc,++    -- * OFITrainingMetricsValue+    OFITrainingMetricsValue (..),+    newOFITrainingMetricsValue,+    oFITrainingMetricsValue_metricDataPoints,+    oFITrainingMetricsValue_modelPerformance,++    -- * Outcome+    Outcome (..),+    newOutcome,+    outcome_arn,+    outcome_createdTime,+    outcome_description,+    outcome_lastUpdatedTime,+    outcome_name,++    -- * PredictionExplanations+    PredictionExplanations (..),+    newPredictionExplanations,+    predictionExplanations_aggregatedVariablesImpactExplanations,+    predictionExplanations_variableImpactExplanations,++    -- * PredictionTimeRange+    PredictionTimeRange (..),+    newPredictionTimeRange,+    predictionTimeRange_startTime,+    predictionTimeRange_endTime,++    -- * Rule+    Rule (..),+    newRule,+    rule_detectorId,+    rule_ruleId,+    rule_ruleVersion,++    -- * RuleDetail+    RuleDetail (..),+    newRuleDetail,+    ruleDetail_arn,+    ruleDetail_createdTime,+    ruleDetail_description,+    ruleDetail_detectorId,+    ruleDetail_expression,+    ruleDetail_language,+    ruleDetail_lastUpdatedTime,+    ruleDetail_outcomes,+    ruleDetail_ruleId,+    ruleDetail_ruleVersion,++    -- * RuleResult+    RuleResult (..),+    newRuleResult,+    ruleResult_outcomes,+    ruleResult_ruleId,++    -- * TFIMetricDataPoint+    TFIMetricDataPoint (..),+    newTFIMetricDataPoint,+    tFIMetricDataPoint_fpr,+    tFIMetricDataPoint_precision,+    tFIMetricDataPoint_threshold,+    tFIMetricDataPoint_tpr,++    -- * TFIModelPerformance+    TFIModelPerformance (..),+    newTFIModelPerformance,+    tFIModelPerformance_auc,++    -- * TFITrainingMetricsValue+    TFITrainingMetricsValue (..),+    newTFITrainingMetricsValue,+    tFITrainingMetricsValue_metricDataPoints,+    tFITrainingMetricsValue_modelPerformance,++    -- * Tag+    Tag (..),+    newTag,+    tag_key,+    tag_value,++    -- * TrainingDataSchema+    TrainingDataSchema (..),+    newTrainingDataSchema,+    trainingDataSchema_labelSchema,+    trainingDataSchema_modelVariables,++    -- * TrainingMetrics+    TrainingMetrics (..),+    newTrainingMetrics,+    trainingMetrics_auc,+    trainingMetrics_metricDataPoints,++    -- * TrainingMetricsV2+    TrainingMetricsV2 (..),+    newTrainingMetricsV2,+    trainingMetricsV2_ati,+    trainingMetricsV2_ofi,+    trainingMetricsV2_tfi,++    -- * TrainingResult+    TrainingResult (..),+    newTrainingResult,+    trainingResult_dataValidationMetrics,+    trainingResult_trainingMetrics,+    trainingResult_variableImportanceMetrics,++    -- * TrainingResultV2+    TrainingResultV2 (..),+    newTrainingResultV2,+    trainingResultV2_aggregatedVariablesImportanceMetrics,+    trainingResultV2_dataValidationMetrics,+    trainingResultV2_trainingMetricsV2,+    trainingResultV2_variableImportanceMetrics,++    -- * Variable+    Variable (..),+    newVariable,+    variable_arn,+    variable_createdTime,+    variable_dataSource,+    variable_dataType,+    variable_defaultValue,+    variable_description,+    variable_lastUpdatedTime,+    variable_name,+    variable_variableType,++    -- * VariableEntry+    VariableEntry (..),+    newVariableEntry,+    variableEntry_dataSource,+    variableEntry_dataType,+    variableEntry_defaultValue,+    variableEntry_description,+    variableEntry_name,+    variableEntry_variableType,++    -- * VariableImpactExplanation+    VariableImpactExplanation (..),+    newVariableImpactExplanation,+    variableImpactExplanation_eventVariableName,+    variableImpactExplanation_logOddsImpact,+    variableImpactExplanation_relativeImpact,++    -- * VariableImportanceMetrics+    VariableImportanceMetrics (..),+    newVariableImportanceMetrics,+    variableImportanceMetrics_logOddsMetrics,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.FraudDetector.Types.ATIMetricDataPoint+import Amazonka.FraudDetector.Types.ATIModelPerformance+import Amazonka.FraudDetector.Types.ATITrainingMetricsValue+import Amazonka.FraudDetector.Types.AggregatedLogOddsMetric+import Amazonka.FraudDetector.Types.AggregatedVariablesImpactExplanation+import Amazonka.FraudDetector.Types.AggregatedVariablesImportanceMetrics+import Amazonka.FraudDetector.Types.AsyncJobStatus+import Amazonka.FraudDetector.Types.BatchCreateVariableError+import Amazonka.FraudDetector.Types.BatchGetVariableError+import Amazonka.FraudDetector.Types.BatchImport+import Amazonka.FraudDetector.Types.BatchPrediction+import Amazonka.FraudDetector.Types.DataSource+import Amazonka.FraudDetector.Types.DataType+import Amazonka.FraudDetector.Types.DataValidationMetrics+import Amazonka.FraudDetector.Types.Detector+import Amazonka.FraudDetector.Types.DetectorVersionStatus+import Amazonka.FraudDetector.Types.DetectorVersionSummary+import Amazonka.FraudDetector.Types.Entity+import Amazonka.FraudDetector.Types.EntityType+import Amazonka.FraudDetector.Types.EvaluatedExternalModel+import Amazonka.FraudDetector.Types.EvaluatedModelVersion+import Amazonka.FraudDetector.Types.EvaluatedRule+import Amazonka.FraudDetector.Types.Event+import Amazonka.FraudDetector.Types.EventIngestion+import Amazonka.FraudDetector.Types.EventPredictionSummary+import Amazonka.FraudDetector.Types.EventType+import Amazonka.FraudDetector.Types.EventVariableSummary+import Amazonka.FraudDetector.Types.ExternalEventsDetail+import Amazonka.FraudDetector.Types.ExternalModel+import Amazonka.FraudDetector.Types.ExternalModelOutputs+import Amazonka.FraudDetector.Types.ExternalModelSummary+import Amazonka.FraudDetector.Types.FieldValidationMessage+import Amazonka.FraudDetector.Types.FileValidationMessage+import Amazonka.FraudDetector.Types.FilterCondition+import Amazonka.FraudDetector.Types.IngestedEventStatistics+import Amazonka.FraudDetector.Types.IngestedEventsDetail+import Amazonka.FraudDetector.Types.IngestedEventsTimeWindow+import Amazonka.FraudDetector.Types.KMSKey+import Amazonka.FraudDetector.Types.Label+import Amazonka.FraudDetector.Types.LabelSchema+import Amazonka.FraudDetector.Types.Language+import Amazonka.FraudDetector.Types.LogOddsMetric+import Amazonka.FraudDetector.Types.MetricDataPoint+import Amazonka.FraudDetector.Types.Model+import Amazonka.FraudDetector.Types.ModelEndpointDataBlob+import Amazonka.FraudDetector.Types.ModelEndpointStatus+import Amazonka.FraudDetector.Types.ModelInputConfiguration+import Amazonka.FraudDetector.Types.ModelInputDataFormat+import Amazonka.FraudDetector.Types.ModelOutputConfiguration+import Amazonka.FraudDetector.Types.ModelOutputDataFormat+import Amazonka.FraudDetector.Types.ModelScores+import Amazonka.FraudDetector.Types.ModelSource+import Amazonka.FraudDetector.Types.ModelTypeEnum+import Amazonka.FraudDetector.Types.ModelVersion+import Amazonka.FraudDetector.Types.ModelVersionDetail+import Amazonka.FraudDetector.Types.ModelVersionEvaluation+import Amazonka.FraudDetector.Types.ModelVersionStatus+import Amazonka.FraudDetector.Types.OFIMetricDataPoint+import Amazonka.FraudDetector.Types.OFIModelPerformance+import Amazonka.FraudDetector.Types.OFITrainingMetricsValue+import Amazonka.FraudDetector.Types.Outcome+import Amazonka.FraudDetector.Types.PredictionExplanations+import Amazonka.FraudDetector.Types.PredictionTimeRange+import Amazonka.FraudDetector.Types.Rule+import Amazonka.FraudDetector.Types.RuleDetail+import Amazonka.FraudDetector.Types.RuleExecutionMode+import Amazonka.FraudDetector.Types.RuleResult+import Amazonka.FraudDetector.Types.TFIMetricDataPoint+import Amazonka.FraudDetector.Types.TFIModelPerformance+import Amazonka.FraudDetector.Types.TFITrainingMetricsValue+import Amazonka.FraudDetector.Types.Tag+import Amazonka.FraudDetector.Types.TrainingDataSchema+import Amazonka.FraudDetector.Types.TrainingDataSourceEnum+import Amazonka.FraudDetector.Types.TrainingMetrics+import Amazonka.FraudDetector.Types.TrainingMetricsV2+import Amazonka.FraudDetector.Types.TrainingResult+import Amazonka.FraudDetector.Types.TrainingResultV2+import Amazonka.FraudDetector.Types.UnlabeledEventsTreatment+import Amazonka.FraudDetector.Types.Variable+import Amazonka.FraudDetector.Types.VariableEntry+import Amazonka.FraudDetector.Types.VariableImpactExplanation+import Amazonka.FraudDetector.Types.VariableImportanceMetrics+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2019-11-15@ of the Amazon Fraud Detector SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "FraudDetector",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "frauddetector",+      Core.signingName = "frauddetector",+      Core.version = "2019-11-15",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "FraudDetector",+      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++-- | An exception indicating Amazon Fraud Detector does not have the needed+-- permissions. This can occur if you submit a request, such as+-- @PutExternalModel@, that specifies a role that is not in your account.+_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AccessDeniedException =+  Core._MatchServiceError+    defaultService+    "AccessDeniedException"++-- | An exception indicating there was a conflict during a delete operation.+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+  Core._MatchServiceError+    defaultService+    "ConflictException"++-- | An exception indicating an internal server error.+_InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerException =+  Core._MatchServiceError+    defaultService+    "InternalServerException"++-- | An exception indicating the specified resource was not found.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+  Core._MatchServiceError+    defaultService+    "ResourceNotFoundException"++-- | An exception indicating that the attached customer-owned (external)+-- model threw an exception when Amazon Fraud Detector invoked the model.+_ResourceUnavailableException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceUnavailableException =+  Core._MatchServiceError+    defaultService+    "ResourceUnavailableException"++-- | An exception indicating a throttling error.+_ThrottlingException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ThrottlingException =+  Core._MatchServiceError+    defaultService+    "ThrottlingException"++-- | An exception indicating a specified value is not allowed.+_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ValidationException =+  Core._MatchServiceError+    defaultService+    "ValidationException"
+ gen/Amazonka/FraudDetector/Types/ATIMetricDataPoint.hs view
@@ -0,0 +1,145 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.Types.ATIMetricDataPoint+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.ATIMetricDataPoint where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The Account Takeover Insights (ATI) model performance metrics data+-- points.+--+-- /See:/ 'newATIMetricDataPoint' smart constructor.+data ATIMetricDataPoint = ATIMetricDataPoint'+  { -- | The anomaly discovery rate. This metric quantifies the percentage of+    -- anomalies that can be detected by the model at the selected score+    -- threshold. A lower score threshold increases the percentage of anomalies+    -- captured by the model, but would also require challenging a larger+    -- percentage of login events, leading to a higher customer friction.+    adr :: Prelude.Maybe Prelude.Double,+    -- | The account takeover discovery rate. This metric quantifies the+    -- percentage of account compromise events that can be detected by the+    -- model at the selected score threshold. This metric is only available if+    -- 50 or more entities with at-least one labeled account takeover event is+    -- present in the ingested dataset.+    atodr :: Prelude.Maybe Prelude.Double,+    -- | The challenge rate. This indicates the percentage of login events that+    -- the model recommends to challenge such as one-time password,+    -- multi-factor authentication, and investigations.+    cr :: Prelude.Maybe Prelude.Double,+    -- | The model\'s threshold that specifies an acceptable fraud capture rate.+    -- For example, a threshold of 500 means any model score 500 or above is+    -- labeled as fraud.+    threshold :: Prelude.Maybe Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ATIMetricDataPoint' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'adr', 'aTIMetricDataPoint_adr' - The anomaly discovery rate. This metric quantifies the percentage of+-- anomalies that can be detected by the model at the selected score+-- threshold. A lower score threshold increases the percentage of anomalies+-- captured by the model, but would also require challenging a larger+-- percentage of login events, leading to a higher customer friction.+--+-- 'atodr', 'aTIMetricDataPoint_atodr' - The account takeover discovery rate. This metric quantifies the+-- percentage of account compromise events that can be detected by the+-- model at the selected score threshold. This metric is only available if+-- 50 or more entities with at-least one labeled account takeover event is+-- present in the ingested dataset.+--+-- 'cr', 'aTIMetricDataPoint_cr' - The challenge rate. This indicates the percentage of login events that+-- the model recommends to challenge such as one-time password,+-- multi-factor authentication, and investigations.+--+-- 'threshold', 'aTIMetricDataPoint_threshold' - The model\'s threshold that specifies an acceptable fraud capture rate.+-- For example, a threshold of 500 means any model score 500 or above is+-- labeled as fraud.+newATIMetricDataPoint ::+  ATIMetricDataPoint+newATIMetricDataPoint =+  ATIMetricDataPoint'+    { adr = Prelude.Nothing,+      atodr = Prelude.Nothing,+      cr = Prelude.Nothing,+      threshold = Prelude.Nothing+    }++-- | The anomaly discovery rate. This metric quantifies the percentage of+-- anomalies that can be detected by the model at the selected score+-- threshold. A lower score threshold increases the percentage of anomalies+-- captured by the model, but would also require challenging a larger+-- percentage of login events, leading to a higher customer friction.+aTIMetricDataPoint_adr :: Lens.Lens' ATIMetricDataPoint (Prelude.Maybe Prelude.Double)+aTIMetricDataPoint_adr = Lens.lens (\ATIMetricDataPoint' {adr} -> adr) (\s@ATIMetricDataPoint' {} a -> s {adr = a} :: ATIMetricDataPoint)++-- | The account takeover discovery rate. This metric quantifies the+-- percentage of account compromise events that can be detected by the+-- model at the selected score threshold. This metric is only available if+-- 50 or more entities with at-least one labeled account takeover event is+-- present in the ingested dataset.+aTIMetricDataPoint_atodr :: Lens.Lens' ATIMetricDataPoint (Prelude.Maybe Prelude.Double)+aTIMetricDataPoint_atodr = Lens.lens (\ATIMetricDataPoint' {atodr} -> atodr) (\s@ATIMetricDataPoint' {} a -> s {atodr = a} :: ATIMetricDataPoint)++-- | The challenge rate. This indicates the percentage of login events that+-- the model recommends to challenge such as one-time password,+-- multi-factor authentication, and investigations.+aTIMetricDataPoint_cr :: Lens.Lens' ATIMetricDataPoint (Prelude.Maybe Prelude.Double)+aTIMetricDataPoint_cr = Lens.lens (\ATIMetricDataPoint' {cr} -> cr) (\s@ATIMetricDataPoint' {} a -> s {cr = a} :: ATIMetricDataPoint)++-- | The model\'s threshold that specifies an acceptable fraud capture rate.+-- For example, a threshold of 500 means any model score 500 or above is+-- labeled as fraud.+aTIMetricDataPoint_threshold :: Lens.Lens' ATIMetricDataPoint (Prelude.Maybe Prelude.Double)+aTIMetricDataPoint_threshold = Lens.lens (\ATIMetricDataPoint' {threshold} -> threshold) (\s@ATIMetricDataPoint' {} a -> s {threshold = a} :: ATIMetricDataPoint)++instance Data.FromJSON ATIMetricDataPoint where+  parseJSON =+    Data.withObject+      "ATIMetricDataPoint"+      ( \x ->+          ATIMetricDataPoint'+            Prelude.<$> (x Data..:? "adr")+            Prelude.<*> (x Data..:? "atodr")+            Prelude.<*> (x Data..:? "cr")+            Prelude.<*> (x Data..:? "threshold")+      )++instance Prelude.Hashable ATIMetricDataPoint where+  hashWithSalt _salt ATIMetricDataPoint' {..} =+    _salt+      `Prelude.hashWithSalt` adr+      `Prelude.hashWithSalt` atodr+      `Prelude.hashWithSalt` cr+      `Prelude.hashWithSalt` threshold++instance Prelude.NFData ATIMetricDataPoint where+  rnf ATIMetricDataPoint' {..} =+    Prelude.rnf adr+      `Prelude.seq` Prelude.rnf atodr+      `Prelude.seq` Prelude.rnf cr+      `Prelude.seq` Prelude.rnf threshold
+ gen/Amazonka/FraudDetector/Types/ATIModelPerformance.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.FraudDetector.Types.ATIModelPerformance+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.ATIModelPerformance where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The Account Takeover Insights (ATI) model performance score.+--+-- /See:/ 'newATIModelPerformance' smart constructor.+data ATIModelPerformance = ATIModelPerformance'+  { -- | The anomaly separation index (ASI) score. This metric summarizes the+    -- overall ability of the model to separate anomalous activities from the+    -- normal behavior. Depending on the business, a large fraction of these+    -- anomalous activities can be malicious and correspond to the account+    -- takeover attacks. A model with no separability power will have the+    -- lowest possible ASI score of 0.5, whereas the a model with a high+    -- separability power will have the highest possible ASI score of 1.0+    asi :: Prelude.Maybe Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ATIModelPerformance' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'asi', 'aTIModelPerformance_asi' - The anomaly separation index (ASI) score. This metric summarizes the+-- overall ability of the model to separate anomalous activities from the+-- normal behavior. Depending on the business, a large fraction of these+-- anomalous activities can be malicious and correspond to the account+-- takeover attacks. A model with no separability power will have the+-- lowest possible ASI score of 0.5, whereas the a model with a high+-- separability power will have the highest possible ASI score of 1.0+newATIModelPerformance ::+  ATIModelPerformance+newATIModelPerformance =+  ATIModelPerformance' {asi = Prelude.Nothing}++-- | The anomaly separation index (ASI) score. This metric summarizes the+-- overall ability of the model to separate anomalous activities from the+-- normal behavior. Depending on the business, a large fraction of these+-- anomalous activities can be malicious and correspond to the account+-- takeover attacks. A model with no separability power will have the+-- lowest possible ASI score of 0.5, whereas the a model with a high+-- separability power will have the highest possible ASI score of 1.0+aTIModelPerformance_asi :: Lens.Lens' ATIModelPerformance (Prelude.Maybe Prelude.Double)+aTIModelPerformance_asi = Lens.lens (\ATIModelPerformance' {asi} -> asi) (\s@ATIModelPerformance' {} a -> s {asi = a} :: ATIModelPerformance)++instance Data.FromJSON ATIModelPerformance where+  parseJSON =+    Data.withObject+      "ATIModelPerformance"+      ( \x ->+          ATIModelPerformance' Prelude.<$> (x Data..:? "asi")+      )++instance Prelude.Hashable ATIModelPerformance where+  hashWithSalt _salt ATIModelPerformance' {..} =+    _salt `Prelude.hashWithSalt` asi++instance Prelude.NFData ATIModelPerformance where+  rnf ATIModelPerformance' {..} = Prelude.rnf asi
+ gen/Amazonka/FraudDetector/Types/ATITrainingMetricsValue.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.FraudDetector.Types.ATITrainingMetricsValue+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.ATITrainingMetricsValue where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types.ATIMetricDataPoint+import Amazonka.FraudDetector.Types.ATIModelPerformance+import qualified Amazonka.Prelude as Prelude++-- | The Account Takeover Insights (ATI) model training metric details.+--+-- /See:/ 'newATITrainingMetricsValue' smart constructor.+data ATITrainingMetricsValue = ATITrainingMetricsValue'+  { -- | The model\'s performance metrics data points.+    metricDataPoints :: Prelude.Maybe [ATIMetricDataPoint],+    -- | The model\'s overall performance scores.+    modelPerformance :: Prelude.Maybe ATIModelPerformance+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ATITrainingMetricsValue' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'metricDataPoints', 'aTITrainingMetricsValue_metricDataPoints' - The model\'s performance metrics data points.+--+-- 'modelPerformance', 'aTITrainingMetricsValue_modelPerformance' - The model\'s overall performance scores.+newATITrainingMetricsValue ::+  ATITrainingMetricsValue+newATITrainingMetricsValue =+  ATITrainingMetricsValue'+    { metricDataPoints =+        Prelude.Nothing,+      modelPerformance = Prelude.Nothing+    }++-- | The model\'s performance metrics data points.+aTITrainingMetricsValue_metricDataPoints :: Lens.Lens' ATITrainingMetricsValue (Prelude.Maybe [ATIMetricDataPoint])+aTITrainingMetricsValue_metricDataPoints = Lens.lens (\ATITrainingMetricsValue' {metricDataPoints} -> metricDataPoints) (\s@ATITrainingMetricsValue' {} a -> s {metricDataPoints = a} :: ATITrainingMetricsValue) Prelude.. Lens.mapping Lens.coerced++-- | The model\'s overall performance scores.+aTITrainingMetricsValue_modelPerformance :: Lens.Lens' ATITrainingMetricsValue (Prelude.Maybe ATIModelPerformance)+aTITrainingMetricsValue_modelPerformance = Lens.lens (\ATITrainingMetricsValue' {modelPerformance} -> modelPerformance) (\s@ATITrainingMetricsValue' {} a -> s {modelPerformance = a} :: ATITrainingMetricsValue)++instance Data.FromJSON ATITrainingMetricsValue where+  parseJSON =+    Data.withObject+      "ATITrainingMetricsValue"+      ( \x ->+          ATITrainingMetricsValue'+            Prelude.<$> ( x+                            Data..:? "metricDataPoints"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "modelPerformance")+      )++instance Prelude.Hashable ATITrainingMetricsValue where+  hashWithSalt _salt ATITrainingMetricsValue' {..} =+    _salt+      `Prelude.hashWithSalt` metricDataPoints+      `Prelude.hashWithSalt` modelPerformance++instance Prelude.NFData ATITrainingMetricsValue where+  rnf ATITrainingMetricsValue' {..} =+    Prelude.rnf metricDataPoints+      `Prelude.seq` Prelude.rnf modelPerformance
+ gen/Amazonka/FraudDetector/Types/AggregatedLogOddsMetric.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.FraudDetector.Types.AggregatedLogOddsMetric+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.AggregatedLogOddsMetric where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The log odds metric details.+--+-- Account Takeover Insights (ATI) model uses event variables from the+-- login data you provide to continuously calculate a set of variables+-- (aggregated variables) based on historical events. For example, your ATI+-- model might calculate the number of times an user has logged in using+-- the same IP address. In this case, event variables used to derive the+-- aggregated variables are @IP address@ and @user@.+--+-- /See:/ 'newAggregatedLogOddsMetric' smart constructor.+data AggregatedLogOddsMetric = AggregatedLogOddsMetric'+  { -- | The names of all the variables.+    variableNames :: [Prelude.Text],+    -- | The relative importance of the variables in the list to the other event+    -- variable.+    aggregatedVariablesImportance :: Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AggregatedLogOddsMetric' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'variableNames', 'aggregatedLogOddsMetric_variableNames' - The names of all the variables.+--+-- 'aggregatedVariablesImportance', 'aggregatedLogOddsMetric_aggregatedVariablesImportance' - The relative importance of the variables in the list to the other event+-- variable.+newAggregatedLogOddsMetric ::+  -- | 'aggregatedVariablesImportance'+  Prelude.Double ->+  AggregatedLogOddsMetric+newAggregatedLogOddsMetric+  pAggregatedVariablesImportance_ =+    AggregatedLogOddsMetric'+      { variableNames =+          Prelude.mempty,+        aggregatedVariablesImportance =+          pAggregatedVariablesImportance_+      }++-- | The names of all the variables.+aggregatedLogOddsMetric_variableNames :: Lens.Lens' AggregatedLogOddsMetric [Prelude.Text]+aggregatedLogOddsMetric_variableNames = Lens.lens (\AggregatedLogOddsMetric' {variableNames} -> variableNames) (\s@AggregatedLogOddsMetric' {} a -> s {variableNames = a} :: AggregatedLogOddsMetric) Prelude.. Lens.coerced++-- | The relative importance of the variables in the list to the other event+-- variable.+aggregatedLogOddsMetric_aggregatedVariablesImportance :: Lens.Lens' AggregatedLogOddsMetric Prelude.Double+aggregatedLogOddsMetric_aggregatedVariablesImportance = Lens.lens (\AggregatedLogOddsMetric' {aggregatedVariablesImportance} -> aggregatedVariablesImportance) (\s@AggregatedLogOddsMetric' {} a -> s {aggregatedVariablesImportance = a} :: AggregatedLogOddsMetric)++instance Data.FromJSON AggregatedLogOddsMetric where+  parseJSON =+    Data.withObject+      "AggregatedLogOddsMetric"+      ( \x ->+          AggregatedLogOddsMetric'+            Prelude.<$> (x Data..:? "variableNames" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "aggregatedVariablesImportance")+      )++instance Prelude.Hashable AggregatedLogOddsMetric where+  hashWithSalt _salt AggregatedLogOddsMetric' {..} =+    _salt+      `Prelude.hashWithSalt` variableNames+      `Prelude.hashWithSalt` aggregatedVariablesImportance++instance Prelude.NFData AggregatedLogOddsMetric where+  rnf AggregatedLogOddsMetric' {..} =+    Prelude.rnf variableNames+      `Prelude.seq` Prelude.rnf aggregatedVariablesImportance
+ gen/Amazonka/FraudDetector/Types/AggregatedVariablesImpactExplanation.hs view
@@ -0,0 +1,149 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.Types.AggregatedVariablesImpactExplanation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.AggregatedVariablesImpactExplanation where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The details of the impact of aggregated variables on the prediction+-- score.+--+-- Account Takeover Insights (ATI) model uses the login data you provide to+-- continuously calculate a set of variables (aggregated variables) based+-- on historical events. For example, the model might calculate the number+-- of times an user has logged in using the same IP address. In this case,+-- event variables used to derive the aggregated variables are @IP address@+-- and @user@.+--+-- /See:/ 'newAggregatedVariablesImpactExplanation' smart constructor.+data AggregatedVariablesImpactExplanation = AggregatedVariablesImpactExplanation'+  { -- | The names of all the event variables that were used to derive the+    -- aggregated variables.+    eventVariableNames :: Prelude.Maybe [Prelude.Text],+    -- | The raw, uninterpreted value represented as log-odds of the fraud. These+    -- values are usually between -10 to +10, but range from -infinity to+    -- +infinity.+    --+    -- -   A positive value indicates that the variables drove the risk score+    --     up.+    --+    -- -   A negative value indicates that the variables drove the risk score+    --     down.+    logOddsImpact :: Prelude.Maybe Prelude.Double,+    -- | The relative impact of the aggregated variables in terms of magnitude on+    -- the prediction scores.+    relativeImpact :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AggregatedVariablesImpactExplanation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventVariableNames', 'aggregatedVariablesImpactExplanation_eventVariableNames' - The names of all the event variables that were used to derive the+-- aggregated variables.+--+-- 'logOddsImpact', 'aggregatedVariablesImpactExplanation_logOddsImpact' - The raw, uninterpreted value represented as log-odds of the fraud. These+-- values are usually between -10 to +10, but range from -infinity to+-- +infinity.+--+-- -   A positive value indicates that the variables drove the risk score+--     up.+--+-- -   A negative value indicates that the variables drove the risk score+--     down.+--+-- 'relativeImpact', 'aggregatedVariablesImpactExplanation_relativeImpact' - The relative impact of the aggregated variables in terms of magnitude on+-- the prediction scores.+newAggregatedVariablesImpactExplanation ::+  AggregatedVariablesImpactExplanation+newAggregatedVariablesImpactExplanation =+  AggregatedVariablesImpactExplanation'+    { eventVariableNames =+        Prelude.Nothing,+      logOddsImpact = Prelude.Nothing,+      relativeImpact = Prelude.Nothing+    }++-- | The names of all the event variables that were used to derive the+-- aggregated variables.+aggregatedVariablesImpactExplanation_eventVariableNames :: Lens.Lens' AggregatedVariablesImpactExplanation (Prelude.Maybe [Prelude.Text])+aggregatedVariablesImpactExplanation_eventVariableNames = Lens.lens (\AggregatedVariablesImpactExplanation' {eventVariableNames} -> eventVariableNames) (\s@AggregatedVariablesImpactExplanation' {} a -> s {eventVariableNames = a} :: AggregatedVariablesImpactExplanation) Prelude.. Lens.mapping Lens.coerced++-- | The raw, uninterpreted value represented as log-odds of the fraud. These+-- values are usually between -10 to +10, but range from -infinity to+-- +infinity.+--+-- -   A positive value indicates that the variables drove the risk score+--     up.+--+-- -   A negative value indicates that the variables drove the risk score+--     down.+aggregatedVariablesImpactExplanation_logOddsImpact :: Lens.Lens' AggregatedVariablesImpactExplanation (Prelude.Maybe Prelude.Double)+aggregatedVariablesImpactExplanation_logOddsImpact = Lens.lens (\AggregatedVariablesImpactExplanation' {logOddsImpact} -> logOddsImpact) (\s@AggregatedVariablesImpactExplanation' {} a -> s {logOddsImpact = a} :: AggregatedVariablesImpactExplanation)++-- | The relative impact of the aggregated variables in terms of magnitude on+-- the prediction scores.+aggregatedVariablesImpactExplanation_relativeImpact :: Lens.Lens' AggregatedVariablesImpactExplanation (Prelude.Maybe Prelude.Text)+aggregatedVariablesImpactExplanation_relativeImpact = Lens.lens (\AggregatedVariablesImpactExplanation' {relativeImpact} -> relativeImpact) (\s@AggregatedVariablesImpactExplanation' {} a -> s {relativeImpact = a} :: AggregatedVariablesImpactExplanation)++instance+  Data.FromJSON+    AggregatedVariablesImpactExplanation+  where+  parseJSON =+    Data.withObject+      "AggregatedVariablesImpactExplanation"+      ( \x ->+          AggregatedVariablesImpactExplanation'+            Prelude.<$> ( x+                            Data..:? "eventVariableNames"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "logOddsImpact")+            Prelude.<*> (x Data..:? "relativeImpact")+      )++instance+  Prelude.Hashable+    AggregatedVariablesImpactExplanation+  where+  hashWithSalt+    _salt+    AggregatedVariablesImpactExplanation' {..} =+      _salt+        `Prelude.hashWithSalt` eventVariableNames+        `Prelude.hashWithSalt` logOddsImpact+        `Prelude.hashWithSalt` relativeImpact++instance+  Prelude.NFData+    AggregatedVariablesImpactExplanation+  where+  rnf AggregatedVariablesImpactExplanation' {..} =+    Prelude.rnf eventVariableNames+      `Prelude.seq` Prelude.rnf logOddsImpact+      `Prelude.seq` Prelude.rnf relativeImpact
+ gen/Amazonka/FraudDetector/Types/AggregatedVariablesImportanceMetrics.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.FraudDetector.Types.AggregatedVariablesImportanceMetrics+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.AggregatedVariablesImportanceMetrics where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types.AggregatedLogOddsMetric+import qualified Amazonka.Prelude as Prelude++-- | The details of the relative importance of the aggregated variables.+--+-- Account Takeover Insights (ATI) model uses event variables from the+-- login data you provide to continuously calculate a set of variables+-- (aggregated variables) based on historical events. For example, your ATI+-- model might calculate the number of times an user has logged in using+-- the same IP address. In this case, event variables used to derive the+-- aggregated variables are @IP address@ and @user@.+--+-- /See:/ 'newAggregatedVariablesImportanceMetrics' smart constructor.+data AggregatedVariablesImportanceMetrics = AggregatedVariablesImportanceMetrics'+  { -- | List of variables\' metrics.+    logOddsMetrics :: Prelude.Maybe [AggregatedLogOddsMetric]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AggregatedVariablesImportanceMetrics' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'logOddsMetrics', 'aggregatedVariablesImportanceMetrics_logOddsMetrics' - List of variables\' metrics.+newAggregatedVariablesImportanceMetrics ::+  AggregatedVariablesImportanceMetrics+newAggregatedVariablesImportanceMetrics =+  AggregatedVariablesImportanceMetrics'+    { logOddsMetrics =+        Prelude.Nothing+    }++-- | List of variables\' metrics.+aggregatedVariablesImportanceMetrics_logOddsMetrics :: Lens.Lens' AggregatedVariablesImportanceMetrics (Prelude.Maybe [AggregatedLogOddsMetric])+aggregatedVariablesImportanceMetrics_logOddsMetrics = Lens.lens (\AggregatedVariablesImportanceMetrics' {logOddsMetrics} -> logOddsMetrics) (\s@AggregatedVariablesImportanceMetrics' {} a -> s {logOddsMetrics = a} :: AggregatedVariablesImportanceMetrics) Prelude.. Lens.mapping Lens.coerced++instance+  Data.FromJSON+    AggregatedVariablesImportanceMetrics+  where+  parseJSON =+    Data.withObject+      "AggregatedVariablesImportanceMetrics"+      ( \x ->+          AggregatedVariablesImportanceMetrics'+            Prelude.<$> ( x+                            Data..:? "logOddsMetrics"+                            Data..!= Prelude.mempty+                        )+      )++instance+  Prelude.Hashable+    AggregatedVariablesImportanceMetrics+  where+  hashWithSalt+    _salt+    AggregatedVariablesImportanceMetrics' {..} =+      _salt `Prelude.hashWithSalt` logOddsMetrics++instance+  Prelude.NFData+    AggregatedVariablesImportanceMetrics+  where+  rnf AggregatedVariablesImportanceMetrics' {..} =+    Prelude.rnf logOddsMetrics
+ gen/Amazonka/FraudDetector/Types/AsyncJobStatus.hs view
@@ -0,0 +1,91 @@+{-# 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.FraudDetector.Types.AsyncJobStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.AsyncJobStatus+  ( AsyncJobStatus+      ( ..,+        AsyncJobStatus_CANCELED,+        AsyncJobStatus_CANCEL_IN_PROGRESS,+        AsyncJobStatus_COMPLETE,+        AsyncJobStatus_FAILED,+        AsyncJobStatus_IN_PROGRESS,+        AsyncJobStatus_IN_PROGRESS_INITIALIZING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AsyncJobStatus = AsyncJobStatus'+  { fromAsyncJobStatus ::+      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 AsyncJobStatus_CANCELED :: AsyncJobStatus+pattern AsyncJobStatus_CANCELED = AsyncJobStatus' "CANCELED"++pattern AsyncJobStatus_CANCEL_IN_PROGRESS :: AsyncJobStatus+pattern AsyncJobStatus_CANCEL_IN_PROGRESS = AsyncJobStatus' "CANCEL_IN_PROGRESS"++pattern AsyncJobStatus_COMPLETE :: AsyncJobStatus+pattern AsyncJobStatus_COMPLETE = AsyncJobStatus' "COMPLETE"++pattern AsyncJobStatus_FAILED :: AsyncJobStatus+pattern AsyncJobStatus_FAILED = AsyncJobStatus' "FAILED"++pattern AsyncJobStatus_IN_PROGRESS :: AsyncJobStatus+pattern AsyncJobStatus_IN_PROGRESS = AsyncJobStatus' "IN_PROGRESS"++pattern AsyncJobStatus_IN_PROGRESS_INITIALIZING :: AsyncJobStatus+pattern AsyncJobStatus_IN_PROGRESS_INITIALIZING = AsyncJobStatus' "IN_PROGRESS_INITIALIZING"++{-# COMPLETE+  AsyncJobStatus_CANCELED,+  AsyncJobStatus_CANCEL_IN_PROGRESS,+  AsyncJobStatus_COMPLETE,+  AsyncJobStatus_FAILED,+  AsyncJobStatus_IN_PROGRESS,+  AsyncJobStatus_IN_PROGRESS_INITIALIZING,+  AsyncJobStatus'+  #-}
+ gen/Amazonka/FraudDetector/Types/BatchCreateVariableError.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.FraudDetector.Types.BatchCreateVariableError+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.BatchCreateVariableError 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 the error of the batch create variable API.+--+-- /See:/ 'newBatchCreateVariableError' smart constructor.+data BatchCreateVariableError = BatchCreateVariableError'+  { -- | The error code.+    code :: Prelude.Maybe Prelude.Int,+    -- | The error message.+    message :: Prelude.Maybe Prelude.Text,+    -- | The name.+    name :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchCreateVariableError' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'batchCreateVariableError_code' - The error code.+--+-- 'message', 'batchCreateVariableError_message' - The error message.+--+-- 'name', 'batchCreateVariableError_name' - The name.+newBatchCreateVariableError ::+  BatchCreateVariableError+newBatchCreateVariableError =+  BatchCreateVariableError'+    { code = Prelude.Nothing,+      message = Prelude.Nothing,+      name = Prelude.Nothing+    }++-- | The error code.+batchCreateVariableError_code :: Lens.Lens' BatchCreateVariableError (Prelude.Maybe Prelude.Int)+batchCreateVariableError_code = Lens.lens (\BatchCreateVariableError' {code} -> code) (\s@BatchCreateVariableError' {} a -> s {code = a} :: BatchCreateVariableError)++-- | The error message.+batchCreateVariableError_message :: Lens.Lens' BatchCreateVariableError (Prelude.Maybe Prelude.Text)+batchCreateVariableError_message = Lens.lens (\BatchCreateVariableError' {message} -> message) (\s@BatchCreateVariableError' {} a -> s {message = a} :: BatchCreateVariableError)++-- | The name.+batchCreateVariableError_name :: Lens.Lens' BatchCreateVariableError (Prelude.Maybe Prelude.Text)+batchCreateVariableError_name = Lens.lens (\BatchCreateVariableError' {name} -> name) (\s@BatchCreateVariableError' {} a -> s {name = a} :: BatchCreateVariableError)++instance Data.FromJSON BatchCreateVariableError where+  parseJSON =+    Data.withObject+      "BatchCreateVariableError"+      ( \x ->+          BatchCreateVariableError'+            Prelude.<$> (x Data..:? "code")+            Prelude.<*> (x Data..:? "message")+            Prelude.<*> (x Data..:? "name")+      )++instance Prelude.Hashable BatchCreateVariableError where+  hashWithSalt _salt BatchCreateVariableError' {..} =+    _salt+      `Prelude.hashWithSalt` code+      `Prelude.hashWithSalt` message+      `Prelude.hashWithSalt` name++instance Prelude.NFData BatchCreateVariableError where+  rnf BatchCreateVariableError' {..} =+    Prelude.rnf code+      `Prelude.seq` Prelude.rnf message+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/FraudDetector/Types/BatchGetVariableError.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.FraudDetector.Types.BatchGetVariableError+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.BatchGetVariableError 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 the error of the batch get variable API.+--+-- /See:/ 'newBatchGetVariableError' smart constructor.+data BatchGetVariableError = BatchGetVariableError'+  { -- | The error code.+    code :: Prelude.Maybe Prelude.Int,+    -- | The error message.+    message :: Prelude.Maybe Prelude.Text,+    -- | The error name.+    name :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchGetVariableError' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'batchGetVariableError_code' - The error code.+--+-- 'message', 'batchGetVariableError_message' - The error message.+--+-- 'name', 'batchGetVariableError_name' - The error name.+newBatchGetVariableError ::+  BatchGetVariableError+newBatchGetVariableError =+  BatchGetVariableError'+    { code = Prelude.Nothing,+      message = Prelude.Nothing,+      name = Prelude.Nothing+    }++-- | The error code.+batchGetVariableError_code :: Lens.Lens' BatchGetVariableError (Prelude.Maybe Prelude.Int)+batchGetVariableError_code = Lens.lens (\BatchGetVariableError' {code} -> code) (\s@BatchGetVariableError' {} a -> s {code = a} :: BatchGetVariableError)++-- | The error message.+batchGetVariableError_message :: Lens.Lens' BatchGetVariableError (Prelude.Maybe Prelude.Text)+batchGetVariableError_message = Lens.lens (\BatchGetVariableError' {message} -> message) (\s@BatchGetVariableError' {} a -> s {message = a} :: BatchGetVariableError)++-- | The error name.+batchGetVariableError_name :: Lens.Lens' BatchGetVariableError (Prelude.Maybe Prelude.Text)+batchGetVariableError_name = Lens.lens (\BatchGetVariableError' {name} -> name) (\s@BatchGetVariableError' {} a -> s {name = a} :: BatchGetVariableError)++instance Data.FromJSON BatchGetVariableError where+  parseJSON =+    Data.withObject+      "BatchGetVariableError"+      ( \x ->+          BatchGetVariableError'+            Prelude.<$> (x Data..:? "code")+            Prelude.<*> (x Data..:? "message")+            Prelude.<*> (x Data..:? "name")+      )++instance Prelude.Hashable BatchGetVariableError where+  hashWithSalt _salt BatchGetVariableError' {..} =+    _salt+      `Prelude.hashWithSalt` code+      `Prelude.hashWithSalt` message+      `Prelude.hashWithSalt` name++instance Prelude.NFData BatchGetVariableError where+  rnf BatchGetVariableError' {..} =+    Prelude.rnf code+      `Prelude.seq` Prelude.rnf message+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/FraudDetector/Types/BatchImport.hs view
@@ -0,0 +1,217 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.Types.BatchImport+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.BatchImport where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types.AsyncJobStatus+import qualified Amazonka.Prelude as Prelude++-- | The batch import job details.+--+-- /See:/ 'newBatchImport' smart constructor.+data BatchImport = BatchImport'+  { -- | The ARN of the batch import job.+    arn :: Prelude.Maybe Prelude.Text,+    -- | Timestamp of when batch import job completed.+    completionTime :: Prelude.Maybe Prelude.Text,+    -- | The name of the event type.+    eventTypeName :: Prelude.Maybe Prelude.Text,+    -- | The number of records that failed to import.+    failedRecordsCount :: Prelude.Maybe Prelude.Int,+    -- | The reason batch import job failed.+    failureReason :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the IAM role to use for this job request.+    iamRoleArn :: Prelude.Maybe Prelude.Text,+    -- | The Amazon S3 location of your data file for batch import.+    inputPath :: Prelude.Maybe Prelude.Text,+    -- | The ID of the batch import job.+    jobId :: Prelude.Maybe Prelude.Text,+    -- | The Amazon S3 location of your output file.+    outputPath :: Prelude.Maybe Prelude.Text,+    -- | The number of records processed by batch import job.+    processedRecordsCount :: Prelude.Maybe Prelude.Int,+    -- | Timestamp of when the batch import job started.+    startTime :: Prelude.Maybe Prelude.Text,+    -- | The status of the batch import job.+    status :: Prelude.Maybe AsyncJobStatus,+    -- | The total number of records in the batch import job.+    totalRecordsCount :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchImport' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'batchImport_arn' - The ARN of the batch import job.+--+-- 'completionTime', 'batchImport_completionTime' - Timestamp of when batch import job completed.+--+-- 'eventTypeName', 'batchImport_eventTypeName' - The name of the event type.+--+-- 'failedRecordsCount', 'batchImport_failedRecordsCount' - The number of records that failed to import.+--+-- 'failureReason', 'batchImport_failureReason' - The reason batch import job failed.+--+-- 'iamRoleArn', 'batchImport_iamRoleArn' - The ARN of the IAM role to use for this job request.+--+-- 'inputPath', 'batchImport_inputPath' - The Amazon S3 location of your data file for batch import.+--+-- 'jobId', 'batchImport_jobId' - The ID of the batch import job.+--+-- 'outputPath', 'batchImport_outputPath' - The Amazon S3 location of your output file.+--+-- 'processedRecordsCount', 'batchImport_processedRecordsCount' - The number of records processed by batch import job.+--+-- 'startTime', 'batchImport_startTime' - Timestamp of when the batch import job started.+--+-- 'status', 'batchImport_status' - The status of the batch import job.+--+-- 'totalRecordsCount', 'batchImport_totalRecordsCount' - The total number of records in the batch import job.+newBatchImport ::+  BatchImport+newBatchImport =+  BatchImport'+    { arn = Prelude.Nothing,+      completionTime = Prelude.Nothing,+      eventTypeName = Prelude.Nothing,+      failedRecordsCount = Prelude.Nothing,+      failureReason = Prelude.Nothing,+      iamRoleArn = Prelude.Nothing,+      inputPath = Prelude.Nothing,+      jobId = Prelude.Nothing,+      outputPath = Prelude.Nothing,+      processedRecordsCount = Prelude.Nothing,+      startTime = Prelude.Nothing,+      status = Prelude.Nothing,+      totalRecordsCount = Prelude.Nothing+    }++-- | The ARN of the batch import job.+batchImport_arn :: Lens.Lens' BatchImport (Prelude.Maybe Prelude.Text)+batchImport_arn = Lens.lens (\BatchImport' {arn} -> arn) (\s@BatchImport' {} a -> s {arn = a} :: BatchImport)++-- | Timestamp of when batch import job completed.+batchImport_completionTime :: Lens.Lens' BatchImport (Prelude.Maybe Prelude.Text)+batchImport_completionTime = Lens.lens (\BatchImport' {completionTime} -> completionTime) (\s@BatchImport' {} a -> s {completionTime = a} :: BatchImport)++-- | The name of the event type.+batchImport_eventTypeName :: Lens.Lens' BatchImport (Prelude.Maybe Prelude.Text)+batchImport_eventTypeName = Lens.lens (\BatchImport' {eventTypeName} -> eventTypeName) (\s@BatchImport' {} a -> s {eventTypeName = a} :: BatchImport)++-- | The number of records that failed to import.+batchImport_failedRecordsCount :: Lens.Lens' BatchImport (Prelude.Maybe Prelude.Int)+batchImport_failedRecordsCount = Lens.lens (\BatchImport' {failedRecordsCount} -> failedRecordsCount) (\s@BatchImport' {} a -> s {failedRecordsCount = a} :: BatchImport)++-- | The reason batch import job failed.+batchImport_failureReason :: Lens.Lens' BatchImport (Prelude.Maybe Prelude.Text)+batchImport_failureReason = Lens.lens (\BatchImport' {failureReason} -> failureReason) (\s@BatchImport' {} a -> s {failureReason = a} :: BatchImport)++-- | The ARN of the IAM role to use for this job request.+batchImport_iamRoleArn :: Lens.Lens' BatchImport (Prelude.Maybe Prelude.Text)+batchImport_iamRoleArn = Lens.lens (\BatchImport' {iamRoleArn} -> iamRoleArn) (\s@BatchImport' {} a -> s {iamRoleArn = a} :: BatchImport)++-- | The Amazon S3 location of your data file for batch import.+batchImport_inputPath :: Lens.Lens' BatchImport (Prelude.Maybe Prelude.Text)+batchImport_inputPath = Lens.lens (\BatchImport' {inputPath} -> inputPath) (\s@BatchImport' {} a -> s {inputPath = a} :: BatchImport)++-- | The ID of the batch import job.+batchImport_jobId :: Lens.Lens' BatchImport (Prelude.Maybe Prelude.Text)+batchImport_jobId = Lens.lens (\BatchImport' {jobId} -> jobId) (\s@BatchImport' {} a -> s {jobId = a} :: BatchImport)++-- | The Amazon S3 location of your output file.+batchImport_outputPath :: Lens.Lens' BatchImport (Prelude.Maybe Prelude.Text)+batchImport_outputPath = Lens.lens (\BatchImport' {outputPath} -> outputPath) (\s@BatchImport' {} a -> s {outputPath = a} :: BatchImport)++-- | The number of records processed by batch import job.+batchImport_processedRecordsCount :: Lens.Lens' BatchImport (Prelude.Maybe Prelude.Int)+batchImport_processedRecordsCount = Lens.lens (\BatchImport' {processedRecordsCount} -> processedRecordsCount) (\s@BatchImport' {} a -> s {processedRecordsCount = a} :: BatchImport)++-- | Timestamp of when the batch import job started.+batchImport_startTime :: Lens.Lens' BatchImport (Prelude.Maybe Prelude.Text)+batchImport_startTime = Lens.lens (\BatchImport' {startTime} -> startTime) (\s@BatchImport' {} a -> s {startTime = a} :: BatchImport)++-- | The status of the batch import job.+batchImport_status :: Lens.Lens' BatchImport (Prelude.Maybe AsyncJobStatus)+batchImport_status = Lens.lens (\BatchImport' {status} -> status) (\s@BatchImport' {} a -> s {status = a} :: BatchImport)++-- | The total number of records in the batch import job.+batchImport_totalRecordsCount :: Lens.Lens' BatchImport (Prelude.Maybe Prelude.Int)+batchImport_totalRecordsCount = Lens.lens (\BatchImport' {totalRecordsCount} -> totalRecordsCount) (\s@BatchImport' {} a -> s {totalRecordsCount = a} :: BatchImport)++instance Data.FromJSON BatchImport where+  parseJSON =+    Data.withObject+      "BatchImport"+      ( \x ->+          BatchImport'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "completionTime")+            Prelude.<*> (x Data..:? "eventTypeName")+            Prelude.<*> (x Data..:? "failedRecordsCount")+            Prelude.<*> (x Data..:? "failureReason")+            Prelude.<*> (x Data..:? "iamRoleArn")+            Prelude.<*> (x Data..:? "inputPath")+            Prelude.<*> (x Data..:? "jobId")+            Prelude.<*> (x Data..:? "outputPath")+            Prelude.<*> (x Data..:? "processedRecordsCount")+            Prelude.<*> (x Data..:? "startTime")+            Prelude.<*> (x Data..:? "status")+            Prelude.<*> (x Data..:? "totalRecordsCount")+      )++instance Prelude.Hashable BatchImport where+  hashWithSalt _salt BatchImport' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` completionTime+      `Prelude.hashWithSalt` eventTypeName+      `Prelude.hashWithSalt` failedRecordsCount+      `Prelude.hashWithSalt` failureReason+      `Prelude.hashWithSalt` iamRoleArn+      `Prelude.hashWithSalt` inputPath+      `Prelude.hashWithSalt` jobId+      `Prelude.hashWithSalt` outputPath+      `Prelude.hashWithSalt` processedRecordsCount+      `Prelude.hashWithSalt` startTime+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` totalRecordsCount++instance Prelude.NFData BatchImport where+  rnf BatchImport' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf completionTime+      `Prelude.seq` Prelude.rnf eventTypeName+      `Prelude.seq` Prelude.rnf failedRecordsCount+      `Prelude.seq` Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf iamRoleArn+      `Prelude.seq` Prelude.rnf inputPath+      `Prelude.seq` Prelude.rnf jobId+      `Prelude.seq` Prelude.rnf outputPath+      `Prelude.seq` Prelude.rnf processedRecordsCount+      `Prelude.seq` Prelude.rnf startTime+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf totalRecordsCount
+ gen/Amazonka/FraudDetector/Types/BatchPrediction.hs view
@@ -0,0 +1,244 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.Types.BatchPrediction+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.BatchPrediction where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types.AsyncJobStatus+import qualified Amazonka.Prelude as Prelude++-- | The batch prediction details.+--+-- /See:/ 'newBatchPrediction' smart constructor.+data BatchPrediction = BatchPrediction'+  { -- | The ARN of batch prediction job.+    arn :: Prelude.Maybe Prelude.Text,+    -- | Timestamp of when the batch prediction job completed.+    completionTime :: Prelude.Maybe Prelude.Text,+    -- | The name of the detector.+    detectorName :: Prelude.Maybe Prelude.Text,+    -- | The detector version.+    detectorVersion :: Prelude.Maybe Prelude.Text,+    -- | The name of the event type.+    eventTypeName :: Prelude.Maybe Prelude.Text,+    -- | The reason a batch prediction job failed.+    failureReason :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the IAM role to use for this job request.+    iamRoleArn :: Prelude.Maybe Prelude.Text,+    -- | The Amazon S3 location of your training file.+    inputPath :: Prelude.Maybe Prelude.Text,+    -- | The job ID for the batch prediction.+    jobId :: Prelude.Maybe Prelude.Text,+    -- | Timestamp of most recent heartbeat indicating the batch prediction job+    -- was making progress.+    lastHeartbeatTime :: Prelude.Maybe Prelude.Text,+    -- | The Amazon S3 location of your output file.+    outputPath :: Prelude.Maybe Prelude.Text,+    -- | The number of records processed by the batch prediction job.+    processedRecordsCount :: Prelude.Maybe Prelude.Int,+    -- | Timestamp of when the batch prediction job started.+    startTime :: Prelude.Maybe Prelude.Text,+    -- | The batch prediction status.+    status :: Prelude.Maybe AsyncJobStatus,+    -- | The total number of records in the batch prediction job.+    totalRecordsCount :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchPrediction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'batchPrediction_arn' - The ARN of batch prediction job.+--+-- 'completionTime', 'batchPrediction_completionTime' - Timestamp of when the batch prediction job completed.+--+-- 'detectorName', 'batchPrediction_detectorName' - The name of the detector.+--+-- 'detectorVersion', 'batchPrediction_detectorVersion' - The detector version.+--+-- 'eventTypeName', 'batchPrediction_eventTypeName' - The name of the event type.+--+-- 'failureReason', 'batchPrediction_failureReason' - The reason a batch prediction job failed.+--+-- 'iamRoleArn', 'batchPrediction_iamRoleArn' - The ARN of the IAM role to use for this job request.+--+-- 'inputPath', 'batchPrediction_inputPath' - The Amazon S3 location of your training file.+--+-- 'jobId', 'batchPrediction_jobId' - The job ID for the batch prediction.+--+-- 'lastHeartbeatTime', 'batchPrediction_lastHeartbeatTime' - Timestamp of most recent heartbeat indicating the batch prediction job+-- was making progress.+--+-- 'outputPath', 'batchPrediction_outputPath' - The Amazon S3 location of your output file.+--+-- 'processedRecordsCount', 'batchPrediction_processedRecordsCount' - The number of records processed by the batch prediction job.+--+-- 'startTime', 'batchPrediction_startTime' - Timestamp of when the batch prediction job started.+--+-- 'status', 'batchPrediction_status' - The batch prediction status.+--+-- 'totalRecordsCount', 'batchPrediction_totalRecordsCount' - The total number of records in the batch prediction job.+newBatchPrediction ::+  BatchPrediction+newBatchPrediction =+  BatchPrediction'+    { arn = Prelude.Nothing,+      completionTime = Prelude.Nothing,+      detectorName = Prelude.Nothing,+      detectorVersion = Prelude.Nothing,+      eventTypeName = Prelude.Nothing,+      failureReason = Prelude.Nothing,+      iamRoleArn = Prelude.Nothing,+      inputPath = Prelude.Nothing,+      jobId = Prelude.Nothing,+      lastHeartbeatTime = Prelude.Nothing,+      outputPath = Prelude.Nothing,+      processedRecordsCount = Prelude.Nothing,+      startTime = Prelude.Nothing,+      status = Prelude.Nothing,+      totalRecordsCount = Prelude.Nothing+    }++-- | The ARN of batch prediction job.+batchPrediction_arn :: Lens.Lens' BatchPrediction (Prelude.Maybe Prelude.Text)+batchPrediction_arn = Lens.lens (\BatchPrediction' {arn} -> arn) (\s@BatchPrediction' {} a -> s {arn = a} :: BatchPrediction)++-- | Timestamp of when the batch prediction job completed.+batchPrediction_completionTime :: Lens.Lens' BatchPrediction (Prelude.Maybe Prelude.Text)+batchPrediction_completionTime = Lens.lens (\BatchPrediction' {completionTime} -> completionTime) (\s@BatchPrediction' {} a -> s {completionTime = a} :: BatchPrediction)++-- | The name of the detector.+batchPrediction_detectorName :: Lens.Lens' BatchPrediction (Prelude.Maybe Prelude.Text)+batchPrediction_detectorName = Lens.lens (\BatchPrediction' {detectorName} -> detectorName) (\s@BatchPrediction' {} a -> s {detectorName = a} :: BatchPrediction)++-- | The detector version.+batchPrediction_detectorVersion :: Lens.Lens' BatchPrediction (Prelude.Maybe Prelude.Text)+batchPrediction_detectorVersion = Lens.lens (\BatchPrediction' {detectorVersion} -> detectorVersion) (\s@BatchPrediction' {} a -> s {detectorVersion = a} :: BatchPrediction)++-- | The name of the event type.+batchPrediction_eventTypeName :: Lens.Lens' BatchPrediction (Prelude.Maybe Prelude.Text)+batchPrediction_eventTypeName = Lens.lens (\BatchPrediction' {eventTypeName} -> eventTypeName) (\s@BatchPrediction' {} a -> s {eventTypeName = a} :: BatchPrediction)++-- | The reason a batch prediction job failed.+batchPrediction_failureReason :: Lens.Lens' BatchPrediction (Prelude.Maybe Prelude.Text)+batchPrediction_failureReason = Lens.lens (\BatchPrediction' {failureReason} -> failureReason) (\s@BatchPrediction' {} a -> s {failureReason = a} :: BatchPrediction)++-- | The ARN of the IAM role to use for this job request.+batchPrediction_iamRoleArn :: Lens.Lens' BatchPrediction (Prelude.Maybe Prelude.Text)+batchPrediction_iamRoleArn = Lens.lens (\BatchPrediction' {iamRoleArn} -> iamRoleArn) (\s@BatchPrediction' {} a -> s {iamRoleArn = a} :: BatchPrediction)++-- | The Amazon S3 location of your training file.+batchPrediction_inputPath :: Lens.Lens' BatchPrediction (Prelude.Maybe Prelude.Text)+batchPrediction_inputPath = Lens.lens (\BatchPrediction' {inputPath} -> inputPath) (\s@BatchPrediction' {} a -> s {inputPath = a} :: BatchPrediction)++-- | The job ID for the batch prediction.+batchPrediction_jobId :: Lens.Lens' BatchPrediction (Prelude.Maybe Prelude.Text)+batchPrediction_jobId = Lens.lens (\BatchPrediction' {jobId} -> jobId) (\s@BatchPrediction' {} a -> s {jobId = a} :: BatchPrediction)++-- | Timestamp of most recent heartbeat indicating the batch prediction job+-- was making progress.+batchPrediction_lastHeartbeatTime :: Lens.Lens' BatchPrediction (Prelude.Maybe Prelude.Text)+batchPrediction_lastHeartbeatTime = Lens.lens (\BatchPrediction' {lastHeartbeatTime} -> lastHeartbeatTime) (\s@BatchPrediction' {} a -> s {lastHeartbeatTime = a} :: BatchPrediction)++-- | The Amazon S3 location of your output file.+batchPrediction_outputPath :: Lens.Lens' BatchPrediction (Prelude.Maybe Prelude.Text)+batchPrediction_outputPath = Lens.lens (\BatchPrediction' {outputPath} -> outputPath) (\s@BatchPrediction' {} a -> s {outputPath = a} :: BatchPrediction)++-- | The number of records processed by the batch prediction job.+batchPrediction_processedRecordsCount :: Lens.Lens' BatchPrediction (Prelude.Maybe Prelude.Int)+batchPrediction_processedRecordsCount = Lens.lens (\BatchPrediction' {processedRecordsCount} -> processedRecordsCount) (\s@BatchPrediction' {} a -> s {processedRecordsCount = a} :: BatchPrediction)++-- | Timestamp of when the batch prediction job started.+batchPrediction_startTime :: Lens.Lens' BatchPrediction (Prelude.Maybe Prelude.Text)+batchPrediction_startTime = Lens.lens (\BatchPrediction' {startTime} -> startTime) (\s@BatchPrediction' {} a -> s {startTime = a} :: BatchPrediction)++-- | The batch prediction status.+batchPrediction_status :: Lens.Lens' BatchPrediction (Prelude.Maybe AsyncJobStatus)+batchPrediction_status = Lens.lens (\BatchPrediction' {status} -> status) (\s@BatchPrediction' {} a -> s {status = a} :: BatchPrediction)++-- | The total number of records in the batch prediction job.+batchPrediction_totalRecordsCount :: Lens.Lens' BatchPrediction (Prelude.Maybe Prelude.Int)+batchPrediction_totalRecordsCount = Lens.lens (\BatchPrediction' {totalRecordsCount} -> totalRecordsCount) (\s@BatchPrediction' {} a -> s {totalRecordsCount = a} :: BatchPrediction)++instance Data.FromJSON BatchPrediction where+  parseJSON =+    Data.withObject+      "BatchPrediction"+      ( \x ->+          BatchPrediction'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "completionTime")+            Prelude.<*> (x Data..:? "detectorName")+            Prelude.<*> (x Data..:? "detectorVersion")+            Prelude.<*> (x Data..:? "eventTypeName")+            Prelude.<*> (x Data..:? "failureReason")+            Prelude.<*> (x Data..:? "iamRoleArn")+            Prelude.<*> (x Data..:? "inputPath")+            Prelude.<*> (x Data..:? "jobId")+            Prelude.<*> (x Data..:? "lastHeartbeatTime")+            Prelude.<*> (x Data..:? "outputPath")+            Prelude.<*> (x Data..:? "processedRecordsCount")+            Prelude.<*> (x Data..:? "startTime")+            Prelude.<*> (x Data..:? "status")+            Prelude.<*> (x Data..:? "totalRecordsCount")+      )++instance Prelude.Hashable BatchPrediction where+  hashWithSalt _salt BatchPrediction' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` completionTime+      `Prelude.hashWithSalt` detectorName+      `Prelude.hashWithSalt` detectorVersion+      `Prelude.hashWithSalt` eventTypeName+      `Prelude.hashWithSalt` failureReason+      `Prelude.hashWithSalt` iamRoleArn+      `Prelude.hashWithSalt` inputPath+      `Prelude.hashWithSalt` jobId+      `Prelude.hashWithSalt` lastHeartbeatTime+      `Prelude.hashWithSalt` outputPath+      `Prelude.hashWithSalt` processedRecordsCount+      `Prelude.hashWithSalt` startTime+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` totalRecordsCount++instance Prelude.NFData BatchPrediction where+  rnf BatchPrediction' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf completionTime+      `Prelude.seq` Prelude.rnf detectorName+      `Prelude.seq` Prelude.rnf detectorVersion+      `Prelude.seq` Prelude.rnf eventTypeName+      `Prelude.seq` Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf iamRoleArn+      `Prelude.seq` Prelude.rnf inputPath+      `Prelude.seq` Prelude.rnf jobId+      `Prelude.seq` Prelude.rnf lastHeartbeatTime+      `Prelude.seq` Prelude.rnf outputPath+      `Prelude.seq` Prelude.rnf processedRecordsCount+      `Prelude.seq` Prelude.rnf startTime+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf totalRecordsCount
+ gen/Amazonka/FraudDetector/Types/DataSource.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.FraudDetector.Types.DataSource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.DataSource+  ( DataSource+      ( ..,+        DataSource_EVENT,+        DataSource_EXTERNAL_MODEL_SCORE,+        DataSource_MODEL_SCORE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DataSource = DataSource'+  { fromDataSource ::+      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 DataSource_EVENT :: DataSource+pattern DataSource_EVENT = DataSource' "EVENT"++pattern DataSource_EXTERNAL_MODEL_SCORE :: DataSource+pattern DataSource_EXTERNAL_MODEL_SCORE = DataSource' "EXTERNAL_MODEL_SCORE"++pattern DataSource_MODEL_SCORE :: DataSource+pattern DataSource_MODEL_SCORE = DataSource' "MODEL_SCORE"++{-# COMPLETE+  DataSource_EVENT,+  DataSource_EXTERNAL_MODEL_SCORE,+  DataSource_MODEL_SCORE,+  DataSource'+  #-}
+ gen/Amazonka/FraudDetector/Types/DataType.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.FraudDetector.Types.DataType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.DataType+  ( DataType+      ( ..,+        DataType_BOOLEAN,+        DataType_FLOAT,+        DataType_INTEGER,+        DataType_STRING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DataType = DataType'+  { fromDataType ::+      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 DataType_BOOLEAN :: DataType+pattern DataType_BOOLEAN = DataType' "BOOLEAN"++pattern DataType_FLOAT :: DataType+pattern DataType_FLOAT = DataType' "FLOAT"++pattern DataType_INTEGER :: DataType+pattern DataType_INTEGER = DataType' "INTEGER"++pattern DataType_STRING :: DataType+pattern DataType_STRING = DataType' "STRING"++{-# COMPLETE+  DataType_BOOLEAN,+  DataType_FLOAT,+  DataType_INTEGER,+  DataType_STRING,+  DataType'+  #-}
+ gen/Amazonka/FraudDetector/Types/DataValidationMetrics.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.FraudDetector.Types.DataValidationMetrics+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.DataValidationMetrics where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types.FieldValidationMessage+import Amazonka.FraudDetector.Types.FileValidationMessage+import qualified Amazonka.Prelude as Prelude++-- | The model training data validation metrics.+--+-- /See:/ 'newDataValidationMetrics' smart constructor.+data DataValidationMetrics = DataValidationMetrics'+  { -- | The field-specific model training validation messages.+    fieldLevelMessages :: Prelude.Maybe [FieldValidationMessage],+    -- | The file-specific model training data validation messages.+    fileLevelMessages :: Prelude.Maybe [FileValidationMessage]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataValidationMetrics' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'fieldLevelMessages', 'dataValidationMetrics_fieldLevelMessages' - The field-specific model training validation messages.+--+-- 'fileLevelMessages', 'dataValidationMetrics_fileLevelMessages' - The file-specific model training data validation messages.+newDataValidationMetrics ::+  DataValidationMetrics+newDataValidationMetrics =+  DataValidationMetrics'+    { fieldLevelMessages =+        Prelude.Nothing,+      fileLevelMessages = Prelude.Nothing+    }++-- | The field-specific model training validation messages.+dataValidationMetrics_fieldLevelMessages :: Lens.Lens' DataValidationMetrics (Prelude.Maybe [FieldValidationMessage])+dataValidationMetrics_fieldLevelMessages = Lens.lens (\DataValidationMetrics' {fieldLevelMessages} -> fieldLevelMessages) (\s@DataValidationMetrics' {} a -> s {fieldLevelMessages = a} :: DataValidationMetrics) Prelude.. Lens.mapping Lens.coerced++-- | The file-specific model training data validation messages.+dataValidationMetrics_fileLevelMessages :: Lens.Lens' DataValidationMetrics (Prelude.Maybe [FileValidationMessage])+dataValidationMetrics_fileLevelMessages = Lens.lens (\DataValidationMetrics' {fileLevelMessages} -> fileLevelMessages) (\s@DataValidationMetrics' {} a -> s {fileLevelMessages = a} :: DataValidationMetrics) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON DataValidationMetrics where+  parseJSON =+    Data.withObject+      "DataValidationMetrics"+      ( \x ->+          DataValidationMetrics'+            Prelude.<$> ( x+                            Data..:? "fieldLevelMessages"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "fileLevelMessages"+                            Data..!= Prelude.mempty+                        )+      )++instance Prelude.Hashable DataValidationMetrics where+  hashWithSalt _salt DataValidationMetrics' {..} =+    _salt+      `Prelude.hashWithSalt` fieldLevelMessages+      `Prelude.hashWithSalt` fileLevelMessages++instance Prelude.NFData DataValidationMetrics where+  rnf DataValidationMetrics' {..} =+    Prelude.rnf fieldLevelMessages+      `Prelude.seq` Prelude.rnf fileLevelMessages
+ gen/Amazonka/FraudDetector/Types/Detector.hs view
@@ -0,0 +1,132 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.Types.Detector+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.Detector where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The detector.+--+-- /See:/ 'newDetector' smart constructor.+data Detector = Detector'+  { -- | The detector ARN.+    arn :: Prelude.Maybe Prelude.Text,+    -- | Timestamp of when the detector was created.+    createdTime :: Prelude.Maybe Prelude.Text,+    -- | The detector description.+    description :: Prelude.Maybe Prelude.Text,+    -- | The detector ID.+    detectorId :: Prelude.Maybe Prelude.Text,+    -- | The name of the event type.+    eventTypeName :: Prelude.Maybe Prelude.Text,+    -- | Timestamp of when the detector was last updated.+    lastUpdatedTime :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Detector' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'detector_arn' - The detector ARN.+--+-- 'createdTime', 'detector_createdTime' - Timestamp of when the detector was created.+--+-- 'description', 'detector_description' - The detector description.+--+-- 'detectorId', 'detector_detectorId' - The detector ID.+--+-- 'eventTypeName', 'detector_eventTypeName' - The name of the event type.+--+-- 'lastUpdatedTime', 'detector_lastUpdatedTime' - Timestamp of when the detector was last updated.+newDetector ::+  Detector+newDetector =+  Detector'+    { arn = Prelude.Nothing,+      createdTime = Prelude.Nothing,+      description = Prelude.Nothing,+      detectorId = Prelude.Nothing,+      eventTypeName = Prelude.Nothing,+      lastUpdatedTime = Prelude.Nothing+    }++-- | The detector ARN.+detector_arn :: Lens.Lens' Detector (Prelude.Maybe Prelude.Text)+detector_arn = Lens.lens (\Detector' {arn} -> arn) (\s@Detector' {} a -> s {arn = a} :: Detector)++-- | Timestamp of when the detector was created.+detector_createdTime :: Lens.Lens' Detector (Prelude.Maybe Prelude.Text)+detector_createdTime = Lens.lens (\Detector' {createdTime} -> createdTime) (\s@Detector' {} a -> s {createdTime = a} :: Detector)++-- | The detector description.+detector_description :: Lens.Lens' Detector (Prelude.Maybe Prelude.Text)+detector_description = Lens.lens (\Detector' {description} -> description) (\s@Detector' {} a -> s {description = a} :: Detector)++-- | The detector ID.+detector_detectorId :: Lens.Lens' Detector (Prelude.Maybe Prelude.Text)+detector_detectorId = Lens.lens (\Detector' {detectorId} -> detectorId) (\s@Detector' {} a -> s {detectorId = a} :: Detector)++-- | The name of the event type.+detector_eventTypeName :: Lens.Lens' Detector (Prelude.Maybe Prelude.Text)+detector_eventTypeName = Lens.lens (\Detector' {eventTypeName} -> eventTypeName) (\s@Detector' {} a -> s {eventTypeName = a} :: Detector)++-- | Timestamp of when the detector was last updated.+detector_lastUpdatedTime :: Lens.Lens' Detector (Prelude.Maybe Prelude.Text)+detector_lastUpdatedTime = Lens.lens (\Detector' {lastUpdatedTime} -> lastUpdatedTime) (\s@Detector' {} a -> s {lastUpdatedTime = a} :: Detector)++instance Data.FromJSON Detector where+  parseJSON =+    Data.withObject+      "Detector"+      ( \x ->+          Detector'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "createdTime")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "detectorId")+            Prelude.<*> (x Data..:? "eventTypeName")+            Prelude.<*> (x Data..:? "lastUpdatedTime")+      )++instance Prelude.Hashable Detector where+  hashWithSalt _salt Detector' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` createdTime+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` detectorId+      `Prelude.hashWithSalt` eventTypeName+      `Prelude.hashWithSalt` lastUpdatedTime++instance Prelude.NFData Detector where+  rnf Detector' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdTime+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf detectorId+      `Prelude.seq` Prelude.rnf eventTypeName+      `Prelude.seq` Prelude.rnf lastUpdatedTime
+ gen/Amazonka/FraudDetector/Types/DetectorVersionStatus.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.FraudDetector.Types.DetectorVersionStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.DetectorVersionStatus+  ( DetectorVersionStatus+      ( ..,+        DetectorVersionStatus_ACTIVE,+        DetectorVersionStatus_DRAFT,+        DetectorVersionStatus_INACTIVE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DetectorVersionStatus = DetectorVersionStatus'+  { fromDetectorVersionStatus ::+      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 DetectorVersionStatus_ACTIVE :: DetectorVersionStatus+pattern DetectorVersionStatus_ACTIVE = DetectorVersionStatus' "ACTIVE"++pattern DetectorVersionStatus_DRAFT :: DetectorVersionStatus+pattern DetectorVersionStatus_DRAFT = DetectorVersionStatus' "DRAFT"++pattern DetectorVersionStatus_INACTIVE :: DetectorVersionStatus+pattern DetectorVersionStatus_INACTIVE = DetectorVersionStatus' "INACTIVE"++{-# COMPLETE+  DetectorVersionStatus_ACTIVE,+  DetectorVersionStatus_DRAFT,+  DetectorVersionStatus_INACTIVE,+  DetectorVersionStatus'+  #-}
+ gen/Amazonka/FraudDetector/Types/DetectorVersionSummary.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.FraudDetector.Types.DetectorVersionSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.DetectorVersionSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types.DetectorVersionStatus+import qualified Amazonka.Prelude as Prelude++-- | The summary of the detector version.+--+-- /See:/ 'newDetectorVersionSummary' smart constructor.+data DetectorVersionSummary = DetectorVersionSummary'+  { -- | The detector version description.+    description :: Prelude.Maybe Prelude.Text,+    -- | The detector version ID.+    detectorVersionId :: Prelude.Maybe Prelude.Text,+    -- | Timestamp of when the detector version was last updated.+    lastUpdatedTime :: Prelude.Maybe Prelude.Text,+    -- | The detector version status.+    status :: Prelude.Maybe DetectorVersionStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DetectorVersionSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'detectorVersionSummary_description' - The detector version description.+--+-- 'detectorVersionId', 'detectorVersionSummary_detectorVersionId' - The detector version ID.+--+-- 'lastUpdatedTime', 'detectorVersionSummary_lastUpdatedTime' - Timestamp of when the detector version was last updated.+--+-- 'status', 'detectorVersionSummary_status' - The detector version status.+newDetectorVersionSummary ::+  DetectorVersionSummary+newDetectorVersionSummary =+  DetectorVersionSummary'+    { description =+        Prelude.Nothing,+      detectorVersionId = Prelude.Nothing,+      lastUpdatedTime = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The detector version description.+detectorVersionSummary_description :: Lens.Lens' DetectorVersionSummary (Prelude.Maybe Prelude.Text)+detectorVersionSummary_description = Lens.lens (\DetectorVersionSummary' {description} -> description) (\s@DetectorVersionSummary' {} a -> s {description = a} :: DetectorVersionSummary)++-- | The detector version ID.+detectorVersionSummary_detectorVersionId :: Lens.Lens' DetectorVersionSummary (Prelude.Maybe Prelude.Text)+detectorVersionSummary_detectorVersionId = Lens.lens (\DetectorVersionSummary' {detectorVersionId} -> detectorVersionId) (\s@DetectorVersionSummary' {} a -> s {detectorVersionId = a} :: DetectorVersionSummary)++-- | Timestamp of when the detector version was last updated.+detectorVersionSummary_lastUpdatedTime :: Lens.Lens' DetectorVersionSummary (Prelude.Maybe Prelude.Text)+detectorVersionSummary_lastUpdatedTime = Lens.lens (\DetectorVersionSummary' {lastUpdatedTime} -> lastUpdatedTime) (\s@DetectorVersionSummary' {} a -> s {lastUpdatedTime = a} :: DetectorVersionSummary)++-- | The detector version status.+detectorVersionSummary_status :: Lens.Lens' DetectorVersionSummary (Prelude.Maybe DetectorVersionStatus)+detectorVersionSummary_status = Lens.lens (\DetectorVersionSummary' {status} -> status) (\s@DetectorVersionSummary' {} a -> s {status = a} :: DetectorVersionSummary)++instance Data.FromJSON DetectorVersionSummary where+  parseJSON =+    Data.withObject+      "DetectorVersionSummary"+      ( \x ->+          DetectorVersionSummary'+            Prelude.<$> (x Data..:? "description")+            Prelude.<*> (x Data..:? "detectorVersionId")+            Prelude.<*> (x Data..:? "lastUpdatedTime")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable DetectorVersionSummary where+  hashWithSalt _salt DetectorVersionSummary' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` detectorVersionId+      `Prelude.hashWithSalt` lastUpdatedTime+      `Prelude.hashWithSalt` status++instance Prelude.NFData DetectorVersionSummary where+  rnf DetectorVersionSummary' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf detectorVersionId+      `Prelude.seq` Prelude.rnf lastUpdatedTime+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/FraudDetector/Types/Entity.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.FraudDetector.Types.Entity+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.Entity where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The entity details.+--+-- /See:/ 'newEntity' smart constructor.+data Entity = Entity'+  { -- | The entity type.+    entityType :: Prelude.Text,+    -- | The entity ID. If you do not know the @entityId@, you can pass+    -- @unknown@, which is areserved string literal.+    entityId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Entity' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'entityType', 'entity_entityType' - The entity type.+--+-- 'entityId', 'entity_entityId' - The entity ID. If you do not know the @entityId@, you can pass+-- @unknown@, which is areserved string literal.+newEntity ::+  -- | 'entityType'+  Prelude.Text ->+  -- | 'entityId'+  Prelude.Text ->+  Entity+newEntity pEntityType_ pEntityId_ =+  Entity'+    { entityType = pEntityType_,+      entityId = pEntityId_+    }++-- | The entity type.+entity_entityType :: Lens.Lens' Entity Prelude.Text+entity_entityType = Lens.lens (\Entity' {entityType} -> entityType) (\s@Entity' {} a -> s {entityType = a} :: Entity)++-- | The entity ID. If you do not know the @entityId@, you can pass+-- @unknown@, which is areserved string literal.+entity_entityId :: Lens.Lens' Entity Prelude.Text+entity_entityId = Lens.lens (\Entity' {entityId} -> entityId) (\s@Entity' {} a -> s {entityId = a} :: Entity)++instance Data.FromJSON Entity where+  parseJSON =+    Data.withObject+      "Entity"+      ( \x ->+          Entity'+            Prelude.<$> (x Data..: "entityType")+            Prelude.<*> (x Data..: "entityId")+      )++instance Prelude.Hashable Entity where+  hashWithSalt _salt Entity' {..} =+    _salt+      `Prelude.hashWithSalt` entityType+      `Prelude.hashWithSalt` entityId++instance Prelude.NFData Entity where+  rnf Entity' {..} =+    Prelude.rnf entityType+      `Prelude.seq` Prelude.rnf entityId++instance Data.ToJSON Entity where+  toJSON Entity' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("entityType" Data..= entityType),+            Prelude.Just ("entityId" Data..= entityId)+          ]+      )
+ gen/Amazonka/FraudDetector/Types/EntityType.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.FraudDetector.Types.EntityType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.EntityType where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The entity type details.+--+-- /See:/ 'newEntityType' smart constructor.+data EntityType = EntityType'+  { -- | The entity type ARN.+    arn :: Prelude.Maybe Prelude.Text,+    -- | Timestamp of when the entity type was created.+    createdTime :: Prelude.Maybe Prelude.Text,+    -- | The entity type description.+    description :: Prelude.Maybe Prelude.Text,+    -- | Timestamp of when the entity type was last updated.+    lastUpdatedTime :: Prelude.Maybe Prelude.Text,+    -- | The entity type name.+    name :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EntityType' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'entityType_arn' - The entity type ARN.+--+-- 'createdTime', 'entityType_createdTime' - Timestamp of when the entity type was created.+--+-- 'description', 'entityType_description' - The entity type description.+--+-- 'lastUpdatedTime', 'entityType_lastUpdatedTime' - Timestamp of when the entity type was last updated.+--+-- 'name', 'entityType_name' - The entity type name.+newEntityType ::+  EntityType+newEntityType =+  EntityType'+    { arn = Prelude.Nothing,+      createdTime = Prelude.Nothing,+      description = Prelude.Nothing,+      lastUpdatedTime = Prelude.Nothing,+      name = Prelude.Nothing+    }++-- | The entity type ARN.+entityType_arn :: Lens.Lens' EntityType (Prelude.Maybe Prelude.Text)+entityType_arn = Lens.lens (\EntityType' {arn} -> arn) (\s@EntityType' {} a -> s {arn = a} :: EntityType)++-- | Timestamp of when the entity type was created.+entityType_createdTime :: Lens.Lens' EntityType (Prelude.Maybe Prelude.Text)+entityType_createdTime = Lens.lens (\EntityType' {createdTime} -> createdTime) (\s@EntityType' {} a -> s {createdTime = a} :: EntityType)++-- | The entity type description.+entityType_description :: Lens.Lens' EntityType (Prelude.Maybe Prelude.Text)+entityType_description = Lens.lens (\EntityType' {description} -> description) (\s@EntityType' {} a -> s {description = a} :: EntityType)++-- | Timestamp of when the entity type was last updated.+entityType_lastUpdatedTime :: Lens.Lens' EntityType (Prelude.Maybe Prelude.Text)+entityType_lastUpdatedTime = Lens.lens (\EntityType' {lastUpdatedTime} -> lastUpdatedTime) (\s@EntityType' {} a -> s {lastUpdatedTime = a} :: EntityType)++-- | The entity type name.+entityType_name :: Lens.Lens' EntityType (Prelude.Maybe Prelude.Text)+entityType_name = Lens.lens (\EntityType' {name} -> name) (\s@EntityType' {} a -> s {name = a} :: EntityType)++instance Data.FromJSON EntityType where+  parseJSON =+    Data.withObject+      "EntityType"+      ( \x ->+          EntityType'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "createdTime")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "lastUpdatedTime")+            Prelude.<*> (x Data..:? "name")+      )++instance Prelude.Hashable EntityType where+  hashWithSalt _salt EntityType' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` createdTime+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` lastUpdatedTime+      `Prelude.hashWithSalt` name++instance Prelude.NFData EntityType where+  rnf EntityType' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdTime+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf lastUpdatedTime+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/FraudDetector/Types/EvaluatedExternalModel.hs view
@@ -0,0 +1,113 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.Types.EvaluatedExternalModel+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.EvaluatedExternalModel where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The details of the external (Amazon Sagemaker) model evaluated for+-- generating predictions.+--+-- /See:/ 'newEvaluatedExternalModel' smart constructor.+data EvaluatedExternalModel = EvaluatedExternalModel'+  { -- | Input variables use for generating predictions.+    inputVariables :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | The endpoint of the external (Amazon Sagemaker) model.+    modelEndpoint :: Prelude.Maybe Prelude.Text,+    -- | Output variables.+    outputVariables :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | Indicates whether event variables were used to generate predictions.+    useEventVariables :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EvaluatedExternalModel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'inputVariables', 'evaluatedExternalModel_inputVariables' - Input variables use for generating predictions.+--+-- 'modelEndpoint', 'evaluatedExternalModel_modelEndpoint' - The endpoint of the external (Amazon Sagemaker) model.+--+-- 'outputVariables', 'evaluatedExternalModel_outputVariables' - Output variables.+--+-- 'useEventVariables', 'evaluatedExternalModel_useEventVariables' - Indicates whether event variables were used to generate predictions.+newEvaluatedExternalModel ::+  EvaluatedExternalModel+newEvaluatedExternalModel =+  EvaluatedExternalModel'+    { inputVariables =+        Prelude.Nothing,+      modelEndpoint = Prelude.Nothing,+      outputVariables = Prelude.Nothing,+      useEventVariables = Prelude.Nothing+    }++-- | Input variables use for generating predictions.+evaluatedExternalModel_inputVariables :: Lens.Lens' EvaluatedExternalModel (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+evaluatedExternalModel_inputVariables = Lens.lens (\EvaluatedExternalModel' {inputVariables} -> inputVariables) (\s@EvaluatedExternalModel' {} a -> s {inputVariables = a} :: EvaluatedExternalModel) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | The endpoint of the external (Amazon Sagemaker) model.+evaluatedExternalModel_modelEndpoint :: Lens.Lens' EvaluatedExternalModel (Prelude.Maybe Prelude.Text)+evaluatedExternalModel_modelEndpoint = Lens.lens (\EvaluatedExternalModel' {modelEndpoint} -> modelEndpoint) (\s@EvaluatedExternalModel' {} a -> s {modelEndpoint = a} :: EvaluatedExternalModel)++-- | Output variables.+evaluatedExternalModel_outputVariables :: Lens.Lens' EvaluatedExternalModel (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+evaluatedExternalModel_outputVariables = Lens.lens (\EvaluatedExternalModel' {outputVariables} -> outputVariables) (\s@EvaluatedExternalModel' {} a -> s {outputVariables = a} :: EvaluatedExternalModel) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | Indicates whether event variables were used to generate predictions.+evaluatedExternalModel_useEventVariables :: Lens.Lens' EvaluatedExternalModel (Prelude.Maybe Prelude.Bool)+evaluatedExternalModel_useEventVariables = Lens.lens (\EvaluatedExternalModel' {useEventVariables} -> useEventVariables) (\s@EvaluatedExternalModel' {} a -> s {useEventVariables = a} :: EvaluatedExternalModel)++instance Data.FromJSON EvaluatedExternalModel where+  parseJSON =+    Data.withObject+      "EvaluatedExternalModel"+      ( \x ->+          EvaluatedExternalModel'+            Prelude.<$> (x Data..:? "inputVariables" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "modelEndpoint")+            Prelude.<*> ( x+                            Data..:? "outputVariables"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "useEventVariables")+      )++instance Prelude.Hashable EvaluatedExternalModel where+  hashWithSalt _salt EvaluatedExternalModel' {..} =+    _salt+      `Prelude.hashWithSalt` inputVariables+      `Prelude.hashWithSalt` modelEndpoint+      `Prelude.hashWithSalt` outputVariables+      `Prelude.hashWithSalt` useEventVariables++instance Prelude.NFData EvaluatedExternalModel where+  rnf EvaluatedExternalModel' {..} =+    Prelude.rnf inputVariables+      `Prelude.seq` Prelude.rnf modelEndpoint+      `Prelude.seq` Prelude.rnf outputVariables+      `Prelude.seq` Prelude.rnf useEventVariables
+ gen/Amazonka/FraudDetector/Types/EvaluatedModelVersion.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.FraudDetector.Types.EvaluatedModelVersion+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.EvaluatedModelVersion where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types.ModelVersionEvaluation+import qualified Amazonka.Prelude as Prelude++-- | The model version evaluated for generating prediction.+--+-- /See:/ 'newEvaluatedModelVersion' smart constructor.+data EvaluatedModelVersion = EvaluatedModelVersion'+  { -- | Evaluations generated for the model version.+    evaluations :: Prelude.Maybe [ModelVersionEvaluation],+    -- | The model ID.+    modelId :: Prelude.Maybe Prelude.Text,+    -- | The model type.+    --+    -- Valid values: @ONLINE_FRAUD_INSIGHTS@ | @TRANSACTION_FRAUD_INSIGHTS@+    modelType :: Prelude.Maybe Prelude.Text,+    -- | The model version.+    modelVersion :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EvaluatedModelVersion' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'evaluations', 'evaluatedModelVersion_evaluations' - Evaluations generated for the model version.+--+-- 'modelId', 'evaluatedModelVersion_modelId' - The model ID.+--+-- 'modelType', 'evaluatedModelVersion_modelType' - The model type.+--+-- Valid values: @ONLINE_FRAUD_INSIGHTS@ | @TRANSACTION_FRAUD_INSIGHTS@+--+-- 'modelVersion', 'evaluatedModelVersion_modelVersion' - The model version.+newEvaluatedModelVersion ::+  EvaluatedModelVersion+newEvaluatedModelVersion =+  EvaluatedModelVersion'+    { evaluations =+        Prelude.Nothing,+      modelId = Prelude.Nothing,+      modelType = Prelude.Nothing,+      modelVersion = Prelude.Nothing+    }++-- | Evaluations generated for the model version.+evaluatedModelVersion_evaluations :: Lens.Lens' EvaluatedModelVersion (Prelude.Maybe [ModelVersionEvaluation])+evaluatedModelVersion_evaluations = Lens.lens (\EvaluatedModelVersion' {evaluations} -> evaluations) (\s@EvaluatedModelVersion' {} a -> s {evaluations = a} :: EvaluatedModelVersion) Prelude.. Lens.mapping Lens.coerced++-- | The model ID.+evaluatedModelVersion_modelId :: Lens.Lens' EvaluatedModelVersion (Prelude.Maybe Prelude.Text)+evaluatedModelVersion_modelId = Lens.lens (\EvaluatedModelVersion' {modelId} -> modelId) (\s@EvaluatedModelVersion' {} a -> s {modelId = a} :: EvaluatedModelVersion)++-- | The model type.+--+-- Valid values: @ONLINE_FRAUD_INSIGHTS@ | @TRANSACTION_FRAUD_INSIGHTS@+evaluatedModelVersion_modelType :: Lens.Lens' EvaluatedModelVersion (Prelude.Maybe Prelude.Text)+evaluatedModelVersion_modelType = Lens.lens (\EvaluatedModelVersion' {modelType} -> modelType) (\s@EvaluatedModelVersion' {} a -> s {modelType = a} :: EvaluatedModelVersion)++-- | The model version.+evaluatedModelVersion_modelVersion :: Lens.Lens' EvaluatedModelVersion (Prelude.Maybe Prelude.Text)+evaluatedModelVersion_modelVersion = Lens.lens (\EvaluatedModelVersion' {modelVersion} -> modelVersion) (\s@EvaluatedModelVersion' {} a -> s {modelVersion = a} :: EvaluatedModelVersion)++instance Data.FromJSON EvaluatedModelVersion where+  parseJSON =+    Data.withObject+      "EvaluatedModelVersion"+      ( \x ->+          EvaluatedModelVersion'+            Prelude.<$> (x Data..:? "evaluations" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "modelId")+            Prelude.<*> (x Data..:? "modelType")+            Prelude.<*> (x Data..:? "modelVersion")+      )++instance Prelude.Hashable EvaluatedModelVersion where+  hashWithSalt _salt EvaluatedModelVersion' {..} =+    _salt+      `Prelude.hashWithSalt` evaluations+      `Prelude.hashWithSalt` modelId+      `Prelude.hashWithSalt` modelType+      `Prelude.hashWithSalt` modelVersion++instance Prelude.NFData EvaluatedModelVersion where+  rnf EvaluatedModelVersion' {..} =+    Prelude.rnf evaluations+      `Prelude.seq` Prelude.rnf modelId+      `Prelude.seq` Prelude.rnf modelType+      `Prelude.seq` Prelude.rnf modelVersion
+ gen/Amazonka/FraudDetector/Types/EvaluatedRule.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.FraudDetector.Types.EvaluatedRule+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.EvaluatedRule where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The details of the rule used for evaluating variable values.+--+-- /See:/ 'newEvaluatedRule' smart constructor.+data EvaluatedRule = EvaluatedRule'+  { -- | Indicates whether the rule was evaluated.+    evaluated :: Prelude.Maybe Prelude.Bool,+    -- | The rule expression.+    expression :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The rule expression value.+    expressionWithValues :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | Indicates whether the rule matched.+    matched :: Prelude.Maybe Prelude.Bool,+    -- | The rule outcome.+    outcomes :: Prelude.Maybe [Prelude.Text],+    -- | The rule ID.+    ruleId :: Prelude.Maybe Prelude.Text,+    -- | The rule version.+    ruleVersion :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EvaluatedRule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'evaluated', 'evaluatedRule_evaluated' - Indicates whether the rule was evaluated.+--+-- 'expression', 'evaluatedRule_expression' - The rule expression.+--+-- 'expressionWithValues', 'evaluatedRule_expressionWithValues' - The rule expression value.+--+-- 'matched', 'evaluatedRule_matched' - Indicates whether the rule matched.+--+-- 'outcomes', 'evaluatedRule_outcomes' - The rule outcome.+--+-- 'ruleId', 'evaluatedRule_ruleId' - The rule ID.+--+-- 'ruleVersion', 'evaluatedRule_ruleVersion' - The rule version.+newEvaluatedRule ::+  EvaluatedRule+newEvaluatedRule =+  EvaluatedRule'+    { evaluated = Prelude.Nothing,+      expression = Prelude.Nothing,+      expressionWithValues = Prelude.Nothing,+      matched = Prelude.Nothing,+      outcomes = Prelude.Nothing,+      ruleId = Prelude.Nothing,+      ruleVersion = Prelude.Nothing+    }++-- | Indicates whether the rule was evaluated.+evaluatedRule_evaluated :: Lens.Lens' EvaluatedRule (Prelude.Maybe Prelude.Bool)+evaluatedRule_evaluated = Lens.lens (\EvaluatedRule' {evaluated} -> evaluated) (\s@EvaluatedRule' {} a -> s {evaluated = a} :: EvaluatedRule)++-- | The rule expression.+evaluatedRule_expression :: Lens.Lens' EvaluatedRule (Prelude.Maybe Prelude.Text)+evaluatedRule_expression = Lens.lens (\EvaluatedRule' {expression} -> expression) (\s@EvaluatedRule' {} a -> s {expression = a} :: EvaluatedRule) Prelude.. Lens.mapping Data._Sensitive++-- | The rule expression value.+evaluatedRule_expressionWithValues :: Lens.Lens' EvaluatedRule (Prelude.Maybe Prelude.Text)+evaluatedRule_expressionWithValues = Lens.lens (\EvaluatedRule' {expressionWithValues} -> expressionWithValues) (\s@EvaluatedRule' {} a -> s {expressionWithValues = a} :: EvaluatedRule) Prelude.. Lens.mapping Data._Sensitive++-- | Indicates whether the rule matched.+evaluatedRule_matched :: Lens.Lens' EvaluatedRule (Prelude.Maybe Prelude.Bool)+evaluatedRule_matched = Lens.lens (\EvaluatedRule' {matched} -> matched) (\s@EvaluatedRule' {} a -> s {matched = a} :: EvaluatedRule)++-- | The rule outcome.+evaluatedRule_outcomes :: Lens.Lens' EvaluatedRule (Prelude.Maybe [Prelude.Text])+evaluatedRule_outcomes = Lens.lens (\EvaluatedRule' {outcomes} -> outcomes) (\s@EvaluatedRule' {} a -> s {outcomes = a} :: EvaluatedRule) Prelude.. Lens.mapping Lens.coerced++-- | The rule ID.+evaluatedRule_ruleId :: Lens.Lens' EvaluatedRule (Prelude.Maybe Prelude.Text)+evaluatedRule_ruleId = Lens.lens (\EvaluatedRule' {ruleId} -> ruleId) (\s@EvaluatedRule' {} a -> s {ruleId = a} :: EvaluatedRule)++-- | The rule version.+evaluatedRule_ruleVersion :: Lens.Lens' EvaluatedRule (Prelude.Maybe Prelude.Text)+evaluatedRule_ruleVersion = Lens.lens (\EvaluatedRule' {ruleVersion} -> ruleVersion) (\s@EvaluatedRule' {} a -> s {ruleVersion = a} :: EvaluatedRule)++instance Data.FromJSON EvaluatedRule where+  parseJSON =+    Data.withObject+      "EvaluatedRule"+      ( \x ->+          EvaluatedRule'+            Prelude.<$> (x Data..:? "evaluated")+            Prelude.<*> (x Data..:? "expression")+            Prelude.<*> (x Data..:? "expressionWithValues")+            Prelude.<*> (x Data..:? "matched")+            Prelude.<*> (x Data..:? "outcomes" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "ruleId")+            Prelude.<*> (x Data..:? "ruleVersion")+      )++instance Prelude.Hashable EvaluatedRule where+  hashWithSalt _salt EvaluatedRule' {..} =+    _salt+      `Prelude.hashWithSalt` evaluated+      `Prelude.hashWithSalt` expression+      `Prelude.hashWithSalt` expressionWithValues+      `Prelude.hashWithSalt` matched+      `Prelude.hashWithSalt` outcomes+      `Prelude.hashWithSalt` ruleId+      `Prelude.hashWithSalt` ruleVersion++instance Prelude.NFData EvaluatedRule where+  rnf EvaluatedRule' {..} =+    Prelude.rnf evaluated+      `Prelude.seq` Prelude.rnf expression+      `Prelude.seq` Prelude.rnf expressionWithValues+      `Prelude.seq` Prelude.rnf matched+      `Prelude.seq` Prelude.rnf outcomes+      `Prelude.seq` Prelude.rnf ruleId+      `Prelude.seq` Prelude.rnf ruleVersion
+ gen/Amazonka/FraudDetector/Types/Event.hs view
@@ -0,0 +1,157 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.Types.Event+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.Event where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types.Entity+import qualified Amazonka.Prelude as Prelude++-- | The event details.+--+-- /See:/ 'newEvent' smart constructor.+data Event = Event'+  { -- | The label associated with the event.+    currentLabel :: Prelude.Maybe Prelude.Text,+    -- | The event entities.+    entities :: Prelude.Maybe [Data.Sensitive Entity],+    -- | The event ID.+    eventId :: Prelude.Maybe Prelude.Text,+    -- | The timestamp that defines when the event under evaluation occurred. The+    -- timestamp must be specified using ISO 8601 standard in UTC.+    eventTimestamp :: Prelude.Maybe Prelude.Text,+    -- | The event type.+    eventTypeName :: Prelude.Maybe Prelude.Text,+    -- | Names of the event type\'s variables you defined in Amazon Fraud+    -- Detector to represent data elements and their corresponding values for+    -- the event you are sending for evaluation.+    eventVariables :: Prelude.Maybe (Prelude.HashMap Prelude.Text (Data.Sensitive Prelude.Text)),+    -- | The timestamp associated with the label to update. The timestamp must be+    -- specified using ISO 8601 standard in UTC.+    labelTimestamp :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Event' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'currentLabel', 'event_currentLabel' - The label associated with the event.+--+-- 'entities', 'event_entities' - The event entities.+--+-- 'eventId', 'event_eventId' - The event ID.+--+-- 'eventTimestamp', 'event_eventTimestamp' - The timestamp that defines when the event under evaluation occurred. The+-- timestamp must be specified using ISO 8601 standard in UTC.+--+-- 'eventTypeName', 'event_eventTypeName' - The event type.+--+-- 'eventVariables', 'event_eventVariables' - Names of the event type\'s variables you defined in Amazon Fraud+-- Detector to represent data elements and their corresponding values for+-- the event you are sending for evaluation.+--+-- 'labelTimestamp', 'event_labelTimestamp' - The timestamp associated with the label to update. The timestamp must be+-- specified using ISO 8601 standard in UTC.+newEvent ::+  Event+newEvent =+  Event'+    { currentLabel = Prelude.Nothing,+      entities = Prelude.Nothing,+      eventId = Prelude.Nothing,+      eventTimestamp = Prelude.Nothing,+      eventTypeName = Prelude.Nothing,+      eventVariables = Prelude.Nothing,+      labelTimestamp = Prelude.Nothing+    }++-- | The label associated with the event.+event_currentLabel :: Lens.Lens' Event (Prelude.Maybe Prelude.Text)+event_currentLabel = Lens.lens (\Event' {currentLabel} -> currentLabel) (\s@Event' {} a -> s {currentLabel = a} :: Event)++-- | The event entities.+event_entities :: Lens.Lens' Event (Prelude.Maybe [Entity])+event_entities = Lens.lens (\Event' {entities} -> entities) (\s@Event' {} a -> s {entities = a} :: Event) Prelude.. Lens.mapping Lens.coerced++-- | The event ID.+event_eventId :: Lens.Lens' Event (Prelude.Maybe Prelude.Text)+event_eventId = Lens.lens (\Event' {eventId} -> eventId) (\s@Event' {} a -> s {eventId = a} :: Event)++-- | The timestamp that defines when the event under evaluation occurred. The+-- timestamp must be specified using ISO 8601 standard in UTC.+event_eventTimestamp :: Lens.Lens' Event (Prelude.Maybe Prelude.Text)+event_eventTimestamp = Lens.lens (\Event' {eventTimestamp} -> eventTimestamp) (\s@Event' {} a -> s {eventTimestamp = a} :: Event)++-- | The event type.+event_eventTypeName :: Lens.Lens' Event (Prelude.Maybe Prelude.Text)+event_eventTypeName = Lens.lens (\Event' {eventTypeName} -> eventTypeName) (\s@Event' {} a -> s {eventTypeName = a} :: Event)++-- | Names of the event type\'s variables you defined in Amazon Fraud+-- Detector to represent data elements and their corresponding values for+-- the event you are sending for evaluation.+event_eventVariables :: Lens.Lens' Event (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+event_eventVariables = Lens.lens (\Event' {eventVariables} -> eventVariables) (\s@Event' {} a -> s {eventVariables = a} :: Event) Prelude.. Lens.mapping Lens.coerced++-- | The timestamp associated with the label to update. The timestamp must be+-- specified using ISO 8601 standard in UTC.+event_labelTimestamp :: Lens.Lens' Event (Prelude.Maybe Prelude.Text)+event_labelTimestamp = Lens.lens (\Event' {labelTimestamp} -> labelTimestamp) (\s@Event' {} a -> s {labelTimestamp = a} :: Event)++instance Data.FromJSON Event where+  parseJSON =+    Data.withObject+      "Event"+      ( \x ->+          Event'+            Prelude.<$> (x Data..:? "currentLabel")+            Prelude.<*> (x Data..:? "entities" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "eventId")+            Prelude.<*> (x Data..:? "eventTimestamp")+            Prelude.<*> (x Data..:? "eventTypeName")+            Prelude.<*> (x Data..:? "eventVariables" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "labelTimestamp")+      )++instance Prelude.Hashable Event where+  hashWithSalt _salt Event' {..} =+    _salt+      `Prelude.hashWithSalt` currentLabel+      `Prelude.hashWithSalt` entities+      `Prelude.hashWithSalt` eventId+      `Prelude.hashWithSalt` eventTimestamp+      `Prelude.hashWithSalt` eventTypeName+      `Prelude.hashWithSalt` eventVariables+      `Prelude.hashWithSalt` labelTimestamp++instance Prelude.NFData Event where+  rnf Event' {..} =+    Prelude.rnf currentLabel+      `Prelude.seq` Prelude.rnf entities+      `Prelude.seq` Prelude.rnf eventId+      `Prelude.seq` Prelude.rnf eventTimestamp+      `Prelude.seq` Prelude.rnf eventTypeName+      `Prelude.seq` Prelude.rnf eventVariables+      `Prelude.seq` Prelude.rnf labelTimestamp
+ gen/Amazonka/FraudDetector/Types/EventIngestion.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.Types.EventIngestion+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.EventIngestion+  ( EventIngestion+      ( ..,+        EventIngestion_DISABLED,+        EventIngestion_ENABLED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype EventIngestion = EventIngestion'+  { fromEventIngestion ::+      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 EventIngestion_DISABLED :: EventIngestion+pattern EventIngestion_DISABLED = EventIngestion' "DISABLED"++pattern EventIngestion_ENABLED :: EventIngestion+pattern EventIngestion_ENABLED = EventIngestion' "ENABLED"++{-# COMPLETE+  EventIngestion_DISABLED,+  EventIngestion_ENABLED,+  EventIngestion'+  #-}
+ gen/Amazonka/FraudDetector/Types/EventPredictionSummary.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.FraudDetector.Types.EventPredictionSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.EventPredictionSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about the summary of an event prediction.+--+-- /See:/ 'newEventPredictionSummary' smart constructor.+data EventPredictionSummary = EventPredictionSummary'+  { -- | The detector ID.+    detectorId :: Prelude.Maybe Prelude.Text,+    -- | The detector version ID.+    detectorVersionId :: Prelude.Maybe Prelude.Text,+    -- | The event ID.+    eventId :: Prelude.Maybe Prelude.Text,+    -- | The timestamp of the event.+    eventTimestamp :: Prelude.Maybe Prelude.Text,+    -- | The event type.+    eventTypeName :: Prelude.Maybe Prelude.Text,+    -- | The timestamp when the prediction was generated.+    predictionTimestamp :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EventPredictionSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'detectorId', 'eventPredictionSummary_detectorId' - The detector ID.+--+-- 'detectorVersionId', 'eventPredictionSummary_detectorVersionId' - The detector version ID.+--+-- 'eventId', 'eventPredictionSummary_eventId' - The event ID.+--+-- 'eventTimestamp', 'eventPredictionSummary_eventTimestamp' - The timestamp of the event.+--+-- 'eventTypeName', 'eventPredictionSummary_eventTypeName' - The event type.+--+-- 'predictionTimestamp', 'eventPredictionSummary_predictionTimestamp' - The timestamp when the prediction was generated.+newEventPredictionSummary ::+  EventPredictionSummary+newEventPredictionSummary =+  EventPredictionSummary'+    { detectorId =+        Prelude.Nothing,+      detectorVersionId = Prelude.Nothing,+      eventId = Prelude.Nothing,+      eventTimestamp = Prelude.Nothing,+      eventTypeName = Prelude.Nothing,+      predictionTimestamp = Prelude.Nothing+    }++-- | The detector ID.+eventPredictionSummary_detectorId :: Lens.Lens' EventPredictionSummary (Prelude.Maybe Prelude.Text)+eventPredictionSummary_detectorId = Lens.lens (\EventPredictionSummary' {detectorId} -> detectorId) (\s@EventPredictionSummary' {} a -> s {detectorId = a} :: EventPredictionSummary)++-- | The detector version ID.+eventPredictionSummary_detectorVersionId :: Lens.Lens' EventPredictionSummary (Prelude.Maybe Prelude.Text)+eventPredictionSummary_detectorVersionId = Lens.lens (\EventPredictionSummary' {detectorVersionId} -> detectorVersionId) (\s@EventPredictionSummary' {} a -> s {detectorVersionId = a} :: EventPredictionSummary)++-- | The event ID.+eventPredictionSummary_eventId :: Lens.Lens' EventPredictionSummary (Prelude.Maybe Prelude.Text)+eventPredictionSummary_eventId = Lens.lens (\EventPredictionSummary' {eventId} -> eventId) (\s@EventPredictionSummary' {} a -> s {eventId = a} :: EventPredictionSummary)++-- | The timestamp of the event.+eventPredictionSummary_eventTimestamp :: Lens.Lens' EventPredictionSummary (Prelude.Maybe Prelude.Text)+eventPredictionSummary_eventTimestamp = Lens.lens (\EventPredictionSummary' {eventTimestamp} -> eventTimestamp) (\s@EventPredictionSummary' {} a -> s {eventTimestamp = a} :: EventPredictionSummary)++-- | The event type.+eventPredictionSummary_eventTypeName :: Lens.Lens' EventPredictionSummary (Prelude.Maybe Prelude.Text)+eventPredictionSummary_eventTypeName = Lens.lens (\EventPredictionSummary' {eventTypeName} -> eventTypeName) (\s@EventPredictionSummary' {} a -> s {eventTypeName = a} :: EventPredictionSummary)++-- | The timestamp when the prediction was generated.+eventPredictionSummary_predictionTimestamp :: Lens.Lens' EventPredictionSummary (Prelude.Maybe Prelude.Text)+eventPredictionSummary_predictionTimestamp = Lens.lens (\EventPredictionSummary' {predictionTimestamp} -> predictionTimestamp) (\s@EventPredictionSummary' {} a -> s {predictionTimestamp = a} :: EventPredictionSummary)++instance Data.FromJSON EventPredictionSummary where+  parseJSON =+    Data.withObject+      "EventPredictionSummary"+      ( \x ->+          EventPredictionSummary'+            Prelude.<$> (x Data..:? "detectorId")+            Prelude.<*> (x Data..:? "detectorVersionId")+            Prelude.<*> (x Data..:? "eventId")+            Prelude.<*> (x Data..:? "eventTimestamp")+            Prelude.<*> (x Data..:? "eventTypeName")+            Prelude.<*> (x Data..:? "predictionTimestamp")+      )++instance Prelude.Hashable EventPredictionSummary where+  hashWithSalt _salt EventPredictionSummary' {..} =+    _salt+      `Prelude.hashWithSalt` detectorId+      `Prelude.hashWithSalt` detectorVersionId+      `Prelude.hashWithSalt` eventId+      `Prelude.hashWithSalt` eventTimestamp+      `Prelude.hashWithSalt` eventTypeName+      `Prelude.hashWithSalt` predictionTimestamp++instance Prelude.NFData EventPredictionSummary where+  rnf EventPredictionSummary' {..} =+    Prelude.rnf detectorId+      `Prelude.seq` Prelude.rnf detectorVersionId+      `Prelude.seq` Prelude.rnf eventId+      `Prelude.seq` Prelude.rnf eventTimestamp+      `Prelude.seq` Prelude.rnf eventTypeName+      `Prelude.seq` Prelude.rnf predictionTimestamp
+ gen/Amazonka/FraudDetector/Types/EventType.hs view
@@ -0,0 +1,191 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.Types.EventType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.EventType where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types.EventIngestion+import Amazonka.FraudDetector.Types.IngestedEventStatistics+import qualified Amazonka.Prelude as Prelude++-- | The event type details.+--+-- /See:/ 'newEventType' smart constructor.+data EventType = EventType'+  { -- | The entity type ARN.+    arn :: Prelude.Maybe Prelude.Text,+    -- | Timestamp of when the event type was created.+    createdTime :: Prelude.Maybe Prelude.Text,+    -- | The event type description.+    description :: Prelude.Maybe Prelude.Text,+    -- | The event type entity types.+    entityTypes :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | If @Enabled@, Amazon Fraud Detector stores event data when you generate+    -- a prediction and uses that data to update calculated variables in near+    -- real-time. Amazon Fraud Detector uses this data, known as+    -- @INGESTED_EVENTS@, to train your model and improve fraud predictions.+    eventIngestion :: Prelude.Maybe EventIngestion,+    -- | The event type event variables.+    eventVariables :: Prelude.Maybe [Prelude.Text],+    -- | Data about the stored events.+    ingestedEventStatistics :: Prelude.Maybe IngestedEventStatistics,+    -- | The event type labels.+    labels :: Prelude.Maybe [Prelude.Text],+    -- | Timestamp of when the event type was last updated.+    lastUpdatedTime :: Prelude.Maybe Prelude.Text,+    -- | The event type name.+    name :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EventType' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'eventType_arn' - The entity type ARN.+--+-- 'createdTime', 'eventType_createdTime' - Timestamp of when the event type was created.+--+-- 'description', 'eventType_description' - The event type description.+--+-- 'entityTypes', 'eventType_entityTypes' - The event type entity types.+--+-- 'eventIngestion', 'eventType_eventIngestion' - If @Enabled@, Amazon Fraud Detector stores event data when you generate+-- a prediction and uses that data to update calculated variables in near+-- real-time. Amazon Fraud Detector uses this data, known as+-- @INGESTED_EVENTS@, to train your model and improve fraud predictions.+--+-- 'eventVariables', 'eventType_eventVariables' - The event type event variables.+--+-- 'ingestedEventStatistics', 'eventType_ingestedEventStatistics' - Data about the stored events.+--+-- 'labels', 'eventType_labels' - The event type labels.+--+-- 'lastUpdatedTime', 'eventType_lastUpdatedTime' - Timestamp of when the event type was last updated.+--+-- 'name', 'eventType_name' - The event type name.+newEventType ::+  EventType+newEventType =+  EventType'+    { arn = Prelude.Nothing,+      createdTime = Prelude.Nothing,+      description = Prelude.Nothing,+      entityTypes = Prelude.Nothing,+      eventIngestion = Prelude.Nothing,+      eventVariables = Prelude.Nothing,+      ingestedEventStatistics = Prelude.Nothing,+      labels = Prelude.Nothing,+      lastUpdatedTime = Prelude.Nothing,+      name = Prelude.Nothing+    }++-- | The entity type ARN.+eventType_arn :: Lens.Lens' EventType (Prelude.Maybe Prelude.Text)+eventType_arn = Lens.lens (\EventType' {arn} -> arn) (\s@EventType' {} a -> s {arn = a} :: EventType)++-- | Timestamp of when the event type was created.+eventType_createdTime :: Lens.Lens' EventType (Prelude.Maybe Prelude.Text)+eventType_createdTime = Lens.lens (\EventType' {createdTime} -> createdTime) (\s@EventType' {} a -> s {createdTime = a} :: EventType)++-- | The event type description.+eventType_description :: Lens.Lens' EventType (Prelude.Maybe Prelude.Text)+eventType_description = Lens.lens (\EventType' {description} -> description) (\s@EventType' {} a -> s {description = a} :: EventType)++-- | The event type entity types.+eventType_entityTypes :: Lens.Lens' EventType (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+eventType_entityTypes = Lens.lens (\EventType' {entityTypes} -> entityTypes) (\s@EventType' {} a -> s {entityTypes = a} :: EventType) Prelude.. Lens.mapping Lens.coerced++-- | If @Enabled@, Amazon Fraud Detector stores event data when you generate+-- a prediction and uses that data to update calculated variables in near+-- real-time. Amazon Fraud Detector uses this data, known as+-- @INGESTED_EVENTS@, to train your model and improve fraud predictions.+eventType_eventIngestion :: Lens.Lens' EventType (Prelude.Maybe EventIngestion)+eventType_eventIngestion = Lens.lens (\EventType' {eventIngestion} -> eventIngestion) (\s@EventType' {} a -> s {eventIngestion = a} :: EventType)++-- | The event type event variables.+eventType_eventVariables :: Lens.Lens' EventType (Prelude.Maybe [Prelude.Text])+eventType_eventVariables = Lens.lens (\EventType' {eventVariables} -> eventVariables) (\s@EventType' {} a -> s {eventVariables = a} :: EventType) Prelude.. Lens.mapping Lens.coerced++-- | Data about the stored events.+eventType_ingestedEventStatistics :: Lens.Lens' EventType (Prelude.Maybe IngestedEventStatistics)+eventType_ingestedEventStatistics = Lens.lens (\EventType' {ingestedEventStatistics} -> ingestedEventStatistics) (\s@EventType' {} a -> s {ingestedEventStatistics = a} :: EventType)++-- | The event type labels.+eventType_labels :: Lens.Lens' EventType (Prelude.Maybe [Prelude.Text])+eventType_labels = Lens.lens (\EventType' {labels} -> labels) (\s@EventType' {} a -> s {labels = a} :: EventType) Prelude.. Lens.mapping Lens.coerced++-- | Timestamp of when the event type was last updated.+eventType_lastUpdatedTime :: Lens.Lens' EventType (Prelude.Maybe Prelude.Text)+eventType_lastUpdatedTime = Lens.lens (\EventType' {lastUpdatedTime} -> lastUpdatedTime) (\s@EventType' {} a -> s {lastUpdatedTime = a} :: EventType)++-- | The event type name.+eventType_name :: Lens.Lens' EventType (Prelude.Maybe Prelude.Text)+eventType_name = Lens.lens (\EventType' {name} -> name) (\s@EventType' {} a -> s {name = a} :: EventType)++instance Data.FromJSON EventType where+  parseJSON =+    Data.withObject+      "EventType"+      ( \x ->+          EventType'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "createdTime")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "entityTypes")+            Prelude.<*> (x Data..:? "eventIngestion")+            Prelude.<*> (x Data..:? "eventVariables" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "ingestedEventStatistics")+            Prelude.<*> (x Data..:? "labels" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "lastUpdatedTime")+            Prelude.<*> (x Data..:? "name")+      )++instance Prelude.Hashable EventType where+  hashWithSalt _salt EventType' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` createdTime+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` entityTypes+      `Prelude.hashWithSalt` eventIngestion+      `Prelude.hashWithSalt` eventVariables+      `Prelude.hashWithSalt` ingestedEventStatistics+      `Prelude.hashWithSalt` labels+      `Prelude.hashWithSalt` lastUpdatedTime+      `Prelude.hashWithSalt` name++instance Prelude.NFData EventType where+  rnf EventType' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdTime+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf entityTypes+      `Prelude.seq` Prelude.rnf eventIngestion+      `Prelude.seq` Prelude.rnf eventVariables+      `Prelude.seq` Prelude.rnf ingestedEventStatistics+      `Prelude.seq` Prelude.rnf labels+      `Prelude.seq` Prelude.rnf lastUpdatedTime+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/FraudDetector/Types/EventVariableSummary.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.FraudDetector.Types.EventVariableSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.EventVariableSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about the summary of an event variable that was evaluated+-- for generating prediction.+--+-- /See:/ 'newEventVariableSummary' smart constructor.+data EventVariableSummary = EventVariableSummary'+  { -- | The event variable name.+    name :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The event variable source.+    source :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The value of the event variable.+    value :: Prelude.Maybe (Data.Sensitive Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EventVariableSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'eventVariableSummary_name' - The event variable name.+--+-- 'source', 'eventVariableSummary_source' - The event variable source.+--+-- 'value', 'eventVariableSummary_value' - The value of the event variable.+newEventVariableSummary ::+  EventVariableSummary+newEventVariableSummary =+  EventVariableSummary'+    { name = Prelude.Nothing,+      source = Prelude.Nothing,+      value = Prelude.Nothing+    }++-- | The event variable name.+eventVariableSummary_name :: Lens.Lens' EventVariableSummary (Prelude.Maybe Prelude.Text)+eventVariableSummary_name = Lens.lens (\EventVariableSummary' {name} -> name) (\s@EventVariableSummary' {} a -> s {name = a} :: EventVariableSummary) Prelude.. Lens.mapping Data._Sensitive++-- | The event variable source.+eventVariableSummary_source :: Lens.Lens' EventVariableSummary (Prelude.Maybe Prelude.Text)+eventVariableSummary_source = Lens.lens (\EventVariableSummary' {source} -> source) (\s@EventVariableSummary' {} a -> s {source = a} :: EventVariableSummary) Prelude.. Lens.mapping Data._Sensitive++-- | The value of the event variable.+eventVariableSummary_value :: Lens.Lens' EventVariableSummary (Prelude.Maybe Prelude.Text)+eventVariableSummary_value = Lens.lens (\EventVariableSummary' {value} -> value) (\s@EventVariableSummary' {} a -> s {value = a} :: EventVariableSummary) Prelude.. Lens.mapping Data._Sensitive++instance Data.FromJSON EventVariableSummary where+  parseJSON =+    Data.withObject+      "EventVariableSummary"+      ( \x ->+          EventVariableSummary'+            Prelude.<$> (x Data..:? "name")+            Prelude.<*> (x Data..:? "source")+            Prelude.<*> (x Data..:? "value")+      )++instance Prelude.Hashable EventVariableSummary where+  hashWithSalt _salt EventVariableSummary' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` source+      `Prelude.hashWithSalt` value++instance Prelude.NFData EventVariableSummary where+  rnf EventVariableSummary' {..} =+    Prelude.rnf name+      `Prelude.seq` Prelude.rnf source+      `Prelude.seq` Prelude.rnf value
+ gen/Amazonka/FraudDetector/Types/ExternalEventsDetail.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.FraudDetector.Types.ExternalEventsDetail+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.ExternalEventsDetail 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++-- | Details for the external events data used for model version training.+--+-- /See:/ 'newExternalEventsDetail' smart constructor.+data ExternalEventsDetail = ExternalEventsDetail'+  { -- | The Amazon S3 bucket location for the data.+    dataLocation :: Prelude.Text,+    -- | The ARN of the role that provides Amazon Fraud Detector access to the+    -- data location.+    dataAccessRoleArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExternalEventsDetail' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataLocation', 'externalEventsDetail_dataLocation' - The Amazon S3 bucket location for the data.+--+-- 'dataAccessRoleArn', 'externalEventsDetail_dataAccessRoleArn' - The ARN of the role that provides Amazon Fraud Detector access to the+-- data location.+newExternalEventsDetail ::+  -- | 'dataLocation'+  Prelude.Text ->+  -- | 'dataAccessRoleArn'+  Prelude.Text ->+  ExternalEventsDetail+newExternalEventsDetail+  pDataLocation_+  pDataAccessRoleArn_ =+    ExternalEventsDetail'+      { dataLocation =+          pDataLocation_,+        dataAccessRoleArn = pDataAccessRoleArn_+      }++-- | The Amazon S3 bucket location for the data.+externalEventsDetail_dataLocation :: Lens.Lens' ExternalEventsDetail Prelude.Text+externalEventsDetail_dataLocation = Lens.lens (\ExternalEventsDetail' {dataLocation} -> dataLocation) (\s@ExternalEventsDetail' {} a -> s {dataLocation = a} :: ExternalEventsDetail)++-- | The ARN of the role that provides Amazon Fraud Detector access to the+-- data location.+externalEventsDetail_dataAccessRoleArn :: Lens.Lens' ExternalEventsDetail Prelude.Text+externalEventsDetail_dataAccessRoleArn = Lens.lens (\ExternalEventsDetail' {dataAccessRoleArn} -> dataAccessRoleArn) (\s@ExternalEventsDetail' {} a -> s {dataAccessRoleArn = a} :: ExternalEventsDetail)++instance Data.FromJSON ExternalEventsDetail where+  parseJSON =+    Data.withObject+      "ExternalEventsDetail"+      ( \x ->+          ExternalEventsDetail'+            Prelude.<$> (x Data..: "dataLocation")+            Prelude.<*> (x Data..: "dataAccessRoleArn")+      )++instance Prelude.Hashable ExternalEventsDetail where+  hashWithSalt _salt ExternalEventsDetail' {..} =+    _salt+      `Prelude.hashWithSalt` dataLocation+      `Prelude.hashWithSalt` dataAccessRoleArn++instance Prelude.NFData ExternalEventsDetail where+  rnf ExternalEventsDetail' {..} =+    Prelude.rnf dataLocation+      `Prelude.seq` Prelude.rnf dataAccessRoleArn++instance Data.ToJSON ExternalEventsDetail where+  toJSON ExternalEventsDetail' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("dataLocation" Data..= dataLocation),+            Prelude.Just+              ("dataAccessRoleArn" Data..= dataAccessRoleArn)+          ]+      )
+ gen/Amazonka/FraudDetector/Types/ExternalModel.hs view
@@ -0,0 +1,172 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.Types.ExternalModel+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.ExternalModel where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types.ModelEndpointStatus+import Amazonka.FraudDetector.Types.ModelInputConfiguration+import Amazonka.FraudDetector.Types.ModelOutputConfiguration+import Amazonka.FraudDetector.Types.ModelSource+import qualified Amazonka.Prelude as Prelude++-- | The Amazon SageMaker model.+--+-- /See:/ 'newExternalModel' smart constructor.+data ExternalModel = ExternalModel'+  { -- | The model ARN.+    arn :: Prelude.Maybe Prelude.Text,+    -- | Timestamp of when the model was last created.+    createdTime :: Prelude.Maybe Prelude.Text,+    -- | The input configuration.+    inputConfiguration :: Prelude.Maybe ModelInputConfiguration,+    -- | The role used to invoke the model.+    invokeModelEndpointRoleArn :: Prelude.Maybe Prelude.Text,+    -- | Timestamp of when the model was last updated.+    lastUpdatedTime :: Prelude.Maybe Prelude.Text,+    -- | The Amazon SageMaker model endpoints.+    modelEndpoint :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Fraud Detector status for the external model endpoint+    modelEndpointStatus :: Prelude.Maybe ModelEndpointStatus,+    -- | The source of the model.+    modelSource :: Prelude.Maybe ModelSource,+    -- | The output configuration.+    outputConfiguration :: Prelude.Maybe ModelOutputConfiguration+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExternalModel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'externalModel_arn' - The model ARN.+--+-- 'createdTime', 'externalModel_createdTime' - Timestamp of when the model was last created.+--+-- 'inputConfiguration', 'externalModel_inputConfiguration' - The input configuration.+--+-- 'invokeModelEndpointRoleArn', 'externalModel_invokeModelEndpointRoleArn' - The role used to invoke the model.+--+-- 'lastUpdatedTime', 'externalModel_lastUpdatedTime' - Timestamp of when the model was last updated.+--+-- 'modelEndpoint', 'externalModel_modelEndpoint' - The Amazon SageMaker model endpoints.+--+-- 'modelEndpointStatus', 'externalModel_modelEndpointStatus' - The Amazon Fraud Detector status for the external model endpoint+--+-- 'modelSource', 'externalModel_modelSource' - The source of the model.+--+-- 'outputConfiguration', 'externalModel_outputConfiguration' - The output configuration.+newExternalModel ::+  ExternalModel+newExternalModel =+  ExternalModel'+    { arn = Prelude.Nothing,+      createdTime = Prelude.Nothing,+      inputConfiguration = Prelude.Nothing,+      invokeModelEndpointRoleArn = Prelude.Nothing,+      lastUpdatedTime = Prelude.Nothing,+      modelEndpoint = Prelude.Nothing,+      modelEndpointStatus = Prelude.Nothing,+      modelSource = Prelude.Nothing,+      outputConfiguration = Prelude.Nothing+    }++-- | The model ARN.+externalModel_arn :: Lens.Lens' ExternalModel (Prelude.Maybe Prelude.Text)+externalModel_arn = Lens.lens (\ExternalModel' {arn} -> arn) (\s@ExternalModel' {} a -> s {arn = a} :: ExternalModel)++-- | Timestamp of when the model was last created.+externalModel_createdTime :: Lens.Lens' ExternalModel (Prelude.Maybe Prelude.Text)+externalModel_createdTime = Lens.lens (\ExternalModel' {createdTime} -> createdTime) (\s@ExternalModel' {} a -> s {createdTime = a} :: ExternalModel)++-- | The input configuration.+externalModel_inputConfiguration :: Lens.Lens' ExternalModel (Prelude.Maybe ModelInputConfiguration)+externalModel_inputConfiguration = Lens.lens (\ExternalModel' {inputConfiguration} -> inputConfiguration) (\s@ExternalModel' {} a -> s {inputConfiguration = a} :: ExternalModel)++-- | The role used to invoke the model.+externalModel_invokeModelEndpointRoleArn :: Lens.Lens' ExternalModel (Prelude.Maybe Prelude.Text)+externalModel_invokeModelEndpointRoleArn = Lens.lens (\ExternalModel' {invokeModelEndpointRoleArn} -> invokeModelEndpointRoleArn) (\s@ExternalModel' {} a -> s {invokeModelEndpointRoleArn = a} :: ExternalModel)++-- | Timestamp of when the model was last updated.+externalModel_lastUpdatedTime :: Lens.Lens' ExternalModel (Prelude.Maybe Prelude.Text)+externalModel_lastUpdatedTime = Lens.lens (\ExternalModel' {lastUpdatedTime} -> lastUpdatedTime) (\s@ExternalModel' {} a -> s {lastUpdatedTime = a} :: ExternalModel)++-- | The Amazon SageMaker model endpoints.+externalModel_modelEndpoint :: Lens.Lens' ExternalModel (Prelude.Maybe Prelude.Text)+externalModel_modelEndpoint = Lens.lens (\ExternalModel' {modelEndpoint} -> modelEndpoint) (\s@ExternalModel' {} a -> s {modelEndpoint = a} :: ExternalModel)++-- | The Amazon Fraud Detector status for the external model endpoint+externalModel_modelEndpointStatus :: Lens.Lens' ExternalModel (Prelude.Maybe ModelEndpointStatus)+externalModel_modelEndpointStatus = Lens.lens (\ExternalModel' {modelEndpointStatus} -> modelEndpointStatus) (\s@ExternalModel' {} a -> s {modelEndpointStatus = a} :: ExternalModel)++-- | The source of the model.+externalModel_modelSource :: Lens.Lens' ExternalModel (Prelude.Maybe ModelSource)+externalModel_modelSource = Lens.lens (\ExternalModel' {modelSource} -> modelSource) (\s@ExternalModel' {} a -> s {modelSource = a} :: ExternalModel)++-- | The output configuration.+externalModel_outputConfiguration :: Lens.Lens' ExternalModel (Prelude.Maybe ModelOutputConfiguration)+externalModel_outputConfiguration = Lens.lens (\ExternalModel' {outputConfiguration} -> outputConfiguration) (\s@ExternalModel' {} a -> s {outputConfiguration = a} :: ExternalModel)++instance Data.FromJSON ExternalModel where+  parseJSON =+    Data.withObject+      "ExternalModel"+      ( \x ->+          ExternalModel'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "createdTime")+            Prelude.<*> (x Data..:? "inputConfiguration")+            Prelude.<*> (x Data..:? "invokeModelEndpointRoleArn")+            Prelude.<*> (x Data..:? "lastUpdatedTime")+            Prelude.<*> (x Data..:? "modelEndpoint")+            Prelude.<*> (x Data..:? "modelEndpointStatus")+            Prelude.<*> (x Data..:? "modelSource")+            Prelude.<*> (x Data..:? "outputConfiguration")+      )++instance Prelude.Hashable ExternalModel where+  hashWithSalt _salt ExternalModel' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` createdTime+      `Prelude.hashWithSalt` inputConfiguration+      `Prelude.hashWithSalt` invokeModelEndpointRoleArn+      `Prelude.hashWithSalt` lastUpdatedTime+      `Prelude.hashWithSalt` modelEndpoint+      `Prelude.hashWithSalt` modelEndpointStatus+      `Prelude.hashWithSalt` modelSource+      `Prelude.hashWithSalt` outputConfiguration++instance Prelude.NFData ExternalModel where+  rnf ExternalModel' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdTime+      `Prelude.seq` Prelude.rnf inputConfiguration+      `Prelude.seq` Prelude.rnf invokeModelEndpointRoleArn+      `Prelude.seq` Prelude.rnf lastUpdatedTime+      `Prelude.seq` Prelude.rnf modelEndpoint+      `Prelude.seq` Prelude.rnf modelEndpointStatus+      `Prelude.seq` Prelude.rnf modelSource+      `Prelude.seq` Prelude.rnf outputConfiguration
+ gen/Amazonka/FraudDetector/Types/ExternalModelOutputs.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.FraudDetector.Types.ExternalModelOutputs+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.ExternalModelOutputs where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types.ExternalModelSummary+import qualified Amazonka.Prelude as Prelude++-- | The fraud prediction scores from Amazon SageMaker model.+--+-- /See:/ 'newExternalModelOutputs' smart constructor.+data ExternalModelOutputs = ExternalModelOutputs'+  { -- | The Amazon SageMaker model.+    externalModel :: Prelude.Maybe ExternalModelSummary,+    -- | The fraud prediction scores from Amazon SageMaker model.+    outputs :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExternalModelOutputs' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'externalModel', 'externalModelOutputs_externalModel' - The Amazon SageMaker model.+--+-- 'outputs', 'externalModelOutputs_outputs' - The fraud prediction scores from Amazon SageMaker model.+newExternalModelOutputs ::+  ExternalModelOutputs+newExternalModelOutputs =+  ExternalModelOutputs'+    { externalModel =+        Prelude.Nothing,+      outputs = Prelude.Nothing+    }++-- | The Amazon SageMaker model.+externalModelOutputs_externalModel :: Lens.Lens' ExternalModelOutputs (Prelude.Maybe ExternalModelSummary)+externalModelOutputs_externalModel = Lens.lens (\ExternalModelOutputs' {externalModel} -> externalModel) (\s@ExternalModelOutputs' {} a -> s {externalModel = a} :: ExternalModelOutputs)++-- | The fraud prediction scores from Amazon SageMaker model.+externalModelOutputs_outputs :: Lens.Lens' ExternalModelOutputs (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+externalModelOutputs_outputs = Lens.lens (\ExternalModelOutputs' {outputs} -> outputs) (\s@ExternalModelOutputs' {} a -> s {outputs = a} :: ExternalModelOutputs) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ExternalModelOutputs where+  parseJSON =+    Data.withObject+      "ExternalModelOutputs"+      ( \x ->+          ExternalModelOutputs'+            Prelude.<$> (x Data..:? "externalModel")+            Prelude.<*> (x Data..:? "outputs" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable ExternalModelOutputs where+  hashWithSalt _salt ExternalModelOutputs' {..} =+    _salt+      `Prelude.hashWithSalt` externalModel+      `Prelude.hashWithSalt` outputs++instance Prelude.NFData ExternalModelOutputs where+  rnf ExternalModelOutputs' {..} =+    Prelude.rnf externalModel+      `Prelude.seq` Prelude.rnf outputs
+ gen/Amazonka/FraudDetector/Types/ExternalModelSummary.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.FraudDetector.Types.ExternalModelSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.ExternalModelSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types.ModelSource+import qualified Amazonka.Prelude as Prelude++-- | The Amazon SageMaker model.+--+-- /See:/ 'newExternalModelSummary' smart constructor.+data ExternalModelSummary = ExternalModelSummary'+  { -- | The endpoint of the Amazon SageMaker model.+    modelEndpoint :: Prelude.Maybe Prelude.Text,+    -- | The source of the model.+    modelSource :: Prelude.Maybe ModelSource+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExternalModelSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'modelEndpoint', 'externalModelSummary_modelEndpoint' - The endpoint of the Amazon SageMaker model.+--+-- 'modelSource', 'externalModelSummary_modelSource' - The source of the model.+newExternalModelSummary ::+  ExternalModelSummary+newExternalModelSummary =+  ExternalModelSummary'+    { modelEndpoint =+        Prelude.Nothing,+      modelSource = Prelude.Nothing+    }++-- | The endpoint of the Amazon SageMaker model.+externalModelSummary_modelEndpoint :: Lens.Lens' ExternalModelSummary (Prelude.Maybe Prelude.Text)+externalModelSummary_modelEndpoint = Lens.lens (\ExternalModelSummary' {modelEndpoint} -> modelEndpoint) (\s@ExternalModelSummary' {} a -> s {modelEndpoint = a} :: ExternalModelSummary)++-- | The source of the model.+externalModelSummary_modelSource :: Lens.Lens' ExternalModelSummary (Prelude.Maybe ModelSource)+externalModelSummary_modelSource = Lens.lens (\ExternalModelSummary' {modelSource} -> modelSource) (\s@ExternalModelSummary' {} a -> s {modelSource = a} :: ExternalModelSummary)++instance Data.FromJSON ExternalModelSummary where+  parseJSON =+    Data.withObject+      "ExternalModelSummary"+      ( \x ->+          ExternalModelSummary'+            Prelude.<$> (x Data..:? "modelEndpoint")+            Prelude.<*> (x Data..:? "modelSource")+      )++instance Prelude.Hashable ExternalModelSummary where+  hashWithSalt _salt ExternalModelSummary' {..} =+    _salt+      `Prelude.hashWithSalt` modelEndpoint+      `Prelude.hashWithSalt` modelSource++instance Prelude.NFData ExternalModelSummary where+  rnf ExternalModelSummary' {..} =+    Prelude.rnf modelEndpoint+      `Prelude.seq` Prelude.rnf modelSource
+ gen/Amazonka/FraudDetector/Types/FieldValidationMessage.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.FraudDetector.Types.FieldValidationMessage+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.FieldValidationMessage where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The message details.+--+-- /See:/ 'newFieldValidationMessage' smart constructor.+data FieldValidationMessage = FieldValidationMessage'+  { -- | The message content.+    content :: Prelude.Maybe Prelude.Text,+    -- | The field name.+    fieldName :: Prelude.Maybe Prelude.Text,+    -- | The message ID.+    identifier :: Prelude.Maybe Prelude.Text,+    -- | The message title.+    title :: Prelude.Maybe Prelude.Text,+    -- | The message type.+    type' :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FieldValidationMessage' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'content', 'fieldValidationMessage_content' - The message content.+--+-- 'fieldName', 'fieldValidationMessage_fieldName' - The field name.+--+-- 'identifier', 'fieldValidationMessage_identifier' - The message ID.+--+-- 'title', 'fieldValidationMessage_title' - The message title.+--+-- 'type'', 'fieldValidationMessage_type' - The message type.+newFieldValidationMessage ::+  FieldValidationMessage+newFieldValidationMessage =+  FieldValidationMessage'+    { content = Prelude.Nothing,+      fieldName = Prelude.Nothing,+      identifier = Prelude.Nothing,+      title = Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | The message content.+fieldValidationMessage_content :: Lens.Lens' FieldValidationMessage (Prelude.Maybe Prelude.Text)+fieldValidationMessage_content = Lens.lens (\FieldValidationMessage' {content} -> content) (\s@FieldValidationMessage' {} a -> s {content = a} :: FieldValidationMessage)++-- | The field name.+fieldValidationMessage_fieldName :: Lens.Lens' FieldValidationMessage (Prelude.Maybe Prelude.Text)+fieldValidationMessage_fieldName = Lens.lens (\FieldValidationMessage' {fieldName} -> fieldName) (\s@FieldValidationMessage' {} a -> s {fieldName = a} :: FieldValidationMessage)++-- | The message ID.+fieldValidationMessage_identifier :: Lens.Lens' FieldValidationMessage (Prelude.Maybe Prelude.Text)+fieldValidationMessage_identifier = Lens.lens (\FieldValidationMessage' {identifier} -> identifier) (\s@FieldValidationMessage' {} a -> s {identifier = a} :: FieldValidationMessage)++-- | The message title.+fieldValidationMessage_title :: Lens.Lens' FieldValidationMessage (Prelude.Maybe Prelude.Text)+fieldValidationMessage_title = Lens.lens (\FieldValidationMessage' {title} -> title) (\s@FieldValidationMessage' {} a -> s {title = a} :: FieldValidationMessage)++-- | The message type.+fieldValidationMessage_type :: Lens.Lens' FieldValidationMessage (Prelude.Maybe Prelude.Text)+fieldValidationMessage_type = Lens.lens (\FieldValidationMessage' {type'} -> type') (\s@FieldValidationMessage' {} a -> s {type' = a} :: FieldValidationMessage)++instance Data.FromJSON FieldValidationMessage where+  parseJSON =+    Data.withObject+      "FieldValidationMessage"+      ( \x ->+          FieldValidationMessage'+            Prelude.<$> (x Data..:? "content")+            Prelude.<*> (x Data..:? "fieldName")+            Prelude.<*> (x Data..:? "identifier")+            Prelude.<*> (x Data..:? "title")+            Prelude.<*> (x Data..:? "type")+      )++instance Prelude.Hashable FieldValidationMessage where+  hashWithSalt _salt FieldValidationMessage' {..} =+    _salt+      `Prelude.hashWithSalt` content+      `Prelude.hashWithSalt` fieldName+      `Prelude.hashWithSalt` identifier+      `Prelude.hashWithSalt` title+      `Prelude.hashWithSalt` type'++instance Prelude.NFData FieldValidationMessage where+  rnf FieldValidationMessage' {..} =+    Prelude.rnf content+      `Prelude.seq` Prelude.rnf fieldName+      `Prelude.seq` Prelude.rnf identifier+      `Prelude.seq` Prelude.rnf title+      `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/FraudDetector/Types/FileValidationMessage.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.FraudDetector.Types.FileValidationMessage+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.FileValidationMessage where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The message details.+--+-- /See:/ 'newFileValidationMessage' smart constructor.+data FileValidationMessage = FileValidationMessage'+  { -- | The message content.+    content :: Prelude.Maybe Prelude.Text,+    -- | The message title.+    title :: Prelude.Maybe Prelude.Text,+    -- | The message type.+    type' :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FileValidationMessage' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'content', 'fileValidationMessage_content' - The message content.+--+-- 'title', 'fileValidationMessage_title' - The message title.+--+-- 'type'', 'fileValidationMessage_type' - The message type.+newFileValidationMessage ::+  FileValidationMessage+newFileValidationMessage =+  FileValidationMessage'+    { content = Prelude.Nothing,+      title = Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | The message content.+fileValidationMessage_content :: Lens.Lens' FileValidationMessage (Prelude.Maybe Prelude.Text)+fileValidationMessage_content = Lens.lens (\FileValidationMessage' {content} -> content) (\s@FileValidationMessage' {} a -> s {content = a} :: FileValidationMessage)++-- | The message title.+fileValidationMessage_title :: Lens.Lens' FileValidationMessage (Prelude.Maybe Prelude.Text)+fileValidationMessage_title = Lens.lens (\FileValidationMessage' {title} -> title) (\s@FileValidationMessage' {} a -> s {title = a} :: FileValidationMessage)++-- | The message type.+fileValidationMessage_type :: Lens.Lens' FileValidationMessage (Prelude.Maybe Prelude.Text)+fileValidationMessage_type = Lens.lens (\FileValidationMessage' {type'} -> type') (\s@FileValidationMessage' {} a -> s {type' = a} :: FileValidationMessage)++instance Data.FromJSON FileValidationMessage where+  parseJSON =+    Data.withObject+      "FileValidationMessage"+      ( \x ->+          FileValidationMessage'+            Prelude.<$> (x Data..:? "content")+            Prelude.<*> (x Data..:? "title")+            Prelude.<*> (x Data..:? "type")+      )++instance Prelude.Hashable FileValidationMessage where+  hashWithSalt _salt FileValidationMessage' {..} =+    _salt+      `Prelude.hashWithSalt` content+      `Prelude.hashWithSalt` title+      `Prelude.hashWithSalt` type'++instance Prelude.NFData FileValidationMessage where+  rnf FileValidationMessage' {..} =+    Prelude.rnf content+      `Prelude.seq` Prelude.rnf title+      `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/FraudDetector/Types/FilterCondition.hs view
@@ -0,0 +1,69 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.Types.FilterCondition+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.FilterCondition where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A conditional statement for filtering a list of past predictions.+--+-- /See:/ 'newFilterCondition' smart constructor.+data FilterCondition = FilterCondition'+  { -- | A statement containing a resource property and a value to specify filter+    -- condition.+    value :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FilterCondition' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'filterCondition_value' - A statement containing a resource property and a value to specify filter+-- condition.+newFilterCondition ::+  FilterCondition+newFilterCondition =+  FilterCondition' {value = Prelude.Nothing}++-- | A statement containing a resource property and a value to specify filter+-- condition.+filterCondition_value :: Lens.Lens' FilterCondition (Prelude.Maybe Prelude.Text)+filterCondition_value = Lens.lens (\FilterCondition' {value} -> value) (\s@FilterCondition' {} a -> s {value = a} :: FilterCondition)++instance Prelude.Hashable FilterCondition where+  hashWithSalt _salt FilterCondition' {..} =+    _salt `Prelude.hashWithSalt` value++instance Prelude.NFData FilterCondition where+  rnf FilterCondition' {..} = Prelude.rnf value++instance Data.ToJSON FilterCondition where+  toJSON FilterCondition' {..} =+    Data.object+      ( Prelude.catMaybes+          [("value" Data..=) Prelude.<$> value]+      )
+ gen/Amazonka/FraudDetector/Types/IngestedEventStatistics.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.FraudDetector.Types.IngestedEventStatistics+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.IngestedEventStatistics 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++-- | Data about the stored events.+--+-- /See:/ 'newIngestedEventStatistics' smart constructor.+data IngestedEventStatistics = IngestedEventStatistics'+  { -- | The total size of the stored events.+    eventDataSizeInBytes :: Prelude.Maybe Prelude.Integer,+    -- | Timestamp of when the stored event was last updated.+    lastUpdatedTime :: Prelude.Maybe Prelude.Text,+    -- | The oldest stored event.+    leastRecentEvent :: Prelude.Maybe Prelude.Text,+    -- | The newest stored event.+    mostRecentEvent :: Prelude.Maybe Prelude.Text,+    -- | The number of stored events.+    numberOfEvents :: Prelude.Maybe Prelude.Integer+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IngestedEventStatistics' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventDataSizeInBytes', 'ingestedEventStatistics_eventDataSizeInBytes' - The total size of the stored events.+--+-- 'lastUpdatedTime', 'ingestedEventStatistics_lastUpdatedTime' - Timestamp of when the stored event was last updated.+--+-- 'leastRecentEvent', 'ingestedEventStatistics_leastRecentEvent' - The oldest stored event.+--+-- 'mostRecentEvent', 'ingestedEventStatistics_mostRecentEvent' - The newest stored event.+--+-- 'numberOfEvents', 'ingestedEventStatistics_numberOfEvents' - The number of stored events.+newIngestedEventStatistics ::+  IngestedEventStatistics+newIngestedEventStatistics =+  IngestedEventStatistics'+    { eventDataSizeInBytes =+        Prelude.Nothing,+      lastUpdatedTime = Prelude.Nothing,+      leastRecentEvent = Prelude.Nothing,+      mostRecentEvent = Prelude.Nothing,+      numberOfEvents = Prelude.Nothing+    }++-- | The total size of the stored events.+ingestedEventStatistics_eventDataSizeInBytes :: Lens.Lens' IngestedEventStatistics (Prelude.Maybe Prelude.Integer)+ingestedEventStatistics_eventDataSizeInBytes = Lens.lens (\IngestedEventStatistics' {eventDataSizeInBytes} -> eventDataSizeInBytes) (\s@IngestedEventStatistics' {} a -> s {eventDataSizeInBytes = a} :: IngestedEventStatistics)++-- | Timestamp of when the stored event was last updated.+ingestedEventStatistics_lastUpdatedTime :: Lens.Lens' IngestedEventStatistics (Prelude.Maybe Prelude.Text)+ingestedEventStatistics_lastUpdatedTime = Lens.lens (\IngestedEventStatistics' {lastUpdatedTime} -> lastUpdatedTime) (\s@IngestedEventStatistics' {} a -> s {lastUpdatedTime = a} :: IngestedEventStatistics)++-- | The oldest stored event.+ingestedEventStatistics_leastRecentEvent :: Lens.Lens' IngestedEventStatistics (Prelude.Maybe Prelude.Text)+ingestedEventStatistics_leastRecentEvent = Lens.lens (\IngestedEventStatistics' {leastRecentEvent} -> leastRecentEvent) (\s@IngestedEventStatistics' {} a -> s {leastRecentEvent = a} :: IngestedEventStatistics)++-- | The newest stored event.+ingestedEventStatistics_mostRecentEvent :: Lens.Lens' IngestedEventStatistics (Prelude.Maybe Prelude.Text)+ingestedEventStatistics_mostRecentEvent = Lens.lens (\IngestedEventStatistics' {mostRecentEvent} -> mostRecentEvent) (\s@IngestedEventStatistics' {} a -> s {mostRecentEvent = a} :: IngestedEventStatistics)++-- | The number of stored events.+ingestedEventStatistics_numberOfEvents :: Lens.Lens' IngestedEventStatistics (Prelude.Maybe Prelude.Integer)+ingestedEventStatistics_numberOfEvents = Lens.lens (\IngestedEventStatistics' {numberOfEvents} -> numberOfEvents) (\s@IngestedEventStatistics' {} a -> s {numberOfEvents = a} :: IngestedEventStatistics)++instance Data.FromJSON IngestedEventStatistics where+  parseJSON =+    Data.withObject+      "IngestedEventStatistics"+      ( \x ->+          IngestedEventStatistics'+            Prelude.<$> (x Data..:? "eventDataSizeInBytes")+            Prelude.<*> (x Data..:? "lastUpdatedTime")+            Prelude.<*> (x Data..:? "leastRecentEvent")+            Prelude.<*> (x Data..:? "mostRecentEvent")+            Prelude.<*> (x Data..:? "numberOfEvents")+      )++instance Prelude.Hashable IngestedEventStatistics where+  hashWithSalt _salt IngestedEventStatistics' {..} =+    _salt+      `Prelude.hashWithSalt` eventDataSizeInBytes+      `Prelude.hashWithSalt` lastUpdatedTime+      `Prelude.hashWithSalt` leastRecentEvent+      `Prelude.hashWithSalt` mostRecentEvent+      `Prelude.hashWithSalt` numberOfEvents++instance Prelude.NFData IngestedEventStatistics where+  rnf IngestedEventStatistics' {..} =+    Prelude.rnf eventDataSizeInBytes+      `Prelude.seq` Prelude.rnf lastUpdatedTime+      `Prelude.seq` Prelude.rnf leastRecentEvent+      `Prelude.seq` Prelude.rnf mostRecentEvent+      `Prelude.seq` Prelude.rnf numberOfEvents
+ gen/Amazonka/FraudDetector/Types/IngestedEventsDetail.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.FraudDetector.Types.IngestedEventsDetail+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.IngestedEventsDetail where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types.IngestedEventsTimeWindow+import qualified Amazonka.Prelude as Prelude++-- | The details of the ingested event.+--+-- /See:/ 'newIngestedEventsDetail' smart constructor.+data IngestedEventsDetail = IngestedEventsDetail'+  { -- | The start and stop time of the ingested events.+    ingestedEventsTimeWindow :: IngestedEventsTimeWindow+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IngestedEventsDetail' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'ingestedEventsTimeWindow', 'ingestedEventsDetail_ingestedEventsTimeWindow' - The start and stop time of the ingested events.+newIngestedEventsDetail ::+  -- | 'ingestedEventsTimeWindow'+  IngestedEventsTimeWindow ->+  IngestedEventsDetail+newIngestedEventsDetail pIngestedEventsTimeWindow_ =+  IngestedEventsDetail'+    { ingestedEventsTimeWindow =+        pIngestedEventsTimeWindow_+    }++-- | The start and stop time of the ingested events.+ingestedEventsDetail_ingestedEventsTimeWindow :: Lens.Lens' IngestedEventsDetail IngestedEventsTimeWindow+ingestedEventsDetail_ingestedEventsTimeWindow = Lens.lens (\IngestedEventsDetail' {ingestedEventsTimeWindow} -> ingestedEventsTimeWindow) (\s@IngestedEventsDetail' {} a -> s {ingestedEventsTimeWindow = a} :: IngestedEventsDetail)++instance Data.FromJSON IngestedEventsDetail where+  parseJSON =+    Data.withObject+      "IngestedEventsDetail"+      ( \x ->+          IngestedEventsDetail'+            Prelude.<$> (x Data..: "ingestedEventsTimeWindow")+      )++instance Prelude.Hashable IngestedEventsDetail where+  hashWithSalt _salt IngestedEventsDetail' {..} =+    _salt+      `Prelude.hashWithSalt` ingestedEventsTimeWindow++instance Prelude.NFData IngestedEventsDetail where+  rnf IngestedEventsDetail' {..} =+    Prelude.rnf ingestedEventsTimeWindow++instance Data.ToJSON IngestedEventsDetail where+  toJSON IngestedEventsDetail' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ( "ingestedEventsTimeWindow"+                  Data..= ingestedEventsTimeWindow+              )+          ]+      )
+ gen/Amazonka/FraudDetector/Types/IngestedEventsTimeWindow.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.FraudDetector.Types.IngestedEventsTimeWindow+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.IngestedEventsTimeWindow where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The start and stop time of the ingested events.+--+-- /See:/ 'newIngestedEventsTimeWindow' smart constructor.+data IngestedEventsTimeWindow = IngestedEventsTimeWindow'+  { -- | Timestamp of the first ingensted event.+    startTime :: Prelude.Text,+    -- | Timestamp of the final ingested event.+    endTime :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IngestedEventsTimeWindow' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'startTime', 'ingestedEventsTimeWindow_startTime' - Timestamp of the first ingensted event.+--+-- 'endTime', 'ingestedEventsTimeWindow_endTime' - Timestamp of the final ingested event.+newIngestedEventsTimeWindow ::+  -- | 'startTime'+  Prelude.Text ->+  -- | 'endTime'+  Prelude.Text ->+  IngestedEventsTimeWindow+newIngestedEventsTimeWindow pStartTime_ pEndTime_ =+  IngestedEventsTimeWindow'+    { startTime = pStartTime_,+      endTime = pEndTime_+    }++-- | Timestamp of the first ingensted event.+ingestedEventsTimeWindow_startTime :: Lens.Lens' IngestedEventsTimeWindow Prelude.Text+ingestedEventsTimeWindow_startTime = Lens.lens (\IngestedEventsTimeWindow' {startTime} -> startTime) (\s@IngestedEventsTimeWindow' {} a -> s {startTime = a} :: IngestedEventsTimeWindow)++-- | Timestamp of the final ingested event.+ingestedEventsTimeWindow_endTime :: Lens.Lens' IngestedEventsTimeWindow Prelude.Text+ingestedEventsTimeWindow_endTime = Lens.lens (\IngestedEventsTimeWindow' {endTime} -> endTime) (\s@IngestedEventsTimeWindow' {} a -> s {endTime = a} :: IngestedEventsTimeWindow)++instance Data.FromJSON IngestedEventsTimeWindow where+  parseJSON =+    Data.withObject+      "IngestedEventsTimeWindow"+      ( \x ->+          IngestedEventsTimeWindow'+            Prelude.<$> (x Data..: "startTime")+            Prelude.<*> (x Data..: "endTime")+      )++instance Prelude.Hashable IngestedEventsTimeWindow where+  hashWithSalt _salt IngestedEventsTimeWindow' {..} =+    _salt+      `Prelude.hashWithSalt` startTime+      `Prelude.hashWithSalt` endTime++instance Prelude.NFData IngestedEventsTimeWindow where+  rnf IngestedEventsTimeWindow' {..} =+    Prelude.rnf startTime+      `Prelude.seq` Prelude.rnf endTime++instance Data.ToJSON IngestedEventsTimeWindow where+  toJSON IngestedEventsTimeWindow' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("startTime" Data..= startTime),+            Prelude.Just ("endTime" Data..= endTime)+          ]+      )
+ gen/Amazonka/FraudDetector/Types/KMSKey.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.FraudDetector.Types.KMSKey+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.KMSKey where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The KMS key details.+--+-- /See:/ 'newKMSKey' smart constructor.+data KMSKey = KMSKey'+  { -- | The encryption key ARN.+    kmsEncryptionKeyArn :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'KMSKey' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'kmsEncryptionKeyArn', 'kmsKey_kmsEncryptionKeyArn' - The encryption key ARN.+newKMSKey ::+  KMSKey+newKMSKey =+  KMSKey' {kmsEncryptionKeyArn = Prelude.Nothing}++-- | The encryption key ARN.+kmsKey_kmsEncryptionKeyArn :: Lens.Lens' KMSKey (Prelude.Maybe Prelude.Text)+kmsKey_kmsEncryptionKeyArn = Lens.lens (\KMSKey' {kmsEncryptionKeyArn} -> kmsEncryptionKeyArn) (\s@KMSKey' {} a -> s {kmsEncryptionKeyArn = a} :: KMSKey)++instance Data.FromJSON KMSKey where+  parseJSON =+    Data.withObject+      "KMSKey"+      ( \x ->+          KMSKey'+            Prelude.<$> (x Data..:? "kmsEncryptionKeyArn")+      )++instance Prelude.Hashable KMSKey where+  hashWithSalt _salt KMSKey' {..} =+    _salt `Prelude.hashWithSalt` kmsEncryptionKeyArn++instance Prelude.NFData KMSKey where+  rnf KMSKey' {..} = Prelude.rnf kmsEncryptionKeyArn
+ gen/Amazonka/FraudDetector/Types/Label.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.FraudDetector.Types.Label+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.Label where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The label details.+--+-- /See:/ 'newLabel' smart constructor.+data Label = Label'+  { -- | The label ARN.+    arn :: Prelude.Maybe Prelude.Text,+    -- | Timestamp of when the event type was created.+    createdTime :: Prelude.Maybe Prelude.Text,+    -- | The label description.+    description :: Prelude.Maybe Prelude.Text,+    -- | Timestamp of when the label was last updated.+    lastUpdatedTime :: Prelude.Maybe Prelude.Text,+    -- | The label name.+    name :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Label' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'label_arn' - The label ARN.+--+-- 'createdTime', 'label_createdTime' - Timestamp of when the event type was created.+--+-- 'description', 'label_description' - The label description.+--+-- 'lastUpdatedTime', 'label_lastUpdatedTime' - Timestamp of when the label was last updated.+--+-- 'name', 'label_name' - The label name.+newLabel ::+  Label+newLabel =+  Label'+    { arn = Prelude.Nothing,+      createdTime = Prelude.Nothing,+      description = Prelude.Nothing,+      lastUpdatedTime = Prelude.Nothing,+      name = Prelude.Nothing+    }++-- | The label ARN.+label_arn :: Lens.Lens' Label (Prelude.Maybe Prelude.Text)+label_arn = Lens.lens (\Label' {arn} -> arn) (\s@Label' {} a -> s {arn = a} :: Label)++-- | Timestamp of when the event type was created.+label_createdTime :: Lens.Lens' Label (Prelude.Maybe Prelude.Text)+label_createdTime = Lens.lens (\Label' {createdTime} -> createdTime) (\s@Label' {} a -> s {createdTime = a} :: Label)++-- | The label description.+label_description :: Lens.Lens' Label (Prelude.Maybe Prelude.Text)+label_description = Lens.lens (\Label' {description} -> description) (\s@Label' {} a -> s {description = a} :: Label)++-- | Timestamp of when the label was last updated.+label_lastUpdatedTime :: Lens.Lens' Label (Prelude.Maybe Prelude.Text)+label_lastUpdatedTime = Lens.lens (\Label' {lastUpdatedTime} -> lastUpdatedTime) (\s@Label' {} a -> s {lastUpdatedTime = a} :: Label)++-- | The label name.+label_name :: Lens.Lens' Label (Prelude.Maybe Prelude.Text)+label_name = Lens.lens (\Label' {name} -> name) (\s@Label' {} a -> s {name = a} :: Label)++instance Data.FromJSON Label where+  parseJSON =+    Data.withObject+      "Label"+      ( \x ->+          Label'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "createdTime")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "lastUpdatedTime")+            Prelude.<*> (x Data..:? "name")+      )++instance Prelude.Hashable Label where+  hashWithSalt _salt Label' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` createdTime+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` lastUpdatedTime+      `Prelude.hashWithSalt` name++instance Prelude.NFData Label where+  rnf Label' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdTime+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf lastUpdatedTime+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/FraudDetector/Types/LabelSchema.hs view
@@ -0,0 +1,122 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.Types.LabelSchema+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.LabelSchema where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types.UnlabeledEventsTreatment+import qualified Amazonka.Prelude as Prelude++-- | The label schema.+--+-- /See:/ 'newLabelSchema' smart constructor.+data LabelSchema = LabelSchema'+  { -- | The label mapper maps the Amazon Fraud Detector supported model+    -- classification labels (@FRAUD@, @LEGIT@) to the appropriate event type+    -- labels. For example, if \"@FRAUD@\" and \"@LEGIT@\" are Amazon Fraud+    -- Detector supported labels, this mapper could be:+    -- @{\"FRAUD\" => [\"0\"]@, @\"LEGIT\" => [\"1\"]}@ or+    -- @{\"FRAUD\" => [\"false\"]@, @\"LEGIT\" => [\"true\"]}@ or+    -- @{\"FRAUD\" => [\"fraud\", \"abuse\"]@,+    -- @\"LEGIT\" => [\"legit\", \"safe\"]}@. The value part of the mapper is a+    -- list, because you may have multiple label variants from your event type+    -- for a single Amazon Fraud Detector label.+    labelMapper :: Prelude.Maybe (Prelude.HashMap Prelude.Text [Prelude.Text]),+    -- | The action to take for unlabeled events.+    unlabeledEventsTreatment :: Prelude.Maybe UnlabeledEventsTreatment+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LabelSchema' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'labelMapper', 'labelSchema_labelMapper' - The label mapper maps the Amazon Fraud Detector supported model+-- classification labels (@FRAUD@, @LEGIT@) to the appropriate event type+-- labels. For example, if \"@FRAUD@\" and \"@LEGIT@\" are Amazon Fraud+-- Detector supported labels, this mapper could be:+-- @{\"FRAUD\" => [\"0\"]@, @\"LEGIT\" => [\"1\"]}@ or+-- @{\"FRAUD\" => [\"false\"]@, @\"LEGIT\" => [\"true\"]}@ or+-- @{\"FRAUD\" => [\"fraud\", \"abuse\"]@,+-- @\"LEGIT\" => [\"legit\", \"safe\"]}@. The value part of the mapper is a+-- list, because you may have multiple label variants from your event type+-- for a single Amazon Fraud Detector label.+--+-- 'unlabeledEventsTreatment', 'labelSchema_unlabeledEventsTreatment' - The action to take for unlabeled events.+newLabelSchema ::+  LabelSchema+newLabelSchema =+  LabelSchema'+    { labelMapper = Prelude.Nothing,+      unlabeledEventsTreatment = Prelude.Nothing+    }++-- | The label mapper maps the Amazon Fraud Detector supported model+-- classification labels (@FRAUD@, @LEGIT@) to the appropriate event type+-- labels. For example, if \"@FRAUD@\" and \"@LEGIT@\" are Amazon Fraud+-- Detector supported labels, this mapper could be:+-- @{\"FRAUD\" => [\"0\"]@, @\"LEGIT\" => [\"1\"]}@ or+-- @{\"FRAUD\" => [\"false\"]@, @\"LEGIT\" => [\"true\"]}@ or+-- @{\"FRAUD\" => [\"fraud\", \"abuse\"]@,+-- @\"LEGIT\" => [\"legit\", \"safe\"]}@. The value part of the mapper is a+-- list, because you may have multiple label variants from your event type+-- for a single Amazon Fraud Detector label.+labelSchema_labelMapper :: Lens.Lens' LabelSchema (Prelude.Maybe (Prelude.HashMap Prelude.Text [Prelude.Text]))+labelSchema_labelMapper = Lens.lens (\LabelSchema' {labelMapper} -> labelMapper) (\s@LabelSchema' {} a -> s {labelMapper = a} :: LabelSchema) Prelude.. Lens.mapping Lens.coerced++-- | The action to take for unlabeled events.+labelSchema_unlabeledEventsTreatment :: Lens.Lens' LabelSchema (Prelude.Maybe UnlabeledEventsTreatment)+labelSchema_unlabeledEventsTreatment = Lens.lens (\LabelSchema' {unlabeledEventsTreatment} -> unlabeledEventsTreatment) (\s@LabelSchema' {} a -> s {unlabeledEventsTreatment = a} :: LabelSchema)++instance Data.FromJSON LabelSchema where+  parseJSON =+    Data.withObject+      "LabelSchema"+      ( \x ->+          LabelSchema'+            Prelude.<$> (x Data..:? "labelMapper" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "unlabeledEventsTreatment")+      )++instance Prelude.Hashable LabelSchema where+  hashWithSalt _salt LabelSchema' {..} =+    _salt+      `Prelude.hashWithSalt` labelMapper+      `Prelude.hashWithSalt` unlabeledEventsTreatment++instance Prelude.NFData LabelSchema where+  rnf LabelSchema' {..} =+    Prelude.rnf labelMapper+      `Prelude.seq` Prelude.rnf unlabeledEventsTreatment++instance Data.ToJSON LabelSchema where+  toJSON LabelSchema' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("labelMapper" Data..=) Prelude.<$> labelMapper,+            ("unlabeledEventsTreatment" Data..=)+              Prelude.<$> unlabeledEventsTreatment+          ]+      )
+ gen/Amazonka/FraudDetector/Types/Language.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.Types.Language+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.Language+  ( Language+      ( ..,+        Language_DETECTORPL+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Language = Language'+  { fromLanguage ::+      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 Language_DETECTORPL :: Language+pattern Language_DETECTORPL = Language' "DETECTORPL"++{-# COMPLETE+  Language_DETECTORPL,+  Language'+  #-}
+ gen/Amazonka/FraudDetector/Types/LogOddsMetric.hs view
@@ -0,0 +1,108 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.Types.LogOddsMetric+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.LogOddsMetric where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The log odds metric details.+--+-- /See:/ 'newLogOddsMetric' smart constructor.+data LogOddsMetric = LogOddsMetric'+  { -- | The name of the variable.+    variableName :: Prelude.Text,+    -- | The type of variable.+    variableType :: Prelude.Text,+    -- | The relative importance of the variable. For more information, see+    -- <https://docs.aws.amazon.com/frauddetector/latest/ug/model-variable-importance.html Model variable importance>.+    variableImportance :: Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LogOddsMetric' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'variableName', 'logOddsMetric_variableName' - The name of the variable.+--+-- 'variableType', 'logOddsMetric_variableType' - The type of variable.+--+-- 'variableImportance', 'logOddsMetric_variableImportance' - The relative importance of the variable. For more information, see+-- <https://docs.aws.amazon.com/frauddetector/latest/ug/model-variable-importance.html Model variable importance>.+newLogOddsMetric ::+  -- | 'variableName'+  Prelude.Text ->+  -- | 'variableType'+  Prelude.Text ->+  -- | 'variableImportance'+  Prelude.Double ->+  LogOddsMetric+newLogOddsMetric+  pVariableName_+  pVariableType_+  pVariableImportance_ =+    LogOddsMetric'+      { variableName = pVariableName_,+        variableType = pVariableType_,+        variableImportance = pVariableImportance_+      }++-- | The name of the variable.+logOddsMetric_variableName :: Lens.Lens' LogOddsMetric Prelude.Text+logOddsMetric_variableName = Lens.lens (\LogOddsMetric' {variableName} -> variableName) (\s@LogOddsMetric' {} a -> s {variableName = a} :: LogOddsMetric)++-- | The type of variable.+logOddsMetric_variableType :: Lens.Lens' LogOddsMetric Prelude.Text+logOddsMetric_variableType = Lens.lens (\LogOddsMetric' {variableType} -> variableType) (\s@LogOddsMetric' {} a -> s {variableType = a} :: LogOddsMetric)++-- | The relative importance of the variable. For more information, see+-- <https://docs.aws.amazon.com/frauddetector/latest/ug/model-variable-importance.html Model variable importance>.+logOddsMetric_variableImportance :: Lens.Lens' LogOddsMetric Prelude.Double+logOddsMetric_variableImportance = Lens.lens (\LogOddsMetric' {variableImportance} -> variableImportance) (\s@LogOddsMetric' {} a -> s {variableImportance = a} :: LogOddsMetric)++instance Data.FromJSON LogOddsMetric where+  parseJSON =+    Data.withObject+      "LogOddsMetric"+      ( \x ->+          LogOddsMetric'+            Prelude.<$> (x Data..: "variableName")+            Prelude.<*> (x Data..: "variableType")+            Prelude.<*> (x Data..: "variableImportance")+      )++instance Prelude.Hashable LogOddsMetric where+  hashWithSalt _salt LogOddsMetric' {..} =+    _salt+      `Prelude.hashWithSalt` variableName+      `Prelude.hashWithSalt` variableType+      `Prelude.hashWithSalt` variableImportance++instance Prelude.NFData LogOddsMetric where+  rnf LogOddsMetric' {..} =+    Prelude.rnf variableName+      `Prelude.seq` Prelude.rnf variableType+      `Prelude.seq` Prelude.rnf variableImportance
+ gen/Amazonka/FraudDetector/Types/MetricDataPoint.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.FraudDetector.Types.MetricDataPoint+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.MetricDataPoint 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++-- | Model performance metrics data points.+--+-- /See:/ 'newMetricDataPoint' smart constructor.+data MetricDataPoint = MetricDataPoint'+  { -- | The false positive rate. This is the percentage of total legitimate+    -- events that are incorrectly predicted as fraud.+    fpr :: Prelude.Maybe Prelude.Double,+    -- | The percentage of fraud events correctly predicted as fraudulent as+    -- compared to all events predicted as fraudulent.+    precision :: Prelude.Maybe Prelude.Double,+    -- | The model threshold that specifies an acceptable fraud capture rate. For+    -- example, a threshold of 500 means any model score 500 or above is+    -- labeled as fraud.+    threshold :: Prelude.Maybe Prelude.Double,+    -- | The true positive rate. This is the percentage of total fraud the model+    -- detects. Also known as capture rate.+    tpr :: Prelude.Maybe Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MetricDataPoint' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'fpr', 'metricDataPoint_fpr' - The false positive rate. This is the percentage of total legitimate+-- events that are incorrectly predicted as fraud.+--+-- 'precision', 'metricDataPoint_precision' - The percentage of fraud events correctly predicted as fraudulent as+-- compared to all events predicted as fraudulent.+--+-- 'threshold', 'metricDataPoint_threshold' - The model threshold that specifies an acceptable fraud capture rate. For+-- example, a threshold of 500 means any model score 500 or above is+-- labeled as fraud.+--+-- 'tpr', 'metricDataPoint_tpr' - The true positive rate. This is the percentage of total fraud the model+-- detects. Also known as capture rate.+newMetricDataPoint ::+  MetricDataPoint+newMetricDataPoint =+  MetricDataPoint'+    { fpr = Prelude.Nothing,+      precision = Prelude.Nothing,+      threshold = Prelude.Nothing,+      tpr = Prelude.Nothing+    }++-- | The false positive rate. This is the percentage of total legitimate+-- events that are incorrectly predicted as fraud.+metricDataPoint_fpr :: Lens.Lens' MetricDataPoint (Prelude.Maybe Prelude.Double)+metricDataPoint_fpr = Lens.lens (\MetricDataPoint' {fpr} -> fpr) (\s@MetricDataPoint' {} a -> s {fpr = a} :: MetricDataPoint)++-- | The percentage of fraud events correctly predicted as fraudulent as+-- compared to all events predicted as fraudulent.+metricDataPoint_precision :: Lens.Lens' MetricDataPoint (Prelude.Maybe Prelude.Double)+metricDataPoint_precision = Lens.lens (\MetricDataPoint' {precision} -> precision) (\s@MetricDataPoint' {} a -> s {precision = a} :: MetricDataPoint)++-- | The model threshold that specifies an acceptable fraud capture rate. For+-- example, a threshold of 500 means any model score 500 or above is+-- labeled as fraud.+metricDataPoint_threshold :: Lens.Lens' MetricDataPoint (Prelude.Maybe Prelude.Double)+metricDataPoint_threshold = Lens.lens (\MetricDataPoint' {threshold} -> threshold) (\s@MetricDataPoint' {} a -> s {threshold = a} :: MetricDataPoint)++-- | The true positive rate. This is the percentage of total fraud the model+-- detects. Also known as capture rate.+metricDataPoint_tpr :: Lens.Lens' MetricDataPoint (Prelude.Maybe Prelude.Double)+metricDataPoint_tpr = Lens.lens (\MetricDataPoint' {tpr} -> tpr) (\s@MetricDataPoint' {} a -> s {tpr = a} :: MetricDataPoint)++instance Data.FromJSON MetricDataPoint where+  parseJSON =+    Data.withObject+      "MetricDataPoint"+      ( \x ->+          MetricDataPoint'+            Prelude.<$> (x Data..:? "fpr")+            Prelude.<*> (x Data..:? "precision")+            Prelude.<*> (x Data..:? "threshold")+            Prelude.<*> (x Data..:? "tpr")+      )++instance Prelude.Hashable MetricDataPoint where+  hashWithSalt _salt MetricDataPoint' {..} =+    _salt+      `Prelude.hashWithSalt` fpr+      `Prelude.hashWithSalt` precision+      `Prelude.hashWithSalt` threshold+      `Prelude.hashWithSalt` tpr++instance Prelude.NFData MetricDataPoint where+  rnf MetricDataPoint' {..} =+    Prelude.rnf fpr+      `Prelude.seq` Prelude.rnf precision+      `Prelude.seq` Prelude.rnf threshold+      `Prelude.seq` Prelude.rnf tpr
+ gen/Amazonka/FraudDetector/Types/Model.hs view
@@ -0,0 +1,145 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.Types.Model+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.Model where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types.ModelTypeEnum+import qualified Amazonka.Prelude as Prelude++-- | The model.+--+-- /See:/ 'newModel' smart constructor.+data Model = Model'+  { -- | The ARN of the model.+    arn :: Prelude.Maybe Prelude.Text,+    -- | Timestamp of when the model was created.+    createdTime :: Prelude.Maybe Prelude.Text,+    -- | The model description.+    description :: Prelude.Maybe Prelude.Text,+    -- | The name of the event type.+    eventTypeName :: Prelude.Maybe Prelude.Text,+    -- | Timestamp of last time the model was updated.+    lastUpdatedTime :: Prelude.Maybe Prelude.Text,+    -- | The model ID.+    modelId :: Prelude.Maybe Prelude.Text,+    -- | The model type.+    modelType :: Prelude.Maybe ModelTypeEnum+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Model' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'model_arn' - The ARN of the model.+--+-- 'createdTime', 'model_createdTime' - Timestamp of when the model was created.+--+-- 'description', 'model_description' - The model description.+--+-- 'eventTypeName', 'model_eventTypeName' - The name of the event type.+--+-- 'lastUpdatedTime', 'model_lastUpdatedTime' - Timestamp of last time the model was updated.+--+-- 'modelId', 'model_modelId' - The model ID.+--+-- 'modelType', 'model_modelType' - The model type.+newModel ::+  Model+newModel =+  Model'+    { arn = Prelude.Nothing,+      createdTime = Prelude.Nothing,+      description = Prelude.Nothing,+      eventTypeName = Prelude.Nothing,+      lastUpdatedTime = Prelude.Nothing,+      modelId = Prelude.Nothing,+      modelType = Prelude.Nothing+    }++-- | The ARN of the model.+model_arn :: Lens.Lens' Model (Prelude.Maybe Prelude.Text)+model_arn = Lens.lens (\Model' {arn} -> arn) (\s@Model' {} a -> s {arn = a} :: Model)++-- | Timestamp of when the model was created.+model_createdTime :: Lens.Lens' Model (Prelude.Maybe Prelude.Text)+model_createdTime = Lens.lens (\Model' {createdTime} -> createdTime) (\s@Model' {} a -> s {createdTime = a} :: Model)++-- | The model description.+model_description :: Lens.Lens' Model (Prelude.Maybe Prelude.Text)+model_description = Lens.lens (\Model' {description} -> description) (\s@Model' {} a -> s {description = a} :: Model)++-- | The name of the event type.+model_eventTypeName :: Lens.Lens' Model (Prelude.Maybe Prelude.Text)+model_eventTypeName = Lens.lens (\Model' {eventTypeName} -> eventTypeName) (\s@Model' {} a -> s {eventTypeName = a} :: Model)++-- | Timestamp of last time the model was updated.+model_lastUpdatedTime :: Lens.Lens' Model (Prelude.Maybe Prelude.Text)+model_lastUpdatedTime = Lens.lens (\Model' {lastUpdatedTime} -> lastUpdatedTime) (\s@Model' {} a -> s {lastUpdatedTime = a} :: Model)++-- | The model ID.+model_modelId :: Lens.Lens' Model (Prelude.Maybe Prelude.Text)+model_modelId = Lens.lens (\Model' {modelId} -> modelId) (\s@Model' {} a -> s {modelId = a} :: Model)++-- | The model type.+model_modelType :: Lens.Lens' Model (Prelude.Maybe ModelTypeEnum)+model_modelType = Lens.lens (\Model' {modelType} -> modelType) (\s@Model' {} a -> s {modelType = a} :: Model)++instance Data.FromJSON Model where+  parseJSON =+    Data.withObject+      "Model"+      ( \x ->+          Model'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "createdTime")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "eventTypeName")+            Prelude.<*> (x Data..:? "lastUpdatedTime")+            Prelude.<*> (x Data..:? "modelId")+            Prelude.<*> (x Data..:? "modelType")+      )++instance Prelude.Hashable Model where+  hashWithSalt _salt Model' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` createdTime+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` eventTypeName+      `Prelude.hashWithSalt` lastUpdatedTime+      `Prelude.hashWithSalt` modelId+      `Prelude.hashWithSalt` modelType++instance Prelude.NFData Model where+  rnf Model' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdTime+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf eventTypeName+      `Prelude.seq` Prelude.rnf lastUpdatedTime+      `Prelude.seq` Prelude.rnf modelId+      `Prelude.seq` Prelude.rnf modelType
+ gen/Amazonka/FraudDetector/Types/ModelEndpointDataBlob.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.FraudDetector.Types.ModelEndpointDataBlob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.ModelEndpointDataBlob where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A pre-formed Amazon SageMaker model input you can include if your+-- detector version includes an imported Amazon SageMaker model endpoint+-- with pass-through input configuration.+--+-- /See:/ 'newModelEndpointDataBlob' smart constructor.+data ModelEndpointDataBlob = ModelEndpointDataBlob'+  { -- | The byte buffer of the Amazon SageMaker model endpoint input data blob.+    byteBuffer :: Prelude.Maybe Data.Base64,+    -- | The content type of the Amazon SageMaker model endpoint input data blob.+    contentType :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ModelEndpointDataBlob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'byteBuffer', 'modelEndpointDataBlob_byteBuffer' - The byte buffer of the Amazon SageMaker model endpoint input data blob.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+--+-- 'contentType', 'modelEndpointDataBlob_contentType' - The content type of the Amazon SageMaker model endpoint input data blob.+newModelEndpointDataBlob ::+  ModelEndpointDataBlob+newModelEndpointDataBlob =+  ModelEndpointDataBlob'+    { byteBuffer =+        Prelude.Nothing,+      contentType = Prelude.Nothing+    }++-- | The byte buffer of the Amazon SageMaker model endpoint input data blob.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+modelEndpointDataBlob_byteBuffer :: Lens.Lens' ModelEndpointDataBlob (Prelude.Maybe Prelude.ByteString)+modelEndpointDataBlob_byteBuffer = Lens.lens (\ModelEndpointDataBlob' {byteBuffer} -> byteBuffer) (\s@ModelEndpointDataBlob' {} a -> s {byteBuffer = a} :: ModelEndpointDataBlob) Prelude.. Lens.mapping Data._Base64++-- | The content type of the Amazon SageMaker model endpoint input data blob.+modelEndpointDataBlob_contentType :: Lens.Lens' ModelEndpointDataBlob (Prelude.Maybe Prelude.Text)+modelEndpointDataBlob_contentType = Lens.lens (\ModelEndpointDataBlob' {contentType} -> contentType) (\s@ModelEndpointDataBlob' {} a -> s {contentType = a} :: ModelEndpointDataBlob)++instance Prelude.Hashable ModelEndpointDataBlob where+  hashWithSalt _salt ModelEndpointDataBlob' {..} =+    _salt+      `Prelude.hashWithSalt` byteBuffer+      `Prelude.hashWithSalt` contentType++instance Prelude.NFData ModelEndpointDataBlob where+  rnf ModelEndpointDataBlob' {..} =+    Prelude.rnf byteBuffer+      `Prelude.seq` Prelude.rnf contentType++instance Data.ToJSON ModelEndpointDataBlob where+  toJSON ModelEndpointDataBlob' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("byteBuffer" Data..=) Prelude.<$> byteBuffer,+            ("contentType" Data..=) Prelude.<$> contentType+          ]+      )
+ gen/Amazonka/FraudDetector/Types/ModelEndpointStatus.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.Types.ModelEndpointStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.ModelEndpointStatus+  ( ModelEndpointStatus+      ( ..,+        ModelEndpointStatus_ASSOCIATED,+        ModelEndpointStatus_DISSOCIATED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ModelEndpointStatus = ModelEndpointStatus'+  { fromModelEndpointStatus ::+      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 ModelEndpointStatus_ASSOCIATED :: ModelEndpointStatus+pattern ModelEndpointStatus_ASSOCIATED = ModelEndpointStatus' "ASSOCIATED"++pattern ModelEndpointStatus_DISSOCIATED :: ModelEndpointStatus+pattern ModelEndpointStatus_DISSOCIATED = ModelEndpointStatus' "DISSOCIATED"++{-# COMPLETE+  ModelEndpointStatus_ASSOCIATED,+  ModelEndpointStatus_DISSOCIATED,+  ModelEndpointStatus'+  #-}
+ gen/Amazonka/FraudDetector/Types/ModelInputConfiguration.hs view
@@ -0,0 +1,163 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.Types.ModelInputConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.ModelInputConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types.ModelInputDataFormat+import qualified Amazonka.Prelude as Prelude++-- | The Amazon SageMaker model input configuration.+--+-- /See:/ 'newModelInputConfiguration' smart constructor.+data ModelInputConfiguration = ModelInputConfiguration'+  { -- | Template for constructing the CSV input-data sent to SageMaker. At+    -- event-evaluation, the placeholders for variable-names in the template+    -- will be replaced with the variable values before being sent to+    -- SageMaker.+    csvInputTemplate :: Prelude.Maybe Prelude.Text,+    -- | The event type name.+    eventTypeName :: Prelude.Maybe Prelude.Text,+    -- | The format of the model input configuration. The format differs+    -- depending on if it is passed through to SageMaker or constructed by+    -- Amazon Fraud Detector.+    format :: Prelude.Maybe ModelInputDataFormat,+    -- | Template for constructing the JSON input-data sent to SageMaker. At+    -- event-evaluation, the placeholders for variable names in the template+    -- will be replaced with the variable values before being sent to+    -- SageMaker.+    jsonInputTemplate :: Prelude.Maybe Prelude.Text,+    -- | The event variables.+    useEventVariables :: Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ModelInputConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'csvInputTemplate', 'modelInputConfiguration_csvInputTemplate' - Template for constructing the CSV input-data sent to SageMaker. At+-- event-evaluation, the placeholders for variable-names in the template+-- will be replaced with the variable values before being sent to+-- SageMaker.+--+-- 'eventTypeName', 'modelInputConfiguration_eventTypeName' - The event type name.+--+-- 'format', 'modelInputConfiguration_format' - The format of the model input configuration. The format differs+-- depending on if it is passed through to SageMaker or constructed by+-- Amazon Fraud Detector.+--+-- 'jsonInputTemplate', 'modelInputConfiguration_jsonInputTemplate' - Template for constructing the JSON input-data sent to SageMaker. At+-- event-evaluation, the placeholders for variable names in the template+-- will be replaced with the variable values before being sent to+-- SageMaker.+--+-- 'useEventVariables', 'modelInputConfiguration_useEventVariables' - The event variables.+newModelInputConfiguration ::+  -- | 'useEventVariables'+  Prelude.Bool ->+  ModelInputConfiguration+newModelInputConfiguration pUseEventVariables_ =+  ModelInputConfiguration'+    { csvInputTemplate =+        Prelude.Nothing,+      eventTypeName = Prelude.Nothing,+      format = Prelude.Nothing,+      jsonInputTemplate = Prelude.Nothing,+      useEventVariables = pUseEventVariables_+    }++-- | Template for constructing the CSV input-data sent to SageMaker. At+-- event-evaluation, the placeholders for variable-names in the template+-- will be replaced with the variable values before being sent to+-- SageMaker.+modelInputConfiguration_csvInputTemplate :: Lens.Lens' ModelInputConfiguration (Prelude.Maybe Prelude.Text)+modelInputConfiguration_csvInputTemplate = Lens.lens (\ModelInputConfiguration' {csvInputTemplate} -> csvInputTemplate) (\s@ModelInputConfiguration' {} a -> s {csvInputTemplate = a} :: ModelInputConfiguration)++-- | The event type name.+modelInputConfiguration_eventTypeName :: Lens.Lens' ModelInputConfiguration (Prelude.Maybe Prelude.Text)+modelInputConfiguration_eventTypeName = Lens.lens (\ModelInputConfiguration' {eventTypeName} -> eventTypeName) (\s@ModelInputConfiguration' {} a -> s {eventTypeName = a} :: ModelInputConfiguration)++-- | The format of the model input configuration. The format differs+-- depending on if it is passed through to SageMaker or constructed by+-- Amazon Fraud Detector.+modelInputConfiguration_format :: Lens.Lens' ModelInputConfiguration (Prelude.Maybe ModelInputDataFormat)+modelInputConfiguration_format = Lens.lens (\ModelInputConfiguration' {format} -> format) (\s@ModelInputConfiguration' {} a -> s {format = a} :: ModelInputConfiguration)++-- | Template for constructing the JSON input-data sent to SageMaker. At+-- event-evaluation, the placeholders for variable names in the template+-- will be replaced with the variable values before being sent to+-- SageMaker.+modelInputConfiguration_jsonInputTemplate :: Lens.Lens' ModelInputConfiguration (Prelude.Maybe Prelude.Text)+modelInputConfiguration_jsonInputTemplate = Lens.lens (\ModelInputConfiguration' {jsonInputTemplate} -> jsonInputTemplate) (\s@ModelInputConfiguration' {} a -> s {jsonInputTemplate = a} :: ModelInputConfiguration)++-- | The event variables.+modelInputConfiguration_useEventVariables :: Lens.Lens' ModelInputConfiguration Prelude.Bool+modelInputConfiguration_useEventVariables = Lens.lens (\ModelInputConfiguration' {useEventVariables} -> useEventVariables) (\s@ModelInputConfiguration' {} a -> s {useEventVariables = a} :: ModelInputConfiguration)++instance Data.FromJSON ModelInputConfiguration where+  parseJSON =+    Data.withObject+      "ModelInputConfiguration"+      ( \x ->+          ModelInputConfiguration'+            Prelude.<$> (x Data..:? "csvInputTemplate")+            Prelude.<*> (x Data..:? "eventTypeName")+            Prelude.<*> (x Data..:? "format")+            Prelude.<*> (x Data..:? "jsonInputTemplate")+            Prelude.<*> (x Data..: "useEventVariables")+      )++instance Prelude.Hashable ModelInputConfiguration where+  hashWithSalt _salt ModelInputConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` csvInputTemplate+      `Prelude.hashWithSalt` eventTypeName+      `Prelude.hashWithSalt` format+      `Prelude.hashWithSalt` jsonInputTemplate+      `Prelude.hashWithSalt` useEventVariables++instance Prelude.NFData ModelInputConfiguration where+  rnf ModelInputConfiguration' {..} =+    Prelude.rnf csvInputTemplate+      `Prelude.seq` Prelude.rnf eventTypeName+      `Prelude.seq` Prelude.rnf format+      `Prelude.seq` Prelude.rnf jsonInputTemplate+      `Prelude.seq` Prelude.rnf useEventVariables++instance Data.ToJSON ModelInputConfiguration where+  toJSON ModelInputConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("csvInputTemplate" Data..=)+              Prelude.<$> csvInputTemplate,+            ("eventTypeName" Data..=) Prelude.<$> eventTypeName,+            ("format" Data..=) Prelude.<$> format,+            ("jsonInputTemplate" Data..=)+              Prelude.<$> jsonInputTemplate,+            Prelude.Just+              ("useEventVariables" Data..= useEventVariables)+          ]+      )
+ gen/Amazonka/FraudDetector/Types/ModelInputDataFormat.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.Types.ModelInputDataFormat+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.ModelInputDataFormat+  ( ModelInputDataFormat+      ( ..,+        ModelInputDataFormat_APPLICATION_JSON,+        ModelInputDataFormat_TEXT_CSV+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ModelInputDataFormat = ModelInputDataFormat'+  { fromModelInputDataFormat ::+      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 ModelInputDataFormat_APPLICATION_JSON :: ModelInputDataFormat+pattern ModelInputDataFormat_APPLICATION_JSON = ModelInputDataFormat' "APPLICATION_JSON"++pattern ModelInputDataFormat_TEXT_CSV :: ModelInputDataFormat+pattern ModelInputDataFormat_TEXT_CSV = ModelInputDataFormat' "TEXT_CSV"++{-# COMPLETE+  ModelInputDataFormat_APPLICATION_JSON,+  ModelInputDataFormat_TEXT_CSV,+  ModelInputDataFormat'+  #-}
+ gen/Amazonka/FraudDetector/Types/ModelOutputConfiguration.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.FraudDetector.Types.ModelOutputConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.ModelOutputConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types.ModelOutputDataFormat+import qualified Amazonka.Prelude as Prelude++-- | Provides the Amazon Sagemaker model output configuration.+--+-- /See:/ 'newModelOutputConfiguration' smart constructor.+data ModelOutputConfiguration = ModelOutputConfiguration'+  { -- | A map of CSV index values in the SageMaker response to the Amazon Fraud+    -- Detector variables.+    csvIndexToVariableMap :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | A map of JSON keys in response from SageMaker to the Amazon Fraud+    -- Detector variables.+    jsonKeyToVariableMap :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The format of the model output configuration.+    format :: ModelOutputDataFormat+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ModelOutputConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'csvIndexToVariableMap', 'modelOutputConfiguration_csvIndexToVariableMap' - A map of CSV index values in the SageMaker response to the Amazon Fraud+-- Detector variables.+--+-- 'jsonKeyToVariableMap', 'modelOutputConfiguration_jsonKeyToVariableMap' - A map of JSON keys in response from SageMaker to the Amazon Fraud+-- Detector variables.+--+-- 'format', 'modelOutputConfiguration_format' - The format of the model output configuration.+newModelOutputConfiguration ::+  -- | 'format'+  ModelOutputDataFormat ->+  ModelOutputConfiguration+newModelOutputConfiguration pFormat_ =+  ModelOutputConfiguration'+    { csvIndexToVariableMap =+        Prelude.Nothing,+      jsonKeyToVariableMap = Prelude.Nothing,+      format = pFormat_+    }++-- | A map of CSV index values in the SageMaker response to the Amazon Fraud+-- Detector variables.+modelOutputConfiguration_csvIndexToVariableMap :: Lens.Lens' ModelOutputConfiguration (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+modelOutputConfiguration_csvIndexToVariableMap = Lens.lens (\ModelOutputConfiguration' {csvIndexToVariableMap} -> csvIndexToVariableMap) (\s@ModelOutputConfiguration' {} a -> s {csvIndexToVariableMap = a} :: ModelOutputConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A map of JSON keys in response from SageMaker to the Amazon Fraud+-- Detector variables.+modelOutputConfiguration_jsonKeyToVariableMap :: Lens.Lens' ModelOutputConfiguration (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+modelOutputConfiguration_jsonKeyToVariableMap = Lens.lens (\ModelOutputConfiguration' {jsonKeyToVariableMap} -> jsonKeyToVariableMap) (\s@ModelOutputConfiguration' {} a -> s {jsonKeyToVariableMap = a} :: ModelOutputConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The format of the model output configuration.+modelOutputConfiguration_format :: Lens.Lens' ModelOutputConfiguration ModelOutputDataFormat+modelOutputConfiguration_format = Lens.lens (\ModelOutputConfiguration' {format} -> format) (\s@ModelOutputConfiguration' {} a -> s {format = a} :: ModelOutputConfiguration)++instance Data.FromJSON ModelOutputConfiguration where+  parseJSON =+    Data.withObject+      "ModelOutputConfiguration"+      ( \x ->+          ModelOutputConfiguration'+            Prelude.<$> ( x+                            Data..:? "csvIndexToVariableMap"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "jsonKeyToVariableMap"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..: "format")+      )++instance Prelude.Hashable ModelOutputConfiguration where+  hashWithSalt _salt ModelOutputConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` csvIndexToVariableMap+      `Prelude.hashWithSalt` jsonKeyToVariableMap+      `Prelude.hashWithSalt` format++instance Prelude.NFData ModelOutputConfiguration where+  rnf ModelOutputConfiguration' {..} =+    Prelude.rnf csvIndexToVariableMap+      `Prelude.seq` Prelude.rnf jsonKeyToVariableMap+      `Prelude.seq` Prelude.rnf format++instance Data.ToJSON ModelOutputConfiguration where+  toJSON ModelOutputConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("csvIndexToVariableMap" Data..=)+              Prelude.<$> csvIndexToVariableMap,+            ("jsonKeyToVariableMap" Data..=)+              Prelude.<$> jsonKeyToVariableMap,+            Prelude.Just ("format" Data..= format)+          ]+      )
+ gen/Amazonka/FraudDetector/Types/ModelOutputDataFormat.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.Types.ModelOutputDataFormat+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.ModelOutputDataFormat+  ( ModelOutputDataFormat+      ( ..,+        ModelOutputDataFormat_APPLICATION_JSONLINES,+        ModelOutputDataFormat_TEXT_CSV+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ModelOutputDataFormat = ModelOutputDataFormat'+  { fromModelOutputDataFormat ::+      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 ModelOutputDataFormat_APPLICATION_JSONLINES :: ModelOutputDataFormat+pattern ModelOutputDataFormat_APPLICATION_JSONLINES = ModelOutputDataFormat' "APPLICATION_JSONLINES"++pattern ModelOutputDataFormat_TEXT_CSV :: ModelOutputDataFormat+pattern ModelOutputDataFormat_TEXT_CSV = ModelOutputDataFormat' "TEXT_CSV"++{-# COMPLETE+  ModelOutputDataFormat_APPLICATION_JSONLINES,+  ModelOutputDataFormat_TEXT_CSV,+  ModelOutputDataFormat'+  #-}
+ gen/Amazonka/FraudDetector/Types/ModelScores.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.FraudDetector.Types.ModelScores+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.ModelScores where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types.ModelVersion+import qualified Amazonka.Prelude as Prelude++-- | The fraud prediction scores.+--+-- /See:/ 'newModelScores' smart constructor.+data ModelScores = ModelScores'+  { -- | The model version.+    modelVersion :: Prelude.Maybe ModelVersion,+    -- | The model\'s fraud prediction scores.+    scores :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Double)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ModelScores' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'modelVersion', 'modelScores_modelVersion' - The model version.+--+-- 'scores', 'modelScores_scores' - The model\'s fraud prediction scores.+newModelScores ::+  ModelScores+newModelScores =+  ModelScores'+    { modelVersion = Prelude.Nothing,+      scores = Prelude.Nothing+    }++-- | The model version.+modelScores_modelVersion :: Lens.Lens' ModelScores (Prelude.Maybe ModelVersion)+modelScores_modelVersion = Lens.lens (\ModelScores' {modelVersion} -> modelVersion) (\s@ModelScores' {} a -> s {modelVersion = a} :: ModelScores)++-- | The model\'s fraud prediction scores.+modelScores_scores :: Lens.Lens' ModelScores (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Double))+modelScores_scores = Lens.lens (\ModelScores' {scores} -> scores) (\s@ModelScores' {} a -> s {scores = a} :: ModelScores) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ModelScores where+  parseJSON =+    Data.withObject+      "ModelScores"+      ( \x ->+          ModelScores'+            Prelude.<$> (x Data..:? "modelVersion")+            Prelude.<*> (x Data..:? "scores" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable ModelScores where+  hashWithSalt _salt ModelScores' {..} =+    _salt+      `Prelude.hashWithSalt` modelVersion+      `Prelude.hashWithSalt` scores++instance Prelude.NFData ModelScores where+  rnf ModelScores' {..} =+    Prelude.rnf modelVersion+      `Prelude.seq` Prelude.rnf scores
+ gen/Amazonka/FraudDetector/Types/ModelSource.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.Types.ModelSource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.ModelSource+  ( ModelSource+      ( ..,+        ModelSource_SAGEMAKER+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ModelSource = ModelSource'+  { fromModelSource ::+      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 ModelSource_SAGEMAKER :: ModelSource+pattern ModelSource_SAGEMAKER = ModelSource' "SAGEMAKER"++{-# COMPLETE+  ModelSource_SAGEMAKER,+  ModelSource'+  #-}
+ gen/Amazonka/FraudDetector/Types/ModelTypeEnum.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.FraudDetector.Types.ModelTypeEnum+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.ModelTypeEnum+  ( ModelTypeEnum+      ( ..,+        ModelTypeEnum_ACCOUNT_TAKEOVER_INSIGHTS,+        ModelTypeEnum_ONLINE_FRAUD_INSIGHTS,+        ModelTypeEnum_TRANSACTION_FRAUD_INSIGHTS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ModelTypeEnum = ModelTypeEnum'+  { fromModelTypeEnum ::+      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 ModelTypeEnum_ACCOUNT_TAKEOVER_INSIGHTS :: ModelTypeEnum+pattern ModelTypeEnum_ACCOUNT_TAKEOVER_INSIGHTS = ModelTypeEnum' "ACCOUNT_TAKEOVER_INSIGHTS"++pattern ModelTypeEnum_ONLINE_FRAUD_INSIGHTS :: ModelTypeEnum+pattern ModelTypeEnum_ONLINE_FRAUD_INSIGHTS = ModelTypeEnum' "ONLINE_FRAUD_INSIGHTS"++pattern ModelTypeEnum_TRANSACTION_FRAUD_INSIGHTS :: ModelTypeEnum+pattern ModelTypeEnum_TRANSACTION_FRAUD_INSIGHTS = ModelTypeEnum' "TRANSACTION_FRAUD_INSIGHTS"++{-# COMPLETE+  ModelTypeEnum_ACCOUNT_TAKEOVER_INSIGHTS,+  ModelTypeEnum_ONLINE_FRAUD_INSIGHTS,+  ModelTypeEnum_TRANSACTION_FRAUD_INSIGHTS,+  ModelTypeEnum'+  #-}
+ gen/Amazonka/FraudDetector/Types/ModelVersion.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.FraudDetector.Types.ModelVersion+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.ModelVersion where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types.ModelTypeEnum+import qualified Amazonka.Prelude as Prelude++-- | The model version.+--+-- /See:/ 'newModelVersion' smart constructor.+data ModelVersion = ModelVersion'+  { -- | The model version ARN.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The model ID.+    modelId :: Prelude.Text,+    -- | The model type.+    modelType :: ModelTypeEnum,+    -- | The model version number.+    modelVersionNumber :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ModelVersion' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'modelVersion_arn' - The model version ARN.+--+-- 'modelId', 'modelVersion_modelId' - The model ID.+--+-- 'modelType', 'modelVersion_modelType' - The model type.+--+-- 'modelVersionNumber', 'modelVersion_modelVersionNumber' - The model version number.+newModelVersion ::+  -- | 'modelId'+  Prelude.Text ->+  -- | 'modelType'+  ModelTypeEnum ->+  -- | 'modelVersionNumber'+  Prelude.Text ->+  ModelVersion+newModelVersion+  pModelId_+  pModelType_+  pModelVersionNumber_ =+    ModelVersion'+      { arn = Prelude.Nothing,+        modelId = pModelId_,+        modelType = pModelType_,+        modelVersionNumber = pModelVersionNumber_+      }++-- | The model version ARN.+modelVersion_arn :: Lens.Lens' ModelVersion (Prelude.Maybe Prelude.Text)+modelVersion_arn = Lens.lens (\ModelVersion' {arn} -> arn) (\s@ModelVersion' {} a -> s {arn = a} :: ModelVersion)++-- | The model ID.+modelVersion_modelId :: Lens.Lens' ModelVersion Prelude.Text+modelVersion_modelId = Lens.lens (\ModelVersion' {modelId} -> modelId) (\s@ModelVersion' {} a -> s {modelId = a} :: ModelVersion)++-- | The model type.+modelVersion_modelType :: Lens.Lens' ModelVersion ModelTypeEnum+modelVersion_modelType = Lens.lens (\ModelVersion' {modelType} -> modelType) (\s@ModelVersion' {} a -> s {modelType = a} :: ModelVersion)++-- | The model version number.+modelVersion_modelVersionNumber :: Lens.Lens' ModelVersion Prelude.Text+modelVersion_modelVersionNumber = Lens.lens (\ModelVersion' {modelVersionNumber} -> modelVersionNumber) (\s@ModelVersion' {} a -> s {modelVersionNumber = a} :: ModelVersion)++instance Data.FromJSON ModelVersion where+  parseJSON =+    Data.withObject+      "ModelVersion"+      ( \x ->+          ModelVersion'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..: "modelId")+            Prelude.<*> (x Data..: "modelType")+            Prelude.<*> (x Data..: "modelVersionNumber")+      )++instance Prelude.Hashable ModelVersion where+  hashWithSalt _salt ModelVersion' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` modelId+      `Prelude.hashWithSalt` modelType+      `Prelude.hashWithSalt` modelVersionNumber++instance Prelude.NFData ModelVersion where+  rnf ModelVersion' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf modelId+      `Prelude.seq` Prelude.rnf modelType+      `Prelude.seq` Prelude.rnf modelVersionNumber++instance Data.ToJSON ModelVersion where+  toJSON ModelVersion' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("arn" Data..=) Prelude.<$> arn,+            Prelude.Just ("modelId" Data..= modelId),+            Prelude.Just ("modelType" Data..= modelType),+            Prelude.Just+              ("modelVersionNumber" Data..= modelVersionNumber)+          ]+      )
+ gen/Amazonka/FraudDetector/Types/ModelVersionDetail.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.FraudDetector.Types.ModelVersionDetail+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.ModelVersionDetail where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types.ExternalEventsDetail+import Amazonka.FraudDetector.Types.IngestedEventsDetail+import Amazonka.FraudDetector.Types.ModelTypeEnum+import Amazonka.FraudDetector.Types.TrainingDataSchema+import Amazonka.FraudDetector.Types.TrainingDataSourceEnum+import Amazonka.FraudDetector.Types.TrainingResult+import Amazonka.FraudDetector.Types.TrainingResultV2+import qualified Amazonka.Prelude as Prelude++-- | The details of the model version.+--+-- /See:/ 'newModelVersionDetail' smart constructor.+data ModelVersionDetail = ModelVersionDetail'+  { -- | The model version ARN.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The timestamp when the model was created.+    createdTime :: Prelude.Maybe Prelude.Text,+    -- | The external events data details. This will be populated if the+    -- @trainingDataSource@ for the model version is specified as+    -- @EXTERNAL_EVENTS@.+    externalEventsDetail :: Prelude.Maybe ExternalEventsDetail,+    -- | The ingested events data details. This will be populated if the+    -- @trainingDataSource@ for the model version is specified as+    -- @INGESTED_EVENTS@.+    ingestedEventsDetail :: Prelude.Maybe IngestedEventsDetail,+    -- | The timestamp when the model was last updated.+    lastUpdatedTime :: Prelude.Maybe Prelude.Text,+    -- | The model ID.+    modelId :: Prelude.Maybe Prelude.Text,+    -- | The model type.+    modelType :: Prelude.Maybe ModelTypeEnum,+    -- | The model version number.+    modelVersionNumber :: Prelude.Maybe Prelude.Text,+    -- | The status of the model version.+    status :: Prelude.Maybe Prelude.Text,+    -- | The training data schema.+    trainingDataSchema :: Prelude.Maybe TrainingDataSchema,+    -- | The model version training data source.+    trainingDataSource :: Prelude.Maybe TrainingDataSourceEnum,+    -- | The training results.+    trainingResult :: Prelude.Maybe TrainingResult,+    -- | The training result details. The details include the relative importance+    -- of the variables.+    trainingResultV2 :: Prelude.Maybe TrainingResultV2+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ModelVersionDetail' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'modelVersionDetail_arn' - The model version ARN.+--+-- 'createdTime', 'modelVersionDetail_createdTime' - The timestamp when the model was created.+--+-- 'externalEventsDetail', 'modelVersionDetail_externalEventsDetail' - The external events data details. This will be populated if the+-- @trainingDataSource@ for the model version is specified as+-- @EXTERNAL_EVENTS@.+--+-- 'ingestedEventsDetail', 'modelVersionDetail_ingestedEventsDetail' - The ingested events data details. This will be populated if the+-- @trainingDataSource@ for the model version is specified as+-- @INGESTED_EVENTS@.+--+-- 'lastUpdatedTime', 'modelVersionDetail_lastUpdatedTime' - The timestamp when the model was last updated.+--+-- 'modelId', 'modelVersionDetail_modelId' - The model ID.+--+-- 'modelType', 'modelVersionDetail_modelType' - The model type.+--+-- 'modelVersionNumber', 'modelVersionDetail_modelVersionNumber' - The model version number.+--+-- 'status', 'modelVersionDetail_status' - The status of the model version.+--+-- 'trainingDataSchema', 'modelVersionDetail_trainingDataSchema' - The training data schema.+--+-- 'trainingDataSource', 'modelVersionDetail_trainingDataSource' - The model version training data source.+--+-- 'trainingResult', 'modelVersionDetail_trainingResult' - The training results.+--+-- 'trainingResultV2', 'modelVersionDetail_trainingResultV2' - The training result details. The details include the relative importance+-- of the variables.+newModelVersionDetail ::+  ModelVersionDetail+newModelVersionDetail =+  ModelVersionDetail'+    { arn = Prelude.Nothing,+      createdTime = Prelude.Nothing,+      externalEventsDetail = Prelude.Nothing,+      ingestedEventsDetail = Prelude.Nothing,+      lastUpdatedTime = Prelude.Nothing,+      modelId = Prelude.Nothing,+      modelType = Prelude.Nothing,+      modelVersionNumber = Prelude.Nothing,+      status = Prelude.Nothing,+      trainingDataSchema = Prelude.Nothing,+      trainingDataSource = Prelude.Nothing,+      trainingResult = Prelude.Nothing,+      trainingResultV2 = Prelude.Nothing+    }++-- | The model version ARN.+modelVersionDetail_arn :: Lens.Lens' ModelVersionDetail (Prelude.Maybe Prelude.Text)+modelVersionDetail_arn = Lens.lens (\ModelVersionDetail' {arn} -> arn) (\s@ModelVersionDetail' {} a -> s {arn = a} :: ModelVersionDetail)++-- | The timestamp when the model was created.+modelVersionDetail_createdTime :: Lens.Lens' ModelVersionDetail (Prelude.Maybe Prelude.Text)+modelVersionDetail_createdTime = Lens.lens (\ModelVersionDetail' {createdTime} -> createdTime) (\s@ModelVersionDetail' {} a -> s {createdTime = a} :: ModelVersionDetail)++-- | The external events data details. This will be populated if the+-- @trainingDataSource@ for the model version is specified as+-- @EXTERNAL_EVENTS@.+modelVersionDetail_externalEventsDetail :: Lens.Lens' ModelVersionDetail (Prelude.Maybe ExternalEventsDetail)+modelVersionDetail_externalEventsDetail = Lens.lens (\ModelVersionDetail' {externalEventsDetail} -> externalEventsDetail) (\s@ModelVersionDetail' {} a -> s {externalEventsDetail = a} :: ModelVersionDetail)++-- | The ingested events data details. This will be populated if the+-- @trainingDataSource@ for the model version is specified as+-- @INGESTED_EVENTS@.+modelVersionDetail_ingestedEventsDetail :: Lens.Lens' ModelVersionDetail (Prelude.Maybe IngestedEventsDetail)+modelVersionDetail_ingestedEventsDetail = Lens.lens (\ModelVersionDetail' {ingestedEventsDetail} -> ingestedEventsDetail) (\s@ModelVersionDetail' {} a -> s {ingestedEventsDetail = a} :: ModelVersionDetail)++-- | The timestamp when the model was last updated.+modelVersionDetail_lastUpdatedTime :: Lens.Lens' ModelVersionDetail (Prelude.Maybe Prelude.Text)+modelVersionDetail_lastUpdatedTime = Lens.lens (\ModelVersionDetail' {lastUpdatedTime} -> lastUpdatedTime) (\s@ModelVersionDetail' {} a -> s {lastUpdatedTime = a} :: ModelVersionDetail)++-- | The model ID.+modelVersionDetail_modelId :: Lens.Lens' ModelVersionDetail (Prelude.Maybe Prelude.Text)+modelVersionDetail_modelId = Lens.lens (\ModelVersionDetail' {modelId} -> modelId) (\s@ModelVersionDetail' {} a -> s {modelId = a} :: ModelVersionDetail)++-- | The model type.+modelVersionDetail_modelType :: Lens.Lens' ModelVersionDetail (Prelude.Maybe ModelTypeEnum)+modelVersionDetail_modelType = Lens.lens (\ModelVersionDetail' {modelType} -> modelType) (\s@ModelVersionDetail' {} a -> s {modelType = a} :: ModelVersionDetail)++-- | The model version number.+modelVersionDetail_modelVersionNumber :: Lens.Lens' ModelVersionDetail (Prelude.Maybe Prelude.Text)+modelVersionDetail_modelVersionNumber = Lens.lens (\ModelVersionDetail' {modelVersionNumber} -> modelVersionNumber) (\s@ModelVersionDetail' {} a -> s {modelVersionNumber = a} :: ModelVersionDetail)++-- | The status of the model version.+modelVersionDetail_status :: Lens.Lens' ModelVersionDetail (Prelude.Maybe Prelude.Text)+modelVersionDetail_status = Lens.lens (\ModelVersionDetail' {status} -> status) (\s@ModelVersionDetail' {} a -> s {status = a} :: ModelVersionDetail)++-- | The training data schema.+modelVersionDetail_trainingDataSchema :: Lens.Lens' ModelVersionDetail (Prelude.Maybe TrainingDataSchema)+modelVersionDetail_trainingDataSchema = Lens.lens (\ModelVersionDetail' {trainingDataSchema} -> trainingDataSchema) (\s@ModelVersionDetail' {} a -> s {trainingDataSchema = a} :: ModelVersionDetail)++-- | The model version training data source.+modelVersionDetail_trainingDataSource :: Lens.Lens' ModelVersionDetail (Prelude.Maybe TrainingDataSourceEnum)+modelVersionDetail_trainingDataSource = Lens.lens (\ModelVersionDetail' {trainingDataSource} -> trainingDataSource) (\s@ModelVersionDetail' {} a -> s {trainingDataSource = a} :: ModelVersionDetail)++-- | The training results.+modelVersionDetail_trainingResult :: Lens.Lens' ModelVersionDetail (Prelude.Maybe TrainingResult)+modelVersionDetail_trainingResult = Lens.lens (\ModelVersionDetail' {trainingResult} -> trainingResult) (\s@ModelVersionDetail' {} a -> s {trainingResult = a} :: ModelVersionDetail)++-- | The training result details. The details include the relative importance+-- of the variables.+modelVersionDetail_trainingResultV2 :: Lens.Lens' ModelVersionDetail (Prelude.Maybe TrainingResultV2)+modelVersionDetail_trainingResultV2 = Lens.lens (\ModelVersionDetail' {trainingResultV2} -> trainingResultV2) (\s@ModelVersionDetail' {} a -> s {trainingResultV2 = a} :: ModelVersionDetail)++instance Data.FromJSON ModelVersionDetail where+  parseJSON =+    Data.withObject+      "ModelVersionDetail"+      ( \x ->+          ModelVersionDetail'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "createdTime")+            Prelude.<*> (x Data..:? "externalEventsDetail")+            Prelude.<*> (x Data..:? "ingestedEventsDetail")+            Prelude.<*> (x Data..:? "lastUpdatedTime")+            Prelude.<*> (x Data..:? "modelId")+            Prelude.<*> (x Data..:? "modelType")+            Prelude.<*> (x Data..:? "modelVersionNumber")+            Prelude.<*> (x Data..:? "status")+            Prelude.<*> (x Data..:? "trainingDataSchema")+            Prelude.<*> (x Data..:? "trainingDataSource")+            Prelude.<*> (x Data..:? "trainingResult")+            Prelude.<*> (x Data..:? "trainingResultV2")+      )++instance Prelude.Hashable ModelVersionDetail where+  hashWithSalt _salt ModelVersionDetail' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` createdTime+      `Prelude.hashWithSalt` externalEventsDetail+      `Prelude.hashWithSalt` ingestedEventsDetail+      `Prelude.hashWithSalt` lastUpdatedTime+      `Prelude.hashWithSalt` modelId+      `Prelude.hashWithSalt` modelType+      `Prelude.hashWithSalt` modelVersionNumber+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` trainingDataSchema+      `Prelude.hashWithSalt` trainingDataSource+      `Prelude.hashWithSalt` trainingResult+      `Prelude.hashWithSalt` trainingResultV2++instance Prelude.NFData ModelVersionDetail where+  rnf ModelVersionDetail' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdTime+      `Prelude.seq` Prelude.rnf externalEventsDetail+      `Prelude.seq` Prelude.rnf ingestedEventsDetail+      `Prelude.seq` Prelude.rnf lastUpdatedTime+      `Prelude.seq` Prelude.rnf modelId+      `Prelude.seq` Prelude.rnf modelType+      `Prelude.seq` Prelude.rnf modelVersionNumber+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf trainingDataSchema+      `Prelude.seq` Prelude.rnf trainingDataSource+      `Prelude.seq` Prelude.rnf trainingResult+      `Prelude.seq` Prelude.rnf trainingResultV2
+ gen/Amazonka/FraudDetector/Types/ModelVersionEvaluation.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.FraudDetector.Types.ModelVersionEvaluation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.ModelVersionEvaluation where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types.PredictionExplanations+import qualified Amazonka.Prelude as Prelude++-- | The model version evalutions.+--+-- /See:/ 'newModelVersionEvaluation' smart constructor.+data ModelVersionEvaluation = ModelVersionEvaluation'+  { -- | The evaluation score generated for the model version.+    evaluationScore :: Prelude.Maybe Prelude.Text,+    -- | The output variable name.+    outputVariableName :: Prelude.Maybe Prelude.Text,+    -- | The prediction explanations generated for the model version.+    predictionExplanations :: Prelude.Maybe PredictionExplanations+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ModelVersionEvaluation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'evaluationScore', 'modelVersionEvaluation_evaluationScore' - The evaluation score generated for the model version.+--+-- 'outputVariableName', 'modelVersionEvaluation_outputVariableName' - The output variable name.+--+-- 'predictionExplanations', 'modelVersionEvaluation_predictionExplanations' - The prediction explanations generated for the model version.+newModelVersionEvaluation ::+  ModelVersionEvaluation+newModelVersionEvaluation =+  ModelVersionEvaluation'+    { evaluationScore =+        Prelude.Nothing,+      outputVariableName = Prelude.Nothing,+      predictionExplanations = Prelude.Nothing+    }++-- | The evaluation score generated for the model version.+modelVersionEvaluation_evaluationScore :: Lens.Lens' ModelVersionEvaluation (Prelude.Maybe Prelude.Text)+modelVersionEvaluation_evaluationScore = Lens.lens (\ModelVersionEvaluation' {evaluationScore} -> evaluationScore) (\s@ModelVersionEvaluation' {} a -> s {evaluationScore = a} :: ModelVersionEvaluation)++-- | The output variable name.+modelVersionEvaluation_outputVariableName :: Lens.Lens' ModelVersionEvaluation (Prelude.Maybe Prelude.Text)+modelVersionEvaluation_outputVariableName = Lens.lens (\ModelVersionEvaluation' {outputVariableName} -> outputVariableName) (\s@ModelVersionEvaluation' {} a -> s {outputVariableName = a} :: ModelVersionEvaluation)++-- | The prediction explanations generated for the model version.+modelVersionEvaluation_predictionExplanations :: Lens.Lens' ModelVersionEvaluation (Prelude.Maybe PredictionExplanations)+modelVersionEvaluation_predictionExplanations = Lens.lens (\ModelVersionEvaluation' {predictionExplanations} -> predictionExplanations) (\s@ModelVersionEvaluation' {} a -> s {predictionExplanations = a} :: ModelVersionEvaluation)++instance Data.FromJSON ModelVersionEvaluation where+  parseJSON =+    Data.withObject+      "ModelVersionEvaluation"+      ( \x ->+          ModelVersionEvaluation'+            Prelude.<$> (x Data..:? "evaluationScore")+            Prelude.<*> (x Data..:? "outputVariableName")+            Prelude.<*> (x Data..:? "predictionExplanations")+      )++instance Prelude.Hashable ModelVersionEvaluation where+  hashWithSalt _salt ModelVersionEvaluation' {..} =+    _salt+      `Prelude.hashWithSalt` evaluationScore+      `Prelude.hashWithSalt` outputVariableName+      `Prelude.hashWithSalt` predictionExplanations++instance Prelude.NFData ModelVersionEvaluation where+  rnf ModelVersionEvaluation' {..} =+    Prelude.rnf evaluationScore+      `Prelude.seq` Prelude.rnf outputVariableName+      `Prelude.seq` Prelude.rnf predictionExplanations
+ gen/Amazonka/FraudDetector/Types/ModelVersionStatus.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.FraudDetector.Types.ModelVersionStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.ModelVersionStatus+  ( ModelVersionStatus+      ( ..,+        ModelVersionStatus_ACTIVE,+        ModelVersionStatus_INACTIVE,+        ModelVersionStatus_TRAINING_CANCELLED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ModelVersionStatus = ModelVersionStatus'+  { fromModelVersionStatus ::+      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 ModelVersionStatus_ACTIVE :: ModelVersionStatus+pattern ModelVersionStatus_ACTIVE = ModelVersionStatus' "ACTIVE"++pattern ModelVersionStatus_INACTIVE :: ModelVersionStatus+pattern ModelVersionStatus_INACTIVE = ModelVersionStatus' "INACTIVE"++pattern ModelVersionStatus_TRAINING_CANCELLED :: ModelVersionStatus+pattern ModelVersionStatus_TRAINING_CANCELLED = ModelVersionStatus' "TRAINING_CANCELLED"++{-# COMPLETE+  ModelVersionStatus_ACTIVE,+  ModelVersionStatus_INACTIVE,+  ModelVersionStatus_TRAINING_CANCELLED,+  ModelVersionStatus'+  #-}
+ gen/Amazonka/FraudDetector/Types/OFIMetricDataPoint.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.FraudDetector.Types.OFIMetricDataPoint+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.OFIMetricDataPoint where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The Online Fraud Insights (OFI) model performance metrics data points.+--+-- /See:/ 'newOFIMetricDataPoint' smart constructor.+data OFIMetricDataPoint = OFIMetricDataPoint'+  { -- | The false positive rate. This is the percentage of total legitimate+    -- events that are incorrectly predicted as fraud.+    fpr :: Prelude.Maybe Prelude.Double,+    -- | The percentage of fraud events correctly predicted as fraudulent as+    -- compared to all events predicted as fraudulent.+    precision :: Prelude.Maybe Prelude.Double,+    -- | The model threshold that specifies an acceptable fraud capture rate. For+    -- example, a threshold of 500 means any model score 500 or above is+    -- labeled as fraud.+    threshold :: Prelude.Maybe Prelude.Double,+    -- | The true positive rate. This is the percentage of total fraud the model+    -- detects. Also known as capture rate.+    tpr :: Prelude.Maybe Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OFIMetricDataPoint' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'fpr', 'oFIMetricDataPoint_fpr' - The false positive rate. This is the percentage of total legitimate+-- events that are incorrectly predicted as fraud.+--+-- 'precision', 'oFIMetricDataPoint_precision' - The percentage of fraud events correctly predicted as fraudulent as+-- compared to all events predicted as fraudulent.+--+-- 'threshold', 'oFIMetricDataPoint_threshold' - The model threshold that specifies an acceptable fraud capture rate. For+-- example, a threshold of 500 means any model score 500 or above is+-- labeled as fraud.+--+-- 'tpr', 'oFIMetricDataPoint_tpr' - The true positive rate. This is the percentage of total fraud the model+-- detects. Also known as capture rate.+newOFIMetricDataPoint ::+  OFIMetricDataPoint+newOFIMetricDataPoint =+  OFIMetricDataPoint'+    { fpr = Prelude.Nothing,+      precision = Prelude.Nothing,+      threshold = Prelude.Nothing,+      tpr = Prelude.Nothing+    }++-- | The false positive rate. This is the percentage of total legitimate+-- events that are incorrectly predicted as fraud.+oFIMetricDataPoint_fpr :: Lens.Lens' OFIMetricDataPoint (Prelude.Maybe Prelude.Double)+oFIMetricDataPoint_fpr = Lens.lens (\OFIMetricDataPoint' {fpr} -> fpr) (\s@OFIMetricDataPoint' {} a -> s {fpr = a} :: OFIMetricDataPoint)++-- | The percentage of fraud events correctly predicted as fraudulent as+-- compared to all events predicted as fraudulent.+oFIMetricDataPoint_precision :: Lens.Lens' OFIMetricDataPoint (Prelude.Maybe Prelude.Double)+oFIMetricDataPoint_precision = Lens.lens (\OFIMetricDataPoint' {precision} -> precision) (\s@OFIMetricDataPoint' {} a -> s {precision = a} :: OFIMetricDataPoint)++-- | The model threshold that specifies an acceptable fraud capture rate. For+-- example, a threshold of 500 means any model score 500 or above is+-- labeled as fraud.+oFIMetricDataPoint_threshold :: Lens.Lens' OFIMetricDataPoint (Prelude.Maybe Prelude.Double)+oFIMetricDataPoint_threshold = Lens.lens (\OFIMetricDataPoint' {threshold} -> threshold) (\s@OFIMetricDataPoint' {} a -> s {threshold = a} :: OFIMetricDataPoint)++-- | The true positive rate. This is the percentage of total fraud the model+-- detects. Also known as capture rate.+oFIMetricDataPoint_tpr :: Lens.Lens' OFIMetricDataPoint (Prelude.Maybe Prelude.Double)+oFIMetricDataPoint_tpr = Lens.lens (\OFIMetricDataPoint' {tpr} -> tpr) (\s@OFIMetricDataPoint' {} a -> s {tpr = a} :: OFIMetricDataPoint)++instance Data.FromJSON OFIMetricDataPoint where+  parseJSON =+    Data.withObject+      "OFIMetricDataPoint"+      ( \x ->+          OFIMetricDataPoint'+            Prelude.<$> (x Data..:? "fpr")+            Prelude.<*> (x Data..:? "precision")+            Prelude.<*> (x Data..:? "threshold")+            Prelude.<*> (x Data..:? "tpr")+      )++instance Prelude.Hashable OFIMetricDataPoint where+  hashWithSalt _salt OFIMetricDataPoint' {..} =+    _salt+      `Prelude.hashWithSalt` fpr+      `Prelude.hashWithSalt` precision+      `Prelude.hashWithSalt` threshold+      `Prelude.hashWithSalt` tpr++instance Prelude.NFData OFIMetricDataPoint where+  rnf OFIMetricDataPoint' {..} =+    Prelude.rnf fpr+      `Prelude.seq` Prelude.rnf precision+      `Prelude.seq` Prelude.rnf threshold+      `Prelude.seq` Prelude.rnf tpr
+ gen/Amazonka/FraudDetector/Types/OFIModelPerformance.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.FraudDetector.Types.OFIModelPerformance+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.OFIModelPerformance where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The Online Fraud Insights (OFI) model performance score.+--+-- /See:/ 'newOFIModelPerformance' smart constructor.+data OFIModelPerformance = OFIModelPerformance'+  { -- | The area under the curve (auc). This summarizes the total positive rate+    -- (tpr) and false positive rate (FPR) across all possible model score+    -- thresholds.+    auc :: Prelude.Maybe Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OFIModelPerformance' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'auc', 'oFIModelPerformance_auc' - The area under the curve (auc). This summarizes the total positive rate+-- (tpr) and false positive rate (FPR) across all possible model score+-- thresholds.+newOFIModelPerformance ::+  OFIModelPerformance+newOFIModelPerformance =+  OFIModelPerformance' {auc = Prelude.Nothing}++-- | The area under the curve (auc). This summarizes the total positive rate+-- (tpr) and false positive rate (FPR) across all possible model score+-- thresholds.+oFIModelPerformance_auc :: Lens.Lens' OFIModelPerformance (Prelude.Maybe Prelude.Double)+oFIModelPerformance_auc = Lens.lens (\OFIModelPerformance' {auc} -> auc) (\s@OFIModelPerformance' {} a -> s {auc = a} :: OFIModelPerformance)++instance Data.FromJSON OFIModelPerformance where+  parseJSON =+    Data.withObject+      "OFIModelPerformance"+      ( \x ->+          OFIModelPerformance' Prelude.<$> (x Data..:? "auc")+      )++instance Prelude.Hashable OFIModelPerformance where+  hashWithSalt _salt OFIModelPerformance' {..} =+    _salt `Prelude.hashWithSalt` auc++instance Prelude.NFData OFIModelPerformance where+  rnf OFIModelPerformance' {..} = Prelude.rnf auc
+ gen/Amazonka/FraudDetector/Types/OFITrainingMetricsValue.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.FraudDetector.Types.OFITrainingMetricsValue+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.OFITrainingMetricsValue where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types.OFIMetricDataPoint+import Amazonka.FraudDetector.Types.OFIModelPerformance+import qualified Amazonka.Prelude as Prelude++-- | The Online Fraud Insights (OFI) model training metric details.+--+-- /See:/ 'newOFITrainingMetricsValue' smart constructor.+data OFITrainingMetricsValue = OFITrainingMetricsValue'+  { -- | The model\'s performance metrics data points.+    metricDataPoints :: Prelude.Maybe [OFIMetricDataPoint],+    -- | The model\'s overall performance score.+    modelPerformance :: Prelude.Maybe OFIModelPerformance+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OFITrainingMetricsValue' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'metricDataPoints', 'oFITrainingMetricsValue_metricDataPoints' - The model\'s performance metrics data points.+--+-- 'modelPerformance', 'oFITrainingMetricsValue_modelPerformance' - The model\'s overall performance score.+newOFITrainingMetricsValue ::+  OFITrainingMetricsValue+newOFITrainingMetricsValue =+  OFITrainingMetricsValue'+    { metricDataPoints =+        Prelude.Nothing,+      modelPerformance = Prelude.Nothing+    }++-- | The model\'s performance metrics data points.+oFITrainingMetricsValue_metricDataPoints :: Lens.Lens' OFITrainingMetricsValue (Prelude.Maybe [OFIMetricDataPoint])+oFITrainingMetricsValue_metricDataPoints = Lens.lens (\OFITrainingMetricsValue' {metricDataPoints} -> metricDataPoints) (\s@OFITrainingMetricsValue' {} a -> s {metricDataPoints = a} :: OFITrainingMetricsValue) Prelude.. Lens.mapping Lens.coerced++-- | The model\'s overall performance score.+oFITrainingMetricsValue_modelPerformance :: Lens.Lens' OFITrainingMetricsValue (Prelude.Maybe OFIModelPerformance)+oFITrainingMetricsValue_modelPerformance = Lens.lens (\OFITrainingMetricsValue' {modelPerformance} -> modelPerformance) (\s@OFITrainingMetricsValue' {} a -> s {modelPerformance = a} :: OFITrainingMetricsValue)++instance Data.FromJSON OFITrainingMetricsValue where+  parseJSON =+    Data.withObject+      "OFITrainingMetricsValue"+      ( \x ->+          OFITrainingMetricsValue'+            Prelude.<$> ( x+                            Data..:? "metricDataPoints"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "modelPerformance")+      )++instance Prelude.Hashable OFITrainingMetricsValue where+  hashWithSalt _salt OFITrainingMetricsValue' {..} =+    _salt+      `Prelude.hashWithSalt` metricDataPoints+      `Prelude.hashWithSalt` modelPerformance++instance Prelude.NFData OFITrainingMetricsValue where+  rnf OFITrainingMetricsValue' {..} =+    Prelude.rnf metricDataPoints+      `Prelude.seq` Prelude.rnf modelPerformance
+ gen/Amazonka/FraudDetector/Types/Outcome.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.FraudDetector.Types.Outcome+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.Outcome where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The outcome.+--+-- /See:/ 'newOutcome' smart constructor.+data Outcome = Outcome'+  { -- | The outcome ARN.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The timestamp when the outcome was created.+    createdTime :: Prelude.Maybe Prelude.Text,+    -- | The outcome description.+    description :: Prelude.Maybe Prelude.Text,+    -- | The timestamp when the outcome was last updated.+    lastUpdatedTime :: Prelude.Maybe Prelude.Text,+    -- | The outcome name.+    name :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Outcome' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'outcome_arn' - The outcome ARN.+--+-- 'createdTime', 'outcome_createdTime' - The timestamp when the outcome was created.+--+-- 'description', 'outcome_description' - The outcome description.+--+-- 'lastUpdatedTime', 'outcome_lastUpdatedTime' - The timestamp when the outcome was last updated.+--+-- 'name', 'outcome_name' - The outcome name.+newOutcome ::+  Outcome+newOutcome =+  Outcome'+    { arn = Prelude.Nothing,+      createdTime = Prelude.Nothing,+      description = Prelude.Nothing,+      lastUpdatedTime = Prelude.Nothing,+      name = Prelude.Nothing+    }++-- | The outcome ARN.+outcome_arn :: Lens.Lens' Outcome (Prelude.Maybe Prelude.Text)+outcome_arn = Lens.lens (\Outcome' {arn} -> arn) (\s@Outcome' {} a -> s {arn = a} :: Outcome)++-- | The timestamp when the outcome was created.+outcome_createdTime :: Lens.Lens' Outcome (Prelude.Maybe Prelude.Text)+outcome_createdTime = Lens.lens (\Outcome' {createdTime} -> createdTime) (\s@Outcome' {} a -> s {createdTime = a} :: Outcome)++-- | The outcome description.+outcome_description :: Lens.Lens' Outcome (Prelude.Maybe Prelude.Text)+outcome_description = Lens.lens (\Outcome' {description} -> description) (\s@Outcome' {} a -> s {description = a} :: Outcome)++-- | The timestamp when the outcome was last updated.+outcome_lastUpdatedTime :: Lens.Lens' Outcome (Prelude.Maybe Prelude.Text)+outcome_lastUpdatedTime = Lens.lens (\Outcome' {lastUpdatedTime} -> lastUpdatedTime) (\s@Outcome' {} a -> s {lastUpdatedTime = a} :: Outcome)++-- | The outcome name.+outcome_name :: Lens.Lens' Outcome (Prelude.Maybe Prelude.Text)+outcome_name = Lens.lens (\Outcome' {name} -> name) (\s@Outcome' {} a -> s {name = a} :: Outcome)++instance Data.FromJSON Outcome where+  parseJSON =+    Data.withObject+      "Outcome"+      ( \x ->+          Outcome'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "createdTime")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "lastUpdatedTime")+            Prelude.<*> (x Data..:? "name")+      )++instance Prelude.Hashable Outcome where+  hashWithSalt _salt Outcome' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` createdTime+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` lastUpdatedTime+      `Prelude.hashWithSalt` name++instance Prelude.NFData Outcome where+  rnf Outcome' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdTime+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf lastUpdatedTime+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/FraudDetector/Types/PredictionExplanations.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.FraudDetector.Types.PredictionExplanations+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.PredictionExplanations where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types.AggregatedVariablesImpactExplanation+import Amazonka.FraudDetector.Types.VariableImpactExplanation+import qualified Amazonka.Prelude as Prelude++-- | The prediction explanations that provide insight into how each event+-- variable impacted the model version\'s fraud prediction score.+--+-- /See:/ 'newPredictionExplanations' smart constructor.+data PredictionExplanations = PredictionExplanations'+  { -- | The details of the aggregated variables impact on the prediction score.+    --+    -- Account Takeover Insights (ATI) model uses event variables from the+    -- login data you provide to continuously calculate a set of variables+    -- (aggregated variables) based on historical events. For example, your ATI+    -- model might calculate the number of times an user has logged in using+    -- the same IP address. In this case, event variables used to derive the+    -- aggregated variables are @IP address@ and @user@.+    aggregatedVariablesImpactExplanations :: Prelude.Maybe [AggregatedVariablesImpactExplanation],+    -- | The details of the event variable\'s impact on the prediction score.+    variableImpactExplanations :: Prelude.Maybe [VariableImpactExplanation]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PredictionExplanations' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'aggregatedVariablesImpactExplanations', 'predictionExplanations_aggregatedVariablesImpactExplanations' - The details of the aggregated variables impact on the prediction score.+--+-- Account Takeover Insights (ATI) model uses event variables from the+-- login data you provide to continuously calculate a set of variables+-- (aggregated variables) based on historical events. For example, your ATI+-- model might calculate the number of times an user has logged in using+-- the same IP address. In this case, event variables used to derive the+-- aggregated variables are @IP address@ and @user@.+--+-- 'variableImpactExplanations', 'predictionExplanations_variableImpactExplanations' - The details of the event variable\'s impact on the prediction score.+newPredictionExplanations ::+  PredictionExplanations+newPredictionExplanations =+  PredictionExplanations'+    { aggregatedVariablesImpactExplanations =+        Prelude.Nothing,+      variableImpactExplanations = Prelude.Nothing+    }++-- | The details of the aggregated variables impact on the prediction score.+--+-- Account Takeover Insights (ATI) model uses event variables from the+-- login data you provide to continuously calculate a set of variables+-- (aggregated variables) based on historical events. For example, your ATI+-- model might calculate the number of times an user has logged in using+-- the same IP address. In this case, event variables used to derive the+-- aggregated variables are @IP address@ and @user@.+predictionExplanations_aggregatedVariablesImpactExplanations :: Lens.Lens' PredictionExplanations (Prelude.Maybe [AggregatedVariablesImpactExplanation])+predictionExplanations_aggregatedVariablesImpactExplanations = Lens.lens (\PredictionExplanations' {aggregatedVariablesImpactExplanations} -> aggregatedVariablesImpactExplanations) (\s@PredictionExplanations' {} a -> s {aggregatedVariablesImpactExplanations = a} :: PredictionExplanations) Prelude.. Lens.mapping Lens.coerced++-- | The details of the event variable\'s impact on the prediction score.+predictionExplanations_variableImpactExplanations :: Lens.Lens' PredictionExplanations (Prelude.Maybe [VariableImpactExplanation])+predictionExplanations_variableImpactExplanations = Lens.lens (\PredictionExplanations' {variableImpactExplanations} -> variableImpactExplanations) (\s@PredictionExplanations' {} a -> s {variableImpactExplanations = a} :: PredictionExplanations) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON PredictionExplanations where+  parseJSON =+    Data.withObject+      "PredictionExplanations"+      ( \x ->+          PredictionExplanations'+            Prelude.<$> ( x+                            Data..:? "aggregatedVariablesImpactExplanations"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "variableImpactExplanations"+                            Data..!= Prelude.mempty+                        )+      )++instance Prelude.Hashable PredictionExplanations where+  hashWithSalt _salt PredictionExplanations' {..} =+    _salt+      `Prelude.hashWithSalt` aggregatedVariablesImpactExplanations+      `Prelude.hashWithSalt` variableImpactExplanations++instance Prelude.NFData PredictionExplanations where+  rnf PredictionExplanations' {..} =+    Prelude.rnf aggregatedVariablesImpactExplanations+      `Prelude.seq` Prelude.rnf variableImpactExplanations
+ gen/Amazonka/FraudDetector/Types/PredictionTimeRange.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.FraudDetector.Types.PredictionTimeRange+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.PredictionTimeRange where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The time period for when the predictions were generated.+--+-- /See:/ 'newPredictionTimeRange' smart constructor.+data PredictionTimeRange = PredictionTimeRange'+  { -- | The start time of the time period for when the predictions were+    -- generated.+    startTime :: Prelude.Text,+    -- | The end time of the time period for when the predictions were generated.+    endTime :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PredictionTimeRange' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'startTime', 'predictionTimeRange_startTime' - The start time of the time period for when the predictions were+-- generated.+--+-- 'endTime', 'predictionTimeRange_endTime' - The end time of the time period for when the predictions were generated.+newPredictionTimeRange ::+  -- | 'startTime'+  Prelude.Text ->+  -- | 'endTime'+  Prelude.Text ->+  PredictionTimeRange+newPredictionTimeRange pStartTime_ pEndTime_ =+  PredictionTimeRange'+    { startTime = pStartTime_,+      endTime = pEndTime_+    }++-- | The start time of the time period for when the predictions were+-- generated.+predictionTimeRange_startTime :: Lens.Lens' PredictionTimeRange Prelude.Text+predictionTimeRange_startTime = Lens.lens (\PredictionTimeRange' {startTime} -> startTime) (\s@PredictionTimeRange' {} a -> s {startTime = a} :: PredictionTimeRange)++-- | The end time of the time period for when the predictions were generated.+predictionTimeRange_endTime :: Lens.Lens' PredictionTimeRange Prelude.Text+predictionTimeRange_endTime = Lens.lens (\PredictionTimeRange' {endTime} -> endTime) (\s@PredictionTimeRange' {} a -> s {endTime = a} :: PredictionTimeRange)++instance Prelude.Hashable PredictionTimeRange where+  hashWithSalt _salt PredictionTimeRange' {..} =+    _salt+      `Prelude.hashWithSalt` startTime+      `Prelude.hashWithSalt` endTime++instance Prelude.NFData PredictionTimeRange where+  rnf PredictionTimeRange' {..} =+    Prelude.rnf startTime+      `Prelude.seq` Prelude.rnf endTime++instance Data.ToJSON PredictionTimeRange where+  toJSON PredictionTimeRange' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("startTime" Data..= startTime),+            Prelude.Just ("endTime" Data..= endTime)+          ]+      )
+ gen/Amazonka/FraudDetector/Types/Rule.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.FraudDetector.Types.Rule+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.Rule where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A rule.+--+-- /See:/ 'newRule' smart constructor.+data Rule = Rule'+  { -- | The detector for which the rule is associated.+    detectorId :: Prelude.Text,+    -- | The rule ID.+    ruleId :: Prelude.Text,+    -- | The rule version.+    ruleVersion :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Rule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'detectorId', 'rule_detectorId' - The detector for which the rule is associated.+--+-- 'ruleId', 'rule_ruleId' - The rule ID.+--+-- 'ruleVersion', 'rule_ruleVersion' - The rule version.+newRule ::+  -- | 'detectorId'+  Prelude.Text ->+  -- | 'ruleId'+  Prelude.Text ->+  -- | 'ruleVersion'+  Prelude.Text ->+  Rule+newRule pDetectorId_ pRuleId_ pRuleVersion_ =+  Rule'+    { detectorId = pDetectorId_,+      ruleId = pRuleId_,+      ruleVersion = pRuleVersion_+    }++-- | The detector for which the rule is associated.+rule_detectorId :: Lens.Lens' Rule Prelude.Text+rule_detectorId = Lens.lens (\Rule' {detectorId} -> detectorId) (\s@Rule' {} a -> s {detectorId = a} :: Rule)++-- | The rule ID.+rule_ruleId :: Lens.Lens' Rule Prelude.Text+rule_ruleId = Lens.lens (\Rule' {ruleId} -> ruleId) (\s@Rule' {} a -> s {ruleId = a} :: Rule)++-- | The rule version.+rule_ruleVersion :: Lens.Lens' Rule Prelude.Text+rule_ruleVersion = Lens.lens (\Rule' {ruleVersion} -> ruleVersion) (\s@Rule' {} a -> s {ruleVersion = a} :: Rule)++instance Data.FromJSON Rule where+  parseJSON =+    Data.withObject+      "Rule"+      ( \x ->+          Rule'+            Prelude.<$> (x Data..: "detectorId")+            Prelude.<*> (x Data..: "ruleId")+            Prelude.<*> (x Data..: "ruleVersion")+      )++instance Prelude.Hashable Rule where+  hashWithSalt _salt Rule' {..} =+    _salt+      `Prelude.hashWithSalt` detectorId+      `Prelude.hashWithSalt` ruleId+      `Prelude.hashWithSalt` ruleVersion++instance Prelude.NFData Rule where+  rnf Rule' {..} =+    Prelude.rnf detectorId+      `Prelude.seq` Prelude.rnf ruleId+      `Prelude.seq` Prelude.rnf ruleVersion++instance Data.ToJSON Rule where+  toJSON Rule' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("detectorId" Data..= detectorId),+            Prelude.Just ("ruleId" Data..= ruleId),+            Prelude.Just ("ruleVersion" Data..= ruleVersion)+          ]+      )
+ gen/Amazonka/FraudDetector/Types/RuleDetail.hs view
@@ -0,0 +1,181 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.Types.RuleDetail+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.RuleDetail where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types.Language+import qualified Amazonka.Prelude as Prelude++-- | The details of the rule.+--+-- /See:/ 'newRuleDetail' smart constructor.+data RuleDetail = RuleDetail'+  { -- | The rule ARN.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The timestamp of when the rule was created.+    createdTime :: Prelude.Maybe Prelude.Text,+    -- | The rule description.+    description :: Prelude.Maybe Prelude.Text,+    -- | The detector for which the rule is associated.+    detectorId :: Prelude.Maybe Prelude.Text,+    -- | The rule expression.+    expression :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The rule language.+    language :: Prelude.Maybe Language,+    -- | Timestamp of the last time the rule was updated.+    lastUpdatedTime :: Prelude.Maybe Prelude.Text,+    -- | The rule outcomes.+    outcomes :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The rule ID.+    ruleId :: Prelude.Maybe Prelude.Text,+    -- | The rule version.+    ruleVersion :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RuleDetail' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'ruleDetail_arn' - The rule ARN.+--+-- 'createdTime', 'ruleDetail_createdTime' - The timestamp of when the rule was created.+--+-- 'description', 'ruleDetail_description' - The rule description.+--+-- 'detectorId', 'ruleDetail_detectorId' - The detector for which the rule is associated.+--+-- 'expression', 'ruleDetail_expression' - The rule expression.+--+-- 'language', 'ruleDetail_language' - The rule language.+--+-- 'lastUpdatedTime', 'ruleDetail_lastUpdatedTime' - Timestamp of the last time the rule was updated.+--+-- 'outcomes', 'ruleDetail_outcomes' - The rule outcomes.+--+-- 'ruleId', 'ruleDetail_ruleId' - The rule ID.+--+-- 'ruleVersion', 'ruleDetail_ruleVersion' - The rule version.+newRuleDetail ::+  RuleDetail+newRuleDetail =+  RuleDetail'+    { arn = Prelude.Nothing,+      createdTime = Prelude.Nothing,+      description = Prelude.Nothing,+      detectorId = Prelude.Nothing,+      expression = Prelude.Nothing,+      language = Prelude.Nothing,+      lastUpdatedTime = Prelude.Nothing,+      outcomes = Prelude.Nothing,+      ruleId = Prelude.Nothing,+      ruleVersion = Prelude.Nothing+    }++-- | The rule ARN.+ruleDetail_arn :: Lens.Lens' RuleDetail (Prelude.Maybe Prelude.Text)+ruleDetail_arn = Lens.lens (\RuleDetail' {arn} -> arn) (\s@RuleDetail' {} a -> s {arn = a} :: RuleDetail)++-- | The timestamp of when the rule was created.+ruleDetail_createdTime :: Lens.Lens' RuleDetail (Prelude.Maybe Prelude.Text)+ruleDetail_createdTime = Lens.lens (\RuleDetail' {createdTime} -> createdTime) (\s@RuleDetail' {} a -> s {createdTime = a} :: RuleDetail)++-- | The rule description.+ruleDetail_description :: Lens.Lens' RuleDetail (Prelude.Maybe Prelude.Text)+ruleDetail_description = Lens.lens (\RuleDetail' {description} -> description) (\s@RuleDetail' {} a -> s {description = a} :: RuleDetail)++-- | The detector for which the rule is associated.+ruleDetail_detectorId :: Lens.Lens' RuleDetail (Prelude.Maybe Prelude.Text)+ruleDetail_detectorId = Lens.lens (\RuleDetail' {detectorId} -> detectorId) (\s@RuleDetail' {} a -> s {detectorId = a} :: RuleDetail)++-- | The rule expression.+ruleDetail_expression :: Lens.Lens' RuleDetail (Prelude.Maybe Prelude.Text)+ruleDetail_expression = Lens.lens (\RuleDetail' {expression} -> expression) (\s@RuleDetail' {} a -> s {expression = a} :: RuleDetail) Prelude.. Lens.mapping Data._Sensitive++-- | The rule language.+ruleDetail_language :: Lens.Lens' RuleDetail (Prelude.Maybe Language)+ruleDetail_language = Lens.lens (\RuleDetail' {language} -> language) (\s@RuleDetail' {} a -> s {language = a} :: RuleDetail)++-- | Timestamp of the last time the rule was updated.+ruleDetail_lastUpdatedTime :: Lens.Lens' RuleDetail (Prelude.Maybe Prelude.Text)+ruleDetail_lastUpdatedTime = Lens.lens (\RuleDetail' {lastUpdatedTime} -> lastUpdatedTime) (\s@RuleDetail' {} a -> s {lastUpdatedTime = a} :: RuleDetail)++-- | The rule outcomes.+ruleDetail_outcomes :: Lens.Lens' RuleDetail (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+ruleDetail_outcomes = Lens.lens (\RuleDetail' {outcomes} -> outcomes) (\s@RuleDetail' {} a -> s {outcomes = a} :: RuleDetail) Prelude.. Lens.mapping Lens.coerced++-- | The rule ID.+ruleDetail_ruleId :: Lens.Lens' RuleDetail (Prelude.Maybe Prelude.Text)+ruleDetail_ruleId = Lens.lens (\RuleDetail' {ruleId} -> ruleId) (\s@RuleDetail' {} a -> s {ruleId = a} :: RuleDetail)++-- | The rule version.+ruleDetail_ruleVersion :: Lens.Lens' RuleDetail (Prelude.Maybe Prelude.Text)+ruleDetail_ruleVersion = Lens.lens (\RuleDetail' {ruleVersion} -> ruleVersion) (\s@RuleDetail' {} a -> s {ruleVersion = a} :: RuleDetail)++instance Data.FromJSON RuleDetail where+  parseJSON =+    Data.withObject+      "RuleDetail"+      ( \x ->+          RuleDetail'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "createdTime")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "detectorId")+            Prelude.<*> (x Data..:? "expression")+            Prelude.<*> (x Data..:? "language")+            Prelude.<*> (x Data..:? "lastUpdatedTime")+            Prelude.<*> (x Data..:? "outcomes")+            Prelude.<*> (x Data..:? "ruleId")+            Prelude.<*> (x Data..:? "ruleVersion")+      )++instance Prelude.Hashable RuleDetail where+  hashWithSalt _salt RuleDetail' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` createdTime+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` detectorId+      `Prelude.hashWithSalt` expression+      `Prelude.hashWithSalt` language+      `Prelude.hashWithSalt` lastUpdatedTime+      `Prelude.hashWithSalt` outcomes+      `Prelude.hashWithSalt` ruleId+      `Prelude.hashWithSalt` ruleVersion++instance Prelude.NFData RuleDetail where+  rnf RuleDetail' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdTime+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf detectorId+      `Prelude.seq` Prelude.rnf expression+      `Prelude.seq` Prelude.rnf language+      `Prelude.seq` Prelude.rnf lastUpdatedTime+      `Prelude.seq` Prelude.rnf outcomes+      `Prelude.seq` Prelude.rnf ruleId+      `Prelude.seq` Prelude.rnf ruleVersion
+ gen/Amazonka/FraudDetector/Types/RuleExecutionMode.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.Types.RuleExecutionMode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.RuleExecutionMode+  ( RuleExecutionMode+      ( ..,+        RuleExecutionMode_ALL_MATCHED,+        RuleExecutionMode_FIRST_MATCHED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype RuleExecutionMode = RuleExecutionMode'+  { fromRuleExecutionMode ::+      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 RuleExecutionMode_ALL_MATCHED :: RuleExecutionMode+pattern RuleExecutionMode_ALL_MATCHED = RuleExecutionMode' "ALL_MATCHED"++pattern RuleExecutionMode_FIRST_MATCHED :: RuleExecutionMode+pattern RuleExecutionMode_FIRST_MATCHED = RuleExecutionMode' "FIRST_MATCHED"++{-# COMPLETE+  RuleExecutionMode_ALL_MATCHED,+  RuleExecutionMode_FIRST_MATCHED,+  RuleExecutionMode'+  #-}
+ gen/Amazonka/FraudDetector/Types/RuleResult.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.FraudDetector.Types.RuleResult+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.RuleResult where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The rule results.+--+-- /See:/ 'newRuleResult' smart constructor.+data RuleResult = RuleResult'+  { -- | The outcomes of the matched rule, based on the rule execution mode.+    outcomes :: Prelude.Maybe [Prelude.Text],+    -- | The rule ID that was matched, based on the rule execution mode.+    ruleId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RuleResult' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'outcomes', 'ruleResult_outcomes' - The outcomes of the matched rule, based on the rule execution mode.+--+-- 'ruleId', 'ruleResult_ruleId' - The rule ID that was matched, based on the rule execution mode.+newRuleResult ::+  RuleResult+newRuleResult =+  RuleResult'+    { outcomes = Prelude.Nothing,+      ruleId = Prelude.Nothing+    }++-- | The outcomes of the matched rule, based on the rule execution mode.+ruleResult_outcomes :: Lens.Lens' RuleResult (Prelude.Maybe [Prelude.Text])+ruleResult_outcomes = Lens.lens (\RuleResult' {outcomes} -> outcomes) (\s@RuleResult' {} a -> s {outcomes = a} :: RuleResult) Prelude.. Lens.mapping Lens.coerced++-- | The rule ID that was matched, based on the rule execution mode.+ruleResult_ruleId :: Lens.Lens' RuleResult (Prelude.Maybe Prelude.Text)+ruleResult_ruleId = Lens.lens (\RuleResult' {ruleId} -> ruleId) (\s@RuleResult' {} a -> s {ruleId = a} :: RuleResult)++instance Data.FromJSON RuleResult where+  parseJSON =+    Data.withObject+      "RuleResult"+      ( \x ->+          RuleResult'+            Prelude.<$> (x Data..:? "outcomes" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "ruleId")+      )++instance Prelude.Hashable RuleResult where+  hashWithSalt _salt RuleResult' {..} =+    _salt+      `Prelude.hashWithSalt` outcomes+      `Prelude.hashWithSalt` ruleId++instance Prelude.NFData RuleResult where+  rnf RuleResult' {..} =+    Prelude.rnf outcomes+      `Prelude.seq` Prelude.rnf ruleId
+ gen/Amazonka/FraudDetector/Types/TFIMetricDataPoint.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.FraudDetector.Types.TFIMetricDataPoint+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.TFIMetricDataPoint where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The performance metrics data points for Transaction Fraud Insights (TFI)+-- model.+--+-- /See:/ 'newTFIMetricDataPoint' smart constructor.+data TFIMetricDataPoint = TFIMetricDataPoint'+  { -- | The false positive rate. This is the percentage of total legitimate+    -- events that are incorrectly predicted as fraud.+    fpr :: Prelude.Maybe Prelude.Double,+    -- | The percentage of fraud events correctly predicted as fraudulent as+    -- compared to all events predicted as fraudulent.+    precision :: Prelude.Maybe Prelude.Double,+    -- | The model threshold that specifies an acceptable fraud capture rate. For+    -- example, a threshold of 500 means any model score 500 or above is+    -- labeled as fraud.+    threshold :: Prelude.Maybe Prelude.Double,+    -- | The true positive rate. This is the percentage of total fraud the model+    -- detects. Also known as capture rate.+    tpr :: Prelude.Maybe Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TFIMetricDataPoint' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'fpr', 'tFIMetricDataPoint_fpr' - The false positive rate. This is the percentage of total legitimate+-- events that are incorrectly predicted as fraud.+--+-- 'precision', 'tFIMetricDataPoint_precision' - The percentage of fraud events correctly predicted as fraudulent as+-- compared to all events predicted as fraudulent.+--+-- 'threshold', 'tFIMetricDataPoint_threshold' - The model threshold that specifies an acceptable fraud capture rate. For+-- example, a threshold of 500 means any model score 500 or above is+-- labeled as fraud.+--+-- 'tpr', 'tFIMetricDataPoint_tpr' - The true positive rate. This is the percentage of total fraud the model+-- detects. Also known as capture rate.+newTFIMetricDataPoint ::+  TFIMetricDataPoint+newTFIMetricDataPoint =+  TFIMetricDataPoint'+    { fpr = Prelude.Nothing,+      precision = Prelude.Nothing,+      threshold = Prelude.Nothing,+      tpr = Prelude.Nothing+    }++-- | The false positive rate. This is the percentage of total legitimate+-- events that are incorrectly predicted as fraud.+tFIMetricDataPoint_fpr :: Lens.Lens' TFIMetricDataPoint (Prelude.Maybe Prelude.Double)+tFIMetricDataPoint_fpr = Lens.lens (\TFIMetricDataPoint' {fpr} -> fpr) (\s@TFIMetricDataPoint' {} a -> s {fpr = a} :: TFIMetricDataPoint)++-- | The percentage of fraud events correctly predicted as fraudulent as+-- compared to all events predicted as fraudulent.+tFIMetricDataPoint_precision :: Lens.Lens' TFIMetricDataPoint (Prelude.Maybe Prelude.Double)+tFIMetricDataPoint_precision = Lens.lens (\TFIMetricDataPoint' {precision} -> precision) (\s@TFIMetricDataPoint' {} a -> s {precision = a} :: TFIMetricDataPoint)++-- | The model threshold that specifies an acceptable fraud capture rate. For+-- example, a threshold of 500 means any model score 500 or above is+-- labeled as fraud.+tFIMetricDataPoint_threshold :: Lens.Lens' TFIMetricDataPoint (Prelude.Maybe Prelude.Double)+tFIMetricDataPoint_threshold = Lens.lens (\TFIMetricDataPoint' {threshold} -> threshold) (\s@TFIMetricDataPoint' {} a -> s {threshold = a} :: TFIMetricDataPoint)++-- | The true positive rate. This is the percentage of total fraud the model+-- detects. Also known as capture rate.+tFIMetricDataPoint_tpr :: Lens.Lens' TFIMetricDataPoint (Prelude.Maybe Prelude.Double)+tFIMetricDataPoint_tpr = Lens.lens (\TFIMetricDataPoint' {tpr} -> tpr) (\s@TFIMetricDataPoint' {} a -> s {tpr = a} :: TFIMetricDataPoint)++instance Data.FromJSON TFIMetricDataPoint where+  parseJSON =+    Data.withObject+      "TFIMetricDataPoint"+      ( \x ->+          TFIMetricDataPoint'+            Prelude.<$> (x Data..:? "fpr")+            Prelude.<*> (x Data..:? "precision")+            Prelude.<*> (x Data..:? "threshold")+            Prelude.<*> (x Data..:? "tpr")+      )++instance Prelude.Hashable TFIMetricDataPoint where+  hashWithSalt _salt TFIMetricDataPoint' {..} =+    _salt+      `Prelude.hashWithSalt` fpr+      `Prelude.hashWithSalt` precision+      `Prelude.hashWithSalt` threshold+      `Prelude.hashWithSalt` tpr++instance Prelude.NFData TFIMetricDataPoint where+  rnf TFIMetricDataPoint' {..} =+    Prelude.rnf fpr+      `Prelude.seq` Prelude.rnf precision+      `Prelude.seq` Prelude.rnf threshold+      `Prelude.seq` Prelude.rnf tpr
+ gen/Amazonka/FraudDetector/Types/TFIModelPerformance.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.FraudDetector.Types.TFIModelPerformance+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.TFIModelPerformance where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The Transaction Fraud Insights (TFI) model performance score.+--+-- /See:/ 'newTFIModelPerformance' smart constructor.+data TFIModelPerformance = TFIModelPerformance'+  { -- | The area under the curve (auc). This summarizes the total positive rate+    -- (tpr) and false positive rate (FPR) across all possible model score+    -- thresholds.+    auc :: Prelude.Maybe Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TFIModelPerformance' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'auc', 'tFIModelPerformance_auc' - The area under the curve (auc). This summarizes the total positive rate+-- (tpr) and false positive rate (FPR) across all possible model score+-- thresholds.+newTFIModelPerformance ::+  TFIModelPerformance+newTFIModelPerformance =+  TFIModelPerformance' {auc = Prelude.Nothing}++-- | The area under the curve (auc). This summarizes the total positive rate+-- (tpr) and false positive rate (FPR) across all possible model score+-- thresholds.+tFIModelPerformance_auc :: Lens.Lens' TFIModelPerformance (Prelude.Maybe Prelude.Double)+tFIModelPerformance_auc = Lens.lens (\TFIModelPerformance' {auc} -> auc) (\s@TFIModelPerformance' {} a -> s {auc = a} :: TFIModelPerformance)++instance Data.FromJSON TFIModelPerformance where+  parseJSON =+    Data.withObject+      "TFIModelPerformance"+      ( \x ->+          TFIModelPerformance' Prelude.<$> (x Data..:? "auc")+      )++instance Prelude.Hashable TFIModelPerformance where+  hashWithSalt _salt TFIModelPerformance' {..} =+    _salt `Prelude.hashWithSalt` auc++instance Prelude.NFData TFIModelPerformance where+  rnf TFIModelPerformance' {..} = Prelude.rnf auc
+ gen/Amazonka/FraudDetector/Types/TFITrainingMetricsValue.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.FraudDetector.Types.TFITrainingMetricsValue+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.TFITrainingMetricsValue where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types.TFIMetricDataPoint+import Amazonka.FraudDetector.Types.TFIModelPerformance+import qualified Amazonka.Prelude as Prelude++-- | The Transaction Fraud Insights (TFI) model training metric details.+--+-- /See:/ 'newTFITrainingMetricsValue' smart constructor.+data TFITrainingMetricsValue = TFITrainingMetricsValue'+  { -- | The model\'s performance metrics data points.+    metricDataPoints :: Prelude.Maybe [TFIMetricDataPoint],+    -- | The model performance score.+    modelPerformance :: Prelude.Maybe TFIModelPerformance+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TFITrainingMetricsValue' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'metricDataPoints', 'tFITrainingMetricsValue_metricDataPoints' - The model\'s performance metrics data points.+--+-- 'modelPerformance', 'tFITrainingMetricsValue_modelPerformance' - The model performance score.+newTFITrainingMetricsValue ::+  TFITrainingMetricsValue+newTFITrainingMetricsValue =+  TFITrainingMetricsValue'+    { metricDataPoints =+        Prelude.Nothing,+      modelPerformance = Prelude.Nothing+    }++-- | The model\'s performance metrics data points.+tFITrainingMetricsValue_metricDataPoints :: Lens.Lens' TFITrainingMetricsValue (Prelude.Maybe [TFIMetricDataPoint])+tFITrainingMetricsValue_metricDataPoints = Lens.lens (\TFITrainingMetricsValue' {metricDataPoints} -> metricDataPoints) (\s@TFITrainingMetricsValue' {} a -> s {metricDataPoints = a} :: TFITrainingMetricsValue) Prelude.. Lens.mapping Lens.coerced++-- | The model performance score.+tFITrainingMetricsValue_modelPerformance :: Lens.Lens' TFITrainingMetricsValue (Prelude.Maybe TFIModelPerformance)+tFITrainingMetricsValue_modelPerformance = Lens.lens (\TFITrainingMetricsValue' {modelPerformance} -> modelPerformance) (\s@TFITrainingMetricsValue' {} a -> s {modelPerformance = a} :: TFITrainingMetricsValue)++instance Data.FromJSON TFITrainingMetricsValue where+  parseJSON =+    Data.withObject+      "TFITrainingMetricsValue"+      ( \x ->+          TFITrainingMetricsValue'+            Prelude.<$> ( x+                            Data..:? "metricDataPoints"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "modelPerformance")+      )++instance Prelude.Hashable TFITrainingMetricsValue where+  hashWithSalt _salt TFITrainingMetricsValue' {..} =+    _salt+      `Prelude.hashWithSalt` metricDataPoints+      `Prelude.hashWithSalt` modelPerformance++instance Prelude.NFData TFITrainingMetricsValue where+  rnf TFITrainingMetricsValue' {..} =+    Prelude.rnf metricDataPoints+      `Prelude.seq` Prelude.rnf modelPerformance
+ gen/Amazonka/FraudDetector/Types/Tag.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.FraudDetector.Types.Tag+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.Tag where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A key and value pair.+--+-- /See:/ 'newTag' smart constructor.+data Tag = Tag'+  { -- | A tag key.+    key :: Prelude.Text,+    -- | A value assigned to a tag key.+    value :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Tag' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'key', 'tag_key' - A tag key.+--+-- 'value', 'tag_value' - A value assigned to a tag key.+newTag ::+  -- | 'key'+  Prelude.Text ->+  -- | 'value'+  Prelude.Text ->+  Tag+newTag pKey_ pValue_ =+  Tag' {key = pKey_, value = pValue_}++-- | A tag key.+tag_key :: Lens.Lens' Tag Prelude.Text+tag_key = Lens.lens (\Tag' {key} -> key) (\s@Tag' {} a -> s {key = a} :: Tag)++-- | A value assigned to a tag key.+tag_value :: Lens.Lens' Tag Prelude.Text+tag_value = Lens.lens (\Tag' {value} -> value) (\s@Tag' {} a -> s {value = a} :: Tag)++instance Data.FromJSON Tag where+  parseJSON =+    Data.withObject+      "Tag"+      ( \x ->+          Tag'+            Prelude.<$> (x Data..: "key")+            Prelude.<*> (x Data..: "value")+      )++instance Prelude.Hashable Tag where+  hashWithSalt _salt Tag' {..} =+    _salt+      `Prelude.hashWithSalt` key+      `Prelude.hashWithSalt` value++instance Prelude.NFData Tag where+  rnf Tag' {..} =+    Prelude.rnf key `Prelude.seq` Prelude.rnf value++instance Data.ToJSON Tag where+  toJSON Tag' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("key" Data..= key),+            Prelude.Just ("value" Data..= value)+          ]+      )
+ gen/Amazonka/FraudDetector/Types/TrainingDataSchema.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.FraudDetector.Types.TrainingDataSchema+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.TrainingDataSchema where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types.LabelSchema+import qualified Amazonka.Prelude as Prelude++-- | The training data schema.+--+-- /See:/ 'newTrainingDataSchema' smart constructor.+data TrainingDataSchema = TrainingDataSchema'+  { labelSchema :: Prelude.Maybe LabelSchema,+    -- | The training data schema variables.+    modelVariables :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TrainingDataSchema' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'labelSchema', 'trainingDataSchema_labelSchema' - Undocumented member.+--+-- 'modelVariables', 'trainingDataSchema_modelVariables' - The training data schema variables.+newTrainingDataSchema ::+  TrainingDataSchema+newTrainingDataSchema =+  TrainingDataSchema'+    { labelSchema = Prelude.Nothing,+      modelVariables = Prelude.mempty+    }++-- | Undocumented member.+trainingDataSchema_labelSchema :: Lens.Lens' TrainingDataSchema (Prelude.Maybe LabelSchema)+trainingDataSchema_labelSchema = Lens.lens (\TrainingDataSchema' {labelSchema} -> labelSchema) (\s@TrainingDataSchema' {} a -> s {labelSchema = a} :: TrainingDataSchema)++-- | The training data schema variables.+trainingDataSchema_modelVariables :: Lens.Lens' TrainingDataSchema [Prelude.Text]+trainingDataSchema_modelVariables = Lens.lens (\TrainingDataSchema' {modelVariables} -> modelVariables) (\s@TrainingDataSchema' {} a -> s {modelVariables = a} :: TrainingDataSchema) Prelude.. Lens.coerced++instance Data.FromJSON TrainingDataSchema where+  parseJSON =+    Data.withObject+      "TrainingDataSchema"+      ( \x ->+          TrainingDataSchema'+            Prelude.<$> (x Data..:? "labelSchema")+            Prelude.<*> ( x+                            Data..:? "modelVariables"+                            Data..!= Prelude.mempty+                        )+      )++instance Prelude.Hashable TrainingDataSchema where+  hashWithSalt _salt TrainingDataSchema' {..} =+    _salt+      `Prelude.hashWithSalt` labelSchema+      `Prelude.hashWithSalt` modelVariables++instance Prelude.NFData TrainingDataSchema where+  rnf TrainingDataSchema' {..} =+    Prelude.rnf labelSchema+      `Prelude.seq` Prelude.rnf modelVariables++instance Data.ToJSON TrainingDataSchema where+  toJSON TrainingDataSchema' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("labelSchema" Data..=) Prelude.<$> labelSchema,+            Prelude.Just+              ("modelVariables" Data..= modelVariables)+          ]+      )
+ gen/Amazonka/FraudDetector/Types/TrainingDataSourceEnum.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.Types.TrainingDataSourceEnum+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.TrainingDataSourceEnum+  ( TrainingDataSourceEnum+      ( ..,+        TrainingDataSourceEnum_EXTERNAL_EVENTS,+        TrainingDataSourceEnum_INGESTED_EVENTS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype TrainingDataSourceEnum = TrainingDataSourceEnum'+  { fromTrainingDataSourceEnum ::+      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 TrainingDataSourceEnum_EXTERNAL_EVENTS :: TrainingDataSourceEnum+pattern TrainingDataSourceEnum_EXTERNAL_EVENTS = TrainingDataSourceEnum' "EXTERNAL_EVENTS"++pattern TrainingDataSourceEnum_INGESTED_EVENTS :: TrainingDataSourceEnum+pattern TrainingDataSourceEnum_INGESTED_EVENTS = TrainingDataSourceEnum' "INGESTED_EVENTS"++{-# COMPLETE+  TrainingDataSourceEnum_EXTERNAL_EVENTS,+  TrainingDataSourceEnum_INGESTED_EVENTS,+  TrainingDataSourceEnum'+  #-}
+ gen/Amazonka/FraudDetector/Types/TrainingMetrics.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.FraudDetector.Types.TrainingMetrics+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.TrainingMetrics where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types.MetricDataPoint+import qualified Amazonka.Prelude as Prelude++-- | The training metric details.+--+-- /See:/ 'newTrainingMetrics' smart constructor.+data TrainingMetrics = TrainingMetrics'+  { -- | The area under the curve. This summarizes true positive rate (TPR) and+    -- false positive rate (FPR) across all possible model score thresholds. A+    -- model with no predictive power has an AUC of 0.5, whereas a perfect+    -- model has a score of 1.0.+    auc :: Prelude.Maybe Prelude.Double,+    -- | The data points details.+    metricDataPoints :: Prelude.Maybe [MetricDataPoint]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TrainingMetrics' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'auc', 'trainingMetrics_auc' - The area under the curve. This summarizes true positive rate (TPR) and+-- false positive rate (FPR) across all possible model score thresholds. A+-- model with no predictive power has an AUC of 0.5, whereas a perfect+-- model has a score of 1.0.+--+-- 'metricDataPoints', 'trainingMetrics_metricDataPoints' - The data points details.+newTrainingMetrics ::+  TrainingMetrics+newTrainingMetrics =+  TrainingMetrics'+    { auc = Prelude.Nothing,+      metricDataPoints = Prelude.Nothing+    }++-- | The area under the curve. This summarizes true positive rate (TPR) and+-- false positive rate (FPR) across all possible model score thresholds. A+-- model with no predictive power has an AUC of 0.5, whereas a perfect+-- model has a score of 1.0.+trainingMetrics_auc :: Lens.Lens' TrainingMetrics (Prelude.Maybe Prelude.Double)+trainingMetrics_auc = Lens.lens (\TrainingMetrics' {auc} -> auc) (\s@TrainingMetrics' {} a -> s {auc = a} :: TrainingMetrics)++-- | The data points details.+trainingMetrics_metricDataPoints :: Lens.Lens' TrainingMetrics (Prelude.Maybe [MetricDataPoint])+trainingMetrics_metricDataPoints = Lens.lens (\TrainingMetrics' {metricDataPoints} -> metricDataPoints) (\s@TrainingMetrics' {} a -> s {metricDataPoints = a} :: TrainingMetrics) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON TrainingMetrics where+  parseJSON =+    Data.withObject+      "TrainingMetrics"+      ( \x ->+          TrainingMetrics'+            Prelude.<$> (x Data..:? "auc")+            Prelude.<*> ( x+                            Data..:? "metricDataPoints"+                            Data..!= Prelude.mempty+                        )+      )++instance Prelude.Hashable TrainingMetrics where+  hashWithSalt _salt TrainingMetrics' {..} =+    _salt+      `Prelude.hashWithSalt` auc+      `Prelude.hashWithSalt` metricDataPoints++instance Prelude.NFData TrainingMetrics where+  rnf TrainingMetrics' {..} =+    Prelude.rnf auc+      `Prelude.seq` Prelude.rnf metricDataPoints
+ gen/Amazonka/FraudDetector/Types/TrainingMetricsV2.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.FraudDetector.Types.TrainingMetricsV2+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.TrainingMetricsV2 where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types.ATITrainingMetricsValue+import Amazonka.FraudDetector.Types.OFITrainingMetricsValue+import Amazonka.FraudDetector.Types.TFITrainingMetricsValue+import qualified Amazonka.Prelude as Prelude++-- | The training metrics details.+--+-- /See:/ 'newTrainingMetricsV2' smart constructor.+data TrainingMetricsV2 = TrainingMetricsV2'+  { -- | The Account Takeover Insights (ATI) model training metric details.+    ati :: Prelude.Maybe ATITrainingMetricsValue,+    -- | The Online Fraud Insights (OFI) model training metric details.+    ofi :: Prelude.Maybe OFITrainingMetricsValue,+    -- | The Transaction Fraud Insights (TFI) model training metric details.+    tfi :: Prelude.Maybe TFITrainingMetricsValue+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TrainingMetricsV2' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'ati', 'trainingMetricsV2_ati' - The Account Takeover Insights (ATI) model training metric details.+--+-- 'ofi', 'trainingMetricsV2_ofi' - The Online Fraud Insights (OFI) model training metric details.+--+-- 'tfi', 'trainingMetricsV2_tfi' - The Transaction Fraud Insights (TFI) model training metric details.+newTrainingMetricsV2 ::+  TrainingMetricsV2+newTrainingMetricsV2 =+  TrainingMetricsV2'+    { ati = Prelude.Nothing,+      ofi = Prelude.Nothing,+      tfi = Prelude.Nothing+    }++-- | The Account Takeover Insights (ATI) model training metric details.+trainingMetricsV2_ati :: Lens.Lens' TrainingMetricsV2 (Prelude.Maybe ATITrainingMetricsValue)+trainingMetricsV2_ati = Lens.lens (\TrainingMetricsV2' {ati} -> ati) (\s@TrainingMetricsV2' {} a -> s {ati = a} :: TrainingMetricsV2)++-- | The Online Fraud Insights (OFI) model training metric details.+trainingMetricsV2_ofi :: Lens.Lens' TrainingMetricsV2 (Prelude.Maybe OFITrainingMetricsValue)+trainingMetricsV2_ofi = Lens.lens (\TrainingMetricsV2' {ofi} -> ofi) (\s@TrainingMetricsV2' {} a -> s {ofi = a} :: TrainingMetricsV2)++-- | The Transaction Fraud Insights (TFI) model training metric details.+trainingMetricsV2_tfi :: Lens.Lens' TrainingMetricsV2 (Prelude.Maybe TFITrainingMetricsValue)+trainingMetricsV2_tfi = Lens.lens (\TrainingMetricsV2' {tfi} -> tfi) (\s@TrainingMetricsV2' {} a -> s {tfi = a} :: TrainingMetricsV2)++instance Data.FromJSON TrainingMetricsV2 where+  parseJSON =+    Data.withObject+      "TrainingMetricsV2"+      ( \x ->+          TrainingMetricsV2'+            Prelude.<$> (x Data..:? "ati")+            Prelude.<*> (x Data..:? "ofi")+            Prelude.<*> (x Data..:? "tfi")+      )++instance Prelude.Hashable TrainingMetricsV2 where+  hashWithSalt _salt TrainingMetricsV2' {..} =+    _salt+      `Prelude.hashWithSalt` ati+      `Prelude.hashWithSalt` ofi+      `Prelude.hashWithSalt` tfi++instance Prelude.NFData TrainingMetricsV2 where+  rnf TrainingMetricsV2' {..} =+    Prelude.rnf ati+      `Prelude.seq` Prelude.rnf ofi+      `Prelude.seq` Prelude.rnf tfi
+ gen/Amazonka/FraudDetector/Types/TrainingResult.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.FraudDetector.Types.TrainingResult+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.TrainingResult where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types.DataValidationMetrics+import Amazonka.FraudDetector.Types.TrainingMetrics+import Amazonka.FraudDetector.Types.VariableImportanceMetrics+import qualified Amazonka.Prelude as Prelude++-- | The training result details.+--+-- /See:/ 'newTrainingResult' smart constructor.+data TrainingResult = TrainingResult'+  { -- | The validation metrics.+    dataValidationMetrics :: Prelude.Maybe DataValidationMetrics,+    -- | The training metric details.+    trainingMetrics :: Prelude.Maybe TrainingMetrics,+    -- | The variable importance metrics.+    variableImportanceMetrics :: Prelude.Maybe VariableImportanceMetrics+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TrainingResult' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataValidationMetrics', 'trainingResult_dataValidationMetrics' - The validation metrics.+--+-- 'trainingMetrics', 'trainingResult_trainingMetrics' - The training metric details.+--+-- 'variableImportanceMetrics', 'trainingResult_variableImportanceMetrics' - The variable importance metrics.+newTrainingResult ::+  TrainingResult+newTrainingResult =+  TrainingResult'+    { dataValidationMetrics =+        Prelude.Nothing,+      trainingMetrics = Prelude.Nothing,+      variableImportanceMetrics = Prelude.Nothing+    }++-- | The validation metrics.+trainingResult_dataValidationMetrics :: Lens.Lens' TrainingResult (Prelude.Maybe DataValidationMetrics)+trainingResult_dataValidationMetrics = Lens.lens (\TrainingResult' {dataValidationMetrics} -> dataValidationMetrics) (\s@TrainingResult' {} a -> s {dataValidationMetrics = a} :: TrainingResult)++-- | The training metric details.+trainingResult_trainingMetrics :: Lens.Lens' TrainingResult (Prelude.Maybe TrainingMetrics)+trainingResult_trainingMetrics = Lens.lens (\TrainingResult' {trainingMetrics} -> trainingMetrics) (\s@TrainingResult' {} a -> s {trainingMetrics = a} :: TrainingResult)++-- | The variable importance metrics.+trainingResult_variableImportanceMetrics :: Lens.Lens' TrainingResult (Prelude.Maybe VariableImportanceMetrics)+trainingResult_variableImportanceMetrics = Lens.lens (\TrainingResult' {variableImportanceMetrics} -> variableImportanceMetrics) (\s@TrainingResult' {} a -> s {variableImportanceMetrics = a} :: TrainingResult)++instance Data.FromJSON TrainingResult where+  parseJSON =+    Data.withObject+      "TrainingResult"+      ( \x ->+          TrainingResult'+            Prelude.<$> (x Data..:? "dataValidationMetrics")+            Prelude.<*> (x Data..:? "trainingMetrics")+            Prelude.<*> (x Data..:? "variableImportanceMetrics")+      )++instance Prelude.Hashable TrainingResult where+  hashWithSalt _salt TrainingResult' {..} =+    _salt+      `Prelude.hashWithSalt` dataValidationMetrics+      `Prelude.hashWithSalt` trainingMetrics+      `Prelude.hashWithSalt` variableImportanceMetrics++instance Prelude.NFData TrainingResult where+  rnf TrainingResult' {..} =+    Prelude.rnf dataValidationMetrics+      `Prelude.seq` Prelude.rnf trainingMetrics+      `Prelude.seq` Prelude.rnf variableImportanceMetrics
+ gen/Amazonka/FraudDetector/Types/TrainingResultV2.hs view
@@ -0,0 +1,132 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.Types.TrainingResultV2+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.TrainingResultV2 where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types.AggregatedVariablesImportanceMetrics+import Amazonka.FraudDetector.Types.DataValidationMetrics+import Amazonka.FraudDetector.Types.TrainingMetricsV2+import Amazonka.FraudDetector.Types.VariableImportanceMetrics+import qualified Amazonka.Prelude as Prelude++-- | The training result details.+--+-- /See:/ 'newTrainingResultV2' smart constructor.+data TrainingResultV2 = TrainingResultV2'+  { -- | The variable importance metrics of the aggregated variables.+    --+    -- Account Takeover Insights (ATI) model uses event variables from the+    -- login data you provide to continuously calculate a set of variables+    -- (aggregated variables) based on historical events. For example, your ATI+    -- model might calculate the number of times an user has logged in using+    -- the same IP address. In this case, event variables used to derive the+    -- aggregated variables are @IP address@ and @user@.+    aggregatedVariablesImportanceMetrics :: Prelude.Maybe AggregatedVariablesImportanceMetrics,+    dataValidationMetrics :: Prelude.Maybe DataValidationMetrics,+    -- | The training metric details.+    trainingMetricsV2 :: Prelude.Maybe TrainingMetricsV2,+    variableImportanceMetrics :: Prelude.Maybe VariableImportanceMetrics+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TrainingResultV2' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'aggregatedVariablesImportanceMetrics', 'trainingResultV2_aggregatedVariablesImportanceMetrics' - The variable importance metrics of the aggregated variables.+--+-- Account Takeover Insights (ATI) model uses event variables from the+-- login data you provide to continuously calculate a set of variables+-- (aggregated variables) based on historical events. For example, your ATI+-- model might calculate the number of times an user has logged in using+-- the same IP address. In this case, event variables used to derive the+-- aggregated variables are @IP address@ and @user@.+--+-- 'dataValidationMetrics', 'trainingResultV2_dataValidationMetrics' - Undocumented member.+--+-- 'trainingMetricsV2', 'trainingResultV2_trainingMetricsV2' - The training metric details.+--+-- 'variableImportanceMetrics', 'trainingResultV2_variableImportanceMetrics' - Undocumented member.+newTrainingResultV2 ::+  TrainingResultV2+newTrainingResultV2 =+  TrainingResultV2'+    { aggregatedVariablesImportanceMetrics =+        Prelude.Nothing,+      dataValidationMetrics = Prelude.Nothing,+      trainingMetricsV2 = Prelude.Nothing,+      variableImportanceMetrics = Prelude.Nothing+    }++-- | The variable importance metrics of the aggregated variables.+--+-- Account Takeover Insights (ATI) model uses event variables from the+-- login data you provide to continuously calculate a set of variables+-- (aggregated variables) based on historical events. For example, your ATI+-- model might calculate the number of times an user has logged in using+-- the same IP address. In this case, event variables used to derive the+-- aggregated variables are @IP address@ and @user@.+trainingResultV2_aggregatedVariablesImportanceMetrics :: Lens.Lens' TrainingResultV2 (Prelude.Maybe AggregatedVariablesImportanceMetrics)+trainingResultV2_aggregatedVariablesImportanceMetrics = Lens.lens (\TrainingResultV2' {aggregatedVariablesImportanceMetrics} -> aggregatedVariablesImportanceMetrics) (\s@TrainingResultV2' {} a -> s {aggregatedVariablesImportanceMetrics = a} :: TrainingResultV2)++-- | Undocumented member.+trainingResultV2_dataValidationMetrics :: Lens.Lens' TrainingResultV2 (Prelude.Maybe DataValidationMetrics)+trainingResultV2_dataValidationMetrics = Lens.lens (\TrainingResultV2' {dataValidationMetrics} -> dataValidationMetrics) (\s@TrainingResultV2' {} a -> s {dataValidationMetrics = a} :: TrainingResultV2)++-- | The training metric details.+trainingResultV2_trainingMetricsV2 :: Lens.Lens' TrainingResultV2 (Prelude.Maybe TrainingMetricsV2)+trainingResultV2_trainingMetricsV2 = Lens.lens (\TrainingResultV2' {trainingMetricsV2} -> trainingMetricsV2) (\s@TrainingResultV2' {} a -> s {trainingMetricsV2 = a} :: TrainingResultV2)++-- | Undocumented member.+trainingResultV2_variableImportanceMetrics :: Lens.Lens' TrainingResultV2 (Prelude.Maybe VariableImportanceMetrics)+trainingResultV2_variableImportanceMetrics = Lens.lens (\TrainingResultV2' {variableImportanceMetrics} -> variableImportanceMetrics) (\s@TrainingResultV2' {} a -> s {variableImportanceMetrics = a} :: TrainingResultV2)++instance Data.FromJSON TrainingResultV2 where+  parseJSON =+    Data.withObject+      "TrainingResultV2"+      ( \x ->+          TrainingResultV2'+            Prelude.<$> (x Data..:? "aggregatedVariablesImportanceMetrics")+            Prelude.<*> (x Data..:? "dataValidationMetrics")+            Prelude.<*> (x Data..:? "trainingMetricsV2")+            Prelude.<*> (x Data..:? "variableImportanceMetrics")+      )++instance Prelude.Hashable TrainingResultV2 where+  hashWithSalt _salt TrainingResultV2' {..} =+    _salt+      `Prelude.hashWithSalt` aggregatedVariablesImportanceMetrics+      `Prelude.hashWithSalt` dataValidationMetrics+      `Prelude.hashWithSalt` trainingMetricsV2+      `Prelude.hashWithSalt` variableImportanceMetrics++instance Prelude.NFData TrainingResultV2 where+  rnf TrainingResultV2' {..} =+    Prelude.rnf aggregatedVariablesImportanceMetrics+      `Prelude.seq` Prelude.rnf dataValidationMetrics+      `Prelude.seq` Prelude.rnf trainingMetricsV2+      `Prelude.seq` Prelude.rnf variableImportanceMetrics
+ gen/Amazonka/FraudDetector/Types/UnlabeledEventsTreatment.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.FraudDetector.Types.UnlabeledEventsTreatment+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.UnlabeledEventsTreatment+  ( UnlabeledEventsTreatment+      ( ..,+        UnlabeledEventsTreatment_FRAUD,+        UnlabeledEventsTreatment_IGNORE,+        UnlabeledEventsTreatment_LEGIT+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype UnlabeledEventsTreatment = UnlabeledEventsTreatment'+  { fromUnlabeledEventsTreatment ::+      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 UnlabeledEventsTreatment_FRAUD :: UnlabeledEventsTreatment+pattern UnlabeledEventsTreatment_FRAUD = UnlabeledEventsTreatment' "FRAUD"++pattern UnlabeledEventsTreatment_IGNORE :: UnlabeledEventsTreatment+pattern UnlabeledEventsTreatment_IGNORE = UnlabeledEventsTreatment' "IGNORE"++pattern UnlabeledEventsTreatment_LEGIT :: UnlabeledEventsTreatment+pattern UnlabeledEventsTreatment_LEGIT = UnlabeledEventsTreatment' "LEGIT"++{-# COMPLETE+  UnlabeledEventsTreatment_FRAUD,+  UnlabeledEventsTreatment_IGNORE,+  UnlabeledEventsTreatment_LEGIT,+  UnlabeledEventsTreatment'+  #-}
+ gen/Amazonka/FraudDetector/Types/Variable.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.FraudDetector.Types.Variable+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.Variable where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types.DataSource+import Amazonka.FraudDetector.Types.DataType+import qualified Amazonka.Prelude as Prelude++-- | The variable.+--+-- /See:/ 'newVariable' smart constructor.+data Variable = Variable'+  { -- | The ARN of the variable.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The time when the variable was created.+    createdTime :: Prelude.Maybe Prelude.Text,+    -- | The data source of the variable.+    dataSource :: Prelude.Maybe DataSource,+    -- | The data type of the variable. For more information see+    -- <https://docs.aws.amazon.com/frauddetector/latest/ug/create-a-variable.html#variable-types Variable types>.+    dataType :: Prelude.Maybe DataType,+    -- | The default value of the variable.+    defaultValue :: Prelude.Maybe Prelude.Text,+    -- | The description of the variable.+    description :: Prelude.Maybe Prelude.Text,+    -- | The time when variable was last updated.+    lastUpdatedTime :: Prelude.Maybe Prelude.Text,+    -- | The name of the variable.+    name :: Prelude.Maybe Prelude.Text,+    -- | The variable type of the variable.+    --+    -- Valid Values:+    -- @AUTH_CODE | AVS | BILLING_ADDRESS_L1 | BILLING_ADDRESS_L2 | BILLING_CITY | BILLING_COUNTRY | BILLING_NAME | BILLING_PHONE | BILLING_STATE | BILLING_ZIP | CARD_BIN | CATEGORICAL | CURRENCY_CODE | EMAIL_ADDRESS | FINGERPRINT | FRAUD_LABEL | FREE_FORM_TEXT | IP_ADDRESS | NUMERIC | ORDER_ID | PAYMENT_TYPE | PHONE_NUMBER | PRICE | PRODUCT_CATEGORY | SHIPPING_ADDRESS_L1 | SHIPPING_ADDRESS_L2 | SHIPPING_CITY | SHIPPING_COUNTRY | SHIPPING_NAME | SHIPPING_PHONE | SHIPPING_STATE | SHIPPING_ZIP | USERAGENT @+    variableType :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Variable' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'variable_arn' - The ARN of the variable.+--+-- 'createdTime', 'variable_createdTime' - The time when the variable was created.+--+-- 'dataSource', 'variable_dataSource' - The data source of the variable.+--+-- 'dataType', 'variable_dataType' - The data type of the variable. For more information see+-- <https://docs.aws.amazon.com/frauddetector/latest/ug/create-a-variable.html#variable-types Variable types>.+--+-- 'defaultValue', 'variable_defaultValue' - The default value of the variable.+--+-- 'description', 'variable_description' - The description of the variable.+--+-- 'lastUpdatedTime', 'variable_lastUpdatedTime' - The time when variable was last updated.+--+-- 'name', 'variable_name' - The name of the variable.+--+-- 'variableType', 'variable_variableType' - The variable type of the variable.+--+-- Valid Values:+-- @AUTH_CODE | AVS | BILLING_ADDRESS_L1 | BILLING_ADDRESS_L2 | BILLING_CITY | BILLING_COUNTRY | BILLING_NAME | BILLING_PHONE | BILLING_STATE | BILLING_ZIP | CARD_BIN | CATEGORICAL | CURRENCY_CODE | EMAIL_ADDRESS | FINGERPRINT | FRAUD_LABEL | FREE_FORM_TEXT | IP_ADDRESS | NUMERIC | ORDER_ID | PAYMENT_TYPE | PHONE_NUMBER | PRICE | PRODUCT_CATEGORY | SHIPPING_ADDRESS_L1 | SHIPPING_ADDRESS_L2 | SHIPPING_CITY | SHIPPING_COUNTRY | SHIPPING_NAME | SHIPPING_PHONE | SHIPPING_STATE | SHIPPING_ZIP | USERAGENT @+newVariable ::+  Variable+newVariable =+  Variable'+    { arn = Prelude.Nothing,+      createdTime = Prelude.Nothing,+      dataSource = Prelude.Nothing,+      dataType = Prelude.Nothing,+      defaultValue = Prelude.Nothing,+      description = Prelude.Nothing,+      lastUpdatedTime = Prelude.Nothing,+      name = Prelude.Nothing,+      variableType = Prelude.Nothing+    }++-- | The ARN of the variable.+variable_arn :: Lens.Lens' Variable (Prelude.Maybe Prelude.Text)+variable_arn = Lens.lens (\Variable' {arn} -> arn) (\s@Variable' {} a -> s {arn = a} :: Variable)++-- | The time when the variable was created.+variable_createdTime :: Lens.Lens' Variable (Prelude.Maybe Prelude.Text)+variable_createdTime = Lens.lens (\Variable' {createdTime} -> createdTime) (\s@Variable' {} a -> s {createdTime = a} :: Variable)++-- | The data source of the variable.+variable_dataSource :: Lens.Lens' Variable (Prelude.Maybe DataSource)+variable_dataSource = Lens.lens (\Variable' {dataSource} -> dataSource) (\s@Variable' {} a -> s {dataSource = a} :: Variable)++-- | The data type of the variable. For more information see+-- <https://docs.aws.amazon.com/frauddetector/latest/ug/create-a-variable.html#variable-types Variable types>.+variable_dataType :: Lens.Lens' Variable (Prelude.Maybe DataType)+variable_dataType = Lens.lens (\Variable' {dataType} -> dataType) (\s@Variable' {} a -> s {dataType = a} :: Variable)++-- | The default value of the variable.+variable_defaultValue :: Lens.Lens' Variable (Prelude.Maybe Prelude.Text)+variable_defaultValue = Lens.lens (\Variable' {defaultValue} -> defaultValue) (\s@Variable' {} a -> s {defaultValue = a} :: Variable)++-- | The description of the variable.+variable_description :: Lens.Lens' Variable (Prelude.Maybe Prelude.Text)+variable_description = Lens.lens (\Variable' {description} -> description) (\s@Variable' {} a -> s {description = a} :: Variable)++-- | The time when variable was last updated.+variable_lastUpdatedTime :: Lens.Lens' Variable (Prelude.Maybe Prelude.Text)+variable_lastUpdatedTime = Lens.lens (\Variable' {lastUpdatedTime} -> lastUpdatedTime) (\s@Variable' {} a -> s {lastUpdatedTime = a} :: Variable)++-- | The name of the variable.+variable_name :: Lens.Lens' Variable (Prelude.Maybe Prelude.Text)+variable_name = Lens.lens (\Variable' {name} -> name) (\s@Variable' {} a -> s {name = a} :: Variable)++-- | The variable type of the variable.+--+-- Valid Values:+-- @AUTH_CODE | AVS | BILLING_ADDRESS_L1 | BILLING_ADDRESS_L2 | BILLING_CITY | BILLING_COUNTRY | BILLING_NAME | BILLING_PHONE | BILLING_STATE | BILLING_ZIP | CARD_BIN | CATEGORICAL | CURRENCY_CODE | EMAIL_ADDRESS | FINGERPRINT | FRAUD_LABEL | FREE_FORM_TEXT | IP_ADDRESS | NUMERIC | ORDER_ID | PAYMENT_TYPE | PHONE_NUMBER | PRICE | PRODUCT_CATEGORY | SHIPPING_ADDRESS_L1 | SHIPPING_ADDRESS_L2 | SHIPPING_CITY | SHIPPING_COUNTRY | SHIPPING_NAME | SHIPPING_PHONE | SHIPPING_STATE | SHIPPING_ZIP | USERAGENT @+variable_variableType :: Lens.Lens' Variable (Prelude.Maybe Prelude.Text)+variable_variableType = Lens.lens (\Variable' {variableType} -> variableType) (\s@Variable' {} a -> s {variableType = a} :: Variable)++instance Data.FromJSON Variable where+  parseJSON =+    Data.withObject+      "Variable"+      ( \x ->+          Variable'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "createdTime")+            Prelude.<*> (x Data..:? "dataSource")+            Prelude.<*> (x Data..:? "dataType")+            Prelude.<*> (x Data..:? "defaultValue")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "lastUpdatedTime")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "variableType")+      )++instance Prelude.Hashable Variable where+  hashWithSalt _salt Variable' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` createdTime+      `Prelude.hashWithSalt` dataSource+      `Prelude.hashWithSalt` dataType+      `Prelude.hashWithSalt` defaultValue+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` lastUpdatedTime+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` variableType++instance Prelude.NFData Variable where+  rnf Variable' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdTime+      `Prelude.seq` Prelude.rnf dataSource+      `Prelude.seq` Prelude.rnf dataType+      `Prelude.seq` Prelude.rnf defaultValue+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf lastUpdatedTime+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf variableType
+ gen/Amazonka/FraudDetector/Types/VariableEntry.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.FraudDetector.Types.VariableEntry+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.VariableEntry where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A variable in the list of variables for the batch create variable+-- request.+--+-- /See:/ 'newVariableEntry' smart constructor.+data VariableEntry = VariableEntry'+  { -- | The data source of the variable.+    dataSource :: Prelude.Maybe Prelude.Text,+    -- | The data type of the variable.+    dataType :: Prelude.Maybe Prelude.Text,+    -- | The default value of the variable.+    defaultValue :: Prelude.Maybe Prelude.Text,+    -- | The description of the variable.+    description :: Prelude.Maybe Prelude.Text,+    -- | The name of the variable.+    name :: Prelude.Maybe Prelude.Text,+    -- | The type of the variable. For more information see+    -- <https://docs.aws.amazon.com/frauddetector/latest/ug/create-a-variable.html#variable-types Variable types>.+    --+    -- Valid Values:+    -- @AUTH_CODE | AVS | BILLING_ADDRESS_L1 | BILLING_ADDRESS_L2 | BILLING_CITY | BILLING_COUNTRY | BILLING_NAME | BILLING_PHONE | BILLING_STATE | BILLING_ZIP | CARD_BIN | CATEGORICAL | CURRENCY_CODE | EMAIL_ADDRESS | FINGERPRINT | FRAUD_LABEL | FREE_FORM_TEXT | IP_ADDRESS | NUMERIC | ORDER_ID | PAYMENT_TYPE | PHONE_NUMBER | PRICE | PRODUCT_CATEGORY | SHIPPING_ADDRESS_L1 | SHIPPING_ADDRESS_L2 | SHIPPING_CITY | SHIPPING_COUNTRY | SHIPPING_NAME | SHIPPING_PHONE | SHIPPING_STATE | SHIPPING_ZIP | USERAGENT @+    variableType :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VariableEntry' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataSource', 'variableEntry_dataSource' - The data source of the variable.+--+-- 'dataType', 'variableEntry_dataType' - The data type of the variable.+--+-- 'defaultValue', 'variableEntry_defaultValue' - The default value of the variable.+--+-- 'description', 'variableEntry_description' - The description of the variable.+--+-- 'name', 'variableEntry_name' - The name of the variable.+--+-- 'variableType', 'variableEntry_variableType' - The type of the variable. For more information see+-- <https://docs.aws.amazon.com/frauddetector/latest/ug/create-a-variable.html#variable-types Variable types>.+--+-- Valid Values:+-- @AUTH_CODE | AVS | BILLING_ADDRESS_L1 | BILLING_ADDRESS_L2 | BILLING_CITY | BILLING_COUNTRY | BILLING_NAME | BILLING_PHONE | BILLING_STATE | BILLING_ZIP | CARD_BIN | CATEGORICAL | CURRENCY_CODE | EMAIL_ADDRESS | FINGERPRINT | FRAUD_LABEL | FREE_FORM_TEXT | IP_ADDRESS | NUMERIC | ORDER_ID | PAYMENT_TYPE | PHONE_NUMBER | PRICE | PRODUCT_CATEGORY | SHIPPING_ADDRESS_L1 | SHIPPING_ADDRESS_L2 | SHIPPING_CITY | SHIPPING_COUNTRY | SHIPPING_NAME | SHIPPING_PHONE | SHIPPING_STATE | SHIPPING_ZIP | USERAGENT @+newVariableEntry ::+  VariableEntry+newVariableEntry =+  VariableEntry'+    { dataSource = Prelude.Nothing,+      dataType = Prelude.Nothing,+      defaultValue = Prelude.Nothing,+      description = Prelude.Nothing,+      name = Prelude.Nothing,+      variableType = Prelude.Nothing+    }++-- | The data source of the variable.+variableEntry_dataSource :: Lens.Lens' VariableEntry (Prelude.Maybe Prelude.Text)+variableEntry_dataSource = Lens.lens (\VariableEntry' {dataSource} -> dataSource) (\s@VariableEntry' {} a -> s {dataSource = a} :: VariableEntry)++-- | The data type of the variable.+variableEntry_dataType :: Lens.Lens' VariableEntry (Prelude.Maybe Prelude.Text)+variableEntry_dataType = Lens.lens (\VariableEntry' {dataType} -> dataType) (\s@VariableEntry' {} a -> s {dataType = a} :: VariableEntry)++-- | The default value of the variable.+variableEntry_defaultValue :: Lens.Lens' VariableEntry (Prelude.Maybe Prelude.Text)+variableEntry_defaultValue = Lens.lens (\VariableEntry' {defaultValue} -> defaultValue) (\s@VariableEntry' {} a -> s {defaultValue = a} :: VariableEntry)++-- | The description of the variable.+variableEntry_description :: Lens.Lens' VariableEntry (Prelude.Maybe Prelude.Text)+variableEntry_description = Lens.lens (\VariableEntry' {description} -> description) (\s@VariableEntry' {} a -> s {description = a} :: VariableEntry)++-- | The name of the variable.+variableEntry_name :: Lens.Lens' VariableEntry (Prelude.Maybe Prelude.Text)+variableEntry_name = Lens.lens (\VariableEntry' {name} -> name) (\s@VariableEntry' {} a -> s {name = a} :: VariableEntry)++-- | The type of the variable. For more information see+-- <https://docs.aws.amazon.com/frauddetector/latest/ug/create-a-variable.html#variable-types Variable types>.+--+-- Valid Values:+-- @AUTH_CODE | AVS | BILLING_ADDRESS_L1 | BILLING_ADDRESS_L2 | BILLING_CITY | BILLING_COUNTRY | BILLING_NAME | BILLING_PHONE | BILLING_STATE | BILLING_ZIP | CARD_BIN | CATEGORICAL | CURRENCY_CODE | EMAIL_ADDRESS | FINGERPRINT | FRAUD_LABEL | FREE_FORM_TEXT | IP_ADDRESS | NUMERIC | ORDER_ID | PAYMENT_TYPE | PHONE_NUMBER | PRICE | PRODUCT_CATEGORY | SHIPPING_ADDRESS_L1 | SHIPPING_ADDRESS_L2 | SHIPPING_CITY | SHIPPING_COUNTRY | SHIPPING_NAME | SHIPPING_PHONE | SHIPPING_STATE | SHIPPING_ZIP | USERAGENT @+variableEntry_variableType :: Lens.Lens' VariableEntry (Prelude.Maybe Prelude.Text)+variableEntry_variableType = Lens.lens (\VariableEntry' {variableType} -> variableType) (\s@VariableEntry' {} a -> s {variableType = a} :: VariableEntry)++instance Prelude.Hashable VariableEntry where+  hashWithSalt _salt VariableEntry' {..} =+    _salt+      `Prelude.hashWithSalt` dataSource+      `Prelude.hashWithSalt` dataType+      `Prelude.hashWithSalt` defaultValue+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` variableType++instance Prelude.NFData VariableEntry where+  rnf VariableEntry' {..} =+    Prelude.rnf dataSource+      `Prelude.seq` Prelude.rnf dataType+      `Prelude.seq` Prelude.rnf defaultValue+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf variableType++instance Data.ToJSON VariableEntry where+  toJSON VariableEntry' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("dataSource" Data..=) Prelude.<$> dataSource,+            ("dataType" Data..=) Prelude.<$> dataType,+            ("defaultValue" Data..=) Prelude.<$> defaultValue,+            ("description" Data..=) Prelude.<$> description,+            ("name" Data..=) Prelude.<$> name,+            ("variableType" Data..=) Prelude.<$> variableType+          ]+      )
+ gen/Amazonka/FraudDetector/Types/VariableImpactExplanation.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.FraudDetector.Types.VariableImpactExplanation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.VariableImpactExplanation where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The details of the event variable\'s impact on the prediction score.+--+-- /See:/ 'newVariableImpactExplanation' smart constructor.+data VariableImpactExplanation = VariableImpactExplanation'+  { -- | The event variable name.+    eventVariableName :: Prelude.Maybe Prelude.Text,+    -- | The raw, uninterpreted value represented as log-odds of the fraud. These+    -- values are usually between -10 to +10, but range from - infinity to ++    -- infinity.+    --+    -- -   A positive value indicates that the variable drove the risk score+    --     up.+    --+    -- -   A negative value indicates that the variable drove the risk score+    --     down.+    logOddsImpact :: Prelude.Maybe Prelude.Double,+    -- | The event variable\'s relative impact in terms of magnitude on the+    -- prediction scores. The relative impact values consist of a numerical+    -- rating (0-5, 5 being the highest) and direction (increased\/decreased)+    -- impact of the fraud risk.+    relativeImpact :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VariableImpactExplanation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventVariableName', 'variableImpactExplanation_eventVariableName' - The event variable name.+--+-- 'logOddsImpact', 'variableImpactExplanation_logOddsImpact' - The raw, uninterpreted value represented as log-odds of the fraud. These+-- values are usually between -10 to +10, but range from - infinity to ++-- infinity.+--+-- -   A positive value indicates that the variable drove the risk score+--     up.+--+-- -   A negative value indicates that the variable drove the risk score+--     down.+--+-- 'relativeImpact', 'variableImpactExplanation_relativeImpact' - The event variable\'s relative impact in terms of magnitude on the+-- prediction scores. The relative impact values consist of a numerical+-- rating (0-5, 5 being the highest) and direction (increased\/decreased)+-- impact of the fraud risk.+newVariableImpactExplanation ::+  VariableImpactExplanation+newVariableImpactExplanation =+  VariableImpactExplanation'+    { eventVariableName =+        Prelude.Nothing,+      logOddsImpact = Prelude.Nothing,+      relativeImpact = Prelude.Nothing+    }++-- | The event variable name.+variableImpactExplanation_eventVariableName :: Lens.Lens' VariableImpactExplanation (Prelude.Maybe Prelude.Text)+variableImpactExplanation_eventVariableName = Lens.lens (\VariableImpactExplanation' {eventVariableName} -> eventVariableName) (\s@VariableImpactExplanation' {} a -> s {eventVariableName = a} :: VariableImpactExplanation)++-- | The raw, uninterpreted value represented as log-odds of the fraud. These+-- values are usually between -10 to +10, but range from - infinity to ++-- infinity.+--+-- -   A positive value indicates that the variable drove the risk score+--     up.+--+-- -   A negative value indicates that the variable drove the risk score+--     down.+variableImpactExplanation_logOddsImpact :: Lens.Lens' VariableImpactExplanation (Prelude.Maybe Prelude.Double)+variableImpactExplanation_logOddsImpact = Lens.lens (\VariableImpactExplanation' {logOddsImpact} -> logOddsImpact) (\s@VariableImpactExplanation' {} a -> s {logOddsImpact = a} :: VariableImpactExplanation)++-- | The event variable\'s relative impact in terms of magnitude on the+-- prediction scores. The relative impact values consist of a numerical+-- rating (0-5, 5 being the highest) and direction (increased\/decreased)+-- impact of the fraud risk.+variableImpactExplanation_relativeImpact :: Lens.Lens' VariableImpactExplanation (Prelude.Maybe Prelude.Text)+variableImpactExplanation_relativeImpact = Lens.lens (\VariableImpactExplanation' {relativeImpact} -> relativeImpact) (\s@VariableImpactExplanation' {} a -> s {relativeImpact = a} :: VariableImpactExplanation)++instance Data.FromJSON VariableImpactExplanation where+  parseJSON =+    Data.withObject+      "VariableImpactExplanation"+      ( \x ->+          VariableImpactExplanation'+            Prelude.<$> (x Data..:? "eventVariableName")+            Prelude.<*> (x Data..:? "logOddsImpact")+            Prelude.<*> (x Data..:? "relativeImpact")+      )++instance Prelude.Hashable VariableImpactExplanation where+  hashWithSalt _salt VariableImpactExplanation' {..} =+    _salt+      `Prelude.hashWithSalt` eventVariableName+      `Prelude.hashWithSalt` logOddsImpact+      `Prelude.hashWithSalt` relativeImpact++instance Prelude.NFData VariableImpactExplanation where+  rnf VariableImpactExplanation' {..} =+    Prelude.rnf eventVariableName+      `Prelude.seq` Prelude.rnf logOddsImpact+      `Prelude.seq` Prelude.rnf relativeImpact
+ gen/Amazonka/FraudDetector/Types/VariableImportanceMetrics.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.Types.VariableImportanceMetrics+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.FraudDetector.Types.VariableImportanceMetrics where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types.LogOddsMetric+import qualified Amazonka.Prelude as Prelude++-- | The variable importance metrics details.+--+-- /See:/ 'newVariableImportanceMetrics' smart constructor.+data VariableImportanceMetrics = VariableImportanceMetrics'+  { -- | List of variable metrics.+    logOddsMetrics :: Prelude.Maybe [LogOddsMetric]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VariableImportanceMetrics' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'logOddsMetrics', 'variableImportanceMetrics_logOddsMetrics' - List of variable metrics.+newVariableImportanceMetrics ::+  VariableImportanceMetrics+newVariableImportanceMetrics =+  VariableImportanceMetrics'+    { logOddsMetrics =+        Prelude.Nothing+    }++-- | List of variable metrics.+variableImportanceMetrics_logOddsMetrics :: Lens.Lens' VariableImportanceMetrics (Prelude.Maybe [LogOddsMetric])+variableImportanceMetrics_logOddsMetrics = Lens.lens (\VariableImportanceMetrics' {logOddsMetrics} -> logOddsMetrics) (\s@VariableImportanceMetrics' {} a -> s {logOddsMetrics = a} :: VariableImportanceMetrics) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON VariableImportanceMetrics where+  parseJSON =+    Data.withObject+      "VariableImportanceMetrics"+      ( \x ->+          VariableImportanceMetrics'+            Prelude.<$> ( x+                            Data..:? "logOddsMetrics"+                            Data..!= Prelude.mempty+                        )+      )++instance Prelude.Hashable VariableImportanceMetrics where+  hashWithSalt _salt VariableImportanceMetrics' {..} =+    _salt `Prelude.hashWithSalt` logOddsMetrics++instance Prelude.NFData VariableImportanceMetrics where+  rnf VariableImportanceMetrics' {..} =+    Prelude.rnf logOddsMetrics
+ gen/Amazonka/FraudDetector/UntagResource.hs view
@@ -0,0 +1,171 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.UntagResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes tags from a resource.+module Amazonka.FraudDetector.UntagResource+  ( -- * Creating a Request+    UntagResource (..),+    newUntagResource,++    -- * Request Lenses+    untagResource_resourceARN,+    untagResource_tagKeys,++    -- * 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.FraudDetector.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'+  { -- | The ARN of the resource from which to remove the tag.+    resourceARN :: Prelude.Text,+    -- | The resource ARN.+    tagKeys :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceARN', 'untagResource_resourceARN' - The ARN of the resource from which to remove the tag.+--+-- 'tagKeys', 'untagResource_tagKeys' - The resource ARN.+newUntagResource ::+  -- | 'resourceARN'+  Prelude.Text ->+  UntagResource+newUntagResource pResourceARN_ =+  UntagResource'+    { resourceARN = pResourceARN_,+      tagKeys = Prelude.mempty+    }++-- | The ARN of the resource from which to remove the tag.+untagResource_resourceARN :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceARN = Lens.lens (\UntagResource' {resourceARN} -> resourceARN) (\s@UntagResource' {} a -> s {resourceARN = a} :: UntagResource)++-- | The resource ARN.+untagResource_tagKeys :: Lens.Lens' UntagResource [Prelude.Text]+untagResource_tagKeys = Lens.lens (\UntagResource' {tagKeys} -> tagKeys) (\s@UntagResource' {} a -> s {tagKeys = a} :: UntagResource) Prelude.. Lens.coerced++instance Core.AWSRequest UntagResource where+  type+    AWSResponse UntagResource =+      UntagResourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UntagResourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UntagResource where+  hashWithSalt _salt UntagResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceARN+      `Prelude.hashWithSalt` tagKeys++instance Prelude.NFData UntagResource where+  rnf UntagResource' {..} =+    Prelude.rnf resourceARN+      `Prelude.seq` Prelude.rnf tagKeys++instance Data.ToHeaders UntagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.UntagResource" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UntagResource where+  toJSON UntagResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("resourceARN" Data..= resourceARN),+            Prelude.Just ("tagKeys" Data..= tagKeys)+          ]+      )++instance Data.ToPath UntagResource where+  toPath = Prelude.const "/"++instance Data.ToQuery UntagResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUntagResourceResponse' smart constructor.+data UntagResourceResponse = UntagResourceResponse'+  { -- | 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/FraudDetector/UpdateDetectorVersion.hs view
@@ -0,0 +1,281 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.UpdateDetectorVersion+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a detector version. The detector version attributes that you can+-- update include models, external model endpoints, rules, rule execution+-- mode, and description. You can only update a @DRAFT@ detector version.+module Amazonka.FraudDetector.UpdateDetectorVersion+  ( -- * Creating a Request+    UpdateDetectorVersion (..),+    newUpdateDetectorVersion,++    -- * Request Lenses+    updateDetectorVersion_description,+    updateDetectorVersion_modelVersions,+    updateDetectorVersion_ruleExecutionMode,+    updateDetectorVersion_detectorId,+    updateDetectorVersion_detectorVersionId,+    updateDetectorVersion_externalModelEndpoints,+    updateDetectorVersion_rules,++    -- * Destructuring the Response+    UpdateDetectorVersionResponse (..),+    newUpdateDetectorVersionResponse,++    -- * Response Lenses+    updateDetectorVersionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateDetectorVersion' smart constructor.+data UpdateDetectorVersion = UpdateDetectorVersion'+  { -- | The detector version description.+    description :: Prelude.Maybe Prelude.Text,+    -- | The model versions to include in the detector version.+    modelVersions :: Prelude.Maybe [ModelVersion],+    -- | The rule execution mode to add to the detector.+    --+    -- If you specify @FIRST_MATCHED@, Amazon Fraud Detector evaluates rules+    -- sequentially, first to last, stopping at the first matched rule. Amazon+    -- Fraud dectector then provides the outcomes for that single rule.+    --+    -- If you specifiy @ALL_MATCHED@, Amazon Fraud Detector evaluates all rules+    -- and returns the outcomes for all matched rules. You can define and edit+    -- the rule mode at the detector version level, when it is in draft status.+    --+    -- The default behavior is @FIRST_MATCHED@.+    ruleExecutionMode :: Prelude.Maybe RuleExecutionMode,+    -- | The parent detector ID for the detector version you want to update.+    detectorId :: Prelude.Text,+    -- | The detector version ID.+    detectorVersionId :: Prelude.Text,+    -- | The Amazon SageMaker model endpoints to include in the detector version.+    externalModelEndpoints :: [Prelude.Text],+    -- | The rules to include in the detector version.+    rules :: [Rule]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateDetectorVersion' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateDetectorVersion_description' - The detector version description.+--+-- 'modelVersions', 'updateDetectorVersion_modelVersions' - The model versions to include in the detector version.+--+-- 'ruleExecutionMode', 'updateDetectorVersion_ruleExecutionMode' - The rule execution mode to add to the detector.+--+-- If you specify @FIRST_MATCHED@, Amazon Fraud Detector evaluates rules+-- sequentially, first to last, stopping at the first matched rule. Amazon+-- Fraud dectector then provides the outcomes for that single rule.+--+-- If you specifiy @ALL_MATCHED@, Amazon Fraud Detector evaluates all rules+-- and returns the outcomes for all matched rules. You can define and edit+-- the rule mode at the detector version level, when it is in draft status.+--+-- The default behavior is @FIRST_MATCHED@.+--+-- 'detectorId', 'updateDetectorVersion_detectorId' - The parent detector ID for the detector version you want to update.+--+-- 'detectorVersionId', 'updateDetectorVersion_detectorVersionId' - The detector version ID.+--+-- 'externalModelEndpoints', 'updateDetectorVersion_externalModelEndpoints' - The Amazon SageMaker model endpoints to include in the detector version.+--+-- 'rules', 'updateDetectorVersion_rules' - The rules to include in the detector version.+newUpdateDetectorVersion ::+  -- | 'detectorId'+  Prelude.Text ->+  -- | 'detectorVersionId'+  Prelude.Text ->+  UpdateDetectorVersion+newUpdateDetectorVersion+  pDetectorId_+  pDetectorVersionId_ =+    UpdateDetectorVersion'+      { description =+          Prelude.Nothing,+        modelVersions = Prelude.Nothing,+        ruleExecutionMode = Prelude.Nothing,+        detectorId = pDetectorId_,+        detectorVersionId = pDetectorVersionId_,+        externalModelEndpoints = Prelude.mempty,+        rules = Prelude.mempty+      }++-- | The detector version description.+updateDetectorVersion_description :: Lens.Lens' UpdateDetectorVersion (Prelude.Maybe Prelude.Text)+updateDetectorVersion_description = Lens.lens (\UpdateDetectorVersion' {description} -> description) (\s@UpdateDetectorVersion' {} a -> s {description = a} :: UpdateDetectorVersion)++-- | The model versions to include in the detector version.+updateDetectorVersion_modelVersions :: Lens.Lens' UpdateDetectorVersion (Prelude.Maybe [ModelVersion])+updateDetectorVersion_modelVersions = Lens.lens (\UpdateDetectorVersion' {modelVersions} -> modelVersions) (\s@UpdateDetectorVersion' {} a -> s {modelVersions = a} :: UpdateDetectorVersion) Prelude.. Lens.mapping Lens.coerced++-- | The rule execution mode to add to the detector.+--+-- If you specify @FIRST_MATCHED@, Amazon Fraud Detector evaluates rules+-- sequentially, first to last, stopping at the first matched rule. Amazon+-- Fraud dectector then provides the outcomes for that single rule.+--+-- If you specifiy @ALL_MATCHED@, Amazon Fraud Detector evaluates all rules+-- and returns the outcomes for all matched rules. You can define and edit+-- the rule mode at the detector version level, when it is in draft status.+--+-- The default behavior is @FIRST_MATCHED@.+updateDetectorVersion_ruleExecutionMode :: Lens.Lens' UpdateDetectorVersion (Prelude.Maybe RuleExecutionMode)+updateDetectorVersion_ruleExecutionMode = Lens.lens (\UpdateDetectorVersion' {ruleExecutionMode} -> ruleExecutionMode) (\s@UpdateDetectorVersion' {} a -> s {ruleExecutionMode = a} :: UpdateDetectorVersion)++-- | The parent detector ID for the detector version you want to update.+updateDetectorVersion_detectorId :: Lens.Lens' UpdateDetectorVersion Prelude.Text+updateDetectorVersion_detectorId = Lens.lens (\UpdateDetectorVersion' {detectorId} -> detectorId) (\s@UpdateDetectorVersion' {} a -> s {detectorId = a} :: UpdateDetectorVersion)++-- | The detector version ID.+updateDetectorVersion_detectorVersionId :: Lens.Lens' UpdateDetectorVersion Prelude.Text+updateDetectorVersion_detectorVersionId = Lens.lens (\UpdateDetectorVersion' {detectorVersionId} -> detectorVersionId) (\s@UpdateDetectorVersion' {} a -> s {detectorVersionId = a} :: UpdateDetectorVersion)++-- | The Amazon SageMaker model endpoints to include in the detector version.+updateDetectorVersion_externalModelEndpoints :: Lens.Lens' UpdateDetectorVersion [Prelude.Text]+updateDetectorVersion_externalModelEndpoints = Lens.lens (\UpdateDetectorVersion' {externalModelEndpoints} -> externalModelEndpoints) (\s@UpdateDetectorVersion' {} a -> s {externalModelEndpoints = a} :: UpdateDetectorVersion) Prelude.. Lens.coerced++-- | The rules to include in the detector version.+updateDetectorVersion_rules :: Lens.Lens' UpdateDetectorVersion [Rule]+updateDetectorVersion_rules = Lens.lens (\UpdateDetectorVersion' {rules} -> rules) (\s@UpdateDetectorVersion' {} a -> s {rules = a} :: UpdateDetectorVersion) Prelude.. Lens.coerced++instance Core.AWSRequest UpdateDetectorVersion where+  type+    AWSResponse UpdateDetectorVersion =+      UpdateDetectorVersionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UpdateDetectorVersionResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateDetectorVersion where+  hashWithSalt _salt UpdateDetectorVersion' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` modelVersions+      `Prelude.hashWithSalt` ruleExecutionMode+      `Prelude.hashWithSalt` detectorId+      `Prelude.hashWithSalt` detectorVersionId+      `Prelude.hashWithSalt` externalModelEndpoints+      `Prelude.hashWithSalt` rules++instance Prelude.NFData UpdateDetectorVersion where+  rnf UpdateDetectorVersion' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf modelVersions+      `Prelude.seq` Prelude.rnf ruleExecutionMode+      `Prelude.seq` Prelude.rnf detectorId+      `Prelude.seq` Prelude.rnf detectorVersionId+      `Prelude.seq` Prelude.rnf externalModelEndpoints+      `Prelude.seq` Prelude.rnf rules++instance Data.ToHeaders UpdateDetectorVersion where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.UpdateDetectorVersion" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateDetectorVersion where+  toJSON UpdateDetectorVersion' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("modelVersions" Data..=) Prelude.<$> modelVersions,+            ("ruleExecutionMode" Data..=)+              Prelude.<$> ruleExecutionMode,+            Prelude.Just ("detectorId" Data..= detectorId),+            Prelude.Just+              ("detectorVersionId" Data..= detectorVersionId),+            Prelude.Just+              ( "externalModelEndpoints"+                  Data..= externalModelEndpoints+              ),+            Prelude.Just ("rules" Data..= rules)+          ]+      )++instance Data.ToPath UpdateDetectorVersion where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateDetectorVersion where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateDetectorVersionResponse' smart constructor.+data UpdateDetectorVersionResponse = UpdateDetectorVersionResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateDetectorVersionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateDetectorVersionResponse_httpStatus' - The response's http status code.+newUpdateDetectorVersionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateDetectorVersionResponse+newUpdateDetectorVersionResponse pHttpStatus_ =+  UpdateDetectorVersionResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+updateDetectorVersionResponse_httpStatus :: Lens.Lens' UpdateDetectorVersionResponse Prelude.Int+updateDetectorVersionResponse_httpStatus = Lens.lens (\UpdateDetectorVersionResponse' {httpStatus} -> httpStatus) (\s@UpdateDetectorVersionResponse' {} a -> s {httpStatus = a} :: UpdateDetectorVersionResponse)++instance Prelude.NFData UpdateDetectorVersionResponse where+  rnf UpdateDetectorVersionResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/UpdateDetectorVersionMetadata.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.FraudDetector.UpdateDetectorVersionMetadata+-- 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 detector version\'s description. You can update the metadata+-- for any detector version (@DRAFT, ACTIVE,@ or @INACTIVE@).+module Amazonka.FraudDetector.UpdateDetectorVersionMetadata+  ( -- * Creating a Request+    UpdateDetectorVersionMetadata (..),+    newUpdateDetectorVersionMetadata,++    -- * Request Lenses+    updateDetectorVersionMetadata_detectorId,+    updateDetectorVersionMetadata_detectorVersionId,+    updateDetectorVersionMetadata_description,++    -- * Destructuring the Response+    UpdateDetectorVersionMetadataResponse (..),+    newUpdateDetectorVersionMetadataResponse,++    -- * Response Lenses+    updateDetectorVersionMetadataResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateDetectorVersionMetadata' smart constructor.+data UpdateDetectorVersionMetadata = UpdateDetectorVersionMetadata'+  { -- | The detector ID.+    detectorId :: Prelude.Text,+    -- | The detector version ID.+    detectorVersionId :: Prelude.Text,+    -- | The description.+    description :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateDetectorVersionMetadata' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'detectorId', 'updateDetectorVersionMetadata_detectorId' - The detector ID.+--+-- 'detectorVersionId', 'updateDetectorVersionMetadata_detectorVersionId' - The detector version ID.+--+-- 'description', 'updateDetectorVersionMetadata_description' - The description.+newUpdateDetectorVersionMetadata ::+  -- | 'detectorId'+  Prelude.Text ->+  -- | 'detectorVersionId'+  Prelude.Text ->+  -- | 'description'+  Prelude.Text ->+  UpdateDetectorVersionMetadata+newUpdateDetectorVersionMetadata+  pDetectorId_+  pDetectorVersionId_+  pDescription_ =+    UpdateDetectorVersionMetadata'+      { detectorId =+          pDetectorId_,+        detectorVersionId = pDetectorVersionId_,+        description = pDescription_+      }++-- | The detector ID.+updateDetectorVersionMetadata_detectorId :: Lens.Lens' UpdateDetectorVersionMetadata Prelude.Text+updateDetectorVersionMetadata_detectorId = Lens.lens (\UpdateDetectorVersionMetadata' {detectorId} -> detectorId) (\s@UpdateDetectorVersionMetadata' {} a -> s {detectorId = a} :: UpdateDetectorVersionMetadata)++-- | The detector version ID.+updateDetectorVersionMetadata_detectorVersionId :: Lens.Lens' UpdateDetectorVersionMetadata Prelude.Text+updateDetectorVersionMetadata_detectorVersionId = Lens.lens (\UpdateDetectorVersionMetadata' {detectorVersionId} -> detectorVersionId) (\s@UpdateDetectorVersionMetadata' {} a -> s {detectorVersionId = a} :: UpdateDetectorVersionMetadata)++-- | The description.+updateDetectorVersionMetadata_description :: Lens.Lens' UpdateDetectorVersionMetadata Prelude.Text+updateDetectorVersionMetadata_description = Lens.lens (\UpdateDetectorVersionMetadata' {description} -> description) (\s@UpdateDetectorVersionMetadata' {} a -> s {description = a} :: UpdateDetectorVersionMetadata)++instance+  Core.AWSRequest+    UpdateDetectorVersionMetadata+  where+  type+    AWSResponse UpdateDetectorVersionMetadata =+      UpdateDetectorVersionMetadataResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UpdateDetectorVersionMetadataResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    UpdateDetectorVersionMetadata+  where+  hashWithSalt _salt UpdateDetectorVersionMetadata' {..} =+    _salt+      `Prelude.hashWithSalt` detectorId+      `Prelude.hashWithSalt` detectorVersionId+      `Prelude.hashWithSalt` description++instance Prelude.NFData UpdateDetectorVersionMetadata where+  rnf UpdateDetectorVersionMetadata' {..} =+    Prelude.rnf detectorId+      `Prelude.seq` Prelude.rnf detectorVersionId+      `Prelude.seq` Prelude.rnf description++instance Data.ToHeaders UpdateDetectorVersionMetadata where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.UpdateDetectorVersionMetadata" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateDetectorVersionMetadata where+  toJSON UpdateDetectorVersionMetadata' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("detectorId" Data..= detectorId),+            Prelude.Just+              ("detectorVersionId" Data..= detectorVersionId),+            Prelude.Just ("description" Data..= description)+          ]+      )++instance Data.ToPath UpdateDetectorVersionMetadata where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateDetectorVersionMetadata where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateDetectorVersionMetadataResponse' smart constructor.+data UpdateDetectorVersionMetadataResponse = UpdateDetectorVersionMetadataResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateDetectorVersionMetadataResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateDetectorVersionMetadataResponse_httpStatus' - The response's http status code.+newUpdateDetectorVersionMetadataResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateDetectorVersionMetadataResponse+newUpdateDetectorVersionMetadataResponse pHttpStatus_ =+  UpdateDetectorVersionMetadataResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+updateDetectorVersionMetadataResponse_httpStatus :: Lens.Lens' UpdateDetectorVersionMetadataResponse Prelude.Int+updateDetectorVersionMetadataResponse_httpStatus = Lens.lens (\UpdateDetectorVersionMetadataResponse' {httpStatus} -> httpStatus) (\s@UpdateDetectorVersionMetadataResponse' {} a -> s {httpStatus = a} :: UpdateDetectorVersionMetadataResponse)++instance+  Prelude.NFData+    UpdateDetectorVersionMetadataResponse+  where+  rnf UpdateDetectorVersionMetadataResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/UpdateDetectorVersionStatus.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.FraudDetector.UpdateDetectorVersionStatus+-- 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 detector version’s status. You can perform the following+-- promotions or demotions using @UpdateDetectorVersionStatus@: @DRAFT@ to+-- @ACTIVE@, @ACTIVE@ to @INACTIVE@, and @INACTIVE@ to @ACTIVE@.+module Amazonka.FraudDetector.UpdateDetectorVersionStatus+  ( -- * Creating a Request+    UpdateDetectorVersionStatus (..),+    newUpdateDetectorVersionStatus,++    -- * Request Lenses+    updateDetectorVersionStatus_detectorId,+    updateDetectorVersionStatus_detectorVersionId,+    updateDetectorVersionStatus_status,++    -- * Destructuring the Response+    UpdateDetectorVersionStatusResponse (..),+    newUpdateDetectorVersionStatusResponse,++    -- * Response Lenses+    updateDetectorVersionStatusResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateDetectorVersionStatus' smart constructor.+data UpdateDetectorVersionStatus = UpdateDetectorVersionStatus'+  { -- | The detector ID.+    detectorId :: Prelude.Text,+    -- | The detector version ID.+    detectorVersionId :: Prelude.Text,+    -- | The new status.+    --+    -- The only supported values are @ACTIVE@ and @INACTIVE@+    status :: DetectorVersionStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateDetectorVersionStatus' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'detectorId', 'updateDetectorVersionStatus_detectorId' - The detector ID.+--+-- 'detectorVersionId', 'updateDetectorVersionStatus_detectorVersionId' - The detector version ID.+--+-- 'status', 'updateDetectorVersionStatus_status' - The new status.+--+-- The only supported values are @ACTIVE@ and @INACTIVE@+newUpdateDetectorVersionStatus ::+  -- | 'detectorId'+  Prelude.Text ->+  -- | 'detectorVersionId'+  Prelude.Text ->+  -- | 'status'+  DetectorVersionStatus ->+  UpdateDetectorVersionStatus+newUpdateDetectorVersionStatus+  pDetectorId_+  pDetectorVersionId_+  pStatus_ =+    UpdateDetectorVersionStatus'+      { detectorId =+          pDetectorId_,+        detectorVersionId = pDetectorVersionId_,+        status = pStatus_+      }++-- | The detector ID.+updateDetectorVersionStatus_detectorId :: Lens.Lens' UpdateDetectorVersionStatus Prelude.Text+updateDetectorVersionStatus_detectorId = Lens.lens (\UpdateDetectorVersionStatus' {detectorId} -> detectorId) (\s@UpdateDetectorVersionStatus' {} a -> s {detectorId = a} :: UpdateDetectorVersionStatus)++-- | The detector version ID.+updateDetectorVersionStatus_detectorVersionId :: Lens.Lens' UpdateDetectorVersionStatus Prelude.Text+updateDetectorVersionStatus_detectorVersionId = Lens.lens (\UpdateDetectorVersionStatus' {detectorVersionId} -> detectorVersionId) (\s@UpdateDetectorVersionStatus' {} a -> s {detectorVersionId = a} :: UpdateDetectorVersionStatus)++-- | The new status.+--+-- The only supported values are @ACTIVE@ and @INACTIVE@+updateDetectorVersionStatus_status :: Lens.Lens' UpdateDetectorVersionStatus DetectorVersionStatus+updateDetectorVersionStatus_status = Lens.lens (\UpdateDetectorVersionStatus' {status} -> status) (\s@UpdateDetectorVersionStatus' {} a -> s {status = a} :: UpdateDetectorVersionStatus)++instance Core.AWSRequest UpdateDetectorVersionStatus where+  type+    AWSResponse UpdateDetectorVersionStatus =+      UpdateDetectorVersionStatusResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UpdateDetectorVersionStatusResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateDetectorVersionStatus where+  hashWithSalt _salt UpdateDetectorVersionStatus' {..} =+    _salt+      `Prelude.hashWithSalt` detectorId+      `Prelude.hashWithSalt` detectorVersionId+      `Prelude.hashWithSalt` status++instance Prelude.NFData UpdateDetectorVersionStatus where+  rnf UpdateDetectorVersionStatus' {..} =+    Prelude.rnf detectorId+      `Prelude.seq` Prelude.rnf detectorVersionId+      `Prelude.seq` Prelude.rnf status++instance Data.ToHeaders UpdateDetectorVersionStatus where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.UpdateDetectorVersionStatus" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateDetectorVersionStatus where+  toJSON UpdateDetectorVersionStatus' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("detectorId" Data..= detectorId),+            Prelude.Just+              ("detectorVersionId" Data..= detectorVersionId),+            Prelude.Just ("status" Data..= status)+          ]+      )++instance Data.ToPath UpdateDetectorVersionStatus where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateDetectorVersionStatus where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateDetectorVersionStatusResponse' smart constructor.+data UpdateDetectorVersionStatusResponse = UpdateDetectorVersionStatusResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateDetectorVersionStatusResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateDetectorVersionStatusResponse_httpStatus' - The response's http status code.+newUpdateDetectorVersionStatusResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateDetectorVersionStatusResponse+newUpdateDetectorVersionStatusResponse pHttpStatus_ =+  UpdateDetectorVersionStatusResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+updateDetectorVersionStatusResponse_httpStatus :: Lens.Lens' UpdateDetectorVersionStatusResponse Prelude.Int+updateDetectorVersionStatusResponse_httpStatus = Lens.lens (\UpdateDetectorVersionStatusResponse' {httpStatus} -> httpStatus) (\s@UpdateDetectorVersionStatusResponse' {} a -> s {httpStatus = a} :: UpdateDetectorVersionStatusResponse)++instance+  Prelude.NFData+    UpdateDetectorVersionStatusResponse+  where+  rnf UpdateDetectorVersionStatusResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/UpdateEventLabel.hs view
@@ -0,0 +1,214 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.UpdateEventLabel+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates the specified event with a new label.+module Amazonka.FraudDetector.UpdateEventLabel+  ( -- * Creating a Request+    UpdateEventLabel (..),+    newUpdateEventLabel,++    -- * Request Lenses+    updateEventLabel_eventId,+    updateEventLabel_eventTypeName,+    updateEventLabel_assignedLabel,+    updateEventLabel_labelTimestamp,++    -- * Destructuring the Response+    UpdateEventLabelResponse (..),+    newUpdateEventLabelResponse,++    -- * Response Lenses+    updateEventLabelResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateEventLabel' smart constructor.+data UpdateEventLabel = UpdateEventLabel'+  { -- | The ID of the event associated with the label to update.+    eventId :: Prelude.Text,+    -- | The event type of the event associated with the label to update.+    eventTypeName :: Prelude.Text,+    -- | The new label to assign to the event.+    assignedLabel :: Prelude.Text,+    -- | The timestamp associated with the label. The timestamp must be specified+    -- using ISO 8601 standard in UTC.+    labelTimestamp :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateEventLabel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventId', 'updateEventLabel_eventId' - The ID of the event associated with the label to update.+--+-- 'eventTypeName', 'updateEventLabel_eventTypeName' - The event type of the event associated with the label to update.+--+-- 'assignedLabel', 'updateEventLabel_assignedLabel' - The new label to assign to the event.+--+-- 'labelTimestamp', 'updateEventLabel_labelTimestamp' - The timestamp associated with the label. The timestamp must be specified+-- using ISO 8601 standard in UTC.+newUpdateEventLabel ::+  -- | 'eventId'+  Prelude.Text ->+  -- | 'eventTypeName'+  Prelude.Text ->+  -- | 'assignedLabel'+  Prelude.Text ->+  -- | 'labelTimestamp'+  Prelude.Text ->+  UpdateEventLabel+newUpdateEventLabel+  pEventId_+  pEventTypeName_+  pAssignedLabel_+  pLabelTimestamp_ =+    UpdateEventLabel'+      { eventId = pEventId_,+        eventTypeName = pEventTypeName_,+        assignedLabel = pAssignedLabel_,+        labelTimestamp = pLabelTimestamp_+      }++-- | The ID of the event associated with the label to update.+updateEventLabel_eventId :: Lens.Lens' UpdateEventLabel Prelude.Text+updateEventLabel_eventId = Lens.lens (\UpdateEventLabel' {eventId} -> eventId) (\s@UpdateEventLabel' {} a -> s {eventId = a} :: UpdateEventLabel)++-- | The event type of the event associated with the label to update.+updateEventLabel_eventTypeName :: Lens.Lens' UpdateEventLabel Prelude.Text+updateEventLabel_eventTypeName = Lens.lens (\UpdateEventLabel' {eventTypeName} -> eventTypeName) (\s@UpdateEventLabel' {} a -> s {eventTypeName = a} :: UpdateEventLabel)++-- | The new label to assign to the event.+updateEventLabel_assignedLabel :: Lens.Lens' UpdateEventLabel Prelude.Text+updateEventLabel_assignedLabel = Lens.lens (\UpdateEventLabel' {assignedLabel} -> assignedLabel) (\s@UpdateEventLabel' {} a -> s {assignedLabel = a} :: UpdateEventLabel)++-- | The timestamp associated with the label. The timestamp must be specified+-- using ISO 8601 standard in UTC.+updateEventLabel_labelTimestamp :: Lens.Lens' UpdateEventLabel Prelude.Text+updateEventLabel_labelTimestamp = Lens.lens (\UpdateEventLabel' {labelTimestamp} -> labelTimestamp) (\s@UpdateEventLabel' {} a -> s {labelTimestamp = a} :: UpdateEventLabel)++instance Core.AWSRequest UpdateEventLabel where+  type+    AWSResponse UpdateEventLabel =+      UpdateEventLabelResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UpdateEventLabelResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateEventLabel where+  hashWithSalt _salt UpdateEventLabel' {..} =+    _salt+      `Prelude.hashWithSalt` eventId+      `Prelude.hashWithSalt` eventTypeName+      `Prelude.hashWithSalt` assignedLabel+      `Prelude.hashWithSalt` labelTimestamp++instance Prelude.NFData UpdateEventLabel where+  rnf UpdateEventLabel' {..} =+    Prelude.rnf eventId+      `Prelude.seq` Prelude.rnf eventTypeName+      `Prelude.seq` Prelude.rnf assignedLabel+      `Prelude.seq` Prelude.rnf labelTimestamp++instance Data.ToHeaders UpdateEventLabel where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.UpdateEventLabel" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateEventLabel where+  toJSON UpdateEventLabel' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("eventId" Data..= eventId),+            Prelude.Just ("eventTypeName" Data..= eventTypeName),+            Prelude.Just ("assignedLabel" Data..= assignedLabel),+            Prelude.Just+              ("labelTimestamp" Data..= labelTimestamp)+          ]+      )++instance Data.ToPath UpdateEventLabel where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateEventLabel where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateEventLabelResponse' smart constructor.+data UpdateEventLabelResponse = UpdateEventLabelResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateEventLabelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateEventLabelResponse_httpStatus' - The response's http status code.+newUpdateEventLabelResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateEventLabelResponse+newUpdateEventLabelResponse pHttpStatus_ =+  UpdateEventLabelResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+updateEventLabelResponse_httpStatus :: Lens.Lens' UpdateEventLabelResponse Prelude.Int+updateEventLabelResponse_httpStatus = Lens.lens (\UpdateEventLabelResponse' {httpStatus} -> httpStatus) (\s@UpdateEventLabelResponse' {} a -> s {httpStatus = a} :: UpdateEventLabelResponse)++instance Prelude.NFData UpdateEventLabelResponse where+  rnf UpdateEventLabelResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/UpdateModel.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.FraudDetector.UpdateModel+-- 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 model description.+module Amazonka.FraudDetector.UpdateModel+  ( -- * Creating a Request+    UpdateModel (..),+    newUpdateModel,++    -- * Request Lenses+    updateModel_description,+    updateModel_modelId,+    updateModel_modelType,++    -- * Destructuring the Response+    UpdateModelResponse (..),+    newUpdateModelResponse,++    -- * Response Lenses+    updateModelResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateModel' smart constructor.+data UpdateModel = UpdateModel'+  { -- | The new model description.+    description :: Prelude.Maybe Prelude.Text,+    -- | The model ID.+    modelId :: Prelude.Text,+    -- | The model type.+    modelType :: ModelTypeEnum+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateModel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateModel_description' - The new model description.+--+-- 'modelId', 'updateModel_modelId' - The model ID.+--+-- 'modelType', 'updateModel_modelType' - The model type.+newUpdateModel ::+  -- | 'modelId'+  Prelude.Text ->+  -- | 'modelType'+  ModelTypeEnum ->+  UpdateModel+newUpdateModel pModelId_ pModelType_ =+  UpdateModel'+    { description = Prelude.Nothing,+      modelId = pModelId_,+      modelType = pModelType_+    }++-- | The new model description.+updateModel_description :: Lens.Lens' UpdateModel (Prelude.Maybe Prelude.Text)+updateModel_description = Lens.lens (\UpdateModel' {description} -> description) (\s@UpdateModel' {} a -> s {description = a} :: UpdateModel)++-- | The model ID.+updateModel_modelId :: Lens.Lens' UpdateModel Prelude.Text+updateModel_modelId = Lens.lens (\UpdateModel' {modelId} -> modelId) (\s@UpdateModel' {} a -> s {modelId = a} :: UpdateModel)++-- | The model type.+updateModel_modelType :: Lens.Lens' UpdateModel ModelTypeEnum+updateModel_modelType = Lens.lens (\UpdateModel' {modelType} -> modelType) (\s@UpdateModel' {} a -> s {modelType = a} :: UpdateModel)++instance Core.AWSRequest UpdateModel where+  type AWSResponse UpdateModel = UpdateModelResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UpdateModelResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateModel where+  hashWithSalt _salt UpdateModel' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` modelId+      `Prelude.hashWithSalt` modelType++instance Prelude.NFData UpdateModel where+  rnf UpdateModel' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf modelId+      `Prelude.seq` Prelude.rnf modelType++instance Data.ToHeaders UpdateModel where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.UpdateModel" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateModel where+  toJSON UpdateModel' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            Prelude.Just ("modelId" Data..= modelId),+            Prelude.Just ("modelType" Data..= modelType)+          ]+      )++instance Data.ToPath UpdateModel where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateModel where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateModelResponse' smart constructor.+data UpdateModelResponse = UpdateModelResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateModelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateModelResponse_httpStatus' - The response's http status code.+newUpdateModelResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateModelResponse+newUpdateModelResponse pHttpStatus_ =+  UpdateModelResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+updateModelResponse_httpStatus :: Lens.Lens' UpdateModelResponse Prelude.Int+updateModelResponse_httpStatus = Lens.lens (\UpdateModelResponse' {httpStatus} -> httpStatus) (\s@UpdateModelResponse' {} a -> s {httpStatus = a} :: UpdateModelResponse)++instance Prelude.NFData UpdateModelResponse where+  rnf UpdateModelResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/UpdateModelVersion.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.FraudDetector.UpdateModelVersion+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a model version. Updating a model version retrains an existing+-- model version using updated training data and produces a new minor+-- version of the model. You can update the training data set location and+-- data access role attributes using this action. This action creates and+-- trains a new minor version of the model, for example version 1.01, 1.02,+-- 1.03.+module Amazonka.FraudDetector.UpdateModelVersion+  ( -- * Creating a Request+    UpdateModelVersion (..),+    newUpdateModelVersion,++    -- * Request Lenses+    updateModelVersion_externalEventsDetail,+    updateModelVersion_ingestedEventsDetail,+    updateModelVersion_tags,+    updateModelVersion_modelId,+    updateModelVersion_modelType,+    updateModelVersion_majorVersionNumber,++    -- * Destructuring the Response+    UpdateModelVersionResponse (..),+    newUpdateModelVersionResponse,++    -- * Response Lenses+    updateModelVersionResponse_modelId,+    updateModelVersionResponse_modelType,+    updateModelVersionResponse_modelVersionNumber,+    updateModelVersionResponse_status,+    updateModelVersionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateModelVersion' smart constructor.+data UpdateModelVersion = UpdateModelVersion'+  { -- | The details of the external events data used for training the model+    -- version. Required if @trainingDataSource@ is @EXTERNAL_EVENTS@.+    externalEventsDetail :: Prelude.Maybe ExternalEventsDetail,+    -- | The details of the ingested event used for training the model version.+    -- Required if your @trainingDataSource@ is @INGESTED_EVENTS@.+    ingestedEventsDetail :: Prelude.Maybe IngestedEventsDetail,+    -- | A collection of key and value pairs.+    tags :: Prelude.Maybe [Tag],+    -- | The model ID.+    modelId :: Prelude.Text,+    -- | The model type.+    modelType :: ModelTypeEnum,+    -- | The major version number.+    majorVersionNumber :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateModelVersion' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'externalEventsDetail', 'updateModelVersion_externalEventsDetail' - The details of the external events data used for training the model+-- version. Required if @trainingDataSource@ is @EXTERNAL_EVENTS@.+--+-- 'ingestedEventsDetail', 'updateModelVersion_ingestedEventsDetail' - The details of the ingested event used for training the model version.+-- Required if your @trainingDataSource@ is @INGESTED_EVENTS@.+--+-- 'tags', 'updateModelVersion_tags' - A collection of key and value pairs.+--+-- 'modelId', 'updateModelVersion_modelId' - The model ID.+--+-- 'modelType', 'updateModelVersion_modelType' - The model type.+--+-- 'majorVersionNumber', 'updateModelVersion_majorVersionNumber' - The major version number.+newUpdateModelVersion ::+  -- | 'modelId'+  Prelude.Text ->+  -- | 'modelType'+  ModelTypeEnum ->+  -- | 'majorVersionNumber'+  Prelude.Text ->+  UpdateModelVersion+newUpdateModelVersion+  pModelId_+  pModelType_+  pMajorVersionNumber_ =+    UpdateModelVersion'+      { externalEventsDetail =+          Prelude.Nothing,+        ingestedEventsDetail = Prelude.Nothing,+        tags = Prelude.Nothing,+        modelId = pModelId_,+        modelType = pModelType_,+        majorVersionNumber = pMajorVersionNumber_+      }++-- | The details of the external events data used for training the model+-- version. Required if @trainingDataSource@ is @EXTERNAL_EVENTS@.+updateModelVersion_externalEventsDetail :: Lens.Lens' UpdateModelVersion (Prelude.Maybe ExternalEventsDetail)+updateModelVersion_externalEventsDetail = Lens.lens (\UpdateModelVersion' {externalEventsDetail} -> externalEventsDetail) (\s@UpdateModelVersion' {} a -> s {externalEventsDetail = a} :: UpdateModelVersion)++-- | The details of the ingested event used for training the model version.+-- Required if your @trainingDataSource@ is @INGESTED_EVENTS@.+updateModelVersion_ingestedEventsDetail :: Lens.Lens' UpdateModelVersion (Prelude.Maybe IngestedEventsDetail)+updateModelVersion_ingestedEventsDetail = Lens.lens (\UpdateModelVersion' {ingestedEventsDetail} -> ingestedEventsDetail) (\s@UpdateModelVersion' {} a -> s {ingestedEventsDetail = a} :: UpdateModelVersion)++-- | A collection of key and value pairs.+updateModelVersion_tags :: Lens.Lens' UpdateModelVersion (Prelude.Maybe [Tag])+updateModelVersion_tags = Lens.lens (\UpdateModelVersion' {tags} -> tags) (\s@UpdateModelVersion' {} a -> s {tags = a} :: UpdateModelVersion) Prelude.. Lens.mapping Lens.coerced++-- | The model ID.+updateModelVersion_modelId :: Lens.Lens' UpdateModelVersion Prelude.Text+updateModelVersion_modelId = Lens.lens (\UpdateModelVersion' {modelId} -> modelId) (\s@UpdateModelVersion' {} a -> s {modelId = a} :: UpdateModelVersion)++-- | The model type.+updateModelVersion_modelType :: Lens.Lens' UpdateModelVersion ModelTypeEnum+updateModelVersion_modelType = Lens.lens (\UpdateModelVersion' {modelType} -> modelType) (\s@UpdateModelVersion' {} a -> s {modelType = a} :: UpdateModelVersion)++-- | The major version number.+updateModelVersion_majorVersionNumber :: Lens.Lens' UpdateModelVersion Prelude.Text+updateModelVersion_majorVersionNumber = Lens.lens (\UpdateModelVersion' {majorVersionNumber} -> majorVersionNumber) (\s@UpdateModelVersion' {} a -> s {majorVersionNumber = a} :: UpdateModelVersion)++instance Core.AWSRequest UpdateModelVersion where+  type+    AWSResponse UpdateModelVersion =+      UpdateModelVersionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateModelVersionResponse'+            Prelude.<$> (x Data..?> "modelId")+            Prelude.<*> (x Data..?> "modelType")+            Prelude.<*> (x Data..?> "modelVersionNumber")+            Prelude.<*> (x Data..?> "status")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateModelVersion where+  hashWithSalt _salt UpdateModelVersion' {..} =+    _salt+      `Prelude.hashWithSalt` externalEventsDetail+      `Prelude.hashWithSalt` ingestedEventsDetail+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` modelId+      `Prelude.hashWithSalt` modelType+      `Prelude.hashWithSalt` majorVersionNumber++instance Prelude.NFData UpdateModelVersion where+  rnf UpdateModelVersion' {..} =+    Prelude.rnf externalEventsDetail+      `Prelude.seq` Prelude.rnf ingestedEventsDetail+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf modelId+      `Prelude.seq` Prelude.rnf modelType+      `Prelude.seq` Prelude.rnf majorVersionNumber++instance Data.ToHeaders UpdateModelVersion where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.UpdateModelVersion" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateModelVersion where+  toJSON UpdateModelVersion' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("externalEventsDetail" Data..=)+              Prelude.<$> externalEventsDetail,+            ("ingestedEventsDetail" Data..=)+              Prelude.<$> ingestedEventsDetail,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("modelId" Data..= modelId),+            Prelude.Just ("modelType" Data..= modelType),+            Prelude.Just+              ("majorVersionNumber" Data..= majorVersionNumber)+          ]+      )++instance Data.ToPath UpdateModelVersion where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateModelVersion where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateModelVersionResponse' smart constructor.+data UpdateModelVersionResponse = UpdateModelVersionResponse'+  { -- | The model ID.+    modelId :: Prelude.Maybe Prelude.Text,+    -- | The model type.+    modelType :: Prelude.Maybe ModelTypeEnum,+    -- | The model version number of the model version updated.+    modelVersionNumber :: Prelude.Maybe Prelude.Text,+    -- | The status of the updated model version.+    status :: 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 'UpdateModelVersionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'modelId', 'updateModelVersionResponse_modelId' - The model ID.+--+-- 'modelType', 'updateModelVersionResponse_modelType' - The model type.+--+-- 'modelVersionNumber', 'updateModelVersionResponse_modelVersionNumber' - The model version number of the model version updated.+--+-- 'status', 'updateModelVersionResponse_status' - The status of the updated model version.+--+-- 'httpStatus', 'updateModelVersionResponse_httpStatus' - The response's http status code.+newUpdateModelVersionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateModelVersionResponse+newUpdateModelVersionResponse pHttpStatus_ =+  UpdateModelVersionResponse'+    { modelId =+        Prelude.Nothing,+      modelType = Prelude.Nothing,+      modelVersionNumber = Prelude.Nothing,+      status = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The model ID.+updateModelVersionResponse_modelId :: Lens.Lens' UpdateModelVersionResponse (Prelude.Maybe Prelude.Text)+updateModelVersionResponse_modelId = Lens.lens (\UpdateModelVersionResponse' {modelId} -> modelId) (\s@UpdateModelVersionResponse' {} a -> s {modelId = a} :: UpdateModelVersionResponse)++-- | The model type.+updateModelVersionResponse_modelType :: Lens.Lens' UpdateModelVersionResponse (Prelude.Maybe ModelTypeEnum)+updateModelVersionResponse_modelType = Lens.lens (\UpdateModelVersionResponse' {modelType} -> modelType) (\s@UpdateModelVersionResponse' {} a -> s {modelType = a} :: UpdateModelVersionResponse)++-- | The model version number of the model version updated.+updateModelVersionResponse_modelVersionNumber :: Lens.Lens' UpdateModelVersionResponse (Prelude.Maybe Prelude.Text)+updateModelVersionResponse_modelVersionNumber = Lens.lens (\UpdateModelVersionResponse' {modelVersionNumber} -> modelVersionNumber) (\s@UpdateModelVersionResponse' {} a -> s {modelVersionNumber = a} :: UpdateModelVersionResponse)++-- | The status of the updated model version.+updateModelVersionResponse_status :: Lens.Lens' UpdateModelVersionResponse (Prelude.Maybe Prelude.Text)+updateModelVersionResponse_status = Lens.lens (\UpdateModelVersionResponse' {status} -> status) (\s@UpdateModelVersionResponse' {} a -> s {status = a} :: UpdateModelVersionResponse)++-- | The response's http status code.+updateModelVersionResponse_httpStatus :: Lens.Lens' UpdateModelVersionResponse Prelude.Int+updateModelVersionResponse_httpStatus = Lens.lens (\UpdateModelVersionResponse' {httpStatus} -> httpStatus) (\s@UpdateModelVersionResponse' {} a -> s {httpStatus = a} :: UpdateModelVersionResponse)++instance Prelude.NFData UpdateModelVersionResponse where+  rnf UpdateModelVersionResponse' {..} =+    Prelude.rnf modelId+      `Prelude.seq` Prelude.rnf modelType+      `Prelude.seq` Prelude.rnf modelVersionNumber+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/UpdateModelVersionStatus.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.FraudDetector.UpdateModelVersionStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates the status of a model version.+--+-- You can perform the following status updates:+--+-- 1.  Change the @TRAINING_IN_PROGRESS@ status to @TRAINING_CANCELLED@.+--+-- 2.  Change the @TRAINING_COMPLETE@ status to @ACTIVE@.+--+-- 3.  Change @ACTIVE@ to @INACTIVE@.+module Amazonka.FraudDetector.UpdateModelVersionStatus+  ( -- * Creating a Request+    UpdateModelVersionStatus (..),+    newUpdateModelVersionStatus,++    -- * Request Lenses+    updateModelVersionStatus_modelId,+    updateModelVersionStatus_modelType,+    updateModelVersionStatus_modelVersionNumber,+    updateModelVersionStatus_status,++    -- * Destructuring the Response+    UpdateModelVersionStatusResponse (..),+    newUpdateModelVersionStatusResponse,++    -- * Response Lenses+    updateModelVersionStatusResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateModelVersionStatus' smart constructor.+data UpdateModelVersionStatus = UpdateModelVersionStatus'+  { -- | The model ID of the model version to update.+    modelId :: Prelude.Text,+    -- | The model type.+    modelType :: ModelTypeEnum,+    -- | The model version number.+    modelVersionNumber :: Prelude.Text,+    -- | The model version status.+    status :: ModelVersionStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateModelVersionStatus' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'modelId', 'updateModelVersionStatus_modelId' - The model ID of the model version to update.+--+-- 'modelType', 'updateModelVersionStatus_modelType' - The model type.+--+-- 'modelVersionNumber', 'updateModelVersionStatus_modelVersionNumber' - The model version number.+--+-- 'status', 'updateModelVersionStatus_status' - The model version status.+newUpdateModelVersionStatus ::+  -- | 'modelId'+  Prelude.Text ->+  -- | 'modelType'+  ModelTypeEnum ->+  -- | 'modelVersionNumber'+  Prelude.Text ->+  -- | 'status'+  ModelVersionStatus ->+  UpdateModelVersionStatus+newUpdateModelVersionStatus+  pModelId_+  pModelType_+  pModelVersionNumber_+  pStatus_ =+    UpdateModelVersionStatus'+      { modelId = pModelId_,+        modelType = pModelType_,+        modelVersionNumber = pModelVersionNumber_,+        status = pStatus_+      }++-- | The model ID of the model version to update.+updateModelVersionStatus_modelId :: Lens.Lens' UpdateModelVersionStatus Prelude.Text+updateModelVersionStatus_modelId = Lens.lens (\UpdateModelVersionStatus' {modelId} -> modelId) (\s@UpdateModelVersionStatus' {} a -> s {modelId = a} :: UpdateModelVersionStatus)++-- | The model type.+updateModelVersionStatus_modelType :: Lens.Lens' UpdateModelVersionStatus ModelTypeEnum+updateModelVersionStatus_modelType = Lens.lens (\UpdateModelVersionStatus' {modelType} -> modelType) (\s@UpdateModelVersionStatus' {} a -> s {modelType = a} :: UpdateModelVersionStatus)++-- | The model version number.+updateModelVersionStatus_modelVersionNumber :: Lens.Lens' UpdateModelVersionStatus Prelude.Text+updateModelVersionStatus_modelVersionNumber = Lens.lens (\UpdateModelVersionStatus' {modelVersionNumber} -> modelVersionNumber) (\s@UpdateModelVersionStatus' {} a -> s {modelVersionNumber = a} :: UpdateModelVersionStatus)++-- | The model version status.+updateModelVersionStatus_status :: Lens.Lens' UpdateModelVersionStatus ModelVersionStatus+updateModelVersionStatus_status = Lens.lens (\UpdateModelVersionStatus' {status} -> status) (\s@UpdateModelVersionStatus' {} a -> s {status = a} :: UpdateModelVersionStatus)++instance Core.AWSRequest UpdateModelVersionStatus where+  type+    AWSResponse UpdateModelVersionStatus =+      UpdateModelVersionStatusResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UpdateModelVersionStatusResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateModelVersionStatus where+  hashWithSalt _salt UpdateModelVersionStatus' {..} =+    _salt+      `Prelude.hashWithSalt` modelId+      `Prelude.hashWithSalt` modelType+      `Prelude.hashWithSalt` modelVersionNumber+      `Prelude.hashWithSalt` status++instance Prelude.NFData UpdateModelVersionStatus where+  rnf UpdateModelVersionStatus' {..} =+    Prelude.rnf modelId+      `Prelude.seq` Prelude.rnf modelType+      `Prelude.seq` Prelude.rnf modelVersionNumber+      `Prelude.seq` Prelude.rnf status++instance Data.ToHeaders UpdateModelVersionStatus where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.UpdateModelVersionStatus" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateModelVersionStatus where+  toJSON UpdateModelVersionStatus' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("modelId" Data..= modelId),+            Prelude.Just ("modelType" Data..= modelType),+            Prelude.Just+              ("modelVersionNumber" Data..= modelVersionNumber),+            Prelude.Just ("status" Data..= status)+          ]+      )++instance Data.ToPath UpdateModelVersionStatus where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateModelVersionStatus where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateModelVersionStatusResponse' smart constructor.+data UpdateModelVersionStatusResponse = UpdateModelVersionStatusResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateModelVersionStatusResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateModelVersionStatusResponse_httpStatus' - The response's http status code.+newUpdateModelVersionStatusResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateModelVersionStatusResponse+newUpdateModelVersionStatusResponse pHttpStatus_ =+  UpdateModelVersionStatusResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+updateModelVersionStatusResponse_httpStatus :: Lens.Lens' UpdateModelVersionStatusResponse Prelude.Int+updateModelVersionStatusResponse_httpStatus = Lens.lens (\UpdateModelVersionStatusResponse' {httpStatus} -> httpStatus) (\s@UpdateModelVersionStatusResponse' {} a -> s {httpStatus = a} :: UpdateModelVersionStatusResponse)++instance+  Prelude.NFData+    UpdateModelVersionStatusResponse+  where+  rnf UpdateModelVersionStatusResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/UpdateRuleMetadata.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.FraudDetector.UpdateRuleMetadata+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a rule\'s metadata. The description attribute can be updated.+module Amazonka.FraudDetector.UpdateRuleMetadata+  ( -- * Creating a Request+    UpdateRuleMetadata (..),+    newUpdateRuleMetadata,++    -- * Request Lenses+    updateRuleMetadata_rule,+    updateRuleMetadata_description,++    -- * Destructuring the Response+    UpdateRuleMetadataResponse (..),+    newUpdateRuleMetadataResponse,++    -- * Response Lenses+    updateRuleMetadataResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateRuleMetadata' smart constructor.+data UpdateRuleMetadata = UpdateRuleMetadata'+  { -- | The rule to update.+    rule :: Rule,+    -- | The rule description.+    description :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateRuleMetadata' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'rule', 'updateRuleMetadata_rule' - The rule to update.+--+-- 'description', 'updateRuleMetadata_description' - The rule description.+newUpdateRuleMetadata ::+  -- | 'rule'+  Rule ->+  -- | 'description'+  Prelude.Text ->+  UpdateRuleMetadata+newUpdateRuleMetadata pRule_ pDescription_ =+  UpdateRuleMetadata'+    { rule = pRule_,+      description = pDescription_+    }++-- | The rule to update.+updateRuleMetadata_rule :: Lens.Lens' UpdateRuleMetadata Rule+updateRuleMetadata_rule = Lens.lens (\UpdateRuleMetadata' {rule} -> rule) (\s@UpdateRuleMetadata' {} a -> s {rule = a} :: UpdateRuleMetadata)++-- | The rule description.+updateRuleMetadata_description :: Lens.Lens' UpdateRuleMetadata Prelude.Text+updateRuleMetadata_description = Lens.lens (\UpdateRuleMetadata' {description} -> description) (\s@UpdateRuleMetadata' {} a -> s {description = a} :: UpdateRuleMetadata)++instance Core.AWSRequest UpdateRuleMetadata where+  type+    AWSResponse UpdateRuleMetadata =+      UpdateRuleMetadataResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UpdateRuleMetadataResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateRuleMetadata where+  hashWithSalt _salt UpdateRuleMetadata' {..} =+    _salt+      `Prelude.hashWithSalt` rule+      `Prelude.hashWithSalt` description++instance Prelude.NFData UpdateRuleMetadata where+  rnf UpdateRuleMetadata' {..} =+    Prelude.rnf rule+      `Prelude.seq` Prelude.rnf description++instance Data.ToHeaders UpdateRuleMetadata where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.UpdateRuleMetadata" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateRuleMetadata where+  toJSON UpdateRuleMetadata' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("rule" Data..= rule),+            Prelude.Just ("description" Data..= description)+          ]+      )++instance Data.ToPath UpdateRuleMetadata where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateRuleMetadata where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateRuleMetadataResponse' smart constructor.+data UpdateRuleMetadataResponse = UpdateRuleMetadataResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateRuleMetadataResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateRuleMetadataResponse_httpStatus' - The response's http status code.+newUpdateRuleMetadataResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateRuleMetadataResponse+newUpdateRuleMetadataResponse pHttpStatus_ =+  UpdateRuleMetadataResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+updateRuleMetadataResponse_httpStatus :: Lens.Lens' UpdateRuleMetadataResponse Prelude.Int+updateRuleMetadataResponse_httpStatus = Lens.lens (\UpdateRuleMetadataResponse' {httpStatus} -> httpStatus) (\s@UpdateRuleMetadataResponse' {} a -> s {httpStatus = a} :: UpdateRuleMetadataResponse)++instance Prelude.NFData UpdateRuleMetadataResponse where+  rnf UpdateRuleMetadataResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/UpdateRuleVersion.hs view
@@ -0,0 +1,248 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.UpdateRuleVersion+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a rule version resulting in a new rule version. Updates a rule+-- version resulting in a new rule version (version 1, 2, 3 ...).+module Amazonka.FraudDetector.UpdateRuleVersion+  ( -- * Creating a Request+    UpdateRuleVersion (..),+    newUpdateRuleVersion,++    -- * Request Lenses+    updateRuleVersion_description,+    updateRuleVersion_tags,+    updateRuleVersion_rule,+    updateRuleVersion_expression,+    updateRuleVersion_language,+    updateRuleVersion_outcomes,++    -- * Destructuring the Response+    UpdateRuleVersionResponse (..),+    newUpdateRuleVersionResponse,++    -- * Response Lenses+    updateRuleVersionResponse_rule,+    updateRuleVersionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateRuleVersion' smart constructor.+data UpdateRuleVersion = UpdateRuleVersion'+  { -- | The description.+    description :: Prelude.Maybe Prelude.Text,+    -- | The tags to assign to the rule version.+    tags :: Prelude.Maybe [Tag],+    -- | The rule to update.+    rule :: Rule,+    -- | The rule expression.+    expression :: Data.Sensitive Prelude.Text,+    -- | The language.+    language :: Language,+    -- | The outcomes.+    outcomes :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateRuleVersion' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateRuleVersion_description' - The description.+--+-- 'tags', 'updateRuleVersion_tags' - The tags to assign to the rule version.+--+-- 'rule', 'updateRuleVersion_rule' - The rule to update.+--+-- 'expression', 'updateRuleVersion_expression' - The rule expression.+--+-- 'language', 'updateRuleVersion_language' - The language.+--+-- 'outcomes', 'updateRuleVersion_outcomes' - The outcomes.+newUpdateRuleVersion ::+  -- | 'rule'+  Rule ->+  -- | 'expression'+  Prelude.Text ->+  -- | 'language'+  Language ->+  -- | 'outcomes'+  Prelude.NonEmpty Prelude.Text ->+  UpdateRuleVersion+newUpdateRuleVersion+  pRule_+  pExpression_+  pLanguage_+  pOutcomes_ =+    UpdateRuleVersion'+      { description = Prelude.Nothing,+        tags = Prelude.Nothing,+        rule = pRule_,+        expression = Data._Sensitive Lens.# pExpression_,+        language = pLanguage_,+        outcomes = Lens.coerced Lens.# pOutcomes_+      }++-- | The description.+updateRuleVersion_description :: Lens.Lens' UpdateRuleVersion (Prelude.Maybe Prelude.Text)+updateRuleVersion_description = Lens.lens (\UpdateRuleVersion' {description} -> description) (\s@UpdateRuleVersion' {} a -> s {description = a} :: UpdateRuleVersion)++-- | The tags to assign to the rule version.+updateRuleVersion_tags :: Lens.Lens' UpdateRuleVersion (Prelude.Maybe [Tag])+updateRuleVersion_tags = Lens.lens (\UpdateRuleVersion' {tags} -> tags) (\s@UpdateRuleVersion' {} a -> s {tags = a} :: UpdateRuleVersion) Prelude.. Lens.mapping Lens.coerced++-- | The rule to update.+updateRuleVersion_rule :: Lens.Lens' UpdateRuleVersion Rule+updateRuleVersion_rule = Lens.lens (\UpdateRuleVersion' {rule} -> rule) (\s@UpdateRuleVersion' {} a -> s {rule = a} :: UpdateRuleVersion)++-- | The rule expression.+updateRuleVersion_expression :: Lens.Lens' UpdateRuleVersion Prelude.Text+updateRuleVersion_expression = Lens.lens (\UpdateRuleVersion' {expression} -> expression) (\s@UpdateRuleVersion' {} a -> s {expression = a} :: UpdateRuleVersion) Prelude.. Data._Sensitive++-- | The language.+updateRuleVersion_language :: Lens.Lens' UpdateRuleVersion Language+updateRuleVersion_language = Lens.lens (\UpdateRuleVersion' {language} -> language) (\s@UpdateRuleVersion' {} a -> s {language = a} :: UpdateRuleVersion)++-- | The outcomes.+updateRuleVersion_outcomes :: Lens.Lens' UpdateRuleVersion (Prelude.NonEmpty Prelude.Text)+updateRuleVersion_outcomes = Lens.lens (\UpdateRuleVersion' {outcomes} -> outcomes) (\s@UpdateRuleVersion' {} a -> s {outcomes = a} :: UpdateRuleVersion) Prelude.. Lens.coerced++instance Core.AWSRequest UpdateRuleVersion where+  type+    AWSResponse UpdateRuleVersion =+      UpdateRuleVersionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateRuleVersionResponse'+            Prelude.<$> (x Data..?> "rule")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateRuleVersion where+  hashWithSalt _salt UpdateRuleVersion' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` rule+      `Prelude.hashWithSalt` expression+      `Prelude.hashWithSalt` language+      `Prelude.hashWithSalt` outcomes++instance Prelude.NFData UpdateRuleVersion where+  rnf UpdateRuleVersion' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf rule+      `Prelude.seq` Prelude.rnf expression+      `Prelude.seq` Prelude.rnf language+      `Prelude.seq` Prelude.rnf outcomes++instance Data.ToHeaders UpdateRuleVersion where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.UpdateRuleVersion" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateRuleVersion where+  toJSON UpdateRuleVersion' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("rule" Data..= rule),+            Prelude.Just ("expression" Data..= expression),+            Prelude.Just ("language" Data..= language),+            Prelude.Just ("outcomes" Data..= outcomes)+          ]+      )++instance Data.ToPath UpdateRuleVersion where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateRuleVersion where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateRuleVersionResponse' smart constructor.+data UpdateRuleVersionResponse = UpdateRuleVersionResponse'+  { -- | The new rule version that was created.+    rule :: Prelude.Maybe Rule,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateRuleVersionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'rule', 'updateRuleVersionResponse_rule' - The new rule version that was created.+--+-- 'httpStatus', 'updateRuleVersionResponse_httpStatus' - The response's http status code.+newUpdateRuleVersionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateRuleVersionResponse+newUpdateRuleVersionResponse pHttpStatus_ =+  UpdateRuleVersionResponse'+    { rule = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The new rule version that was created.+updateRuleVersionResponse_rule :: Lens.Lens' UpdateRuleVersionResponse (Prelude.Maybe Rule)+updateRuleVersionResponse_rule = Lens.lens (\UpdateRuleVersionResponse' {rule} -> rule) (\s@UpdateRuleVersionResponse' {} a -> s {rule = a} :: UpdateRuleVersionResponse)++-- | The response's http status code.+updateRuleVersionResponse_httpStatus :: Lens.Lens' UpdateRuleVersionResponse Prelude.Int+updateRuleVersionResponse_httpStatus = Lens.lens (\UpdateRuleVersionResponse' {httpStatus} -> httpStatus) (\s@UpdateRuleVersionResponse' {} a -> s {httpStatus = a} :: UpdateRuleVersionResponse)++instance Prelude.NFData UpdateRuleVersionResponse where+  rnf UpdateRuleVersionResponse' {..} =+    Prelude.rnf rule+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/UpdateVariable.hs view
@@ -0,0 +1,200 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.UpdateVariable+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a variable.+module Amazonka.FraudDetector.UpdateVariable+  ( -- * Creating a Request+    UpdateVariable (..),+    newUpdateVariable,++    -- * Request Lenses+    updateVariable_defaultValue,+    updateVariable_description,+    updateVariable_variableType,+    updateVariable_name,++    -- * Destructuring the Response+    UpdateVariableResponse (..),+    newUpdateVariableResponse,++    -- * Response Lenses+    updateVariableResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateVariable' smart constructor.+data UpdateVariable = UpdateVariable'+  { -- | The new default value of the variable.+    defaultValue :: Prelude.Maybe Prelude.Text,+    -- | The new description.+    description :: Prelude.Maybe Prelude.Text,+    -- | The variable type. For more information see+    -- <https://docs.aws.amazon.com/frauddetector/latest/ug/create-a-variable.html#variable-types Variable types>.+    variableType :: Prelude.Maybe Prelude.Text,+    -- | The name of the variable.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateVariable' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'defaultValue', 'updateVariable_defaultValue' - The new default value of the variable.+--+-- 'description', 'updateVariable_description' - The new description.+--+-- 'variableType', 'updateVariable_variableType' - The variable type. For more information see+-- <https://docs.aws.amazon.com/frauddetector/latest/ug/create-a-variable.html#variable-types Variable types>.+--+-- 'name', 'updateVariable_name' - The name of the variable.+newUpdateVariable ::+  -- | 'name'+  Prelude.Text ->+  UpdateVariable+newUpdateVariable pName_ =+  UpdateVariable'+    { defaultValue = Prelude.Nothing,+      description = Prelude.Nothing,+      variableType = Prelude.Nothing,+      name = pName_+    }++-- | The new default value of the variable.+updateVariable_defaultValue :: Lens.Lens' UpdateVariable (Prelude.Maybe Prelude.Text)+updateVariable_defaultValue = Lens.lens (\UpdateVariable' {defaultValue} -> defaultValue) (\s@UpdateVariable' {} a -> s {defaultValue = a} :: UpdateVariable)++-- | The new description.+updateVariable_description :: Lens.Lens' UpdateVariable (Prelude.Maybe Prelude.Text)+updateVariable_description = Lens.lens (\UpdateVariable' {description} -> description) (\s@UpdateVariable' {} a -> s {description = a} :: UpdateVariable)++-- | The variable type. For more information see+-- <https://docs.aws.amazon.com/frauddetector/latest/ug/create-a-variable.html#variable-types Variable types>.+updateVariable_variableType :: Lens.Lens' UpdateVariable (Prelude.Maybe Prelude.Text)+updateVariable_variableType = Lens.lens (\UpdateVariable' {variableType} -> variableType) (\s@UpdateVariable' {} a -> s {variableType = a} :: UpdateVariable)++-- | The name of the variable.+updateVariable_name :: Lens.Lens' UpdateVariable Prelude.Text+updateVariable_name = Lens.lens (\UpdateVariable' {name} -> name) (\s@UpdateVariable' {} a -> s {name = a} :: UpdateVariable)++instance Core.AWSRequest UpdateVariable where+  type+    AWSResponse UpdateVariable =+      UpdateVariableResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UpdateVariableResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateVariable where+  hashWithSalt _salt UpdateVariable' {..} =+    _salt+      `Prelude.hashWithSalt` defaultValue+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` variableType+      `Prelude.hashWithSalt` name++instance Prelude.NFData UpdateVariable where+  rnf UpdateVariable' {..} =+    Prelude.rnf defaultValue+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf variableType+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders UpdateVariable where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSHawksNestServiceFacade.UpdateVariable" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateVariable where+  toJSON UpdateVariable' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("defaultValue" Data..=) Prelude.<$> defaultValue,+            ("description" Data..=) Prelude.<$> description,+            ("variableType" Data..=) Prelude.<$> variableType,+            Prelude.Just ("name" Data..= name)+          ]+      )++instance Data.ToPath UpdateVariable where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateVariable where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateVariableResponse' smart constructor.+data UpdateVariableResponse = UpdateVariableResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateVariableResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateVariableResponse_httpStatus' - The response's http status code.+newUpdateVariableResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateVariableResponse+newUpdateVariableResponse pHttpStatus_ =+  UpdateVariableResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+updateVariableResponse_httpStatus :: Lens.Lens' UpdateVariableResponse Prelude.Int+updateVariableResponse_httpStatus = Lens.lens (\UpdateVariableResponse' {httpStatus} -> httpStatus) (\s@UpdateVariableResponse' {} a -> s {httpStatus = a} :: UpdateVariableResponse)++instance Prelude.NFData UpdateVariableResponse where+  rnf UpdateVariableResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/FraudDetector/Waiters.hs view
@@ -0,0 +1,24 @@+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FraudDetector.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.FraudDetector.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FraudDetector.Lens+import Amazonka.FraudDetector.Types+import qualified Amazonka.Prelude as Prelude
+ src/.gitkeep view
+ test/Main.hs view
@@ -0,0 +1,23 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Main+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Main (main) where++import Test.Amazonka.FraudDetector+import Test.Amazonka.FraudDetector.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "FraudDetector"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/FraudDetector.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.FraudDetector+-- Copyright   : (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.FraudDetector+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/FraudDetector/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.FraudDetector.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.FraudDetector.Internal where
+ test/Test/Amazonka/Gen/FraudDetector.hs view
@@ -0,0 +1,1398 @@+{-# 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.FraudDetector+-- Copyright   : (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.FraudDetector where++import Amazonka.FraudDetector+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.FraudDetector.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"+--         [ requestBatchCreateVariable $+--             newBatchCreateVariable+--+--         , requestBatchGetVariable $+--             newBatchGetVariable+--+--         , requestCancelBatchImportJob $+--             newCancelBatchImportJob+--+--         , requestCancelBatchPredictionJob $+--             newCancelBatchPredictionJob+--+--         , requestCreateBatchImportJob $+--             newCreateBatchImportJob+--+--         , requestCreateBatchPredictionJob $+--             newCreateBatchPredictionJob+--+--         , requestCreateDetectorVersion $+--             newCreateDetectorVersion+--+--         , requestCreateModel $+--             newCreateModel+--+--         , requestCreateModelVersion $+--             newCreateModelVersion+--+--         , requestCreateRule $+--             newCreateRule+--+--         , requestCreateVariable $+--             newCreateVariable+--+--         , requestDeleteBatchImportJob $+--             newDeleteBatchImportJob+--+--         , requestDeleteBatchPredictionJob $+--             newDeleteBatchPredictionJob+--+--         , requestDeleteDetector $+--             newDeleteDetector+--+--         , requestDeleteDetectorVersion $+--             newDeleteDetectorVersion+--+--         , requestDeleteEntityType $+--             newDeleteEntityType+--+--         , requestDeleteEvent $+--             newDeleteEvent+--+--         , requestDeleteEventType $+--             newDeleteEventType+--+--         , requestDeleteEventsByEventType $+--             newDeleteEventsByEventType+--+--         , requestDeleteExternalModel $+--             newDeleteExternalModel+--+--         , requestDeleteLabel $+--             newDeleteLabel+--+--         , requestDeleteModel $+--             newDeleteModel+--+--         , requestDeleteModelVersion $+--             newDeleteModelVersion+--+--         , requestDeleteOutcome $+--             newDeleteOutcome+--+--         , requestDeleteRule $+--             newDeleteRule+--+--         , requestDeleteVariable $+--             newDeleteVariable+--+--         , requestDescribeDetector $+--             newDescribeDetector+--+--         , requestDescribeModelVersions $+--             newDescribeModelVersions+--+--         , requestGetBatchImportJobs $+--             newGetBatchImportJobs+--+--         , requestGetBatchPredictionJobs $+--             newGetBatchPredictionJobs+--+--         , requestGetDeleteEventsByEventTypeStatus $+--             newGetDeleteEventsByEventTypeStatus+--+--         , requestGetDetectorVersion $+--             newGetDetectorVersion+--+--         , requestGetDetectors $+--             newGetDetectors+--+--         , requestGetEntityTypes $+--             newGetEntityTypes+--+--         , requestGetEvent $+--             newGetEvent+--+--         , requestGetEventPrediction $+--             newGetEventPrediction+--+--         , requestGetEventPredictionMetadata $+--             newGetEventPredictionMetadata+--+--         , requestGetEventTypes $+--             newGetEventTypes+--+--         , requestGetExternalModels $+--             newGetExternalModels+--+--         , requestGetKMSEncryptionKey $+--             newGetKMSEncryptionKey+--+--         , requestGetLabels $+--             newGetLabels+--+--         , requestGetModelVersion $+--             newGetModelVersion+--+--         , requestGetModels $+--             newGetModels+--+--         , requestGetOutcomes $+--             newGetOutcomes+--+--         , requestGetRules $+--             newGetRules+--+--         , requestGetVariables $+--             newGetVariables+--+--         , requestListEventPredictions $+--             newListEventPredictions+--+--         , requestListTagsForResource $+--             newListTagsForResource+--+--         , requestPutDetector $+--             newPutDetector+--+--         , requestPutEntityType $+--             newPutEntityType+--+--         , requestPutEventType $+--             newPutEventType+--+--         , requestPutExternalModel $+--             newPutExternalModel+--+--         , requestPutKMSEncryptionKey $+--             newPutKMSEncryptionKey+--+--         , requestPutLabel $+--             newPutLabel+--+--         , requestPutOutcome $+--             newPutOutcome+--+--         , requestSendEvent $+--             newSendEvent+--+--         , requestTagResource $+--             newTagResource+--+--         , requestUntagResource $+--             newUntagResource+--+--         , requestUpdateDetectorVersion $+--             newUpdateDetectorVersion+--+--         , requestUpdateDetectorVersionMetadata $+--             newUpdateDetectorVersionMetadata+--+--         , requestUpdateDetectorVersionStatus $+--             newUpdateDetectorVersionStatus+--+--         , requestUpdateEventLabel $+--             newUpdateEventLabel+--+--         , requestUpdateModel $+--             newUpdateModel+--+--         , requestUpdateModelVersion $+--             newUpdateModelVersion+--+--         , requestUpdateModelVersionStatus $+--             newUpdateModelVersionStatus+--+--         , requestUpdateRuleMetadata $+--             newUpdateRuleMetadata+--+--         , requestUpdateRuleVersion $+--             newUpdateRuleVersion+--+--         , requestUpdateVariable $+--             newUpdateVariable+--+--           ]++--     , testGroup "response"+--         [ responseBatchCreateVariable $+--             newBatchCreateVariableResponse+--+--         , responseBatchGetVariable $+--             newBatchGetVariableResponse+--+--         , responseCancelBatchImportJob $+--             newCancelBatchImportJobResponse+--+--         , responseCancelBatchPredictionJob $+--             newCancelBatchPredictionJobResponse+--+--         , responseCreateBatchImportJob $+--             newCreateBatchImportJobResponse+--+--         , responseCreateBatchPredictionJob $+--             newCreateBatchPredictionJobResponse+--+--         , responseCreateDetectorVersion $+--             newCreateDetectorVersionResponse+--+--         , responseCreateModel $+--             newCreateModelResponse+--+--         , responseCreateModelVersion $+--             newCreateModelVersionResponse+--+--         , responseCreateRule $+--             newCreateRuleResponse+--+--         , responseCreateVariable $+--             newCreateVariableResponse+--+--         , responseDeleteBatchImportJob $+--             newDeleteBatchImportJobResponse+--+--         , responseDeleteBatchPredictionJob $+--             newDeleteBatchPredictionJobResponse+--+--         , responseDeleteDetector $+--             newDeleteDetectorResponse+--+--         , responseDeleteDetectorVersion $+--             newDeleteDetectorVersionResponse+--+--         , responseDeleteEntityType $+--             newDeleteEntityTypeResponse+--+--         , responseDeleteEvent $+--             newDeleteEventResponse+--+--         , responseDeleteEventType $+--             newDeleteEventTypeResponse+--+--         , responseDeleteEventsByEventType $+--             newDeleteEventsByEventTypeResponse+--+--         , responseDeleteExternalModel $+--             newDeleteExternalModelResponse+--+--         , responseDeleteLabel $+--             newDeleteLabelResponse+--+--         , responseDeleteModel $+--             newDeleteModelResponse+--+--         , responseDeleteModelVersion $+--             newDeleteModelVersionResponse+--+--         , responseDeleteOutcome $+--             newDeleteOutcomeResponse+--+--         , responseDeleteRule $+--             newDeleteRuleResponse+--+--         , responseDeleteVariable $+--             newDeleteVariableResponse+--+--         , responseDescribeDetector $+--             newDescribeDetectorResponse+--+--         , responseDescribeModelVersions $+--             newDescribeModelVersionsResponse+--+--         , responseGetBatchImportJobs $+--             newGetBatchImportJobsResponse+--+--         , responseGetBatchPredictionJobs $+--             newGetBatchPredictionJobsResponse+--+--         , responseGetDeleteEventsByEventTypeStatus $+--             newGetDeleteEventsByEventTypeStatusResponse+--+--         , responseGetDetectorVersion $+--             newGetDetectorVersionResponse+--+--         , responseGetDetectors $+--             newGetDetectorsResponse+--+--         , responseGetEntityTypes $+--             newGetEntityTypesResponse+--+--         , responseGetEvent $+--             newGetEventResponse+--+--         , responseGetEventPrediction $+--             newGetEventPredictionResponse+--+--         , responseGetEventPredictionMetadata $+--             newGetEventPredictionMetadataResponse+--+--         , responseGetEventTypes $+--             newGetEventTypesResponse+--+--         , responseGetExternalModels $+--             newGetExternalModelsResponse+--+--         , responseGetKMSEncryptionKey $+--             newGetKMSEncryptionKeyResponse+--+--         , responseGetLabels $+--             newGetLabelsResponse+--+--         , responseGetModelVersion $+--             newGetModelVersionResponse+--+--         , responseGetModels $+--             newGetModelsResponse+--+--         , responseGetOutcomes $+--             newGetOutcomesResponse+--+--         , responseGetRules $+--             newGetRulesResponse+--+--         , responseGetVariables $+--             newGetVariablesResponse+--+--         , responseListEventPredictions $+--             newListEventPredictionsResponse+--+--         , responseListTagsForResource $+--             newListTagsForResourceResponse+--+--         , responsePutDetector $+--             newPutDetectorResponse+--+--         , responsePutEntityType $+--             newPutEntityTypeResponse+--+--         , responsePutEventType $+--             newPutEventTypeResponse+--+--         , responsePutExternalModel $+--             newPutExternalModelResponse+--+--         , responsePutKMSEncryptionKey $+--             newPutKMSEncryptionKeyResponse+--+--         , responsePutLabel $+--             newPutLabelResponse+--+--         , responsePutOutcome $+--             newPutOutcomeResponse+--+--         , responseSendEvent $+--             newSendEventResponse+--+--         , responseTagResource $+--             newTagResourceResponse+--+--         , responseUntagResource $+--             newUntagResourceResponse+--+--         , responseUpdateDetectorVersion $+--             newUpdateDetectorVersionResponse+--+--         , responseUpdateDetectorVersionMetadata $+--             newUpdateDetectorVersionMetadataResponse+--+--         , responseUpdateDetectorVersionStatus $+--             newUpdateDetectorVersionStatusResponse+--+--         , responseUpdateEventLabel $+--             newUpdateEventLabelResponse+--+--         , responseUpdateModel $+--             newUpdateModelResponse+--+--         , responseUpdateModelVersion $+--             newUpdateModelVersionResponse+--+--         , responseUpdateModelVersionStatus $+--             newUpdateModelVersionStatusResponse+--+--         , responseUpdateRuleMetadata $+--             newUpdateRuleMetadataResponse+--+--         , responseUpdateRuleVersion $+--             newUpdateRuleVersionResponse+--+--         , responseUpdateVariable $+--             newUpdateVariableResponse+--+--           ]+--     ]++-- Requests++requestBatchCreateVariable :: BatchCreateVariable -> TestTree+requestBatchCreateVariable =+  req+    "BatchCreateVariable"+    "fixture/BatchCreateVariable.yaml"++requestBatchGetVariable :: BatchGetVariable -> TestTree+requestBatchGetVariable =+  req+    "BatchGetVariable"+    "fixture/BatchGetVariable.yaml"++requestCancelBatchImportJob :: CancelBatchImportJob -> TestTree+requestCancelBatchImportJob =+  req+    "CancelBatchImportJob"+    "fixture/CancelBatchImportJob.yaml"++requestCancelBatchPredictionJob :: CancelBatchPredictionJob -> TestTree+requestCancelBatchPredictionJob =+  req+    "CancelBatchPredictionJob"+    "fixture/CancelBatchPredictionJob.yaml"++requestCreateBatchImportJob :: CreateBatchImportJob -> TestTree+requestCreateBatchImportJob =+  req+    "CreateBatchImportJob"+    "fixture/CreateBatchImportJob.yaml"++requestCreateBatchPredictionJob :: CreateBatchPredictionJob -> TestTree+requestCreateBatchPredictionJob =+  req+    "CreateBatchPredictionJob"+    "fixture/CreateBatchPredictionJob.yaml"++requestCreateDetectorVersion :: CreateDetectorVersion -> TestTree+requestCreateDetectorVersion =+  req+    "CreateDetectorVersion"+    "fixture/CreateDetectorVersion.yaml"++requestCreateModel :: CreateModel -> TestTree+requestCreateModel =+  req+    "CreateModel"+    "fixture/CreateModel.yaml"++requestCreateModelVersion :: CreateModelVersion -> TestTree+requestCreateModelVersion =+  req+    "CreateModelVersion"+    "fixture/CreateModelVersion.yaml"++requestCreateRule :: CreateRule -> TestTree+requestCreateRule =+  req+    "CreateRule"+    "fixture/CreateRule.yaml"++requestCreateVariable :: CreateVariable -> TestTree+requestCreateVariable =+  req+    "CreateVariable"+    "fixture/CreateVariable.yaml"++requestDeleteBatchImportJob :: DeleteBatchImportJob -> TestTree+requestDeleteBatchImportJob =+  req+    "DeleteBatchImportJob"+    "fixture/DeleteBatchImportJob.yaml"++requestDeleteBatchPredictionJob :: DeleteBatchPredictionJob -> TestTree+requestDeleteBatchPredictionJob =+  req+    "DeleteBatchPredictionJob"+    "fixture/DeleteBatchPredictionJob.yaml"++requestDeleteDetector :: DeleteDetector -> TestTree+requestDeleteDetector =+  req+    "DeleteDetector"+    "fixture/DeleteDetector.yaml"++requestDeleteDetectorVersion :: DeleteDetectorVersion -> TestTree+requestDeleteDetectorVersion =+  req+    "DeleteDetectorVersion"+    "fixture/DeleteDetectorVersion.yaml"++requestDeleteEntityType :: DeleteEntityType -> TestTree+requestDeleteEntityType =+  req+    "DeleteEntityType"+    "fixture/DeleteEntityType.yaml"++requestDeleteEvent :: DeleteEvent -> TestTree+requestDeleteEvent =+  req+    "DeleteEvent"+    "fixture/DeleteEvent.yaml"++requestDeleteEventType :: DeleteEventType -> TestTree+requestDeleteEventType =+  req+    "DeleteEventType"+    "fixture/DeleteEventType.yaml"++requestDeleteEventsByEventType :: DeleteEventsByEventType -> TestTree+requestDeleteEventsByEventType =+  req+    "DeleteEventsByEventType"+    "fixture/DeleteEventsByEventType.yaml"++requestDeleteExternalModel :: DeleteExternalModel -> TestTree+requestDeleteExternalModel =+  req+    "DeleteExternalModel"+    "fixture/DeleteExternalModel.yaml"++requestDeleteLabel :: DeleteLabel -> TestTree+requestDeleteLabel =+  req+    "DeleteLabel"+    "fixture/DeleteLabel.yaml"++requestDeleteModel :: DeleteModel -> TestTree+requestDeleteModel =+  req+    "DeleteModel"+    "fixture/DeleteModel.yaml"++requestDeleteModelVersion :: DeleteModelVersion -> TestTree+requestDeleteModelVersion =+  req+    "DeleteModelVersion"+    "fixture/DeleteModelVersion.yaml"++requestDeleteOutcome :: DeleteOutcome -> TestTree+requestDeleteOutcome =+  req+    "DeleteOutcome"+    "fixture/DeleteOutcome.yaml"++requestDeleteRule :: DeleteRule -> TestTree+requestDeleteRule =+  req+    "DeleteRule"+    "fixture/DeleteRule.yaml"++requestDeleteVariable :: DeleteVariable -> TestTree+requestDeleteVariable =+  req+    "DeleteVariable"+    "fixture/DeleteVariable.yaml"++requestDescribeDetector :: DescribeDetector -> TestTree+requestDescribeDetector =+  req+    "DescribeDetector"+    "fixture/DescribeDetector.yaml"++requestDescribeModelVersions :: DescribeModelVersions -> TestTree+requestDescribeModelVersions =+  req+    "DescribeModelVersions"+    "fixture/DescribeModelVersions.yaml"++requestGetBatchImportJobs :: GetBatchImportJobs -> TestTree+requestGetBatchImportJobs =+  req+    "GetBatchImportJobs"+    "fixture/GetBatchImportJobs.yaml"++requestGetBatchPredictionJobs :: GetBatchPredictionJobs -> TestTree+requestGetBatchPredictionJobs =+  req+    "GetBatchPredictionJobs"+    "fixture/GetBatchPredictionJobs.yaml"++requestGetDeleteEventsByEventTypeStatus :: GetDeleteEventsByEventTypeStatus -> TestTree+requestGetDeleteEventsByEventTypeStatus =+  req+    "GetDeleteEventsByEventTypeStatus"+    "fixture/GetDeleteEventsByEventTypeStatus.yaml"++requestGetDetectorVersion :: GetDetectorVersion -> TestTree+requestGetDetectorVersion =+  req+    "GetDetectorVersion"+    "fixture/GetDetectorVersion.yaml"++requestGetDetectors :: GetDetectors -> TestTree+requestGetDetectors =+  req+    "GetDetectors"+    "fixture/GetDetectors.yaml"++requestGetEntityTypes :: GetEntityTypes -> TestTree+requestGetEntityTypes =+  req+    "GetEntityTypes"+    "fixture/GetEntityTypes.yaml"++requestGetEvent :: GetEvent -> TestTree+requestGetEvent =+  req+    "GetEvent"+    "fixture/GetEvent.yaml"++requestGetEventPrediction :: GetEventPrediction -> TestTree+requestGetEventPrediction =+  req+    "GetEventPrediction"+    "fixture/GetEventPrediction.yaml"++requestGetEventPredictionMetadata :: GetEventPredictionMetadata -> TestTree+requestGetEventPredictionMetadata =+  req+    "GetEventPredictionMetadata"+    "fixture/GetEventPredictionMetadata.yaml"++requestGetEventTypes :: GetEventTypes -> TestTree+requestGetEventTypes =+  req+    "GetEventTypes"+    "fixture/GetEventTypes.yaml"++requestGetExternalModels :: GetExternalModels -> TestTree+requestGetExternalModels =+  req+    "GetExternalModels"+    "fixture/GetExternalModels.yaml"++requestGetKMSEncryptionKey :: GetKMSEncryptionKey -> TestTree+requestGetKMSEncryptionKey =+  req+    "GetKMSEncryptionKey"+    "fixture/GetKMSEncryptionKey.yaml"++requestGetLabels :: GetLabels -> TestTree+requestGetLabels =+  req+    "GetLabels"+    "fixture/GetLabels.yaml"++requestGetModelVersion :: GetModelVersion -> TestTree+requestGetModelVersion =+  req+    "GetModelVersion"+    "fixture/GetModelVersion.yaml"++requestGetModels :: GetModels -> TestTree+requestGetModels =+  req+    "GetModels"+    "fixture/GetModels.yaml"++requestGetOutcomes :: GetOutcomes -> TestTree+requestGetOutcomes =+  req+    "GetOutcomes"+    "fixture/GetOutcomes.yaml"++requestGetRules :: GetRules -> TestTree+requestGetRules =+  req+    "GetRules"+    "fixture/GetRules.yaml"++requestGetVariables :: GetVariables -> TestTree+requestGetVariables =+  req+    "GetVariables"+    "fixture/GetVariables.yaml"++requestListEventPredictions :: ListEventPredictions -> TestTree+requestListEventPredictions =+  req+    "ListEventPredictions"+    "fixture/ListEventPredictions.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+  req+    "ListTagsForResource"+    "fixture/ListTagsForResource.yaml"++requestPutDetector :: PutDetector -> TestTree+requestPutDetector =+  req+    "PutDetector"+    "fixture/PutDetector.yaml"++requestPutEntityType :: PutEntityType -> TestTree+requestPutEntityType =+  req+    "PutEntityType"+    "fixture/PutEntityType.yaml"++requestPutEventType :: PutEventType -> TestTree+requestPutEventType =+  req+    "PutEventType"+    "fixture/PutEventType.yaml"++requestPutExternalModel :: PutExternalModel -> TestTree+requestPutExternalModel =+  req+    "PutExternalModel"+    "fixture/PutExternalModel.yaml"++requestPutKMSEncryptionKey :: PutKMSEncryptionKey -> TestTree+requestPutKMSEncryptionKey =+  req+    "PutKMSEncryptionKey"+    "fixture/PutKMSEncryptionKey.yaml"++requestPutLabel :: PutLabel -> TestTree+requestPutLabel =+  req+    "PutLabel"+    "fixture/PutLabel.yaml"++requestPutOutcome :: PutOutcome -> TestTree+requestPutOutcome =+  req+    "PutOutcome"+    "fixture/PutOutcome.yaml"++requestSendEvent :: SendEvent -> TestTree+requestSendEvent =+  req+    "SendEvent"+    "fixture/SendEvent.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+  req+    "TagResource"+    "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+  req+    "UntagResource"+    "fixture/UntagResource.yaml"++requestUpdateDetectorVersion :: UpdateDetectorVersion -> TestTree+requestUpdateDetectorVersion =+  req+    "UpdateDetectorVersion"+    "fixture/UpdateDetectorVersion.yaml"++requestUpdateDetectorVersionMetadata :: UpdateDetectorVersionMetadata -> TestTree+requestUpdateDetectorVersionMetadata =+  req+    "UpdateDetectorVersionMetadata"+    "fixture/UpdateDetectorVersionMetadata.yaml"++requestUpdateDetectorVersionStatus :: UpdateDetectorVersionStatus -> TestTree+requestUpdateDetectorVersionStatus =+  req+    "UpdateDetectorVersionStatus"+    "fixture/UpdateDetectorVersionStatus.yaml"++requestUpdateEventLabel :: UpdateEventLabel -> TestTree+requestUpdateEventLabel =+  req+    "UpdateEventLabel"+    "fixture/UpdateEventLabel.yaml"++requestUpdateModel :: UpdateModel -> TestTree+requestUpdateModel =+  req+    "UpdateModel"+    "fixture/UpdateModel.yaml"++requestUpdateModelVersion :: UpdateModelVersion -> TestTree+requestUpdateModelVersion =+  req+    "UpdateModelVersion"+    "fixture/UpdateModelVersion.yaml"++requestUpdateModelVersionStatus :: UpdateModelVersionStatus -> TestTree+requestUpdateModelVersionStatus =+  req+    "UpdateModelVersionStatus"+    "fixture/UpdateModelVersionStatus.yaml"++requestUpdateRuleMetadata :: UpdateRuleMetadata -> TestTree+requestUpdateRuleMetadata =+  req+    "UpdateRuleMetadata"+    "fixture/UpdateRuleMetadata.yaml"++requestUpdateRuleVersion :: UpdateRuleVersion -> TestTree+requestUpdateRuleVersion =+  req+    "UpdateRuleVersion"+    "fixture/UpdateRuleVersion.yaml"++requestUpdateVariable :: UpdateVariable -> TestTree+requestUpdateVariable =+  req+    "UpdateVariable"+    "fixture/UpdateVariable.yaml"++-- Responses++responseBatchCreateVariable :: BatchCreateVariableResponse -> TestTree+responseBatchCreateVariable =+  res+    "BatchCreateVariableResponse"+    "fixture/BatchCreateVariableResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy BatchCreateVariable)++responseBatchGetVariable :: BatchGetVariableResponse -> TestTree+responseBatchGetVariable =+  res+    "BatchGetVariableResponse"+    "fixture/BatchGetVariableResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy BatchGetVariable)++responseCancelBatchImportJob :: CancelBatchImportJobResponse -> TestTree+responseCancelBatchImportJob =+  res+    "CancelBatchImportJobResponse"+    "fixture/CancelBatchImportJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CancelBatchImportJob)++responseCancelBatchPredictionJob :: CancelBatchPredictionJobResponse -> TestTree+responseCancelBatchPredictionJob =+  res+    "CancelBatchPredictionJobResponse"+    "fixture/CancelBatchPredictionJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CancelBatchPredictionJob)++responseCreateBatchImportJob :: CreateBatchImportJobResponse -> TestTree+responseCreateBatchImportJob =+  res+    "CreateBatchImportJobResponse"+    "fixture/CreateBatchImportJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateBatchImportJob)++responseCreateBatchPredictionJob :: CreateBatchPredictionJobResponse -> TestTree+responseCreateBatchPredictionJob =+  res+    "CreateBatchPredictionJobResponse"+    "fixture/CreateBatchPredictionJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateBatchPredictionJob)++responseCreateDetectorVersion :: CreateDetectorVersionResponse -> TestTree+responseCreateDetectorVersion =+  res+    "CreateDetectorVersionResponse"+    "fixture/CreateDetectorVersionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateDetectorVersion)++responseCreateModel :: CreateModelResponse -> TestTree+responseCreateModel =+  res+    "CreateModelResponse"+    "fixture/CreateModelResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateModel)++responseCreateModelVersion :: CreateModelVersionResponse -> TestTree+responseCreateModelVersion =+  res+    "CreateModelVersionResponse"+    "fixture/CreateModelVersionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateModelVersion)++responseCreateRule :: CreateRuleResponse -> TestTree+responseCreateRule =+  res+    "CreateRuleResponse"+    "fixture/CreateRuleResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateRule)++responseCreateVariable :: CreateVariableResponse -> TestTree+responseCreateVariable =+  res+    "CreateVariableResponse"+    "fixture/CreateVariableResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateVariable)++responseDeleteBatchImportJob :: DeleteBatchImportJobResponse -> TestTree+responseDeleteBatchImportJob =+  res+    "DeleteBatchImportJobResponse"+    "fixture/DeleteBatchImportJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteBatchImportJob)++responseDeleteBatchPredictionJob :: DeleteBatchPredictionJobResponse -> TestTree+responseDeleteBatchPredictionJob =+  res+    "DeleteBatchPredictionJobResponse"+    "fixture/DeleteBatchPredictionJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteBatchPredictionJob)++responseDeleteDetector :: DeleteDetectorResponse -> TestTree+responseDeleteDetector =+  res+    "DeleteDetectorResponse"+    "fixture/DeleteDetectorResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteDetector)++responseDeleteDetectorVersion :: DeleteDetectorVersionResponse -> TestTree+responseDeleteDetectorVersion =+  res+    "DeleteDetectorVersionResponse"+    "fixture/DeleteDetectorVersionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteDetectorVersion)++responseDeleteEntityType :: DeleteEntityTypeResponse -> TestTree+responseDeleteEntityType =+  res+    "DeleteEntityTypeResponse"+    "fixture/DeleteEntityTypeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteEntityType)++responseDeleteEvent :: DeleteEventResponse -> TestTree+responseDeleteEvent =+  res+    "DeleteEventResponse"+    "fixture/DeleteEventResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteEvent)++responseDeleteEventType :: DeleteEventTypeResponse -> TestTree+responseDeleteEventType =+  res+    "DeleteEventTypeResponse"+    "fixture/DeleteEventTypeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteEventType)++responseDeleteEventsByEventType :: DeleteEventsByEventTypeResponse -> TestTree+responseDeleteEventsByEventType =+  res+    "DeleteEventsByEventTypeResponse"+    "fixture/DeleteEventsByEventTypeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteEventsByEventType)++responseDeleteExternalModel :: DeleteExternalModelResponse -> TestTree+responseDeleteExternalModel =+  res+    "DeleteExternalModelResponse"+    "fixture/DeleteExternalModelResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteExternalModel)++responseDeleteLabel :: DeleteLabelResponse -> TestTree+responseDeleteLabel =+  res+    "DeleteLabelResponse"+    "fixture/DeleteLabelResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteLabel)++responseDeleteModel :: DeleteModelResponse -> TestTree+responseDeleteModel =+  res+    "DeleteModelResponse"+    "fixture/DeleteModelResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteModel)++responseDeleteModelVersion :: DeleteModelVersionResponse -> TestTree+responseDeleteModelVersion =+  res+    "DeleteModelVersionResponse"+    "fixture/DeleteModelVersionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteModelVersion)++responseDeleteOutcome :: DeleteOutcomeResponse -> TestTree+responseDeleteOutcome =+  res+    "DeleteOutcomeResponse"+    "fixture/DeleteOutcomeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteOutcome)++responseDeleteRule :: DeleteRuleResponse -> TestTree+responseDeleteRule =+  res+    "DeleteRuleResponse"+    "fixture/DeleteRuleResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteRule)++responseDeleteVariable :: DeleteVariableResponse -> TestTree+responseDeleteVariable =+  res+    "DeleteVariableResponse"+    "fixture/DeleteVariableResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteVariable)++responseDescribeDetector :: DescribeDetectorResponse -> TestTree+responseDescribeDetector =+  res+    "DescribeDetectorResponse"+    "fixture/DescribeDetectorResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeDetector)++responseDescribeModelVersions :: DescribeModelVersionsResponse -> TestTree+responseDescribeModelVersions =+  res+    "DescribeModelVersionsResponse"+    "fixture/DescribeModelVersionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeModelVersions)++responseGetBatchImportJobs :: GetBatchImportJobsResponse -> TestTree+responseGetBatchImportJobs =+  res+    "GetBatchImportJobsResponse"+    "fixture/GetBatchImportJobsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetBatchImportJobs)++responseGetBatchPredictionJobs :: GetBatchPredictionJobsResponse -> TestTree+responseGetBatchPredictionJobs =+  res+    "GetBatchPredictionJobsResponse"+    "fixture/GetBatchPredictionJobsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetBatchPredictionJobs)++responseGetDeleteEventsByEventTypeStatus :: GetDeleteEventsByEventTypeStatusResponse -> TestTree+responseGetDeleteEventsByEventTypeStatus =+  res+    "GetDeleteEventsByEventTypeStatusResponse"+    "fixture/GetDeleteEventsByEventTypeStatusResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetDeleteEventsByEventTypeStatus)++responseGetDetectorVersion :: GetDetectorVersionResponse -> TestTree+responseGetDetectorVersion =+  res+    "GetDetectorVersionResponse"+    "fixture/GetDetectorVersionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetDetectorVersion)++responseGetDetectors :: GetDetectorsResponse -> TestTree+responseGetDetectors =+  res+    "GetDetectorsResponse"+    "fixture/GetDetectorsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetDetectors)++responseGetEntityTypes :: GetEntityTypesResponse -> TestTree+responseGetEntityTypes =+  res+    "GetEntityTypesResponse"+    "fixture/GetEntityTypesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetEntityTypes)++responseGetEvent :: GetEventResponse -> TestTree+responseGetEvent =+  res+    "GetEventResponse"+    "fixture/GetEventResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetEvent)++responseGetEventPrediction :: GetEventPredictionResponse -> TestTree+responseGetEventPrediction =+  res+    "GetEventPredictionResponse"+    "fixture/GetEventPredictionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetEventPrediction)++responseGetEventPredictionMetadata :: GetEventPredictionMetadataResponse -> TestTree+responseGetEventPredictionMetadata =+  res+    "GetEventPredictionMetadataResponse"+    "fixture/GetEventPredictionMetadataResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetEventPredictionMetadata)++responseGetEventTypes :: GetEventTypesResponse -> TestTree+responseGetEventTypes =+  res+    "GetEventTypesResponse"+    "fixture/GetEventTypesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetEventTypes)++responseGetExternalModels :: GetExternalModelsResponse -> TestTree+responseGetExternalModels =+  res+    "GetExternalModelsResponse"+    "fixture/GetExternalModelsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetExternalModels)++responseGetKMSEncryptionKey :: GetKMSEncryptionKeyResponse -> TestTree+responseGetKMSEncryptionKey =+  res+    "GetKMSEncryptionKeyResponse"+    "fixture/GetKMSEncryptionKeyResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetKMSEncryptionKey)++responseGetLabels :: GetLabelsResponse -> TestTree+responseGetLabels =+  res+    "GetLabelsResponse"+    "fixture/GetLabelsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetLabels)++responseGetModelVersion :: GetModelVersionResponse -> TestTree+responseGetModelVersion =+  res+    "GetModelVersionResponse"+    "fixture/GetModelVersionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetModelVersion)++responseGetModels :: GetModelsResponse -> TestTree+responseGetModels =+  res+    "GetModelsResponse"+    "fixture/GetModelsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetModels)++responseGetOutcomes :: GetOutcomesResponse -> TestTree+responseGetOutcomes =+  res+    "GetOutcomesResponse"+    "fixture/GetOutcomesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetOutcomes)++responseGetRules :: GetRulesResponse -> TestTree+responseGetRules =+  res+    "GetRulesResponse"+    "fixture/GetRulesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetRules)++responseGetVariables :: GetVariablesResponse -> TestTree+responseGetVariables =+  res+    "GetVariablesResponse"+    "fixture/GetVariablesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetVariables)++responseListEventPredictions :: ListEventPredictionsResponse -> TestTree+responseListEventPredictions =+  res+    "ListEventPredictionsResponse"+    "fixture/ListEventPredictionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListEventPredictions)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+  res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responsePutDetector :: PutDetectorResponse -> TestTree+responsePutDetector =+  res+    "PutDetectorResponse"+    "fixture/PutDetectorResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy PutDetector)++responsePutEntityType :: PutEntityTypeResponse -> TestTree+responsePutEntityType =+  res+    "PutEntityTypeResponse"+    "fixture/PutEntityTypeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy PutEntityType)++responsePutEventType :: PutEventTypeResponse -> TestTree+responsePutEventType =+  res+    "PutEventTypeResponse"+    "fixture/PutEventTypeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy PutEventType)++responsePutExternalModel :: PutExternalModelResponse -> TestTree+responsePutExternalModel =+  res+    "PutExternalModelResponse"+    "fixture/PutExternalModelResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy PutExternalModel)++responsePutKMSEncryptionKey :: PutKMSEncryptionKeyResponse -> TestTree+responsePutKMSEncryptionKey =+  res+    "PutKMSEncryptionKeyResponse"+    "fixture/PutKMSEncryptionKeyResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy PutKMSEncryptionKey)++responsePutLabel :: PutLabelResponse -> TestTree+responsePutLabel =+  res+    "PutLabelResponse"+    "fixture/PutLabelResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy PutLabel)++responsePutOutcome :: PutOutcomeResponse -> TestTree+responsePutOutcome =+  res+    "PutOutcomeResponse"+    "fixture/PutOutcomeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy PutOutcome)++responseSendEvent :: SendEventResponse -> TestTree+responseSendEvent =+  res+    "SendEventResponse"+    "fixture/SendEventResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy SendEvent)++responseTagResource :: TagResourceResponse -> TestTree+responseTagResource =+  res+    "TagResourceResponse"+    "fixture/TagResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy TagResource)++responseUntagResource :: UntagResourceResponse -> TestTree+responseUntagResource =+  res+    "UntagResourceResponse"+    "fixture/UntagResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UntagResource)++responseUpdateDetectorVersion :: UpdateDetectorVersionResponse -> TestTree+responseUpdateDetectorVersion =+  res+    "UpdateDetectorVersionResponse"+    "fixture/UpdateDetectorVersionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateDetectorVersion)++responseUpdateDetectorVersionMetadata :: UpdateDetectorVersionMetadataResponse -> TestTree+responseUpdateDetectorVersionMetadata =+  res+    "UpdateDetectorVersionMetadataResponse"+    "fixture/UpdateDetectorVersionMetadataResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateDetectorVersionMetadata)++responseUpdateDetectorVersionStatus :: UpdateDetectorVersionStatusResponse -> TestTree+responseUpdateDetectorVersionStatus =+  res+    "UpdateDetectorVersionStatusResponse"+    "fixture/UpdateDetectorVersionStatusResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateDetectorVersionStatus)++responseUpdateEventLabel :: UpdateEventLabelResponse -> TestTree+responseUpdateEventLabel =+  res+    "UpdateEventLabelResponse"+    "fixture/UpdateEventLabelResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateEventLabel)++responseUpdateModel :: UpdateModelResponse -> TestTree+responseUpdateModel =+  res+    "UpdateModelResponse"+    "fixture/UpdateModelResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateModel)++responseUpdateModelVersion :: UpdateModelVersionResponse -> TestTree+responseUpdateModelVersion =+  res+    "UpdateModelVersionResponse"+    "fixture/UpdateModelVersionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateModelVersion)++responseUpdateModelVersionStatus :: UpdateModelVersionStatusResponse -> TestTree+responseUpdateModelVersionStatus =+  res+    "UpdateModelVersionStatusResponse"+    "fixture/UpdateModelVersionStatusResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateModelVersionStatus)++responseUpdateRuleMetadata :: UpdateRuleMetadataResponse -> TestTree+responseUpdateRuleMetadata =+  res+    "UpdateRuleMetadataResponse"+    "fixture/UpdateRuleMetadataResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateRuleMetadata)++responseUpdateRuleVersion :: UpdateRuleVersionResponse -> TestTree+responseUpdateRuleVersion =+  res+    "UpdateRuleVersionResponse"+    "fixture/UpdateRuleVersionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateRuleVersion)++responseUpdateVariable :: UpdateVariableResponse -> TestTree+responseUpdateVariable =+  res+    "UpdateVariableResponse"+    "fixture/UpdateVariableResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateVariable)