packages feed

amazonka-personalize (empty) → 2.0

raw patch · 280 files changed

+29532/−0 lines, 280 filesdep +amazonka-coredep +amazonka-personalizedep +amazonka-test

Dependencies added: amazonka-core, amazonka-personalize, 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 Personalize SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2018-05-22@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-personalize)+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.Personalize](http://hackage.haskell.org/package/amazonka-personalize/docs/Amazonka-Personalize.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-personalize` 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-personalize.cabal view
@@ -0,0 +1,219 @@+cabal-version:      2.2+name:               amazonka-personalize+version:            2.0+synopsis:           Amazon Personalize 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 @2018-05-22@ 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.Personalize.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.Personalize" 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-personalize++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.Personalize+    Amazonka.Personalize.CreateBatchInferenceJob+    Amazonka.Personalize.CreateBatchSegmentJob+    Amazonka.Personalize.CreateCampaign+    Amazonka.Personalize.CreateDataset+    Amazonka.Personalize.CreateDatasetExportJob+    Amazonka.Personalize.CreateDatasetGroup+    Amazonka.Personalize.CreateDatasetImportJob+    Amazonka.Personalize.CreateEventTracker+    Amazonka.Personalize.CreateFilter+    Amazonka.Personalize.CreateMetricAttribution+    Amazonka.Personalize.CreateRecommender+    Amazonka.Personalize.CreateSchema+    Amazonka.Personalize.CreateSolution+    Amazonka.Personalize.CreateSolutionVersion+    Amazonka.Personalize.DeleteCampaign+    Amazonka.Personalize.DeleteDataset+    Amazonka.Personalize.DeleteDatasetGroup+    Amazonka.Personalize.DeleteEventTracker+    Amazonka.Personalize.DeleteFilter+    Amazonka.Personalize.DeleteMetricAttribution+    Amazonka.Personalize.DeleteRecommender+    Amazonka.Personalize.DeleteSchema+    Amazonka.Personalize.DeleteSolution+    Amazonka.Personalize.DescribeAlgorithm+    Amazonka.Personalize.DescribeBatchInferenceJob+    Amazonka.Personalize.DescribeBatchSegmentJob+    Amazonka.Personalize.DescribeCampaign+    Amazonka.Personalize.DescribeDataset+    Amazonka.Personalize.DescribeDatasetExportJob+    Amazonka.Personalize.DescribeDatasetGroup+    Amazonka.Personalize.DescribeDatasetImportJob+    Amazonka.Personalize.DescribeEventTracker+    Amazonka.Personalize.DescribeFeatureTransformation+    Amazonka.Personalize.DescribeFilter+    Amazonka.Personalize.DescribeMetricAttribution+    Amazonka.Personalize.DescribeRecipe+    Amazonka.Personalize.DescribeRecommender+    Amazonka.Personalize.DescribeSchema+    Amazonka.Personalize.DescribeSolution+    Amazonka.Personalize.DescribeSolutionVersion+    Amazonka.Personalize.GetSolutionMetrics+    Amazonka.Personalize.Lens+    Amazonka.Personalize.ListBatchInferenceJobs+    Amazonka.Personalize.ListBatchSegmentJobs+    Amazonka.Personalize.ListCampaigns+    Amazonka.Personalize.ListDatasetExportJobs+    Amazonka.Personalize.ListDatasetGroups+    Amazonka.Personalize.ListDatasetImportJobs+    Amazonka.Personalize.ListDatasets+    Amazonka.Personalize.ListEventTrackers+    Amazonka.Personalize.ListFilters+    Amazonka.Personalize.ListMetricAttributionMetrics+    Amazonka.Personalize.ListMetricAttributions+    Amazonka.Personalize.ListRecipes+    Amazonka.Personalize.ListRecommenders+    Amazonka.Personalize.ListSchemas+    Amazonka.Personalize.ListSolutions+    Amazonka.Personalize.ListSolutionVersions+    Amazonka.Personalize.ListTagsForResource+    Amazonka.Personalize.StartRecommender+    Amazonka.Personalize.StopRecommender+    Amazonka.Personalize.StopSolutionVersionCreation+    Amazonka.Personalize.TagResource+    Amazonka.Personalize.Types+    Amazonka.Personalize.Types.Algorithm+    Amazonka.Personalize.Types.AlgorithmImage+    Amazonka.Personalize.Types.AutoMLConfig+    Amazonka.Personalize.Types.AutoMLResult+    Amazonka.Personalize.Types.BatchInferenceJob+    Amazonka.Personalize.Types.BatchInferenceJobConfig+    Amazonka.Personalize.Types.BatchInferenceJobInput+    Amazonka.Personalize.Types.BatchInferenceJobOutput+    Amazonka.Personalize.Types.BatchInferenceJobSummary+    Amazonka.Personalize.Types.BatchSegmentJob+    Amazonka.Personalize.Types.BatchSegmentJobInput+    Amazonka.Personalize.Types.BatchSegmentJobOutput+    Amazonka.Personalize.Types.BatchSegmentJobSummary+    Amazonka.Personalize.Types.Campaign+    Amazonka.Personalize.Types.CampaignConfig+    Amazonka.Personalize.Types.CampaignSummary+    Amazonka.Personalize.Types.CampaignUpdateSummary+    Amazonka.Personalize.Types.CategoricalHyperParameterRange+    Amazonka.Personalize.Types.ContinuousHyperParameterRange+    Amazonka.Personalize.Types.Dataset+    Amazonka.Personalize.Types.DatasetExportJob+    Amazonka.Personalize.Types.DatasetExportJobOutput+    Amazonka.Personalize.Types.DatasetExportJobSummary+    Amazonka.Personalize.Types.DatasetGroup+    Amazonka.Personalize.Types.DatasetGroupSummary+    Amazonka.Personalize.Types.DatasetImportJob+    Amazonka.Personalize.Types.DatasetImportJobSummary+    Amazonka.Personalize.Types.DatasetSchema+    Amazonka.Personalize.Types.DatasetSchemaSummary+    Amazonka.Personalize.Types.DatasetSummary+    Amazonka.Personalize.Types.DataSource+    Amazonka.Personalize.Types.DefaultCategoricalHyperParameterRange+    Amazonka.Personalize.Types.DefaultContinuousHyperParameterRange+    Amazonka.Personalize.Types.DefaultHyperParameterRanges+    Amazonka.Personalize.Types.DefaultIntegerHyperParameterRange+    Amazonka.Personalize.Types.Domain+    Amazonka.Personalize.Types.EventTracker+    Amazonka.Personalize.Types.EventTrackerSummary+    Amazonka.Personalize.Types.FeatureTransformation+    Amazonka.Personalize.Types.Filter+    Amazonka.Personalize.Types.FilterSummary+    Amazonka.Personalize.Types.HPOConfig+    Amazonka.Personalize.Types.HPOObjective+    Amazonka.Personalize.Types.HPOResourceConfig+    Amazonka.Personalize.Types.HyperParameterRanges+    Amazonka.Personalize.Types.ImportMode+    Amazonka.Personalize.Types.IngestionMode+    Amazonka.Personalize.Types.IntegerHyperParameterRange+    Amazonka.Personalize.Types.MetricAttribute+    Amazonka.Personalize.Types.MetricAttribution+    Amazonka.Personalize.Types.MetricAttributionOutput+    Amazonka.Personalize.Types.MetricAttributionSummary+    Amazonka.Personalize.Types.ObjectiveSensitivity+    Amazonka.Personalize.Types.OptimizationObjective+    Amazonka.Personalize.Types.Recipe+    Amazonka.Personalize.Types.RecipeProvider+    Amazonka.Personalize.Types.RecipeSummary+    Amazonka.Personalize.Types.Recommender+    Amazonka.Personalize.Types.RecommenderConfig+    Amazonka.Personalize.Types.RecommenderSummary+    Amazonka.Personalize.Types.RecommenderUpdateSummary+    Amazonka.Personalize.Types.S3DataConfig+    Amazonka.Personalize.Types.Solution+    Amazonka.Personalize.Types.SolutionConfig+    Amazonka.Personalize.Types.SolutionSummary+    Amazonka.Personalize.Types.SolutionVersion+    Amazonka.Personalize.Types.SolutionVersionSummary+    Amazonka.Personalize.Types.Tag+    Amazonka.Personalize.Types.TrainingMode+    Amazonka.Personalize.Types.TunedHPOParams+    Amazonka.Personalize.UntagResource+    Amazonka.Personalize.UpdateCampaign+    Amazonka.Personalize.UpdateMetricAttribution+    Amazonka.Personalize.UpdateRecommender+    Amazonka.Personalize.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-personalize-test+  type:             exitcode-stdio-1.0+  default-language: Haskell2010+  hs-source-dirs:   test+  main-is:          Main.hs+  ghc-options:      -Wall -threaded++  -- This section is encoded by the template and any modules added by+  -- hand outside these namespaces will not correctly be added to the+  -- distribution package.+  other-modules:+    Test.Amazonka.Gen.Personalize+    Test.Amazonka.Personalize+    Test.Amazonka.Personalize.Internal++  build-depends:+    , amazonka-core         >=2.0 && <2.1+    , amazonka-personalize+    , amazonka-test         >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/CreateBatchInferenceJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/CreateBatchInferenceJobResponse.proto view
+ fixture/CreateBatchSegmentJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/CreateBatchSegmentJobResponse.proto view
+ fixture/CreateCampaign.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/CreateCampaignResponse.proto view
+ fixture/CreateDataset.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/CreateDatasetExportJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/CreateDatasetExportJobResponse.proto view
+ fixture/CreateDatasetGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/CreateDatasetGroupResponse.proto view
+ fixture/CreateDatasetImportJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/CreateDatasetImportJobResponse.proto view
+ fixture/CreateDatasetResponse.proto view
+ fixture/CreateEventTracker.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/CreateEventTrackerResponse.proto view
+ fixture/CreateFilter.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/CreateFilterResponse.proto view
+ fixture/CreateMetricAttribution.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/CreateMetricAttributionResponse.proto view
+ fixture/CreateRecommender.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/CreateRecommenderResponse.proto view
+ fixture/CreateSchema.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/CreateSchemaResponse.proto view
+ fixture/CreateSolution.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/CreateSolutionResponse.proto view
+ fixture/CreateSolutionVersion.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/CreateSolutionVersionResponse.proto view
+ fixture/DeleteCampaign.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/DeleteCampaignResponse.proto view
+ fixture/DeleteDataset.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/DeleteDatasetGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/DeleteDatasetGroupResponse.proto view
+ fixture/DeleteDatasetResponse.proto view
+ fixture/DeleteEventTracker.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/DeleteEventTrackerResponse.proto view
+ fixture/DeleteFilter.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/DeleteFilterResponse.proto view
+ fixture/DeleteMetricAttribution.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/DeleteMetricAttributionResponse.proto view
+ fixture/DeleteRecommender.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/DeleteRecommenderResponse.proto view
+ fixture/DeleteSchema.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/DeleteSchemaResponse.proto view
+ fixture/DeleteSolution.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/DeleteSolutionResponse.proto view
+ fixture/DescribeAlgorithm.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/DescribeAlgorithmResponse.proto view
+ fixture/DescribeBatchInferenceJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/DescribeBatchInferenceJobResponse.proto view
+ fixture/DescribeBatchSegmentJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/DescribeBatchSegmentJobResponse.proto view
+ fixture/DescribeCampaign.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/DescribeCampaignResponse.proto view
+ fixture/DescribeDataset.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/DescribeDatasetExportJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/DescribeDatasetExportJobResponse.proto view
+ fixture/DescribeDatasetGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/DescribeDatasetGroupResponse.proto view
+ fixture/DescribeDatasetImportJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/DescribeDatasetImportJobResponse.proto view
+ fixture/DescribeDatasetResponse.proto view
+ fixture/DescribeEventTracker.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/DescribeEventTrackerResponse.proto view
+ fixture/DescribeFeatureTransformation.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/DescribeFeatureTransformationResponse.proto view
+ fixture/DescribeFilter.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/DescribeFilterResponse.proto view
+ fixture/DescribeMetricAttribution.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/DescribeMetricAttributionResponse.proto view
+ fixture/DescribeRecipe.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/DescribeRecipeResponse.proto view
+ fixture/DescribeRecommender.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/DescribeRecommenderResponse.proto view
+ fixture/DescribeSchema.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/DescribeSchemaResponse.proto view
+ fixture/DescribeSolution.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/DescribeSolutionResponse.proto view
+ fixture/DescribeSolutionVersion.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/DescribeSolutionVersionResponse.proto view
+ fixture/GetSolutionMetrics.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/GetSolutionMetricsResponse.proto view
+ fixture/ListBatchInferenceJobs.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/ListBatchInferenceJobsResponse.proto view
+ fixture/ListBatchSegmentJobs.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/ListBatchSegmentJobsResponse.proto view
+ fixture/ListCampaigns.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/ListCampaignsResponse.proto view
+ fixture/ListDatasetExportJobs.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/ListDatasetExportJobsResponse.proto view
+ fixture/ListDatasetGroups.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/ListDatasetGroupsResponse.proto view
+ fixture/ListDatasetImportJobs.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/ListDatasetImportJobsResponse.proto view
+ fixture/ListDatasets.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/ListDatasetsResponse.proto view
+ fixture/ListEventTrackers.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/ListEventTrackersResponse.proto view
+ fixture/ListFilters.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/ListFiltersResponse.proto view
+ fixture/ListMetricAttributionMetrics.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/ListMetricAttributionMetricsResponse.proto view
+ fixture/ListMetricAttributions.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/ListMetricAttributionsResponse.proto view
+ fixture/ListRecipes.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/ListRecipesResponse.proto view
+ fixture/ListRecommenders.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/ListRecommendersResponse.proto view
+ fixture/ListSchemas.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/ListSchemasResponse.proto view
+ fixture/ListSolutionVersions.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/ListSolutionVersionsResponse.proto view
+ fixture/ListSolutions.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/ListSolutionsResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/StartRecommender.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/StartRecommenderResponse.proto view
+ fixture/StopRecommender.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/StopRecommenderResponse.proto view
+ fixture/StopSolutionVersionCreation.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/StopSolutionVersionCreationResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/UpdateCampaign.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/UpdateCampaignResponse.proto view
+ fixture/UpdateMetricAttribution.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/UpdateMetricAttributionResponse.proto view
+ fixture/UpdateRecommender.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/personalize/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  personalize.us-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/UpdateRecommenderResponse.proto view
+ gen/Amazonka/Personalize.hs view
@@ -0,0 +1,822 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.Personalize+-- 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 @2018-05-22@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- Amazon Personalize is a machine learning service that makes it easy to+-- add individualized recommendations to customers.+module Amazonka.Personalize+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** InvalidInputException+    _InvalidInputException,++    -- ** InvalidNextTokenException+    _InvalidNextTokenException,++    -- ** LimitExceededException+    _LimitExceededException,++    -- ** ResourceAlreadyExistsException+    _ResourceAlreadyExistsException,++    -- ** ResourceInUseException+    _ResourceInUseException,++    -- ** ResourceNotFoundException+    _ResourceNotFoundException,++    -- ** TooManyTagKeysException+    _TooManyTagKeysException,++    -- ** TooManyTagsException+    _TooManyTagsException,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** CreateBatchInferenceJob+    CreateBatchInferenceJob (CreateBatchInferenceJob'),+    newCreateBatchInferenceJob,+    CreateBatchInferenceJobResponse (CreateBatchInferenceJobResponse'),+    newCreateBatchInferenceJobResponse,++    -- ** CreateBatchSegmentJob+    CreateBatchSegmentJob (CreateBatchSegmentJob'),+    newCreateBatchSegmentJob,+    CreateBatchSegmentJobResponse (CreateBatchSegmentJobResponse'),+    newCreateBatchSegmentJobResponse,++    -- ** CreateCampaign+    CreateCampaign (CreateCampaign'),+    newCreateCampaign,+    CreateCampaignResponse (CreateCampaignResponse'),+    newCreateCampaignResponse,++    -- ** CreateDataset+    CreateDataset (CreateDataset'),+    newCreateDataset,+    CreateDatasetResponse (CreateDatasetResponse'),+    newCreateDatasetResponse,++    -- ** CreateDatasetExportJob+    CreateDatasetExportJob (CreateDatasetExportJob'),+    newCreateDatasetExportJob,+    CreateDatasetExportJobResponse (CreateDatasetExportJobResponse'),+    newCreateDatasetExportJobResponse,++    -- ** CreateDatasetGroup+    CreateDatasetGroup (CreateDatasetGroup'),+    newCreateDatasetGroup,+    CreateDatasetGroupResponse (CreateDatasetGroupResponse'),+    newCreateDatasetGroupResponse,++    -- ** CreateDatasetImportJob+    CreateDatasetImportJob (CreateDatasetImportJob'),+    newCreateDatasetImportJob,+    CreateDatasetImportJobResponse (CreateDatasetImportJobResponse'),+    newCreateDatasetImportJobResponse,++    -- ** CreateEventTracker+    CreateEventTracker (CreateEventTracker'),+    newCreateEventTracker,+    CreateEventTrackerResponse (CreateEventTrackerResponse'),+    newCreateEventTrackerResponse,++    -- ** CreateFilter+    CreateFilter (CreateFilter'),+    newCreateFilter,+    CreateFilterResponse (CreateFilterResponse'),+    newCreateFilterResponse,++    -- ** CreateMetricAttribution+    CreateMetricAttribution (CreateMetricAttribution'),+    newCreateMetricAttribution,+    CreateMetricAttributionResponse (CreateMetricAttributionResponse'),+    newCreateMetricAttributionResponse,++    -- ** CreateRecommender+    CreateRecommender (CreateRecommender'),+    newCreateRecommender,+    CreateRecommenderResponse (CreateRecommenderResponse'),+    newCreateRecommenderResponse,++    -- ** CreateSchema+    CreateSchema (CreateSchema'),+    newCreateSchema,+    CreateSchemaResponse (CreateSchemaResponse'),+    newCreateSchemaResponse,++    -- ** CreateSolution+    CreateSolution (CreateSolution'),+    newCreateSolution,+    CreateSolutionResponse (CreateSolutionResponse'),+    newCreateSolutionResponse,++    -- ** CreateSolutionVersion+    CreateSolutionVersion (CreateSolutionVersion'),+    newCreateSolutionVersion,+    CreateSolutionVersionResponse (CreateSolutionVersionResponse'),+    newCreateSolutionVersionResponse,++    -- ** DeleteCampaign+    DeleteCampaign (DeleteCampaign'),+    newDeleteCampaign,+    DeleteCampaignResponse (DeleteCampaignResponse'),+    newDeleteCampaignResponse,++    -- ** DeleteDataset+    DeleteDataset (DeleteDataset'),+    newDeleteDataset,+    DeleteDatasetResponse (DeleteDatasetResponse'),+    newDeleteDatasetResponse,++    -- ** DeleteDatasetGroup+    DeleteDatasetGroup (DeleteDatasetGroup'),+    newDeleteDatasetGroup,+    DeleteDatasetGroupResponse (DeleteDatasetGroupResponse'),+    newDeleteDatasetGroupResponse,++    -- ** DeleteEventTracker+    DeleteEventTracker (DeleteEventTracker'),+    newDeleteEventTracker,+    DeleteEventTrackerResponse (DeleteEventTrackerResponse'),+    newDeleteEventTrackerResponse,++    -- ** DeleteFilter+    DeleteFilter (DeleteFilter'),+    newDeleteFilter,+    DeleteFilterResponse (DeleteFilterResponse'),+    newDeleteFilterResponse,++    -- ** DeleteMetricAttribution+    DeleteMetricAttribution (DeleteMetricAttribution'),+    newDeleteMetricAttribution,+    DeleteMetricAttributionResponse (DeleteMetricAttributionResponse'),+    newDeleteMetricAttributionResponse,++    -- ** DeleteRecommender+    DeleteRecommender (DeleteRecommender'),+    newDeleteRecommender,+    DeleteRecommenderResponse (DeleteRecommenderResponse'),+    newDeleteRecommenderResponse,++    -- ** DeleteSchema+    DeleteSchema (DeleteSchema'),+    newDeleteSchema,+    DeleteSchemaResponse (DeleteSchemaResponse'),+    newDeleteSchemaResponse,++    -- ** DeleteSolution+    DeleteSolution (DeleteSolution'),+    newDeleteSolution,+    DeleteSolutionResponse (DeleteSolutionResponse'),+    newDeleteSolutionResponse,++    -- ** DescribeAlgorithm+    DescribeAlgorithm (DescribeAlgorithm'),+    newDescribeAlgorithm,+    DescribeAlgorithmResponse (DescribeAlgorithmResponse'),+    newDescribeAlgorithmResponse,++    -- ** DescribeBatchInferenceJob+    DescribeBatchInferenceJob (DescribeBatchInferenceJob'),+    newDescribeBatchInferenceJob,+    DescribeBatchInferenceJobResponse (DescribeBatchInferenceJobResponse'),+    newDescribeBatchInferenceJobResponse,++    -- ** DescribeBatchSegmentJob+    DescribeBatchSegmentJob (DescribeBatchSegmentJob'),+    newDescribeBatchSegmentJob,+    DescribeBatchSegmentJobResponse (DescribeBatchSegmentJobResponse'),+    newDescribeBatchSegmentJobResponse,++    -- ** DescribeCampaign+    DescribeCampaign (DescribeCampaign'),+    newDescribeCampaign,+    DescribeCampaignResponse (DescribeCampaignResponse'),+    newDescribeCampaignResponse,++    -- ** DescribeDataset+    DescribeDataset (DescribeDataset'),+    newDescribeDataset,+    DescribeDatasetResponse (DescribeDatasetResponse'),+    newDescribeDatasetResponse,++    -- ** DescribeDatasetExportJob+    DescribeDatasetExportJob (DescribeDatasetExportJob'),+    newDescribeDatasetExportJob,+    DescribeDatasetExportJobResponse (DescribeDatasetExportJobResponse'),+    newDescribeDatasetExportJobResponse,++    -- ** DescribeDatasetGroup+    DescribeDatasetGroup (DescribeDatasetGroup'),+    newDescribeDatasetGroup,+    DescribeDatasetGroupResponse (DescribeDatasetGroupResponse'),+    newDescribeDatasetGroupResponse,++    -- ** DescribeDatasetImportJob+    DescribeDatasetImportJob (DescribeDatasetImportJob'),+    newDescribeDatasetImportJob,+    DescribeDatasetImportJobResponse (DescribeDatasetImportJobResponse'),+    newDescribeDatasetImportJobResponse,++    -- ** DescribeEventTracker+    DescribeEventTracker (DescribeEventTracker'),+    newDescribeEventTracker,+    DescribeEventTrackerResponse (DescribeEventTrackerResponse'),+    newDescribeEventTrackerResponse,++    -- ** DescribeFeatureTransformation+    DescribeFeatureTransformation (DescribeFeatureTransformation'),+    newDescribeFeatureTransformation,+    DescribeFeatureTransformationResponse (DescribeFeatureTransformationResponse'),+    newDescribeFeatureTransformationResponse,++    -- ** DescribeFilter+    DescribeFilter (DescribeFilter'),+    newDescribeFilter,+    DescribeFilterResponse (DescribeFilterResponse'),+    newDescribeFilterResponse,++    -- ** DescribeMetricAttribution+    DescribeMetricAttribution (DescribeMetricAttribution'),+    newDescribeMetricAttribution,+    DescribeMetricAttributionResponse (DescribeMetricAttributionResponse'),+    newDescribeMetricAttributionResponse,++    -- ** DescribeRecipe+    DescribeRecipe (DescribeRecipe'),+    newDescribeRecipe,+    DescribeRecipeResponse (DescribeRecipeResponse'),+    newDescribeRecipeResponse,++    -- ** DescribeRecommender+    DescribeRecommender (DescribeRecommender'),+    newDescribeRecommender,+    DescribeRecommenderResponse (DescribeRecommenderResponse'),+    newDescribeRecommenderResponse,++    -- ** DescribeSchema+    DescribeSchema (DescribeSchema'),+    newDescribeSchema,+    DescribeSchemaResponse (DescribeSchemaResponse'),+    newDescribeSchemaResponse,++    -- ** DescribeSolution+    DescribeSolution (DescribeSolution'),+    newDescribeSolution,+    DescribeSolutionResponse (DescribeSolutionResponse'),+    newDescribeSolutionResponse,++    -- ** DescribeSolutionVersion+    DescribeSolutionVersion (DescribeSolutionVersion'),+    newDescribeSolutionVersion,+    DescribeSolutionVersionResponse (DescribeSolutionVersionResponse'),+    newDescribeSolutionVersionResponse,++    -- ** GetSolutionMetrics+    GetSolutionMetrics (GetSolutionMetrics'),+    newGetSolutionMetrics,+    GetSolutionMetricsResponse (GetSolutionMetricsResponse'),+    newGetSolutionMetricsResponse,++    -- ** ListBatchInferenceJobs (Paginated)+    ListBatchInferenceJobs (ListBatchInferenceJobs'),+    newListBatchInferenceJobs,+    ListBatchInferenceJobsResponse (ListBatchInferenceJobsResponse'),+    newListBatchInferenceJobsResponse,++    -- ** ListBatchSegmentJobs (Paginated)+    ListBatchSegmentJobs (ListBatchSegmentJobs'),+    newListBatchSegmentJobs,+    ListBatchSegmentJobsResponse (ListBatchSegmentJobsResponse'),+    newListBatchSegmentJobsResponse,++    -- ** ListCampaigns (Paginated)+    ListCampaigns (ListCampaigns'),+    newListCampaigns,+    ListCampaignsResponse (ListCampaignsResponse'),+    newListCampaignsResponse,++    -- ** ListDatasetExportJobs (Paginated)+    ListDatasetExportJobs (ListDatasetExportJobs'),+    newListDatasetExportJobs,+    ListDatasetExportJobsResponse (ListDatasetExportJobsResponse'),+    newListDatasetExportJobsResponse,++    -- ** ListDatasetGroups (Paginated)+    ListDatasetGroups (ListDatasetGroups'),+    newListDatasetGroups,+    ListDatasetGroupsResponse (ListDatasetGroupsResponse'),+    newListDatasetGroupsResponse,++    -- ** ListDatasetImportJobs (Paginated)+    ListDatasetImportJobs (ListDatasetImportJobs'),+    newListDatasetImportJobs,+    ListDatasetImportJobsResponse (ListDatasetImportJobsResponse'),+    newListDatasetImportJobsResponse,++    -- ** ListDatasets (Paginated)+    ListDatasets (ListDatasets'),+    newListDatasets,+    ListDatasetsResponse (ListDatasetsResponse'),+    newListDatasetsResponse,++    -- ** ListEventTrackers (Paginated)+    ListEventTrackers (ListEventTrackers'),+    newListEventTrackers,+    ListEventTrackersResponse (ListEventTrackersResponse'),+    newListEventTrackersResponse,++    -- ** ListFilters (Paginated)+    ListFilters (ListFilters'),+    newListFilters,+    ListFiltersResponse (ListFiltersResponse'),+    newListFiltersResponse,++    -- ** ListMetricAttributionMetrics (Paginated)+    ListMetricAttributionMetrics (ListMetricAttributionMetrics'),+    newListMetricAttributionMetrics,+    ListMetricAttributionMetricsResponse (ListMetricAttributionMetricsResponse'),+    newListMetricAttributionMetricsResponse,++    -- ** ListMetricAttributions (Paginated)+    ListMetricAttributions (ListMetricAttributions'),+    newListMetricAttributions,+    ListMetricAttributionsResponse (ListMetricAttributionsResponse'),+    newListMetricAttributionsResponse,++    -- ** ListRecipes (Paginated)+    ListRecipes (ListRecipes'),+    newListRecipes,+    ListRecipesResponse (ListRecipesResponse'),+    newListRecipesResponse,++    -- ** ListRecommenders (Paginated)+    ListRecommenders (ListRecommenders'),+    newListRecommenders,+    ListRecommendersResponse (ListRecommendersResponse'),+    newListRecommendersResponse,++    -- ** ListSchemas (Paginated)+    ListSchemas (ListSchemas'),+    newListSchemas,+    ListSchemasResponse (ListSchemasResponse'),+    newListSchemasResponse,++    -- ** ListSolutionVersions (Paginated)+    ListSolutionVersions (ListSolutionVersions'),+    newListSolutionVersions,+    ListSolutionVersionsResponse (ListSolutionVersionsResponse'),+    newListSolutionVersionsResponse,++    -- ** ListSolutions (Paginated)+    ListSolutions (ListSolutions'),+    newListSolutions,+    ListSolutionsResponse (ListSolutionsResponse'),+    newListSolutionsResponse,++    -- ** ListTagsForResource+    ListTagsForResource (ListTagsForResource'),+    newListTagsForResource,+    ListTagsForResourceResponse (ListTagsForResourceResponse'),+    newListTagsForResourceResponse,++    -- ** StartRecommender+    StartRecommender (StartRecommender'),+    newStartRecommender,+    StartRecommenderResponse (StartRecommenderResponse'),+    newStartRecommenderResponse,++    -- ** StopRecommender+    StopRecommender (StopRecommender'),+    newStopRecommender,+    StopRecommenderResponse (StopRecommenderResponse'),+    newStopRecommenderResponse,++    -- ** StopSolutionVersionCreation+    StopSolutionVersionCreation (StopSolutionVersionCreation'),+    newStopSolutionVersionCreation,+    StopSolutionVersionCreationResponse (StopSolutionVersionCreationResponse'),+    newStopSolutionVersionCreationResponse,++    -- ** TagResource+    TagResource (TagResource'),+    newTagResource,+    TagResourceResponse (TagResourceResponse'),+    newTagResourceResponse,++    -- ** UntagResource+    UntagResource (UntagResource'),+    newUntagResource,+    UntagResourceResponse (UntagResourceResponse'),+    newUntagResourceResponse,++    -- ** UpdateCampaign+    UpdateCampaign (UpdateCampaign'),+    newUpdateCampaign,+    UpdateCampaignResponse (UpdateCampaignResponse'),+    newUpdateCampaignResponse,++    -- ** UpdateMetricAttribution+    UpdateMetricAttribution (UpdateMetricAttribution'),+    newUpdateMetricAttribution,+    UpdateMetricAttributionResponse (UpdateMetricAttributionResponse'),+    newUpdateMetricAttributionResponse,++    -- ** UpdateRecommender+    UpdateRecommender (UpdateRecommender'),+    newUpdateRecommender,+    UpdateRecommenderResponse (UpdateRecommenderResponse'),+    newUpdateRecommenderResponse,++    -- * Types++    -- ** Domain+    Domain (..),++    -- ** ImportMode+    ImportMode (..),++    -- ** IngestionMode+    IngestionMode (..),++    -- ** ObjectiveSensitivity+    ObjectiveSensitivity (..),++    -- ** RecipeProvider+    RecipeProvider (..),++    -- ** TrainingMode+    TrainingMode (..),++    -- ** Algorithm+    Algorithm (Algorithm'),+    newAlgorithm,++    -- ** AlgorithmImage+    AlgorithmImage (AlgorithmImage'),+    newAlgorithmImage,++    -- ** AutoMLConfig+    AutoMLConfig (AutoMLConfig'),+    newAutoMLConfig,++    -- ** AutoMLResult+    AutoMLResult (AutoMLResult'),+    newAutoMLResult,++    -- ** BatchInferenceJob+    BatchInferenceJob (BatchInferenceJob'),+    newBatchInferenceJob,++    -- ** BatchInferenceJobConfig+    BatchInferenceJobConfig (BatchInferenceJobConfig'),+    newBatchInferenceJobConfig,++    -- ** BatchInferenceJobInput+    BatchInferenceJobInput (BatchInferenceJobInput'),+    newBatchInferenceJobInput,++    -- ** BatchInferenceJobOutput+    BatchInferenceJobOutput (BatchInferenceJobOutput'),+    newBatchInferenceJobOutput,++    -- ** BatchInferenceJobSummary+    BatchInferenceJobSummary (BatchInferenceJobSummary'),+    newBatchInferenceJobSummary,++    -- ** BatchSegmentJob+    BatchSegmentJob (BatchSegmentJob'),+    newBatchSegmentJob,++    -- ** BatchSegmentJobInput+    BatchSegmentJobInput (BatchSegmentJobInput'),+    newBatchSegmentJobInput,++    -- ** BatchSegmentJobOutput+    BatchSegmentJobOutput (BatchSegmentJobOutput'),+    newBatchSegmentJobOutput,++    -- ** BatchSegmentJobSummary+    BatchSegmentJobSummary (BatchSegmentJobSummary'),+    newBatchSegmentJobSummary,++    -- ** Campaign+    Campaign (Campaign'),+    newCampaign,++    -- ** CampaignConfig+    CampaignConfig (CampaignConfig'),+    newCampaignConfig,++    -- ** CampaignSummary+    CampaignSummary (CampaignSummary'),+    newCampaignSummary,++    -- ** CampaignUpdateSummary+    CampaignUpdateSummary (CampaignUpdateSummary'),+    newCampaignUpdateSummary,++    -- ** CategoricalHyperParameterRange+    CategoricalHyperParameterRange (CategoricalHyperParameterRange'),+    newCategoricalHyperParameterRange,++    -- ** ContinuousHyperParameterRange+    ContinuousHyperParameterRange (ContinuousHyperParameterRange'),+    newContinuousHyperParameterRange,++    -- ** DataSource+    DataSource (DataSource'),+    newDataSource,++    -- ** Dataset+    Dataset (Dataset'),+    newDataset,++    -- ** DatasetExportJob+    DatasetExportJob (DatasetExportJob'),+    newDatasetExportJob,++    -- ** DatasetExportJobOutput+    DatasetExportJobOutput (DatasetExportJobOutput'),+    newDatasetExportJobOutput,++    -- ** DatasetExportJobSummary+    DatasetExportJobSummary (DatasetExportJobSummary'),+    newDatasetExportJobSummary,++    -- ** DatasetGroup+    DatasetGroup (DatasetGroup'),+    newDatasetGroup,++    -- ** DatasetGroupSummary+    DatasetGroupSummary (DatasetGroupSummary'),+    newDatasetGroupSummary,++    -- ** DatasetImportJob+    DatasetImportJob (DatasetImportJob'),+    newDatasetImportJob,++    -- ** DatasetImportJobSummary+    DatasetImportJobSummary (DatasetImportJobSummary'),+    newDatasetImportJobSummary,++    -- ** DatasetSchema+    DatasetSchema (DatasetSchema'),+    newDatasetSchema,++    -- ** DatasetSchemaSummary+    DatasetSchemaSummary (DatasetSchemaSummary'),+    newDatasetSchemaSummary,++    -- ** DatasetSummary+    DatasetSummary (DatasetSummary'),+    newDatasetSummary,++    -- ** DefaultCategoricalHyperParameterRange+    DefaultCategoricalHyperParameterRange (DefaultCategoricalHyperParameterRange'),+    newDefaultCategoricalHyperParameterRange,++    -- ** DefaultContinuousHyperParameterRange+    DefaultContinuousHyperParameterRange (DefaultContinuousHyperParameterRange'),+    newDefaultContinuousHyperParameterRange,++    -- ** DefaultHyperParameterRanges+    DefaultHyperParameterRanges (DefaultHyperParameterRanges'),+    newDefaultHyperParameterRanges,++    -- ** DefaultIntegerHyperParameterRange+    DefaultIntegerHyperParameterRange (DefaultIntegerHyperParameterRange'),+    newDefaultIntegerHyperParameterRange,++    -- ** EventTracker+    EventTracker (EventTracker'),+    newEventTracker,++    -- ** EventTrackerSummary+    EventTrackerSummary (EventTrackerSummary'),+    newEventTrackerSummary,++    -- ** FeatureTransformation+    FeatureTransformation (FeatureTransformation'),+    newFeatureTransformation,++    -- ** Filter+    Filter (Filter'),+    newFilter,++    -- ** FilterSummary+    FilterSummary (FilterSummary'),+    newFilterSummary,++    -- ** HPOConfig+    HPOConfig (HPOConfig'),+    newHPOConfig,++    -- ** HPOObjective+    HPOObjective (HPOObjective'),+    newHPOObjective,++    -- ** HPOResourceConfig+    HPOResourceConfig (HPOResourceConfig'),+    newHPOResourceConfig,++    -- ** HyperParameterRanges+    HyperParameterRanges (HyperParameterRanges'),+    newHyperParameterRanges,++    -- ** IntegerHyperParameterRange+    IntegerHyperParameterRange (IntegerHyperParameterRange'),+    newIntegerHyperParameterRange,++    -- ** MetricAttribute+    MetricAttribute (MetricAttribute'),+    newMetricAttribute,++    -- ** MetricAttribution+    MetricAttribution (MetricAttribution'),+    newMetricAttribution,++    -- ** MetricAttributionOutput+    MetricAttributionOutput (MetricAttributionOutput'),+    newMetricAttributionOutput,++    -- ** MetricAttributionSummary+    MetricAttributionSummary (MetricAttributionSummary'),+    newMetricAttributionSummary,++    -- ** OptimizationObjective+    OptimizationObjective (OptimizationObjective'),+    newOptimizationObjective,++    -- ** Recipe+    Recipe (Recipe'),+    newRecipe,++    -- ** RecipeSummary+    RecipeSummary (RecipeSummary'),+    newRecipeSummary,++    -- ** Recommender+    Recommender (Recommender'),+    newRecommender,++    -- ** RecommenderConfig+    RecommenderConfig (RecommenderConfig'),+    newRecommenderConfig,++    -- ** RecommenderSummary+    RecommenderSummary (RecommenderSummary'),+    newRecommenderSummary,++    -- ** RecommenderUpdateSummary+    RecommenderUpdateSummary (RecommenderUpdateSummary'),+    newRecommenderUpdateSummary,++    -- ** S3DataConfig+    S3DataConfig (S3DataConfig'),+    newS3DataConfig,++    -- ** Solution+    Solution (Solution'),+    newSolution,++    -- ** SolutionConfig+    SolutionConfig (SolutionConfig'),+    newSolutionConfig,++    -- ** SolutionSummary+    SolutionSummary (SolutionSummary'),+    newSolutionSummary,++    -- ** SolutionVersion+    SolutionVersion (SolutionVersion'),+    newSolutionVersion,++    -- ** SolutionVersionSummary+    SolutionVersionSummary (SolutionVersionSummary'),+    newSolutionVersionSummary,++    -- ** Tag+    Tag (Tag'),+    newTag,++    -- ** TunedHPOParams+    TunedHPOParams (TunedHPOParams'),+    newTunedHPOParams,+  )+where++import Amazonka.Personalize.CreateBatchInferenceJob+import Amazonka.Personalize.CreateBatchSegmentJob+import Amazonka.Personalize.CreateCampaign+import Amazonka.Personalize.CreateDataset+import Amazonka.Personalize.CreateDatasetExportJob+import Amazonka.Personalize.CreateDatasetGroup+import Amazonka.Personalize.CreateDatasetImportJob+import Amazonka.Personalize.CreateEventTracker+import Amazonka.Personalize.CreateFilter+import Amazonka.Personalize.CreateMetricAttribution+import Amazonka.Personalize.CreateRecommender+import Amazonka.Personalize.CreateSchema+import Amazonka.Personalize.CreateSolution+import Amazonka.Personalize.CreateSolutionVersion+import Amazonka.Personalize.DeleteCampaign+import Amazonka.Personalize.DeleteDataset+import Amazonka.Personalize.DeleteDatasetGroup+import Amazonka.Personalize.DeleteEventTracker+import Amazonka.Personalize.DeleteFilter+import Amazonka.Personalize.DeleteMetricAttribution+import Amazonka.Personalize.DeleteRecommender+import Amazonka.Personalize.DeleteSchema+import Amazonka.Personalize.DeleteSolution+import Amazonka.Personalize.DescribeAlgorithm+import Amazonka.Personalize.DescribeBatchInferenceJob+import Amazonka.Personalize.DescribeBatchSegmentJob+import Amazonka.Personalize.DescribeCampaign+import Amazonka.Personalize.DescribeDataset+import Amazonka.Personalize.DescribeDatasetExportJob+import Amazonka.Personalize.DescribeDatasetGroup+import Amazonka.Personalize.DescribeDatasetImportJob+import Amazonka.Personalize.DescribeEventTracker+import Amazonka.Personalize.DescribeFeatureTransformation+import Amazonka.Personalize.DescribeFilter+import Amazonka.Personalize.DescribeMetricAttribution+import Amazonka.Personalize.DescribeRecipe+import Amazonka.Personalize.DescribeRecommender+import Amazonka.Personalize.DescribeSchema+import Amazonka.Personalize.DescribeSolution+import Amazonka.Personalize.DescribeSolutionVersion+import Amazonka.Personalize.GetSolutionMetrics+import Amazonka.Personalize.Lens+import Amazonka.Personalize.ListBatchInferenceJobs+import Amazonka.Personalize.ListBatchSegmentJobs+import Amazonka.Personalize.ListCampaigns+import Amazonka.Personalize.ListDatasetExportJobs+import Amazonka.Personalize.ListDatasetGroups+import Amazonka.Personalize.ListDatasetImportJobs+import Amazonka.Personalize.ListDatasets+import Amazonka.Personalize.ListEventTrackers+import Amazonka.Personalize.ListFilters+import Amazonka.Personalize.ListMetricAttributionMetrics+import Amazonka.Personalize.ListMetricAttributions+import Amazonka.Personalize.ListRecipes+import Amazonka.Personalize.ListRecommenders+import Amazonka.Personalize.ListSchemas+import Amazonka.Personalize.ListSolutionVersions+import Amazonka.Personalize.ListSolutions+import Amazonka.Personalize.ListTagsForResource+import Amazonka.Personalize.StartRecommender+import Amazonka.Personalize.StopRecommender+import Amazonka.Personalize.StopSolutionVersionCreation+import Amazonka.Personalize.TagResource+import Amazonka.Personalize.Types+import Amazonka.Personalize.UntagResource+import Amazonka.Personalize.UpdateCampaign+import Amazonka.Personalize.UpdateMetricAttribution+import Amazonka.Personalize.UpdateRecommender+import Amazonka.Personalize.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 'Personalize'.++-- $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/Personalize/CreateBatchInferenceJob.hs view
@@ -0,0 +1,323 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.CreateBatchInferenceJob+-- 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 inference job. The operation can handle up to 50 million+-- records and the input file must be in JSON format. For more information,+-- see+-- <https://docs.aws.amazon.com/personalize/latest/dg/creating-batch-inference-job.html Creating a batch inference job>.+module Amazonka.Personalize.CreateBatchInferenceJob+  ( -- * Creating a Request+    CreateBatchInferenceJob (..),+    newCreateBatchInferenceJob,++    -- * Request Lenses+    createBatchInferenceJob_batchInferenceJobConfig,+    createBatchInferenceJob_filterArn,+    createBatchInferenceJob_numResults,+    createBatchInferenceJob_tags,+    createBatchInferenceJob_jobName,+    createBatchInferenceJob_solutionVersionArn,+    createBatchInferenceJob_jobInput,+    createBatchInferenceJob_jobOutput,+    createBatchInferenceJob_roleArn,++    -- * Destructuring the Response+    CreateBatchInferenceJobResponse (..),+    newCreateBatchInferenceJobResponse,++    -- * Response Lenses+    createBatchInferenceJobResponse_batchInferenceJobArn,+    createBatchInferenceJobResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateBatchInferenceJob' smart constructor.+data CreateBatchInferenceJob = CreateBatchInferenceJob'+  { -- | The configuration details of a batch inference job.+    batchInferenceJobConfig :: Prelude.Maybe BatchInferenceJobConfig,+    -- | The ARN of the filter to apply to the batch inference job. For more+    -- information on using filters, see+    -- <https://docs.aws.amazon.com/personalize/latest/dg/filter-batch.html Filtering batch recommendations>.+    filterArn :: Prelude.Maybe Prelude.Text,+    -- | The number of recommendations to retrieve.+    numResults :: Prelude.Maybe Prelude.Int,+    -- | A list of+    -- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+    -- to apply to the batch inference job.+    tags :: Prelude.Maybe [Tag],+    -- | The name of the batch inference job to create.+    jobName :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the solution version that will be used+    -- to generate the batch inference recommendations.+    solutionVersionArn :: Prelude.Text,+    -- | The Amazon S3 path that leads to the input file to base your+    -- recommendations on. The input material must be in JSON format.+    jobInput :: BatchInferenceJobInput,+    -- | The path to the Amazon S3 bucket where the job\'s output will be stored.+    jobOutput :: BatchInferenceJobOutput,+    -- | The ARN of the Amazon Identity and Access Management role that has+    -- permissions to read and write to your input and output Amazon S3 buckets+    -- respectively.+    roleArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateBatchInferenceJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'batchInferenceJobConfig', 'createBatchInferenceJob_batchInferenceJobConfig' - The configuration details of a batch inference job.+--+-- 'filterArn', 'createBatchInferenceJob_filterArn' - The ARN of the filter to apply to the batch inference job. For more+-- information on using filters, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/filter-batch.html Filtering batch recommendations>.+--+-- 'numResults', 'createBatchInferenceJob_numResults' - The number of recommendations to retrieve.+--+-- 'tags', 'createBatchInferenceJob_tags' - A list of+-- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+-- to apply to the batch inference job.+--+-- 'jobName', 'createBatchInferenceJob_jobName' - The name of the batch inference job to create.+--+-- 'solutionVersionArn', 'createBatchInferenceJob_solutionVersionArn' - The Amazon Resource Name (ARN) of the solution version that will be used+-- to generate the batch inference recommendations.+--+-- 'jobInput', 'createBatchInferenceJob_jobInput' - The Amazon S3 path that leads to the input file to base your+-- recommendations on. The input material must be in JSON format.+--+-- 'jobOutput', 'createBatchInferenceJob_jobOutput' - The path to the Amazon S3 bucket where the job\'s output will be stored.+--+-- 'roleArn', 'createBatchInferenceJob_roleArn' - The ARN of the Amazon Identity and Access Management role that has+-- permissions to read and write to your input and output Amazon S3 buckets+-- respectively.+newCreateBatchInferenceJob ::+  -- | 'jobName'+  Prelude.Text ->+  -- | 'solutionVersionArn'+  Prelude.Text ->+  -- | 'jobInput'+  BatchInferenceJobInput ->+  -- | 'jobOutput'+  BatchInferenceJobOutput ->+  -- | 'roleArn'+  Prelude.Text ->+  CreateBatchInferenceJob+newCreateBatchInferenceJob+  pJobName_+  pSolutionVersionArn_+  pJobInput_+  pJobOutput_+  pRoleArn_ =+    CreateBatchInferenceJob'+      { batchInferenceJobConfig =+          Prelude.Nothing,+        filterArn = Prelude.Nothing,+        numResults = Prelude.Nothing,+        tags = Prelude.Nothing,+        jobName = pJobName_,+        solutionVersionArn = pSolutionVersionArn_,+        jobInput = pJobInput_,+        jobOutput = pJobOutput_,+        roleArn = pRoleArn_+      }++-- | The configuration details of a batch inference job.+createBatchInferenceJob_batchInferenceJobConfig :: Lens.Lens' CreateBatchInferenceJob (Prelude.Maybe BatchInferenceJobConfig)+createBatchInferenceJob_batchInferenceJobConfig = Lens.lens (\CreateBatchInferenceJob' {batchInferenceJobConfig} -> batchInferenceJobConfig) (\s@CreateBatchInferenceJob' {} a -> s {batchInferenceJobConfig = a} :: CreateBatchInferenceJob)++-- | The ARN of the filter to apply to the batch inference job. For more+-- information on using filters, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/filter-batch.html Filtering batch recommendations>.+createBatchInferenceJob_filterArn :: Lens.Lens' CreateBatchInferenceJob (Prelude.Maybe Prelude.Text)+createBatchInferenceJob_filterArn = Lens.lens (\CreateBatchInferenceJob' {filterArn} -> filterArn) (\s@CreateBatchInferenceJob' {} a -> s {filterArn = a} :: CreateBatchInferenceJob)++-- | The number of recommendations to retrieve.+createBatchInferenceJob_numResults :: Lens.Lens' CreateBatchInferenceJob (Prelude.Maybe Prelude.Int)+createBatchInferenceJob_numResults = Lens.lens (\CreateBatchInferenceJob' {numResults} -> numResults) (\s@CreateBatchInferenceJob' {} a -> s {numResults = a} :: CreateBatchInferenceJob)++-- | A list of+-- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+-- to apply to the batch inference job.+createBatchInferenceJob_tags :: Lens.Lens' CreateBatchInferenceJob (Prelude.Maybe [Tag])+createBatchInferenceJob_tags = Lens.lens (\CreateBatchInferenceJob' {tags} -> tags) (\s@CreateBatchInferenceJob' {} a -> s {tags = a} :: CreateBatchInferenceJob) Prelude.. Lens.mapping Lens.coerced++-- | The name of the batch inference job to create.+createBatchInferenceJob_jobName :: Lens.Lens' CreateBatchInferenceJob Prelude.Text+createBatchInferenceJob_jobName = Lens.lens (\CreateBatchInferenceJob' {jobName} -> jobName) (\s@CreateBatchInferenceJob' {} a -> s {jobName = a} :: CreateBatchInferenceJob)++-- | The Amazon Resource Name (ARN) of the solution version that will be used+-- to generate the batch inference recommendations.+createBatchInferenceJob_solutionVersionArn :: Lens.Lens' CreateBatchInferenceJob Prelude.Text+createBatchInferenceJob_solutionVersionArn = Lens.lens (\CreateBatchInferenceJob' {solutionVersionArn} -> solutionVersionArn) (\s@CreateBatchInferenceJob' {} a -> s {solutionVersionArn = a} :: CreateBatchInferenceJob)++-- | The Amazon S3 path that leads to the input file to base your+-- recommendations on. The input material must be in JSON format.+createBatchInferenceJob_jobInput :: Lens.Lens' CreateBatchInferenceJob BatchInferenceJobInput+createBatchInferenceJob_jobInput = Lens.lens (\CreateBatchInferenceJob' {jobInput} -> jobInput) (\s@CreateBatchInferenceJob' {} a -> s {jobInput = a} :: CreateBatchInferenceJob)++-- | The path to the Amazon S3 bucket where the job\'s output will be stored.+createBatchInferenceJob_jobOutput :: Lens.Lens' CreateBatchInferenceJob BatchInferenceJobOutput+createBatchInferenceJob_jobOutput = Lens.lens (\CreateBatchInferenceJob' {jobOutput} -> jobOutput) (\s@CreateBatchInferenceJob' {} a -> s {jobOutput = a} :: CreateBatchInferenceJob)++-- | The ARN of the Amazon Identity and Access Management role that has+-- permissions to read and write to your input and output Amazon S3 buckets+-- respectively.+createBatchInferenceJob_roleArn :: Lens.Lens' CreateBatchInferenceJob Prelude.Text+createBatchInferenceJob_roleArn = Lens.lens (\CreateBatchInferenceJob' {roleArn} -> roleArn) (\s@CreateBatchInferenceJob' {} a -> s {roleArn = a} :: CreateBatchInferenceJob)++instance Core.AWSRequest CreateBatchInferenceJob where+  type+    AWSResponse CreateBatchInferenceJob =+      CreateBatchInferenceJobResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateBatchInferenceJobResponse'+            Prelude.<$> (x Data..?> "batchInferenceJobArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateBatchInferenceJob where+  hashWithSalt _salt CreateBatchInferenceJob' {..} =+    _salt+      `Prelude.hashWithSalt` batchInferenceJobConfig+      `Prelude.hashWithSalt` filterArn+      `Prelude.hashWithSalt` numResults+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` jobName+      `Prelude.hashWithSalt` solutionVersionArn+      `Prelude.hashWithSalt` jobInput+      `Prelude.hashWithSalt` jobOutput+      `Prelude.hashWithSalt` roleArn++instance Prelude.NFData CreateBatchInferenceJob where+  rnf CreateBatchInferenceJob' {..} =+    Prelude.rnf batchInferenceJobConfig+      `Prelude.seq` Prelude.rnf filterArn+      `Prelude.seq` Prelude.rnf numResults+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf jobName+      `Prelude.seq` Prelude.rnf solutionVersionArn+      `Prelude.seq` Prelude.rnf jobInput+      `Prelude.seq` Prelude.rnf jobOutput+      `Prelude.seq` Prelude.rnf roleArn++instance Data.ToHeaders CreateBatchInferenceJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.CreateBatchInferenceJob" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateBatchInferenceJob where+  toJSON CreateBatchInferenceJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("batchInferenceJobConfig" Data..=)+              Prelude.<$> batchInferenceJobConfig,+            ("filterArn" Data..=) Prelude.<$> filterArn,+            ("numResults" Data..=) Prelude.<$> numResults,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("jobName" Data..= jobName),+            Prelude.Just+              ("solutionVersionArn" Data..= solutionVersionArn),+            Prelude.Just ("jobInput" Data..= jobInput),+            Prelude.Just ("jobOutput" Data..= jobOutput),+            Prelude.Just ("roleArn" Data..= roleArn)+          ]+      )++instance Data.ToPath CreateBatchInferenceJob where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateBatchInferenceJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateBatchInferenceJobResponse' smart constructor.+data CreateBatchInferenceJobResponse = CreateBatchInferenceJobResponse'+  { -- | The ARN of the batch inference job.+    batchInferenceJobArn :: 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 'CreateBatchInferenceJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'batchInferenceJobArn', 'createBatchInferenceJobResponse_batchInferenceJobArn' - The ARN of the batch inference job.+--+-- 'httpStatus', 'createBatchInferenceJobResponse_httpStatus' - The response's http status code.+newCreateBatchInferenceJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateBatchInferenceJobResponse+newCreateBatchInferenceJobResponse pHttpStatus_ =+  CreateBatchInferenceJobResponse'+    { batchInferenceJobArn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the batch inference job.+createBatchInferenceJobResponse_batchInferenceJobArn :: Lens.Lens' CreateBatchInferenceJobResponse (Prelude.Maybe Prelude.Text)+createBatchInferenceJobResponse_batchInferenceJobArn = Lens.lens (\CreateBatchInferenceJobResponse' {batchInferenceJobArn} -> batchInferenceJobArn) (\s@CreateBatchInferenceJobResponse' {} a -> s {batchInferenceJobArn = a} :: CreateBatchInferenceJobResponse)++-- | The response's http status code.+createBatchInferenceJobResponse_httpStatus :: Lens.Lens' CreateBatchInferenceJobResponse Prelude.Int+createBatchInferenceJobResponse_httpStatus = Lens.lens (\CreateBatchInferenceJobResponse' {httpStatus} -> httpStatus) (\s@CreateBatchInferenceJobResponse' {} a -> s {httpStatus = a} :: CreateBatchInferenceJobResponse)++instance+  Prelude.NFData+    CreateBatchInferenceJobResponse+  where+  rnf CreateBatchInferenceJobResponse' {..} =+    Prelude.rnf batchInferenceJobArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/CreateBatchSegmentJob.hs view
@@ -0,0 +1,311 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.CreateBatchSegmentJob+-- 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 segment job. The operation can handle up to 50 million+-- records and the input file must be in JSON format. For more information,+-- see+-- <https://docs.aws.amazon.com/personalize/latest/dg/recommendations-batch.html Getting batch recommendations and user segments>.+module Amazonka.Personalize.CreateBatchSegmentJob+  ( -- * Creating a Request+    CreateBatchSegmentJob (..),+    newCreateBatchSegmentJob,++    -- * Request Lenses+    createBatchSegmentJob_filterArn,+    createBatchSegmentJob_numResults,+    createBatchSegmentJob_tags,+    createBatchSegmentJob_jobName,+    createBatchSegmentJob_solutionVersionArn,+    createBatchSegmentJob_jobInput,+    createBatchSegmentJob_jobOutput,+    createBatchSegmentJob_roleArn,++    -- * Destructuring the Response+    CreateBatchSegmentJobResponse (..),+    newCreateBatchSegmentJobResponse,++    -- * Response Lenses+    createBatchSegmentJobResponse_batchSegmentJobArn,+    createBatchSegmentJobResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateBatchSegmentJob' smart constructor.+data CreateBatchSegmentJob = CreateBatchSegmentJob'+  { -- | The ARN of the filter to apply to the batch segment job. For more+    -- information on using filters, see+    -- <https://docs.aws.amazon.com/personalize/latest/dg/filter-batch.html Filtering batch recommendations>.+    filterArn :: Prelude.Maybe Prelude.Text,+    -- | The number of predicted users generated by the batch segment job for+    -- each line of input data.+    numResults :: Prelude.Maybe Prelude.Int,+    -- | A list of+    -- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+    -- to apply to the batch segment job.+    tags :: Prelude.Maybe [Tag],+    -- | The name of the batch segment job to create.+    jobName :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the solution version you want the+    -- batch segment job to use to generate batch segments.+    solutionVersionArn :: Prelude.Text,+    -- | The Amazon S3 path for the input data used to generate the batch segment+    -- job.+    jobInput :: BatchSegmentJobInput,+    -- | The Amazon S3 path for the bucket where the job\'s output will be+    -- stored.+    jobOutput :: BatchSegmentJobOutput,+    -- | The ARN of the Amazon Identity and Access Management role that has+    -- permissions to read and write to your input and output Amazon S3 buckets+    -- respectively.+    roleArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateBatchSegmentJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filterArn', 'createBatchSegmentJob_filterArn' - The ARN of the filter to apply to the batch segment job. For more+-- information on using filters, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/filter-batch.html Filtering batch recommendations>.+--+-- 'numResults', 'createBatchSegmentJob_numResults' - The number of predicted users generated by the batch segment job for+-- each line of input data.+--+-- 'tags', 'createBatchSegmentJob_tags' - A list of+-- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+-- to apply to the batch segment job.+--+-- 'jobName', 'createBatchSegmentJob_jobName' - The name of the batch segment job to create.+--+-- 'solutionVersionArn', 'createBatchSegmentJob_solutionVersionArn' - The Amazon Resource Name (ARN) of the solution version you want the+-- batch segment job to use to generate batch segments.+--+-- 'jobInput', 'createBatchSegmentJob_jobInput' - The Amazon S3 path for the input data used to generate the batch segment+-- job.+--+-- 'jobOutput', 'createBatchSegmentJob_jobOutput' - The Amazon S3 path for the bucket where the job\'s output will be+-- stored.+--+-- 'roleArn', 'createBatchSegmentJob_roleArn' - The ARN of the Amazon Identity and Access Management role that has+-- permissions to read and write to your input and output Amazon S3 buckets+-- respectively.+newCreateBatchSegmentJob ::+  -- | 'jobName'+  Prelude.Text ->+  -- | 'solutionVersionArn'+  Prelude.Text ->+  -- | 'jobInput'+  BatchSegmentJobInput ->+  -- | 'jobOutput'+  BatchSegmentJobOutput ->+  -- | 'roleArn'+  Prelude.Text ->+  CreateBatchSegmentJob+newCreateBatchSegmentJob+  pJobName_+  pSolutionVersionArn_+  pJobInput_+  pJobOutput_+  pRoleArn_ =+    CreateBatchSegmentJob'+      { filterArn = Prelude.Nothing,+        numResults = Prelude.Nothing,+        tags = Prelude.Nothing,+        jobName = pJobName_,+        solutionVersionArn = pSolutionVersionArn_,+        jobInput = pJobInput_,+        jobOutput = pJobOutput_,+        roleArn = pRoleArn_+      }++-- | The ARN of the filter to apply to the batch segment job. For more+-- information on using filters, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/filter-batch.html Filtering batch recommendations>.+createBatchSegmentJob_filterArn :: Lens.Lens' CreateBatchSegmentJob (Prelude.Maybe Prelude.Text)+createBatchSegmentJob_filterArn = Lens.lens (\CreateBatchSegmentJob' {filterArn} -> filterArn) (\s@CreateBatchSegmentJob' {} a -> s {filterArn = a} :: CreateBatchSegmentJob)++-- | The number of predicted users generated by the batch segment job for+-- each line of input data.+createBatchSegmentJob_numResults :: Lens.Lens' CreateBatchSegmentJob (Prelude.Maybe Prelude.Int)+createBatchSegmentJob_numResults = Lens.lens (\CreateBatchSegmentJob' {numResults} -> numResults) (\s@CreateBatchSegmentJob' {} a -> s {numResults = a} :: CreateBatchSegmentJob)++-- | A list of+-- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+-- to apply to the batch segment job.+createBatchSegmentJob_tags :: Lens.Lens' CreateBatchSegmentJob (Prelude.Maybe [Tag])+createBatchSegmentJob_tags = Lens.lens (\CreateBatchSegmentJob' {tags} -> tags) (\s@CreateBatchSegmentJob' {} a -> s {tags = a} :: CreateBatchSegmentJob) Prelude.. Lens.mapping Lens.coerced++-- | The name of the batch segment job to create.+createBatchSegmentJob_jobName :: Lens.Lens' CreateBatchSegmentJob Prelude.Text+createBatchSegmentJob_jobName = Lens.lens (\CreateBatchSegmentJob' {jobName} -> jobName) (\s@CreateBatchSegmentJob' {} a -> s {jobName = a} :: CreateBatchSegmentJob)++-- | The Amazon Resource Name (ARN) of the solution version you want the+-- batch segment job to use to generate batch segments.+createBatchSegmentJob_solutionVersionArn :: Lens.Lens' CreateBatchSegmentJob Prelude.Text+createBatchSegmentJob_solutionVersionArn = Lens.lens (\CreateBatchSegmentJob' {solutionVersionArn} -> solutionVersionArn) (\s@CreateBatchSegmentJob' {} a -> s {solutionVersionArn = a} :: CreateBatchSegmentJob)++-- | The Amazon S3 path for the input data used to generate the batch segment+-- job.+createBatchSegmentJob_jobInput :: Lens.Lens' CreateBatchSegmentJob BatchSegmentJobInput+createBatchSegmentJob_jobInput = Lens.lens (\CreateBatchSegmentJob' {jobInput} -> jobInput) (\s@CreateBatchSegmentJob' {} a -> s {jobInput = a} :: CreateBatchSegmentJob)++-- | The Amazon S3 path for the bucket where the job\'s output will be+-- stored.+createBatchSegmentJob_jobOutput :: Lens.Lens' CreateBatchSegmentJob BatchSegmentJobOutput+createBatchSegmentJob_jobOutput = Lens.lens (\CreateBatchSegmentJob' {jobOutput} -> jobOutput) (\s@CreateBatchSegmentJob' {} a -> s {jobOutput = a} :: CreateBatchSegmentJob)++-- | The ARN of the Amazon Identity and Access Management role that has+-- permissions to read and write to your input and output Amazon S3 buckets+-- respectively.+createBatchSegmentJob_roleArn :: Lens.Lens' CreateBatchSegmentJob Prelude.Text+createBatchSegmentJob_roleArn = Lens.lens (\CreateBatchSegmentJob' {roleArn} -> roleArn) (\s@CreateBatchSegmentJob' {} a -> s {roleArn = a} :: CreateBatchSegmentJob)++instance Core.AWSRequest CreateBatchSegmentJob where+  type+    AWSResponse CreateBatchSegmentJob =+      CreateBatchSegmentJobResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateBatchSegmentJobResponse'+            Prelude.<$> (x Data..?> "batchSegmentJobArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateBatchSegmentJob where+  hashWithSalt _salt CreateBatchSegmentJob' {..} =+    _salt+      `Prelude.hashWithSalt` filterArn+      `Prelude.hashWithSalt` numResults+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` jobName+      `Prelude.hashWithSalt` solutionVersionArn+      `Prelude.hashWithSalt` jobInput+      `Prelude.hashWithSalt` jobOutput+      `Prelude.hashWithSalt` roleArn++instance Prelude.NFData CreateBatchSegmentJob where+  rnf CreateBatchSegmentJob' {..} =+    Prelude.rnf filterArn+      `Prelude.seq` Prelude.rnf numResults+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf jobName+      `Prelude.seq` Prelude.rnf solutionVersionArn+      `Prelude.seq` Prelude.rnf jobInput+      `Prelude.seq` Prelude.rnf jobOutput+      `Prelude.seq` Prelude.rnf roleArn++instance Data.ToHeaders CreateBatchSegmentJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.CreateBatchSegmentJob" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateBatchSegmentJob where+  toJSON CreateBatchSegmentJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("filterArn" Data..=) Prelude.<$> filterArn,+            ("numResults" Data..=) Prelude.<$> numResults,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("jobName" Data..= jobName),+            Prelude.Just+              ("solutionVersionArn" Data..= solutionVersionArn),+            Prelude.Just ("jobInput" Data..= jobInput),+            Prelude.Just ("jobOutput" Data..= jobOutput),+            Prelude.Just ("roleArn" Data..= roleArn)+          ]+      )++instance Data.ToPath CreateBatchSegmentJob where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateBatchSegmentJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateBatchSegmentJobResponse' smart constructor.+data CreateBatchSegmentJobResponse = CreateBatchSegmentJobResponse'+  { -- | The ARN of the batch segment job.+    batchSegmentJobArn :: 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 'CreateBatchSegmentJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'batchSegmentJobArn', 'createBatchSegmentJobResponse_batchSegmentJobArn' - The ARN of the batch segment job.+--+-- 'httpStatus', 'createBatchSegmentJobResponse_httpStatus' - The response's http status code.+newCreateBatchSegmentJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateBatchSegmentJobResponse+newCreateBatchSegmentJobResponse pHttpStatus_ =+  CreateBatchSegmentJobResponse'+    { batchSegmentJobArn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the batch segment job.+createBatchSegmentJobResponse_batchSegmentJobArn :: Lens.Lens' CreateBatchSegmentJobResponse (Prelude.Maybe Prelude.Text)+createBatchSegmentJobResponse_batchSegmentJobArn = Lens.lens (\CreateBatchSegmentJobResponse' {batchSegmentJobArn} -> batchSegmentJobArn) (\s@CreateBatchSegmentJobResponse' {} a -> s {batchSegmentJobArn = a} :: CreateBatchSegmentJobResponse)++-- | The response's http status code.+createBatchSegmentJobResponse_httpStatus :: Lens.Lens' CreateBatchSegmentJobResponse Prelude.Int+createBatchSegmentJobResponse_httpStatus = Lens.lens (\CreateBatchSegmentJobResponse' {httpStatus} -> httpStatus) (\s@CreateBatchSegmentJobResponse' {} a -> s {httpStatus = a} :: CreateBatchSegmentJobResponse)++instance Prelude.NFData CreateBatchSegmentJobResponse where+  rnf CreateBatchSegmentJobResponse' {..} =+    Prelude.rnf batchSegmentJobArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/CreateCampaign.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.Personalize.CreateCampaign+-- 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 campaign that deploys a solution version. When a client calls+-- the+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_RS_GetRecommendations.html GetRecommendations>+-- and+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_RS_GetPersonalizedRanking.html GetPersonalizedRanking>+-- APIs, a campaign is specified in the request.+--+-- __Minimum Provisioned TPS and Auto-Scaling__+--+-- A transaction is a single @GetRecommendations@ or+-- @GetPersonalizedRanking@ call. Transactions per second (TPS) is the+-- throughput and unit of billing for Amazon Personalize. The minimum+-- provisioned TPS (@minProvisionedTPS@) specifies the baseline throughput+-- provisioned by Amazon Personalize, and thus, the minimum billing charge.+--+-- If your TPS increases beyond @minProvisionedTPS@, Amazon Personalize+-- auto-scales the provisioned capacity up and down, but never below+-- @minProvisionedTPS@. There\'s a short time delay while the capacity is+-- increased that might cause loss of transactions.+--+-- The actual TPS used is calculated as the average requests\/second within+-- a 5-minute window. You pay for maximum of either the minimum provisioned+-- TPS or the actual TPS. We recommend starting with a low+-- @minProvisionedTPS@, track your usage using Amazon CloudWatch metrics,+-- and then increase the @minProvisionedTPS@ as necessary.+--+-- __Status__+--+-- A campaign can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   DELETE PENDING > DELETE IN_PROGRESS+--+-- To get the campaign status, call+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeCampaign.html DescribeCampaign>.+--+-- Wait until the @status@ of the campaign is @ACTIVE@ before asking the+-- campaign for recommendations.+--+-- __Related APIs__+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_ListCampaigns.html ListCampaigns>+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeCampaign.html DescribeCampaign>+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_UpdateCampaign.html UpdateCampaign>+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_DeleteCampaign.html DeleteCampaign>+module Amazonka.Personalize.CreateCampaign+  ( -- * Creating a Request+    CreateCampaign (..),+    newCreateCampaign,++    -- * Request Lenses+    createCampaign_campaignConfig,+    createCampaign_minProvisionedTPS,+    createCampaign_tags,+    createCampaign_name,+    createCampaign_solutionVersionArn,++    -- * Destructuring the Response+    CreateCampaignResponse (..),+    newCreateCampaignResponse,++    -- * Response Lenses+    createCampaignResponse_campaignArn,+    createCampaignResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateCampaign' smart constructor.+data CreateCampaign = CreateCampaign'+  { -- | The configuration details of a campaign.+    campaignConfig :: Prelude.Maybe CampaignConfig,+    -- | Specifies the requested minimum provisioned transactions+    -- (recommendations) per second that Amazon Personalize will support.+    minProvisionedTPS :: Prelude.Maybe Prelude.Natural,+    -- | A list of+    -- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+    -- to apply to the campaign.+    tags :: Prelude.Maybe [Tag],+    -- | A name for the new campaign. The campaign name must be unique within+    -- your account.+    name :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the solution version to deploy.+    solutionVersionArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateCampaign' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'campaignConfig', 'createCampaign_campaignConfig' - The configuration details of a campaign.+--+-- 'minProvisionedTPS', 'createCampaign_minProvisionedTPS' - Specifies the requested minimum provisioned transactions+-- (recommendations) per second that Amazon Personalize will support.+--+-- 'tags', 'createCampaign_tags' - A list of+-- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+-- to apply to the campaign.+--+-- 'name', 'createCampaign_name' - A name for the new campaign. The campaign name must be unique within+-- your account.+--+-- 'solutionVersionArn', 'createCampaign_solutionVersionArn' - The Amazon Resource Name (ARN) of the solution version to deploy.+newCreateCampaign ::+  -- | 'name'+  Prelude.Text ->+  -- | 'solutionVersionArn'+  Prelude.Text ->+  CreateCampaign+newCreateCampaign pName_ pSolutionVersionArn_ =+  CreateCampaign'+    { campaignConfig = Prelude.Nothing,+      minProvisionedTPS = Prelude.Nothing,+      tags = Prelude.Nothing,+      name = pName_,+      solutionVersionArn = pSolutionVersionArn_+    }++-- | The configuration details of a campaign.+createCampaign_campaignConfig :: Lens.Lens' CreateCampaign (Prelude.Maybe CampaignConfig)+createCampaign_campaignConfig = Lens.lens (\CreateCampaign' {campaignConfig} -> campaignConfig) (\s@CreateCampaign' {} a -> s {campaignConfig = a} :: CreateCampaign)++-- | Specifies the requested minimum provisioned transactions+-- (recommendations) per second that Amazon Personalize will support.+createCampaign_minProvisionedTPS :: Lens.Lens' CreateCampaign (Prelude.Maybe Prelude.Natural)+createCampaign_minProvisionedTPS = Lens.lens (\CreateCampaign' {minProvisionedTPS} -> minProvisionedTPS) (\s@CreateCampaign' {} a -> s {minProvisionedTPS = a} :: CreateCampaign)++-- | A list of+-- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+-- to apply to the campaign.+createCampaign_tags :: Lens.Lens' CreateCampaign (Prelude.Maybe [Tag])+createCampaign_tags = Lens.lens (\CreateCampaign' {tags} -> tags) (\s@CreateCampaign' {} a -> s {tags = a} :: CreateCampaign) Prelude.. Lens.mapping Lens.coerced++-- | A name for the new campaign. The campaign name must be unique within+-- your account.+createCampaign_name :: Lens.Lens' CreateCampaign Prelude.Text+createCampaign_name = Lens.lens (\CreateCampaign' {name} -> name) (\s@CreateCampaign' {} a -> s {name = a} :: CreateCampaign)++-- | The Amazon Resource Name (ARN) of the solution version to deploy.+createCampaign_solutionVersionArn :: Lens.Lens' CreateCampaign Prelude.Text+createCampaign_solutionVersionArn = Lens.lens (\CreateCampaign' {solutionVersionArn} -> solutionVersionArn) (\s@CreateCampaign' {} a -> s {solutionVersionArn = a} :: CreateCampaign)++instance Core.AWSRequest CreateCampaign where+  type+    AWSResponse CreateCampaign =+      CreateCampaignResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateCampaignResponse'+            Prelude.<$> (x Data..?> "campaignArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateCampaign where+  hashWithSalt _salt CreateCampaign' {..} =+    _salt+      `Prelude.hashWithSalt` campaignConfig+      `Prelude.hashWithSalt` minProvisionedTPS+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` solutionVersionArn++instance Prelude.NFData CreateCampaign where+  rnf CreateCampaign' {..} =+    Prelude.rnf campaignConfig+      `Prelude.seq` Prelude.rnf minProvisionedTPS+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf solutionVersionArn++instance Data.ToHeaders CreateCampaign where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.CreateCampaign" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateCampaign where+  toJSON CreateCampaign' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("campaignConfig" Data..=)+              Prelude.<$> campaignConfig,+            ("minProvisionedTPS" Data..=)+              Prelude.<$> minProvisionedTPS,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("name" Data..= name),+            Prelude.Just+              ("solutionVersionArn" Data..= solutionVersionArn)+          ]+      )++instance Data.ToPath CreateCampaign where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateCampaign where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateCampaignResponse' smart constructor.+data CreateCampaignResponse = CreateCampaignResponse'+  { -- | The Amazon Resource Name (ARN) of the campaign.+    campaignArn :: 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 'CreateCampaignResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'campaignArn', 'createCampaignResponse_campaignArn' - The Amazon Resource Name (ARN) of the campaign.+--+-- 'httpStatus', 'createCampaignResponse_httpStatus' - The response's http status code.+newCreateCampaignResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateCampaignResponse+newCreateCampaignResponse pHttpStatus_ =+  CreateCampaignResponse'+    { campaignArn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the campaign.+createCampaignResponse_campaignArn :: Lens.Lens' CreateCampaignResponse (Prelude.Maybe Prelude.Text)+createCampaignResponse_campaignArn = Lens.lens (\CreateCampaignResponse' {campaignArn} -> campaignArn) (\s@CreateCampaignResponse' {} a -> s {campaignArn = a} :: CreateCampaignResponse)++-- | The response's http status code.+createCampaignResponse_httpStatus :: Lens.Lens' CreateCampaignResponse Prelude.Int+createCampaignResponse_httpStatus = Lens.lens (\CreateCampaignResponse' {httpStatus} -> httpStatus) (\s@CreateCampaignResponse' {} a -> s {httpStatus = a} :: CreateCampaignResponse)++instance Prelude.NFData CreateCampaignResponse where+  rnf CreateCampaignResponse' {..} =+    Prelude.rnf campaignArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/CreateDataset.hs view
@@ -0,0 +1,305 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.CreateDataset+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an empty dataset and adds it to the specified dataset group. Use+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDatasetImportJob.html CreateDatasetImportJob>+-- to import your training data to a dataset.+--+-- There are three types of datasets:+--+-- -   Interactions+--+-- -   Items+--+-- -   Users+--+-- Each dataset type has an associated schema with required field types.+-- Only the @Interactions@ dataset is required in order to train a model+-- (also referred to as creating a solution).+--+-- A dataset can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   DELETE PENDING > DELETE IN_PROGRESS+--+-- To get the status of the dataset, call+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeDataset.html DescribeDataset>.+--+-- __Related APIs__+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDatasetGroup.html CreateDatasetGroup>+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_ListDatasets.html ListDatasets>+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeDataset.html DescribeDataset>+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_DeleteDataset.html DeleteDataset>+module Amazonka.Personalize.CreateDataset+  ( -- * Creating a Request+    CreateDataset (..),+    newCreateDataset,++    -- * Request Lenses+    createDataset_tags,+    createDataset_name,+    createDataset_schemaArn,+    createDataset_datasetGroupArn,+    createDataset_datasetType,++    -- * Destructuring the Response+    CreateDatasetResponse (..),+    newCreateDatasetResponse,++    -- * Response Lenses+    createDatasetResponse_datasetArn,+    createDatasetResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateDataset' smart constructor.+data CreateDataset = CreateDataset'+  { -- | A list of+    -- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+    -- to apply to the dataset.+    tags :: Prelude.Maybe [Tag],+    -- | The name for the dataset.+    name :: Prelude.Text,+    -- | The ARN of the schema to associate with the dataset. The schema defines+    -- the dataset fields.+    schemaArn :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the dataset group to add the dataset+    -- to.+    datasetGroupArn :: Prelude.Text,+    -- | The type of dataset.+    --+    -- One of the following (case insensitive) values:+    --+    -- -   Interactions+    --+    -- -   Items+    --+    -- -   Users+    datasetType :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDataset' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createDataset_tags' - A list of+-- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+-- to apply to the dataset.+--+-- 'name', 'createDataset_name' - The name for the dataset.+--+-- 'schemaArn', 'createDataset_schemaArn' - The ARN of the schema to associate with the dataset. The schema defines+-- the dataset fields.+--+-- 'datasetGroupArn', 'createDataset_datasetGroupArn' - The Amazon Resource Name (ARN) of the dataset group to add the dataset+-- to.+--+-- 'datasetType', 'createDataset_datasetType' - The type of dataset.+--+-- One of the following (case insensitive) values:+--+-- -   Interactions+--+-- -   Items+--+-- -   Users+newCreateDataset ::+  -- | 'name'+  Prelude.Text ->+  -- | 'schemaArn'+  Prelude.Text ->+  -- | 'datasetGroupArn'+  Prelude.Text ->+  -- | 'datasetType'+  Prelude.Text ->+  CreateDataset+newCreateDataset+  pName_+  pSchemaArn_+  pDatasetGroupArn_+  pDatasetType_ =+    CreateDataset'+      { tags = Prelude.Nothing,+        name = pName_,+        schemaArn = pSchemaArn_,+        datasetGroupArn = pDatasetGroupArn_,+        datasetType = pDatasetType_+      }++-- | A list of+-- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+-- to apply to the dataset.+createDataset_tags :: Lens.Lens' CreateDataset (Prelude.Maybe [Tag])+createDataset_tags = Lens.lens (\CreateDataset' {tags} -> tags) (\s@CreateDataset' {} a -> s {tags = a} :: CreateDataset) Prelude.. Lens.mapping Lens.coerced++-- | The name for the dataset.+createDataset_name :: Lens.Lens' CreateDataset Prelude.Text+createDataset_name = Lens.lens (\CreateDataset' {name} -> name) (\s@CreateDataset' {} a -> s {name = a} :: CreateDataset)++-- | The ARN of the schema to associate with the dataset. The schema defines+-- the dataset fields.+createDataset_schemaArn :: Lens.Lens' CreateDataset Prelude.Text+createDataset_schemaArn = Lens.lens (\CreateDataset' {schemaArn} -> schemaArn) (\s@CreateDataset' {} a -> s {schemaArn = a} :: CreateDataset)++-- | The Amazon Resource Name (ARN) of the dataset group to add the dataset+-- to.+createDataset_datasetGroupArn :: Lens.Lens' CreateDataset Prelude.Text+createDataset_datasetGroupArn = Lens.lens (\CreateDataset' {datasetGroupArn} -> datasetGroupArn) (\s@CreateDataset' {} a -> s {datasetGroupArn = a} :: CreateDataset)++-- | The type of dataset.+--+-- One of the following (case insensitive) values:+--+-- -   Interactions+--+-- -   Items+--+-- -   Users+createDataset_datasetType :: Lens.Lens' CreateDataset Prelude.Text+createDataset_datasetType = Lens.lens (\CreateDataset' {datasetType} -> datasetType) (\s@CreateDataset' {} a -> s {datasetType = a} :: CreateDataset)++instance Core.AWSRequest CreateDataset where+  type+    AWSResponse CreateDataset =+      CreateDatasetResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateDatasetResponse'+            Prelude.<$> (x Data..?> "datasetArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateDataset where+  hashWithSalt _salt CreateDataset' {..} =+    _salt+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` schemaArn+      `Prelude.hashWithSalt` datasetGroupArn+      `Prelude.hashWithSalt` datasetType++instance Prelude.NFData CreateDataset where+  rnf CreateDataset' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf schemaArn+      `Prelude.seq` Prelude.rnf datasetGroupArn+      `Prelude.seq` Prelude.rnf datasetType++instance Data.ToHeaders CreateDataset where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.CreateDataset" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateDataset where+  toJSON CreateDataset' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("name" Data..= name),+            Prelude.Just ("schemaArn" Data..= schemaArn),+            Prelude.Just+              ("datasetGroupArn" Data..= datasetGroupArn),+            Prelude.Just ("datasetType" Data..= datasetType)+          ]+      )++instance Data.ToPath CreateDataset where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateDataset where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateDatasetResponse' smart constructor.+data CreateDatasetResponse = CreateDatasetResponse'+  { -- | The ARN of the dataset.+    datasetArn :: 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 'CreateDatasetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'datasetArn', 'createDatasetResponse_datasetArn' - The ARN of the dataset.+--+-- 'httpStatus', 'createDatasetResponse_httpStatus' - The response's http status code.+newCreateDatasetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateDatasetResponse+newCreateDatasetResponse pHttpStatus_ =+  CreateDatasetResponse'+    { datasetArn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the dataset.+createDatasetResponse_datasetArn :: Lens.Lens' CreateDatasetResponse (Prelude.Maybe Prelude.Text)+createDatasetResponse_datasetArn = Lens.lens (\CreateDatasetResponse' {datasetArn} -> datasetArn) (\s@CreateDatasetResponse' {} a -> s {datasetArn = a} :: CreateDatasetResponse)++-- | The response's http status code.+createDatasetResponse_httpStatus :: Lens.Lens' CreateDatasetResponse Prelude.Int+createDatasetResponse_httpStatus = Lens.lens (\CreateDatasetResponse' {httpStatus} -> httpStatus) (\s@CreateDatasetResponse' {} a -> s {httpStatus = a} :: CreateDatasetResponse)++instance Prelude.NFData CreateDatasetResponse where+  rnf CreateDatasetResponse' {..} =+    Prelude.rnf datasetArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/CreateDatasetExportJob.hs view
@@ -0,0 +1,294 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.CreateDatasetExportJob+-- 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 job that exports data from your dataset to an Amazon S3+-- bucket. To allow Amazon Personalize to export the training data, you+-- must specify an service-linked IAM role that gives Amazon Personalize+-- @PutObject@ permissions for your Amazon S3 bucket. For information, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/export-data.html Exporting a dataset>+-- in the Amazon Personalize developer guide.+--+-- __Status__+--+-- A dataset export job can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- To get the status of the export job, call+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeDatasetExportJob.html DescribeDatasetExportJob>,+-- and specify the Amazon Resource Name (ARN) of the dataset export job.+-- The dataset export is complete when the status shows as ACTIVE. If the+-- status shows as CREATE FAILED, the response includes a @failureReason@+-- key, which describes why the job failed.+module Amazonka.Personalize.CreateDatasetExportJob+  ( -- * Creating a Request+    CreateDatasetExportJob (..),+    newCreateDatasetExportJob,++    -- * Request Lenses+    createDatasetExportJob_ingestionMode,+    createDatasetExportJob_tags,+    createDatasetExportJob_jobName,+    createDatasetExportJob_datasetArn,+    createDatasetExportJob_roleArn,+    createDatasetExportJob_jobOutput,++    -- * Destructuring the Response+    CreateDatasetExportJobResponse (..),+    newCreateDatasetExportJobResponse,++    -- * Response Lenses+    createDatasetExportJobResponse_datasetExportJobArn,+    createDatasetExportJobResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateDatasetExportJob' smart constructor.+data CreateDatasetExportJob = CreateDatasetExportJob'+  { -- | The data to export, based on how you imported the data. You can choose+    -- to export only @BULK@ data that you imported using a dataset import job,+    -- only @PUT@ data that you imported incrementally (using the console,+    -- PutEvents, PutUsers and PutItems operations), or @ALL@ for both types.+    -- The default value is @PUT@.+    ingestionMode :: Prelude.Maybe IngestionMode,+    -- | A list of+    -- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+    -- to apply to the dataset export job.+    tags :: Prelude.Maybe [Tag],+    -- | The name for the dataset export job.+    jobName :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the dataset that contains the data to+    -- export.+    datasetArn :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the IAM service role that has+    -- permissions to add data to your output Amazon S3 bucket.+    roleArn :: Prelude.Text,+    -- | The path to the Amazon S3 bucket where the job\'s output is stored.+    jobOutput :: DatasetExportJobOutput+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDatasetExportJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'ingestionMode', 'createDatasetExportJob_ingestionMode' - The data to export, based on how you imported the data. You can choose+-- to export only @BULK@ data that you imported using a dataset import job,+-- only @PUT@ data that you imported incrementally (using the console,+-- PutEvents, PutUsers and PutItems operations), or @ALL@ for both types.+-- The default value is @PUT@.+--+-- 'tags', 'createDatasetExportJob_tags' - A list of+-- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+-- to apply to the dataset export job.+--+-- 'jobName', 'createDatasetExportJob_jobName' - The name for the dataset export job.+--+-- 'datasetArn', 'createDatasetExportJob_datasetArn' - The Amazon Resource Name (ARN) of the dataset that contains the data to+-- export.+--+-- 'roleArn', 'createDatasetExportJob_roleArn' - The Amazon Resource Name (ARN) of the IAM service role that has+-- permissions to add data to your output Amazon S3 bucket.+--+-- 'jobOutput', 'createDatasetExportJob_jobOutput' - The path to the Amazon S3 bucket where the job\'s output is stored.+newCreateDatasetExportJob ::+  -- | 'jobName'+  Prelude.Text ->+  -- | 'datasetArn'+  Prelude.Text ->+  -- | 'roleArn'+  Prelude.Text ->+  -- | 'jobOutput'+  DatasetExportJobOutput ->+  CreateDatasetExportJob+newCreateDatasetExportJob+  pJobName_+  pDatasetArn_+  pRoleArn_+  pJobOutput_ =+    CreateDatasetExportJob'+      { ingestionMode =+          Prelude.Nothing,+        tags = Prelude.Nothing,+        jobName = pJobName_,+        datasetArn = pDatasetArn_,+        roleArn = pRoleArn_,+        jobOutput = pJobOutput_+      }++-- | The data to export, based on how you imported the data. You can choose+-- to export only @BULK@ data that you imported using a dataset import job,+-- only @PUT@ data that you imported incrementally (using the console,+-- PutEvents, PutUsers and PutItems operations), or @ALL@ for both types.+-- The default value is @PUT@.+createDatasetExportJob_ingestionMode :: Lens.Lens' CreateDatasetExportJob (Prelude.Maybe IngestionMode)+createDatasetExportJob_ingestionMode = Lens.lens (\CreateDatasetExportJob' {ingestionMode} -> ingestionMode) (\s@CreateDatasetExportJob' {} a -> s {ingestionMode = a} :: CreateDatasetExportJob)++-- | A list of+-- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+-- to apply to the dataset export job.+createDatasetExportJob_tags :: Lens.Lens' CreateDatasetExportJob (Prelude.Maybe [Tag])+createDatasetExportJob_tags = Lens.lens (\CreateDatasetExportJob' {tags} -> tags) (\s@CreateDatasetExportJob' {} a -> s {tags = a} :: CreateDatasetExportJob) Prelude.. Lens.mapping Lens.coerced++-- | The name for the dataset export job.+createDatasetExportJob_jobName :: Lens.Lens' CreateDatasetExportJob Prelude.Text+createDatasetExportJob_jobName = Lens.lens (\CreateDatasetExportJob' {jobName} -> jobName) (\s@CreateDatasetExportJob' {} a -> s {jobName = a} :: CreateDatasetExportJob)++-- | The Amazon Resource Name (ARN) of the dataset that contains the data to+-- export.+createDatasetExportJob_datasetArn :: Lens.Lens' CreateDatasetExportJob Prelude.Text+createDatasetExportJob_datasetArn = Lens.lens (\CreateDatasetExportJob' {datasetArn} -> datasetArn) (\s@CreateDatasetExportJob' {} a -> s {datasetArn = a} :: CreateDatasetExportJob)++-- | The Amazon Resource Name (ARN) of the IAM service role that has+-- permissions to add data to your output Amazon S3 bucket.+createDatasetExportJob_roleArn :: Lens.Lens' CreateDatasetExportJob Prelude.Text+createDatasetExportJob_roleArn = Lens.lens (\CreateDatasetExportJob' {roleArn} -> roleArn) (\s@CreateDatasetExportJob' {} a -> s {roleArn = a} :: CreateDatasetExportJob)++-- | The path to the Amazon S3 bucket where the job\'s output is stored.+createDatasetExportJob_jobOutput :: Lens.Lens' CreateDatasetExportJob DatasetExportJobOutput+createDatasetExportJob_jobOutput = Lens.lens (\CreateDatasetExportJob' {jobOutput} -> jobOutput) (\s@CreateDatasetExportJob' {} a -> s {jobOutput = a} :: CreateDatasetExportJob)++instance Core.AWSRequest CreateDatasetExportJob where+  type+    AWSResponse CreateDatasetExportJob =+      CreateDatasetExportJobResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateDatasetExportJobResponse'+            Prelude.<$> (x Data..?> "datasetExportJobArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateDatasetExportJob where+  hashWithSalt _salt CreateDatasetExportJob' {..} =+    _salt+      `Prelude.hashWithSalt` ingestionMode+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` jobName+      `Prelude.hashWithSalt` datasetArn+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` jobOutput++instance Prelude.NFData CreateDatasetExportJob where+  rnf CreateDatasetExportJob' {..} =+    Prelude.rnf ingestionMode+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf jobName+      `Prelude.seq` Prelude.rnf datasetArn+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf jobOutput++instance Data.ToHeaders CreateDatasetExportJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.CreateDatasetExportJob" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateDatasetExportJob where+  toJSON CreateDatasetExportJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ingestionMode" Data..=) Prelude.<$> ingestionMode,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("jobName" Data..= jobName),+            Prelude.Just ("datasetArn" Data..= datasetArn),+            Prelude.Just ("roleArn" Data..= roleArn),+            Prelude.Just ("jobOutput" Data..= jobOutput)+          ]+      )++instance Data.ToPath CreateDatasetExportJob where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateDatasetExportJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateDatasetExportJobResponse' smart constructor.+data CreateDatasetExportJobResponse = CreateDatasetExportJobResponse'+  { -- | The Amazon Resource Name (ARN) of the dataset export job.+    datasetExportJobArn :: 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 'CreateDatasetExportJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'datasetExportJobArn', 'createDatasetExportJobResponse_datasetExportJobArn' - The Amazon Resource Name (ARN) of the dataset export job.+--+-- 'httpStatus', 'createDatasetExportJobResponse_httpStatus' - The response's http status code.+newCreateDatasetExportJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateDatasetExportJobResponse+newCreateDatasetExportJobResponse pHttpStatus_ =+  CreateDatasetExportJobResponse'+    { datasetExportJobArn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the dataset export job.+createDatasetExportJobResponse_datasetExportJobArn :: Lens.Lens' CreateDatasetExportJobResponse (Prelude.Maybe Prelude.Text)+createDatasetExportJobResponse_datasetExportJobArn = Lens.lens (\CreateDatasetExportJobResponse' {datasetExportJobArn} -> datasetExportJobArn) (\s@CreateDatasetExportJobResponse' {} a -> s {datasetExportJobArn = a} :: CreateDatasetExportJobResponse)++-- | The response's http status code.+createDatasetExportJobResponse_httpStatus :: Lens.Lens' CreateDatasetExportJobResponse Prelude.Int+createDatasetExportJobResponse_httpStatus = Lens.lens (\CreateDatasetExportJobResponse' {httpStatus} -> httpStatus) (\s@CreateDatasetExportJobResponse' {} a -> s {httpStatus = a} :: CreateDatasetExportJobResponse)++instance+  Prelude.NFData+    CreateDatasetExportJobResponse+  where+  rnf CreateDatasetExportJobResponse' {..} =+    Prelude.rnf datasetExportJobArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/CreateDatasetGroup.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.Personalize.CreateDatasetGroup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an empty dataset group. A dataset group is a container for+-- Amazon Personalize resources. A dataset group can contain at most three+-- datasets, one for each type of dataset:+--+-- -   Interactions+--+-- -   Items+--+-- -   Users+--+-- A dataset group can be a Domain dataset group, where you specify a+-- domain and use pre-configured resources like recommenders, or a Custom+-- dataset group, where you use custom resources, such as a solution with a+-- solution version, that you deploy with a campaign. If you start with a+-- Domain dataset group, you can still add custom resources such as+-- solutions and solution versions trained with recipes for custom use+-- cases and deployed with campaigns.+--+-- A dataset group can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   DELETE PENDING+--+-- To get the status of the dataset group, call+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeDatasetGroup.html DescribeDatasetGroup>.+-- If the status shows as CREATE FAILED, the response includes a+-- @failureReason@ key, which describes why the creation failed.+--+-- You must wait until the @status@ of the dataset group is @ACTIVE@ before+-- adding a dataset to the group.+--+-- You can specify an Key Management Service (KMS) key to encrypt the+-- datasets in the group. If you specify a KMS key, you must also include+-- an Identity and Access Management (IAM) role that has permission to+-- access the key.+--+-- __APIs that require a dataset group ARN in the request__+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDataset.html CreateDataset>+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateEventTracker.html CreateEventTracker>+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateSolution.html CreateSolution>+--+-- __Related APIs__+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_ListDatasetGroups.html ListDatasetGroups>+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeDatasetGroup.html DescribeDatasetGroup>+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_DeleteDatasetGroup.html DeleteDatasetGroup>+module Amazonka.Personalize.CreateDatasetGroup+  ( -- * Creating a Request+    CreateDatasetGroup (..),+    newCreateDatasetGroup,++    -- * Request Lenses+    createDatasetGroup_domain,+    createDatasetGroup_kmsKeyArn,+    createDatasetGroup_roleArn,+    createDatasetGroup_tags,+    createDatasetGroup_name,++    -- * Destructuring the Response+    CreateDatasetGroupResponse (..),+    newCreateDatasetGroupResponse,++    -- * Response Lenses+    createDatasetGroupResponse_datasetGroupArn,+    createDatasetGroupResponse_domain,+    createDatasetGroupResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateDatasetGroup' smart constructor.+data CreateDatasetGroup = CreateDatasetGroup'+  { -- | The domain of the dataset group. Specify a domain to create a Domain+    -- dataset group. The domain you specify determines the default schemas for+    -- datasets and the use cases available for recommenders. If you don\'t+    -- specify a domain, you create a Custom dataset group with solution+    -- versions that you deploy with a campaign.+    domain :: Prelude.Maybe Domain,+    -- | The Amazon Resource Name (ARN) of a Key Management Service (KMS) key+    -- used to encrypt the datasets.+    kmsKeyArn :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the Identity and Access Management (IAM) role that has+    -- permissions to access the Key Management Service (KMS) key. Supplying an+    -- IAM role is only valid when also specifying a KMS key.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | A list of+    -- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+    -- to apply to the dataset group.+    tags :: Prelude.Maybe [Tag],+    -- | The name for the new dataset group.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDatasetGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'domain', 'createDatasetGroup_domain' - The domain of the dataset group. Specify a domain to create a Domain+-- dataset group. The domain you specify determines the default schemas for+-- datasets and the use cases available for recommenders. If you don\'t+-- specify a domain, you create a Custom dataset group with solution+-- versions that you deploy with a campaign.+--+-- 'kmsKeyArn', 'createDatasetGroup_kmsKeyArn' - The Amazon Resource Name (ARN) of a Key Management Service (KMS) key+-- used to encrypt the datasets.+--+-- 'roleArn', 'createDatasetGroup_roleArn' - The ARN of the Identity and Access Management (IAM) role that has+-- permissions to access the Key Management Service (KMS) key. Supplying an+-- IAM role is only valid when also specifying a KMS key.+--+-- 'tags', 'createDatasetGroup_tags' - A list of+-- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+-- to apply to the dataset group.+--+-- 'name', 'createDatasetGroup_name' - The name for the new dataset group.+newCreateDatasetGroup ::+  -- | 'name'+  Prelude.Text ->+  CreateDatasetGroup+newCreateDatasetGroup pName_ =+  CreateDatasetGroup'+    { domain = Prelude.Nothing,+      kmsKeyArn = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      tags = Prelude.Nothing,+      name = pName_+    }++-- | The domain of the dataset group. Specify a domain to create a Domain+-- dataset group. The domain you specify determines the default schemas for+-- datasets and the use cases available for recommenders. If you don\'t+-- specify a domain, you create a Custom dataset group with solution+-- versions that you deploy with a campaign.+createDatasetGroup_domain :: Lens.Lens' CreateDatasetGroup (Prelude.Maybe Domain)+createDatasetGroup_domain = Lens.lens (\CreateDatasetGroup' {domain} -> domain) (\s@CreateDatasetGroup' {} a -> s {domain = a} :: CreateDatasetGroup)++-- | The Amazon Resource Name (ARN) of a Key Management Service (KMS) key+-- used to encrypt the datasets.+createDatasetGroup_kmsKeyArn :: Lens.Lens' CreateDatasetGroup (Prelude.Maybe Prelude.Text)+createDatasetGroup_kmsKeyArn = Lens.lens (\CreateDatasetGroup' {kmsKeyArn} -> kmsKeyArn) (\s@CreateDatasetGroup' {} a -> s {kmsKeyArn = a} :: CreateDatasetGroup)++-- | The ARN of the Identity and Access Management (IAM) role that has+-- permissions to access the Key Management Service (KMS) key. Supplying an+-- IAM role is only valid when also specifying a KMS key.+createDatasetGroup_roleArn :: Lens.Lens' CreateDatasetGroup (Prelude.Maybe Prelude.Text)+createDatasetGroup_roleArn = Lens.lens (\CreateDatasetGroup' {roleArn} -> roleArn) (\s@CreateDatasetGroup' {} a -> s {roleArn = a} :: CreateDatasetGroup)++-- | A list of+-- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+-- to apply to the dataset group.+createDatasetGroup_tags :: Lens.Lens' CreateDatasetGroup (Prelude.Maybe [Tag])+createDatasetGroup_tags = Lens.lens (\CreateDatasetGroup' {tags} -> tags) (\s@CreateDatasetGroup' {} a -> s {tags = a} :: CreateDatasetGroup) Prelude.. Lens.mapping Lens.coerced++-- | The name for the new dataset group.+createDatasetGroup_name :: Lens.Lens' CreateDatasetGroup Prelude.Text+createDatasetGroup_name = Lens.lens (\CreateDatasetGroup' {name} -> name) (\s@CreateDatasetGroup' {} a -> s {name = a} :: CreateDatasetGroup)++instance Core.AWSRequest CreateDatasetGroup where+  type+    AWSResponse CreateDatasetGroup =+      CreateDatasetGroupResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateDatasetGroupResponse'+            Prelude.<$> (x Data..?> "datasetGroupArn")+            Prelude.<*> (x Data..?> "domain")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateDatasetGroup where+  hashWithSalt _salt CreateDatasetGroup' {..} =+    _salt+      `Prelude.hashWithSalt` domain+      `Prelude.hashWithSalt` kmsKeyArn+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name++instance Prelude.NFData CreateDatasetGroup where+  rnf CreateDatasetGroup' {..} =+    Prelude.rnf domain+      `Prelude.seq` Prelude.rnf kmsKeyArn+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders CreateDatasetGroup where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.CreateDatasetGroup" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateDatasetGroup where+  toJSON CreateDatasetGroup' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("domain" Data..=) Prelude.<$> domain,+            ("kmsKeyArn" Data..=) Prelude.<$> kmsKeyArn,+            ("roleArn" Data..=) Prelude.<$> roleArn,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("name" Data..= name)+          ]+      )++instance Data.ToPath CreateDatasetGroup where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateDatasetGroup where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateDatasetGroupResponse' smart constructor.+data CreateDatasetGroupResponse = CreateDatasetGroupResponse'+  { -- | The Amazon Resource Name (ARN) of the new dataset group.+    datasetGroupArn :: Prelude.Maybe Prelude.Text,+    -- | The domain for the new Domain dataset group.+    domain :: Prelude.Maybe Domain,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDatasetGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'datasetGroupArn', 'createDatasetGroupResponse_datasetGroupArn' - The Amazon Resource Name (ARN) of the new dataset group.+--+-- 'domain', 'createDatasetGroupResponse_domain' - The domain for the new Domain dataset group.+--+-- 'httpStatus', 'createDatasetGroupResponse_httpStatus' - The response's http status code.+newCreateDatasetGroupResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateDatasetGroupResponse+newCreateDatasetGroupResponse pHttpStatus_ =+  CreateDatasetGroupResponse'+    { datasetGroupArn =+        Prelude.Nothing,+      domain = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the new dataset group.+createDatasetGroupResponse_datasetGroupArn :: Lens.Lens' CreateDatasetGroupResponse (Prelude.Maybe Prelude.Text)+createDatasetGroupResponse_datasetGroupArn = Lens.lens (\CreateDatasetGroupResponse' {datasetGroupArn} -> datasetGroupArn) (\s@CreateDatasetGroupResponse' {} a -> s {datasetGroupArn = a} :: CreateDatasetGroupResponse)++-- | The domain for the new Domain dataset group.+createDatasetGroupResponse_domain :: Lens.Lens' CreateDatasetGroupResponse (Prelude.Maybe Domain)+createDatasetGroupResponse_domain = Lens.lens (\CreateDatasetGroupResponse' {domain} -> domain) (\s@CreateDatasetGroupResponse' {} a -> s {domain = a} :: CreateDatasetGroupResponse)++-- | The response's http status code.+createDatasetGroupResponse_httpStatus :: Lens.Lens' CreateDatasetGroupResponse Prelude.Int+createDatasetGroupResponse_httpStatus = Lens.lens (\CreateDatasetGroupResponse' {httpStatus} -> httpStatus) (\s@CreateDatasetGroupResponse' {} a -> s {httpStatus = a} :: CreateDatasetGroupResponse)++instance Prelude.NFData CreateDatasetGroupResponse where+  rnf CreateDatasetGroupResponse' {..} =+    Prelude.rnf datasetGroupArn+      `Prelude.seq` Prelude.rnf domain+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/CreateDatasetImportJob.hs view
@@ -0,0 +1,338 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.CreateDatasetImportJob+-- 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 job that imports training data from your data source (an+-- Amazon S3 bucket) to an Amazon Personalize dataset. To allow Amazon+-- Personalize to import the training data, you must specify an IAM service+-- role that has permission to read from the data source, as Amazon+-- Personalize makes a copy of your data and processes it internally. For+-- information on granting access to your Amazon S3 bucket, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/granting-personalize-s3-access.html Giving Amazon Personalize Access to Amazon S3 Resources>.+--+-- By default, a dataset import job replaces any existing data in the+-- dataset that you imported in bulk. To add new records without replacing+-- existing data, specify INCREMENTAL for the import mode in the+-- CreateDatasetImportJob operation.+--+-- __Status__+--+-- A dataset import job can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- To get the status of the import job, call+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeDatasetImportJob.html DescribeDatasetImportJob>,+-- providing the Amazon Resource Name (ARN) of the dataset import job. The+-- dataset import is complete when the status shows as ACTIVE. If the+-- status shows as CREATE FAILED, the response includes a @failureReason@+-- key, which describes why the job failed.+--+-- Importing takes time. You must wait until the status shows as ACTIVE+-- before training a model using the dataset.+--+-- __Related APIs__+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_ListDatasetImportJobs.html ListDatasetImportJobs>+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeDatasetImportJob.html DescribeDatasetImportJob>+module Amazonka.Personalize.CreateDatasetImportJob+  ( -- * Creating a Request+    CreateDatasetImportJob (..),+    newCreateDatasetImportJob,++    -- * Request Lenses+    createDatasetImportJob_importMode,+    createDatasetImportJob_publishAttributionMetricsToS3,+    createDatasetImportJob_tags,+    createDatasetImportJob_jobName,+    createDatasetImportJob_datasetArn,+    createDatasetImportJob_dataSource,+    createDatasetImportJob_roleArn,++    -- * Destructuring the Response+    CreateDatasetImportJobResponse (..),+    newCreateDatasetImportJobResponse,++    -- * Response Lenses+    createDatasetImportJobResponse_datasetImportJobArn,+    createDatasetImportJobResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateDatasetImportJob' smart constructor.+data CreateDatasetImportJob = CreateDatasetImportJob'+  { -- | Specify how to add the new records to an existing dataset. The default+    -- import mode is @FULL@. If you haven\'t imported bulk records into the+    -- dataset previously, you can only specify @FULL@.+    --+    -- -   Specify @FULL@ to overwrite all existing bulk data in your dataset.+    --     Data you imported individually is not replaced.+    --+    -- -   Specify @INCREMENTAL@ to append the new records to the existing data+    --     in your dataset. Amazon Personalize replaces any record with the+    --     same ID with the new one.+    importMode :: Prelude.Maybe ImportMode,+    -- | If you created a metric attribution, specify whether to publish metrics+    -- for this import job to Amazon S3+    publishAttributionMetricsToS3 :: Prelude.Maybe Prelude.Bool,+    -- | A list of+    -- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+    -- to apply to the dataset import job.+    tags :: Prelude.Maybe [Tag],+    -- | The name for the dataset import job.+    jobName :: Prelude.Text,+    -- | The ARN of the dataset that receives the imported data.+    datasetArn :: Prelude.Text,+    -- | The Amazon S3 bucket that contains the training data to import.+    dataSource :: DataSource,+    -- | The ARN of the IAM role that has permissions to read from the Amazon S3+    -- data source.+    roleArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDatasetImportJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'importMode', 'createDatasetImportJob_importMode' - Specify how to add the new records to an existing dataset. The default+-- import mode is @FULL@. If you haven\'t imported bulk records into the+-- dataset previously, you can only specify @FULL@.+--+-- -   Specify @FULL@ to overwrite all existing bulk data in your dataset.+--     Data you imported individually is not replaced.+--+-- -   Specify @INCREMENTAL@ to append the new records to the existing data+--     in your dataset. Amazon Personalize replaces any record with the+--     same ID with the new one.+--+-- 'publishAttributionMetricsToS3', 'createDatasetImportJob_publishAttributionMetricsToS3' - If you created a metric attribution, specify whether to publish metrics+-- for this import job to Amazon S3+--+-- 'tags', 'createDatasetImportJob_tags' - A list of+-- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+-- to apply to the dataset import job.+--+-- 'jobName', 'createDatasetImportJob_jobName' - The name for the dataset import job.+--+-- 'datasetArn', 'createDatasetImportJob_datasetArn' - The ARN of the dataset that receives the imported data.+--+-- 'dataSource', 'createDatasetImportJob_dataSource' - The Amazon S3 bucket that contains the training data to import.+--+-- 'roleArn', 'createDatasetImportJob_roleArn' - The ARN of the IAM role that has permissions to read from the Amazon S3+-- data source.+newCreateDatasetImportJob ::+  -- | 'jobName'+  Prelude.Text ->+  -- | 'datasetArn'+  Prelude.Text ->+  -- | 'dataSource'+  DataSource ->+  -- | 'roleArn'+  Prelude.Text ->+  CreateDatasetImportJob+newCreateDatasetImportJob+  pJobName_+  pDatasetArn_+  pDataSource_+  pRoleArn_ =+    CreateDatasetImportJob'+      { importMode =+          Prelude.Nothing,+        publishAttributionMetricsToS3 = Prelude.Nothing,+        tags = Prelude.Nothing,+        jobName = pJobName_,+        datasetArn = pDatasetArn_,+        dataSource = pDataSource_,+        roleArn = pRoleArn_+      }++-- | Specify how to add the new records to an existing dataset. The default+-- import mode is @FULL@. If you haven\'t imported bulk records into the+-- dataset previously, you can only specify @FULL@.+--+-- -   Specify @FULL@ to overwrite all existing bulk data in your dataset.+--     Data you imported individually is not replaced.+--+-- -   Specify @INCREMENTAL@ to append the new records to the existing data+--     in your dataset. Amazon Personalize replaces any record with the+--     same ID with the new one.+createDatasetImportJob_importMode :: Lens.Lens' CreateDatasetImportJob (Prelude.Maybe ImportMode)+createDatasetImportJob_importMode = Lens.lens (\CreateDatasetImportJob' {importMode} -> importMode) (\s@CreateDatasetImportJob' {} a -> s {importMode = a} :: CreateDatasetImportJob)++-- | If you created a metric attribution, specify whether to publish metrics+-- for this import job to Amazon S3+createDatasetImportJob_publishAttributionMetricsToS3 :: Lens.Lens' CreateDatasetImportJob (Prelude.Maybe Prelude.Bool)+createDatasetImportJob_publishAttributionMetricsToS3 = Lens.lens (\CreateDatasetImportJob' {publishAttributionMetricsToS3} -> publishAttributionMetricsToS3) (\s@CreateDatasetImportJob' {} a -> s {publishAttributionMetricsToS3 = a} :: CreateDatasetImportJob)++-- | A list of+-- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+-- to apply to the dataset import job.+createDatasetImportJob_tags :: Lens.Lens' CreateDatasetImportJob (Prelude.Maybe [Tag])+createDatasetImportJob_tags = Lens.lens (\CreateDatasetImportJob' {tags} -> tags) (\s@CreateDatasetImportJob' {} a -> s {tags = a} :: CreateDatasetImportJob) Prelude.. Lens.mapping Lens.coerced++-- | The name for the dataset import job.+createDatasetImportJob_jobName :: Lens.Lens' CreateDatasetImportJob Prelude.Text+createDatasetImportJob_jobName = Lens.lens (\CreateDatasetImportJob' {jobName} -> jobName) (\s@CreateDatasetImportJob' {} a -> s {jobName = a} :: CreateDatasetImportJob)++-- | The ARN of the dataset that receives the imported data.+createDatasetImportJob_datasetArn :: Lens.Lens' CreateDatasetImportJob Prelude.Text+createDatasetImportJob_datasetArn = Lens.lens (\CreateDatasetImportJob' {datasetArn} -> datasetArn) (\s@CreateDatasetImportJob' {} a -> s {datasetArn = a} :: CreateDatasetImportJob)++-- | The Amazon S3 bucket that contains the training data to import.+createDatasetImportJob_dataSource :: Lens.Lens' CreateDatasetImportJob DataSource+createDatasetImportJob_dataSource = Lens.lens (\CreateDatasetImportJob' {dataSource} -> dataSource) (\s@CreateDatasetImportJob' {} a -> s {dataSource = a} :: CreateDatasetImportJob)++-- | The ARN of the IAM role that has permissions to read from the Amazon S3+-- data source.+createDatasetImportJob_roleArn :: Lens.Lens' CreateDatasetImportJob Prelude.Text+createDatasetImportJob_roleArn = Lens.lens (\CreateDatasetImportJob' {roleArn} -> roleArn) (\s@CreateDatasetImportJob' {} a -> s {roleArn = a} :: CreateDatasetImportJob)++instance Core.AWSRequest CreateDatasetImportJob where+  type+    AWSResponse CreateDatasetImportJob =+      CreateDatasetImportJobResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateDatasetImportJobResponse'+            Prelude.<$> (x Data..?> "datasetImportJobArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateDatasetImportJob where+  hashWithSalt _salt CreateDatasetImportJob' {..} =+    _salt+      `Prelude.hashWithSalt` importMode+      `Prelude.hashWithSalt` publishAttributionMetricsToS3+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` jobName+      `Prelude.hashWithSalt` datasetArn+      `Prelude.hashWithSalt` dataSource+      `Prelude.hashWithSalt` roleArn++instance Prelude.NFData CreateDatasetImportJob where+  rnf CreateDatasetImportJob' {..} =+    Prelude.rnf importMode+      `Prelude.seq` Prelude.rnf publishAttributionMetricsToS3+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf jobName+      `Prelude.seq` Prelude.rnf datasetArn+      `Prelude.seq` Prelude.rnf dataSource+      `Prelude.seq` Prelude.rnf roleArn++instance Data.ToHeaders CreateDatasetImportJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.CreateDatasetImportJob" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateDatasetImportJob where+  toJSON CreateDatasetImportJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("importMode" Data..=) Prelude.<$> importMode,+            ("publishAttributionMetricsToS3" Data..=)+              Prelude.<$> publishAttributionMetricsToS3,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("jobName" Data..= jobName),+            Prelude.Just ("datasetArn" Data..= datasetArn),+            Prelude.Just ("dataSource" Data..= dataSource),+            Prelude.Just ("roleArn" Data..= roleArn)+          ]+      )++instance Data.ToPath CreateDatasetImportJob where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateDatasetImportJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateDatasetImportJobResponse' smart constructor.+data CreateDatasetImportJobResponse = CreateDatasetImportJobResponse'+  { -- | The ARN of the dataset import job.+    datasetImportJobArn :: 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 'CreateDatasetImportJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'datasetImportJobArn', 'createDatasetImportJobResponse_datasetImportJobArn' - The ARN of the dataset import job.+--+-- 'httpStatus', 'createDatasetImportJobResponse_httpStatus' - The response's http status code.+newCreateDatasetImportJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateDatasetImportJobResponse+newCreateDatasetImportJobResponse pHttpStatus_ =+  CreateDatasetImportJobResponse'+    { datasetImportJobArn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the dataset import job.+createDatasetImportJobResponse_datasetImportJobArn :: Lens.Lens' CreateDatasetImportJobResponse (Prelude.Maybe Prelude.Text)+createDatasetImportJobResponse_datasetImportJobArn = Lens.lens (\CreateDatasetImportJobResponse' {datasetImportJobArn} -> datasetImportJobArn) (\s@CreateDatasetImportJobResponse' {} a -> s {datasetImportJobArn = a} :: CreateDatasetImportJobResponse)++-- | The response's http status code.+createDatasetImportJobResponse_httpStatus :: Lens.Lens' CreateDatasetImportJobResponse Prelude.Int+createDatasetImportJobResponse_httpStatus = Lens.lens (\CreateDatasetImportJobResponse' {httpStatus} -> httpStatus) (\s@CreateDatasetImportJobResponse' {} a -> s {httpStatus = a} :: CreateDatasetImportJobResponse)++instance+  Prelude.NFData+    CreateDatasetImportJobResponse+  where+  rnf CreateDatasetImportJobResponse' {..} =+    Prelude.rnf datasetImportJobArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/CreateEventTracker.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.Personalize.CreateEventTracker+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an event tracker that you use when adding event data to a+-- specified dataset group using the+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_UBS_PutEvents.html PutEvents>+-- API.+--+-- Only one event tracker can be associated with a dataset group. You will+-- get an error if you call @CreateEventTracker@ using the same dataset+-- group as an existing event tracker.+--+-- When you create an event tracker, the response includes a tracking ID,+-- which you pass as a parameter when you use the+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_UBS_PutEvents.html PutEvents>+-- operation. Amazon Personalize then appends the event data to the+-- Interactions dataset of the dataset group you specify in your event+-- tracker.+--+-- The event tracker can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   DELETE PENDING > DELETE IN_PROGRESS+--+-- To get the status of the event tracker, call+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeEventTracker.html DescribeEventTracker>.+--+-- The event tracker must be in the ACTIVE state before using the tracking+-- ID.+--+-- __Related APIs__+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_ListEventTrackers.html ListEventTrackers>+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeEventTracker.html DescribeEventTracker>+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_DeleteEventTracker.html DeleteEventTracker>+module Amazonka.Personalize.CreateEventTracker+  ( -- * Creating a Request+    CreateEventTracker (..),+    newCreateEventTracker,++    -- * Request Lenses+    createEventTracker_tags,+    createEventTracker_name,+    createEventTracker_datasetGroupArn,++    -- * Destructuring the Response+    CreateEventTrackerResponse (..),+    newCreateEventTrackerResponse,++    -- * Response Lenses+    createEventTrackerResponse_eventTrackerArn,+    createEventTrackerResponse_trackingId,+    createEventTrackerResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateEventTracker' smart constructor.+data CreateEventTracker = CreateEventTracker'+  { -- | A list of+    -- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+    -- to apply to the event tracker.+    tags :: Prelude.Maybe [Tag],+    -- | The name for the event tracker.+    name :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the dataset group that receives the+    -- event data.+    datasetGroupArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateEventTracker' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createEventTracker_tags' - A list of+-- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+-- to apply to the event tracker.+--+-- 'name', 'createEventTracker_name' - The name for the event tracker.+--+-- 'datasetGroupArn', 'createEventTracker_datasetGroupArn' - The Amazon Resource Name (ARN) of the dataset group that receives the+-- event data.+newCreateEventTracker ::+  -- | 'name'+  Prelude.Text ->+  -- | 'datasetGroupArn'+  Prelude.Text ->+  CreateEventTracker+newCreateEventTracker pName_ pDatasetGroupArn_ =+  CreateEventTracker'+    { tags = Prelude.Nothing,+      name = pName_,+      datasetGroupArn = pDatasetGroupArn_+    }++-- | A list of+-- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+-- to apply to the event tracker.+createEventTracker_tags :: Lens.Lens' CreateEventTracker (Prelude.Maybe [Tag])+createEventTracker_tags = Lens.lens (\CreateEventTracker' {tags} -> tags) (\s@CreateEventTracker' {} a -> s {tags = a} :: CreateEventTracker) Prelude.. Lens.mapping Lens.coerced++-- | The name for the event tracker.+createEventTracker_name :: Lens.Lens' CreateEventTracker Prelude.Text+createEventTracker_name = Lens.lens (\CreateEventTracker' {name} -> name) (\s@CreateEventTracker' {} a -> s {name = a} :: CreateEventTracker)++-- | The Amazon Resource Name (ARN) of the dataset group that receives the+-- event data.+createEventTracker_datasetGroupArn :: Lens.Lens' CreateEventTracker Prelude.Text+createEventTracker_datasetGroupArn = Lens.lens (\CreateEventTracker' {datasetGroupArn} -> datasetGroupArn) (\s@CreateEventTracker' {} a -> s {datasetGroupArn = a} :: CreateEventTracker)++instance Core.AWSRequest CreateEventTracker where+  type+    AWSResponse CreateEventTracker =+      CreateEventTrackerResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateEventTrackerResponse'+            Prelude.<$> (x Data..?> "eventTrackerArn")+            Prelude.<*> (x Data..?> "trackingId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateEventTracker where+  hashWithSalt _salt CreateEventTracker' {..} =+    _salt+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` datasetGroupArn++instance Prelude.NFData CreateEventTracker where+  rnf CreateEventTracker' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf datasetGroupArn++instance Data.ToHeaders CreateEventTracker where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.CreateEventTracker" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateEventTracker where+  toJSON CreateEventTracker' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("name" Data..= name),+            Prelude.Just+              ("datasetGroupArn" Data..= datasetGroupArn)+          ]+      )++instance Data.ToPath CreateEventTracker where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateEventTracker where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateEventTrackerResponse' smart constructor.+data CreateEventTrackerResponse = CreateEventTrackerResponse'+  { -- | The ARN of the event tracker.+    eventTrackerArn :: Prelude.Maybe Prelude.Text,+    -- | The ID of the event tracker. Include this ID in requests to the+    -- <https://docs.aws.amazon.com/personalize/latest/dg/API_UBS_PutEvents.html PutEvents>+    -- API.+    trackingId :: 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 'CreateEventTrackerResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventTrackerArn', 'createEventTrackerResponse_eventTrackerArn' - The ARN of the event tracker.+--+-- 'trackingId', 'createEventTrackerResponse_trackingId' - The ID of the event tracker. Include this ID in requests to the+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_UBS_PutEvents.html PutEvents>+-- API.+--+-- 'httpStatus', 'createEventTrackerResponse_httpStatus' - The response's http status code.+newCreateEventTrackerResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateEventTrackerResponse+newCreateEventTrackerResponse pHttpStatus_ =+  CreateEventTrackerResponse'+    { eventTrackerArn =+        Prelude.Nothing,+      trackingId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the event tracker.+createEventTrackerResponse_eventTrackerArn :: Lens.Lens' CreateEventTrackerResponse (Prelude.Maybe Prelude.Text)+createEventTrackerResponse_eventTrackerArn = Lens.lens (\CreateEventTrackerResponse' {eventTrackerArn} -> eventTrackerArn) (\s@CreateEventTrackerResponse' {} a -> s {eventTrackerArn = a} :: CreateEventTrackerResponse)++-- | The ID of the event tracker. Include this ID in requests to the+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_UBS_PutEvents.html PutEvents>+-- API.+createEventTrackerResponse_trackingId :: Lens.Lens' CreateEventTrackerResponse (Prelude.Maybe Prelude.Text)+createEventTrackerResponse_trackingId = Lens.lens (\CreateEventTrackerResponse' {trackingId} -> trackingId) (\s@CreateEventTrackerResponse' {} a -> s {trackingId = a} :: CreateEventTrackerResponse)++-- | The response's http status code.+createEventTrackerResponse_httpStatus :: Lens.Lens' CreateEventTrackerResponse Prelude.Int+createEventTrackerResponse_httpStatus = Lens.lens (\CreateEventTrackerResponse' {httpStatus} -> httpStatus) (\s@CreateEventTrackerResponse' {} a -> s {httpStatus = a} :: CreateEventTrackerResponse)++instance Prelude.NFData CreateEventTrackerResponse where+  rnf CreateEventTrackerResponse' {..} =+    Prelude.rnf eventTrackerArn+      `Prelude.seq` Prelude.rnf trackingId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/CreateFilter.hs view
@@ -0,0 +1,235 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.CreateFilter+-- 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 recommendation filter. For more information, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/filter.html Filtering recommendations and user segments>.+module Amazonka.Personalize.CreateFilter+  ( -- * Creating a Request+    CreateFilter (..),+    newCreateFilter,++    -- * Request Lenses+    createFilter_tags,+    createFilter_name,+    createFilter_datasetGroupArn,+    createFilter_filterExpression,++    -- * Destructuring the Response+    CreateFilterResponse (..),+    newCreateFilterResponse,++    -- * Response Lenses+    createFilterResponse_filterArn,+    createFilterResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateFilter' smart constructor.+data CreateFilter = CreateFilter'+  { -- | A list of+    -- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+    -- to apply to the filter.+    tags :: Prelude.Maybe [Tag],+    -- | The name of the filter to create.+    name :: Prelude.Text,+    -- | The ARN of the dataset group that the filter will belong to.+    datasetGroupArn :: Prelude.Text,+    -- | The filter expression defines which items are included or excluded from+    -- recommendations. Filter expression must follow specific format rules.+    -- For information about filter expression structure and syntax, see+    -- <https://docs.aws.amazon.com/personalize/latest/dg/filter-expressions.html Filter expressions>.+    filterExpression :: Data.Sensitive Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createFilter_tags' - A list of+-- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+-- to apply to the filter.+--+-- 'name', 'createFilter_name' - The name of the filter to create.+--+-- 'datasetGroupArn', 'createFilter_datasetGroupArn' - The ARN of the dataset group that the filter will belong to.+--+-- 'filterExpression', 'createFilter_filterExpression' - The filter expression defines which items are included or excluded from+-- recommendations. Filter expression must follow specific format rules.+-- For information about filter expression structure and syntax, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/filter-expressions.html Filter expressions>.+newCreateFilter ::+  -- | 'name'+  Prelude.Text ->+  -- | 'datasetGroupArn'+  Prelude.Text ->+  -- | 'filterExpression'+  Prelude.Text ->+  CreateFilter+newCreateFilter+  pName_+  pDatasetGroupArn_+  pFilterExpression_ =+    CreateFilter'+      { tags = Prelude.Nothing,+        name = pName_,+        datasetGroupArn = pDatasetGroupArn_,+        filterExpression =+          Data._Sensitive Lens.# pFilterExpression_+      }++-- | A list of+-- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+-- to apply to the filter.+createFilter_tags :: Lens.Lens' CreateFilter (Prelude.Maybe [Tag])+createFilter_tags = Lens.lens (\CreateFilter' {tags} -> tags) (\s@CreateFilter' {} a -> s {tags = a} :: CreateFilter) Prelude.. Lens.mapping Lens.coerced++-- | The name of the filter to create.+createFilter_name :: Lens.Lens' CreateFilter Prelude.Text+createFilter_name = Lens.lens (\CreateFilter' {name} -> name) (\s@CreateFilter' {} a -> s {name = a} :: CreateFilter)++-- | The ARN of the dataset group that the filter will belong to.+createFilter_datasetGroupArn :: Lens.Lens' CreateFilter Prelude.Text+createFilter_datasetGroupArn = Lens.lens (\CreateFilter' {datasetGroupArn} -> datasetGroupArn) (\s@CreateFilter' {} a -> s {datasetGroupArn = a} :: CreateFilter)++-- | The filter expression defines which items are included or excluded from+-- recommendations. Filter expression must follow specific format rules.+-- For information about filter expression structure and syntax, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/filter-expressions.html Filter expressions>.+createFilter_filterExpression :: Lens.Lens' CreateFilter Prelude.Text+createFilter_filterExpression = Lens.lens (\CreateFilter' {filterExpression} -> filterExpression) (\s@CreateFilter' {} a -> s {filterExpression = a} :: CreateFilter) Prelude.. Data._Sensitive++instance Core.AWSRequest CreateFilter where+  type AWSResponse CreateFilter = CreateFilterResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateFilterResponse'+            Prelude.<$> (x Data..?> "filterArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateFilter where+  hashWithSalt _salt CreateFilter' {..} =+    _salt+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` datasetGroupArn+      `Prelude.hashWithSalt` filterExpression++instance Prelude.NFData CreateFilter where+  rnf CreateFilter' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf datasetGroupArn+      `Prelude.seq` Prelude.rnf filterExpression++instance Data.ToHeaders CreateFilter where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.CreateFilter" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateFilter where+  toJSON CreateFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("name" Data..= name),+            Prelude.Just+              ("datasetGroupArn" Data..= datasetGroupArn),+            Prelude.Just+              ("filterExpression" Data..= filterExpression)+          ]+      )++instance Data.ToPath CreateFilter where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateFilter where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateFilterResponse' smart constructor.+data CreateFilterResponse = CreateFilterResponse'+  { -- | The ARN of the new filter.+    filterArn :: 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 'CreateFilterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filterArn', 'createFilterResponse_filterArn' - The ARN of the new filter.+--+-- 'httpStatus', 'createFilterResponse_httpStatus' - The response's http status code.+newCreateFilterResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateFilterResponse+newCreateFilterResponse pHttpStatus_ =+  CreateFilterResponse'+    { filterArn = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the new filter.+createFilterResponse_filterArn :: Lens.Lens' CreateFilterResponse (Prelude.Maybe Prelude.Text)+createFilterResponse_filterArn = Lens.lens (\CreateFilterResponse' {filterArn} -> filterArn) (\s@CreateFilterResponse' {} a -> s {filterArn = a} :: CreateFilterResponse)++-- | The response's http status code.+createFilterResponse_httpStatus :: Lens.Lens' CreateFilterResponse Prelude.Int+createFilterResponse_httpStatus = Lens.lens (\CreateFilterResponse' {httpStatus} -> httpStatus) (\s@CreateFilterResponse' {} a -> s {httpStatus = a} :: CreateFilterResponse)++instance Prelude.NFData CreateFilterResponse where+  rnf CreateFilterResponse' {..} =+    Prelude.rnf filterArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/CreateMetricAttribution.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.Personalize.CreateMetricAttribution+-- 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 metric attribution. A metric attribution creates reports on+-- the data that you import into Amazon Personalize. Depending on how you+-- imported the data, you can view reports in Amazon CloudWatch or Amazon+-- S3. For more information, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/measuring-recommendation-impact.html Measuring impact of recommendations>.+module Amazonka.Personalize.CreateMetricAttribution+  ( -- * Creating a Request+    CreateMetricAttribution (..),+    newCreateMetricAttribution,++    -- * Request Lenses+    createMetricAttribution_name,+    createMetricAttribution_datasetGroupArn,+    createMetricAttribution_metrics,+    createMetricAttribution_metricsOutputConfig,++    -- * Destructuring the Response+    CreateMetricAttributionResponse (..),+    newCreateMetricAttributionResponse,++    -- * Response Lenses+    createMetricAttributionResponse_metricAttributionArn,+    createMetricAttributionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateMetricAttribution' smart constructor.+data CreateMetricAttribution = CreateMetricAttribution'+  { -- | A name for the metric attribution.+    name :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the destination dataset group for the+    -- metric attribution.+    datasetGroupArn :: Prelude.Text,+    -- | A list of metric attributes for the metric attribution. Each metric+    -- attribute specifies an event type to track and a function. Available+    -- functions are @SUM()@ or @SAMPLECOUNT()@. For SUM() functions, provide+    -- the dataset type (either Interactions or Items) and column to sum as a+    -- parameter. For example SUM(Items.PRICE).+    metrics :: [MetricAttribute],+    -- | The output configuration details for the metric attribution.+    metricsOutputConfig :: MetricAttributionOutput+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateMetricAttribution' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createMetricAttribution_name' - A name for the metric attribution.+--+-- 'datasetGroupArn', 'createMetricAttribution_datasetGroupArn' - The Amazon Resource Name (ARN) of the destination dataset group for the+-- metric attribution.+--+-- 'metrics', 'createMetricAttribution_metrics' - A list of metric attributes for the metric attribution. Each metric+-- attribute specifies an event type to track and a function. Available+-- functions are @SUM()@ or @SAMPLECOUNT()@. For SUM() functions, provide+-- the dataset type (either Interactions or Items) and column to sum as a+-- parameter. For example SUM(Items.PRICE).+--+-- 'metricsOutputConfig', 'createMetricAttribution_metricsOutputConfig' - The output configuration details for the metric attribution.+newCreateMetricAttribution ::+  -- | 'name'+  Prelude.Text ->+  -- | 'datasetGroupArn'+  Prelude.Text ->+  -- | 'metricsOutputConfig'+  MetricAttributionOutput ->+  CreateMetricAttribution+newCreateMetricAttribution+  pName_+  pDatasetGroupArn_+  pMetricsOutputConfig_ =+    CreateMetricAttribution'+      { name = pName_,+        datasetGroupArn = pDatasetGroupArn_,+        metrics = Prelude.mempty,+        metricsOutputConfig = pMetricsOutputConfig_+      }++-- | A name for the metric attribution.+createMetricAttribution_name :: Lens.Lens' CreateMetricAttribution Prelude.Text+createMetricAttribution_name = Lens.lens (\CreateMetricAttribution' {name} -> name) (\s@CreateMetricAttribution' {} a -> s {name = a} :: CreateMetricAttribution)++-- | The Amazon Resource Name (ARN) of the destination dataset group for the+-- metric attribution.+createMetricAttribution_datasetGroupArn :: Lens.Lens' CreateMetricAttribution Prelude.Text+createMetricAttribution_datasetGroupArn = Lens.lens (\CreateMetricAttribution' {datasetGroupArn} -> datasetGroupArn) (\s@CreateMetricAttribution' {} a -> s {datasetGroupArn = a} :: CreateMetricAttribution)++-- | A list of metric attributes for the metric attribution. Each metric+-- attribute specifies an event type to track and a function. Available+-- functions are @SUM()@ or @SAMPLECOUNT()@. For SUM() functions, provide+-- the dataset type (either Interactions or Items) and column to sum as a+-- parameter. For example SUM(Items.PRICE).+createMetricAttribution_metrics :: Lens.Lens' CreateMetricAttribution [MetricAttribute]+createMetricAttribution_metrics = Lens.lens (\CreateMetricAttribution' {metrics} -> metrics) (\s@CreateMetricAttribution' {} a -> s {metrics = a} :: CreateMetricAttribution) Prelude.. Lens.coerced++-- | The output configuration details for the metric attribution.+createMetricAttribution_metricsOutputConfig :: Lens.Lens' CreateMetricAttribution MetricAttributionOutput+createMetricAttribution_metricsOutputConfig = Lens.lens (\CreateMetricAttribution' {metricsOutputConfig} -> metricsOutputConfig) (\s@CreateMetricAttribution' {} a -> s {metricsOutputConfig = a} :: CreateMetricAttribution)++instance Core.AWSRequest CreateMetricAttribution where+  type+    AWSResponse CreateMetricAttribution =+      CreateMetricAttributionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateMetricAttributionResponse'+            Prelude.<$> (x Data..?> "metricAttributionArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateMetricAttribution where+  hashWithSalt _salt CreateMetricAttribution' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` datasetGroupArn+      `Prelude.hashWithSalt` metrics+      `Prelude.hashWithSalt` metricsOutputConfig++instance Prelude.NFData CreateMetricAttribution where+  rnf CreateMetricAttribution' {..} =+    Prelude.rnf name+      `Prelude.seq` Prelude.rnf datasetGroupArn+      `Prelude.seq` Prelude.rnf metrics+      `Prelude.seq` Prelude.rnf metricsOutputConfig++instance Data.ToHeaders CreateMetricAttribution where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.CreateMetricAttribution" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateMetricAttribution where+  toJSON CreateMetricAttribution' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("name" Data..= name),+            Prelude.Just+              ("datasetGroupArn" Data..= datasetGroupArn),+            Prelude.Just ("metrics" Data..= metrics),+            Prelude.Just+              ("metricsOutputConfig" Data..= metricsOutputConfig)+          ]+      )++instance Data.ToPath CreateMetricAttribution where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateMetricAttribution where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateMetricAttributionResponse' smart constructor.+data CreateMetricAttributionResponse = CreateMetricAttributionResponse'+  { -- | The Amazon Resource Name (ARN) for the new metric attribution.+    metricAttributionArn :: 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 'CreateMetricAttributionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'metricAttributionArn', 'createMetricAttributionResponse_metricAttributionArn' - The Amazon Resource Name (ARN) for the new metric attribution.+--+-- 'httpStatus', 'createMetricAttributionResponse_httpStatus' - The response's http status code.+newCreateMetricAttributionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateMetricAttributionResponse+newCreateMetricAttributionResponse pHttpStatus_ =+  CreateMetricAttributionResponse'+    { metricAttributionArn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) for the new metric attribution.+createMetricAttributionResponse_metricAttributionArn :: Lens.Lens' CreateMetricAttributionResponse (Prelude.Maybe Prelude.Text)+createMetricAttributionResponse_metricAttributionArn = Lens.lens (\CreateMetricAttributionResponse' {metricAttributionArn} -> metricAttributionArn) (\s@CreateMetricAttributionResponse' {} a -> s {metricAttributionArn = a} :: CreateMetricAttributionResponse)++-- | The response's http status code.+createMetricAttributionResponse_httpStatus :: Lens.Lens' CreateMetricAttributionResponse Prelude.Int+createMetricAttributionResponse_httpStatus = Lens.lens (\CreateMetricAttributionResponse' {httpStatus} -> httpStatus) (\s@CreateMetricAttributionResponse' {} a -> s {httpStatus = a} :: CreateMetricAttributionResponse)++instance+  Prelude.NFData+    CreateMetricAttributionResponse+  where+  rnf CreateMetricAttributionResponse' {..} =+    Prelude.rnf metricAttributionArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/CreateRecommender.hs view
@@ -0,0 +1,313 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.CreateRecommender+-- 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 recommender with the recipe (a Domain dataset group use case)+-- you specify. You create recommenders for a Domain dataset group and+-- specify the recommender\'s Amazon Resource Name (ARN) when you make a+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_RS_GetRecommendations.html GetRecommendations>+-- request.+--+-- __Minimum recommendation requests per second__+--+-- When you create a recommender, you can configure the recommender\'s+-- minimum recommendation requests per second. The minimum recommendation+-- requests per second (@minRecommendationRequestsPerSecond@) specifies the+-- baseline recommendation request throughput provisioned by Amazon+-- Personalize. The default minRecommendationRequestsPerSecond is @1@. A+-- recommendation request is a single @GetRecommendations@ operation.+-- Request throughput is measured in requests per second and Amazon+-- Personalize uses your requests per second to derive your requests per+-- hour and the price of your recommender usage.+--+-- If your requests per second increases beyond+-- @minRecommendationRequestsPerSecond@, Amazon Personalize auto-scales the+-- provisioned capacity up and down, but never below+-- @minRecommendationRequestsPerSecond@. There\'s a short time delay while+-- the capacity is increased that might cause loss of requests.+--+-- Your bill is the greater of either the minimum requests per hour (based+-- on minRecommendationRequestsPerSecond) or the actual number of requests.+-- The actual request throughput used is calculated as the average+-- requests\/second within a one-hour window. We recommend starting with+-- the default @minRecommendationRequestsPerSecond@, track your usage using+-- Amazon CloudWatch metrics, and then increase the+-- @minRecommendationRequestsPerSecond@ as necessary.+--+-- __Status__+--+-- A recommender can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   STOP PENDING > STOP IN_PROGRESS > INACTIVE > START PENDING > START+--     IN_PROGRESS > ACTIVE+--+-- -   DELETE PENDING > DELETE IN_PROGRESS+--+-- To get the recommender status, call+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeRecommender.html DescribeRecommender>.+--+-- Wait until the @status@ of the recommender is @ACTIVE@ before asking the+-- recommender for recommendations.+--+-- __Related APIs__+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_ListRecommenders.html ListRecommenders>+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeRecommender.html DescribeRecommender>+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_UpdateRecommender.html UpdateRecommender>+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_DeleteRecommender.html DeleteRecommender>+module Amazonka.Personalize.CreateRecommender+  ( -- * Creating a Request+    CreateRecommender (..),+    newCreateRecommender,++    -- * Request Lenses+    createRecommender_recommenderConfig,+    createRecommender_tags,+    createRecommender_name,+    createRecommender_datasetGroupArn,+    createRecommender_recipeArn,++    -- * Destructuring the Response+    CreateRecommenderResponse (..),+    newCreateRecommenderResponse,++    -- * Response Lenses+    createRecommenderResponse_recommenderArn,+    createRecommenderResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateRecommender' smart constructor.+data CreateRecommender = CreateRecommender'+  { -- | The configuration details of the recommender.+    recommenderConfig :: Prelude.Maybe RecommenderConfig,+    -- | A list of+    -- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+    -- to apply to the recommender.+    tags :: Prelude.Maybe [Tag],+    -- | The name of the recommender.+    name :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the destination domain dataset group+    -- for the recommender.+    datasetGroupArn :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the recipe that the recommender will+    -- use. For a recommender, a recipe is a Domain dataset group use case.+    -- Only Domain dataset group use cases can be used to create a recommender.+    -- For information about use cases see+    -- <https://docs.aws.amazon.com/personalize/latest/dg/domain-use-cases.html Choosing recommender use cases>.+    recipeArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateRecommender' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'recommenderConfig', 'createRecommender_recommenderConfig' - The configuration details of the recommender.+--+-- 'tags', 'createRecommender_tags' - A list of+-- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+-- to apply to the recommender.+--+-- 'name', 'createRecommender_name' - The name of the recommender.+--+-- 'datasetGroupArn', 'createRecommender_datasetGroupArn' - The Amazon Resource Name (ARN) of the destination domain dataset group+-- for the recommender.+--+-- 'recipeArn', 'createRecommender_recipeArn' - The Amazon Resource Name (ARN) of the recipe that the recommender will+-- use. For a recommender, a recipe is a Domain dataset group use case.+-- Only Domain dataset group use cases can be used to create a recommender.+-- For information about use cases see+-- <https://docs.aws.amazon.com/personalize/latest/dg/domain-use-cases.html Choosing recommender use cases>.+newCreateRecommender ::+  -- | 'name'+  Prelude.Text ->+  -- | 'datasetGroupArn'+  Prelude.Text ->+  -- | 'recipeArn'+  Prelude.Text ->+  CreateRecommender+newCreateRecommender+  pName_+  pDatasetGroupArn_+  pRecipeArn_ =+    CreateRecommender'+      { recommenderConfig =+          Prelude.Nothing,+        tags = Prelude.Nothing,+        name = pName_,+        datasetGroupArn = pDatasetGroupArn_,+        recipeArn = pRecipeArn_+      }++-- | The configuration details of the recommender.+createRecommender_recommenderConfig :: Lens.Lens' CreateRecommender (Prelude.Maybe RecommenderConfig)+createRecommender_recommenderConfig = Lens.lens (\CreateRecommender' {recommenderConfig} -> recommenderConfig) (\s@CreateRecommender' {} a -> s {recommenderConfig = a} :: CreateRecommender)++-- | A list of+-- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+-- to apply to the recommender.+createRecommender_tags :: Lens.Lens' CreateRecommender (Prelude.Maybe [Tag])+createRecommender_tags = Lens.lens (\CreateRecommender' {tags} -> tags) (\s@CreateRecommender' {} a -> s {tags = a} :: CreateRecommender) Prelude.. Lens.mapping Lens.coerced++-- | The name of the recommender.+createRecommender_name :: Lens.Lens' CreateRecommender Prelude.Text+createRecommender_name = Lens.lens (\CreateRecommender' {name} -> name) (\s@CreateRecommender' {} a -> s {name = a} :: CreateRecommender)++-- | The Amazon Resource Name (ARN) of the destination domain dataset group+-- for the recommender.+createRecommender_datasetGroupArn :: Lens.Lens' CreateRecommender Prelude.Text+createRecommender_datasetGroupArn = Lens.lens (\CreateRecommender' {datasetGroupArn} -> datasetGroupArn) (\s@CreateRecommender' {} a -> s {datasetGroupArn = a} :: CreateRecommender)++-- | The Amazon Resource Name (ARN) of the recipe that the recommender will+-- use. For a recommender, a recipe is a Domain dataset group use case.+-- Only Domain dataset group use cases can be used to create a recommender.+-- For information about use cases see+-- <https://docs.aws.amazon.com/personalize/latest/dg/domain-use-cases.html Choosing recommender use cases>.+createRecommender_recipeArn :: Lens.Lens' CreateRecommender Prelude.Text+createRecommender_recipeArn = Lens.lens (\CreateRecommender' {recipeArn} -> recipeArn) (\s@CreateRecommender' {} a -> s {recipeArn = a} :: CreateRecommender)++instance Core.AWSRequest CreateRecommender where+  type+    AWSResponse CreateRecommender =+      CreateRecommenderResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateRecommenderResponse'+            Prelude.<$> (x Data..?> "recommenderArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateRecommender where+  hashWithSalt _salt CreateRecommender' {..} =+    _salt+      `Prelude.hashWithSalt` recommenderConfig+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` datasetGroupArn+      `Prelude.hashWithSalt` recipeArn++instance Prelude.NFData CreateRecommender where+  rnf CreateRecommender' {..} =+    Prelude.rnf recommenderConfig+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf datasetGroupArn+      `Prelude.seq` Prelude.rnf recipeArn++instance Data.ToHeaders CreateRecommender where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.CreateRecommender" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateRecommender where+  toJSON CreateRecommender' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("recommenderConfig" Data..=)+              Prelude.<$> recommenderConfig,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("name" Data..= name),+            Prelude.Just+              ("datasetGroupArn" Data..= datasetGroupArn),+            Prelude.Just ("recipeArn" Data..= recipeArn)+          ]+      )++instance Data.ToPath CreateRecommender where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateRecommender where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateRecommenderResponse' smart constructor.+data CreateRecommenderResponse = CreateRecommenderResponse'+  { -- | The Amazon Resource Name (ARN) of the recommender.+    recommenderArn :: 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 'CreateRecommenderResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'recommenderArn', 'createRecommenderResponse_recommenderArn' - The Amazon Resource Name (ARN) of the recommender.+--+-- 'httpStatus', 'createRecommenderResponse_httpStatus' - The response's http status code.+newCreateRecommenderResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateRecommenderResponse+newCreateRecommenderResponse pHttpStatus_ =+  CreateRecommenderResponse'+    { recommenderArn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the recommender.+createRecommenderResponse_recommenderArn :: Lens.Lens' CreateRecommenderResponse (Prelude.Maybe Prelude.Text)+createRecommenderResponse_recommenderArn = Lens.lens (\CreateRecommenderResponse' {recommenderArn} -> recommenderArn) (\s@CreateRecommenderResponse' {} a -> s {recommenderArn = a} :: CreateRecommenderResponse)++-- | The response's http status code.+createRecommenderResponse_httpStatus :: Lens.Lens' CreateRecommenderResponse Prelude.Int+createRecommenderResponse_httpStatus = Lens.lens (\CreateRecommenderResponse' {httpStatus} -> httpStatus) (\s@CreateRecommenderResponse' {} a -> s {httpStatus = a} :: CreateRecommenderResponse)++instance Prelude.NFData CreateRecommenderResponse where+  rnf CreateRecommenderResponse' {..} =+    Prelude.rnf recommenderArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/CreateSchema.hs view
@@ -0,0 +1,220 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.CreateSchema+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an Amazon Personalize schema from the specified schema string.+-- The schema you create must be in Avro JSON format.+--+-- Amazon Personalize recognizes three schema variants. Each schema is+-- associated with a dataset type and has a set of required field and+-- keywords. If you are creating a schema for a dataset in a Domain dataset+-- group, you provide the domain of the Domain dataset group. You specify a+-- schema when you call+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDataset.html CreateDataset>.+--+-- __Related APIs__+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_ListSchemas.html ListSchemas>+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeSchema.html DescribeSchema>+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_DeleteSchema.html DeleteSchema>+module Amazonka.Personalize.CreateSchema+  ( -- * Creating a Request+    CreateSchema (..),+    newCreateSchema,++    -- * Request Lenses+    createSchema_domain,+    createSchema_name,+    createSchema_schema,++    -- * Destructuring the Response+    CreateSchemaResponse (..),+    newCreateSchemaResponse,++    -- * Response Lenses+    createSchemaResponse_schemaArn,+    createSchemaResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateSchema' smart constructor.+data CreateSchema = CreateSchema'+  { -- | The domain for the schema. If you are creating a schema for a dataset in+    -- a Domain dataset group, specify the domain you chose when you created+    -- the Domain dataset group.+    domain :: Prelude.Maybe Domain,+    -- | The name for the schema.+    name :: Prelude.Text,+    -- | A schema in Avro JSON format.+    schema :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateSchema' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'domain', 'createSchema_domain' - The domain for the schema. If you are creating a schema for a dataset in+-- a Domain dataset group, specify the domain you chose when you created+-- the Domain dataset group.+--+-- 'name', 'createSchema_name' - The name for the schema.+--+-- 'schema', 'createSchema_schema' - A schema in Avro JSON format.+newCreateSchema ::+  -- | 'name'+  Prelude.Text ->+  -- | 'schema'+  Prelude.Text ->+  CreateSchema+newCreateSchema pName_ pSchema_ =+  CreateSchema'+    { domain = Prelude.Nothing,+      name = pName_,+      schema = pSchema_+    }++-- | The domain for the schema. If you are creating a schema for a dataset in+-- a Domain dataset group, specify the domain you chose when you created+-- the Domain dataset group.+createSchema_domain :: Lens.Lens' CreateSchema (Prelude.Maybe Domain)+createSchema_domain = Lens.lens (\CreateSchema' {domain} -> domain) (\s@CreateSchema' {} a -> s {domain = a} :: CreateSchema)++-- | The name for the schema.+createSchema_name :: Lens.Lens' CreateSchema Prelude.Text+createSchema_name = Lens.lens (\CreateSchema' {name} -> name) (\s@CreateSchema' {} a -> s {name = a} :: CreateSchema)++-- | A schema in Avro JSON format.+createSchema_schema :: Lens.Lens' CreateSchema Prelude.Text+createSchema_schema = Lens.lens (\CreateSchema' {schema} -> schema) (\s@CreateSchema' {} a -> s {schema = a} :: CreateSchema)++instance Core.AWSRequest CreateSchema where+  type AWSResponse CreateSchema = CreateSchemaResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateSchemaResponse'+            Prelude.<$> (x Data..?> "schemaArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateSchema where+  hashWithSalt _salt CreateSchema' {..} =+    _salt+      `Prelude.hashWithSalt` domain+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` schema++instance Prelude.NFData CreateSchema where+  rnf CreateSchema' {..} =+    Prelude.rnf domain+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf schema++instance Data.ToHeaders CreateSchema where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.CreateSchema" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateSchema where+  toJSON CreateSchema' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("domain" Data..=) Prelude.<$> domain,+            Prelude.Just ("name" Data..= name),+            Prelude.Just ("schema" Data..= schema)+          ]+      )++instance Data.ToPath CreateSchema where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateSchema where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateSchemaResponse' smart constructor.+data CreateSchemaResponse = CreateSchemaResponse'+  { -- | The Amazon Resource Name (ARN) of the created schema.+    schemaArn :: 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 'CreateSchemaResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'schemaArn', 'createSchemaResponse_schemaArn' - The Amazon Resource Name (ARN) of the created schema.+--+-- 'httpStatus', 'createSchemaResponse_httpStatus' - The response's http status code.+newCreateSchemaResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateSchemaResponse+newCreateSchemaResponse pHttpStatus_ =+  CreateSchemaResponse'+    { schemaArn = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the created schema.+createSchemaResponse_schemaArn :: Lens.Lens' CreateSchemaResponse (Prelude.Maybe Prelude.Text)+createSchemaResponse_schemaArn = Lens.lens (\CreateSchemaResponse' {schemaArn} -> schemaArn) (\s@CreateSchemaResponse' {} a -> s {schemaArn = a} :: CreateSchemaResponse)++-- | The response's http status code.+createSchemaResponse_httpStatus :: Lens.Lens' CreateSchemaResponse Prelude.Int+createSchemaResponse_httpStatus = Lens.lens (\CreateSchemaResponse' {httpStatus} -> httpStatus) (\s@CreateSchemaResponse' {} a -> s {httpStatus = a} :: CreateSchemaResponse)++instance Prelude.NFData CreateSchemaResponse where+  rnf CreateSchemaResponse' {..} =+    Prelude.rnf schemaArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/CreateSolution.hs view
@@ -0,0 +1,397 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.CreateSolution+-- 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 the configuration for training a model. A trained model is known+-- as a solution. After the configuration is created, you train the model+-- (create a solution) by calling the+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateSolutionVersion.html CreateSolutionVersion>+-- operation. Every time you call @CreateSolutionVersion@, a new version of+-- the solution is created.+--+-- After creating a solution version, you check its accuracy by calling+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_GetSolutionMetrics.html GetSolutionMetrics>.+-- When you are satisfied with the version, you deploy it using+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateCampaign.html CreateCampaign>.+-- The campaign provides recommendations to a client through the+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_RS_GetRecommendations.html GetRecommendations>+-- API.+--+-- To train a model, Amazon Personalize requires training data and a+-- recipe. The training data comes from the dataset group that you provide+-- in the request. A recipe specifies the training algorithm and a feature+-- transformation. You can specify one of the predefined recipes provided+-- by Amazon Personalize. Alternatively, you can specify @performAutoML@+-- and Amazon Personalize will analyze your data and select the optimum+-- USER_PERSONALIZATION recipe for you.+--+-- Amazon Personalize doesn\'t support configuring the @hpoObjective@ for+-- solution hyperparameter optimization at this time.+--+-- __Status__+--+-- A solution can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   DELETE PENDING > DELETE IN_PROGRESS+--+-- To get the status of the solution, call+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeSolution.html DescribeSolution>.+-- Wait until the status shows as ACTIVE before calling+-- @CreateSolutionVersion@.+--+-- __Related APIs__+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_ListSolutions.html ListSolutions>+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateSolutionVersion.html CreateSolutionVersion>+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeSolution.html DescribeSolution>+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_DeleteSolution.html DeleteSolution>+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_ListSolutionVersions.html ListSolutionVersions>+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeSolutionVersion.html DescribeSolutionVersion>+module Amazonka.Personalize.CreateSolution+  ( -- * Creating a Request+    CreateSolution (..),+    newCreateSolution,++    -- * Request Lenses+    createSolution_eventType,+    createSolution_performAutoML,+    createSolution_performHPO,+    createSolution_recipeArn,+    createSolution_solutionConfig,+    createSolution_tags,+    createSolution_name,+    createSolution_datasetGroupArn,++    -- * Destructuring the Response+    CreateSolutionResponse (..),+    newCreateSolutionResponse,++    -- * Response Lenses+    createSolutionResponse_solutionArn,+    createSolutionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateSolution' smart constructor.+data CreateSolution = CreateSolution'+  { -- | When your have multiple event types (using an @EVENT_TYPE@ schema+    -- field), this parameter specifies which event type (for example,+    -- \'click\' or \'like\') is used for training the model.+    --+    -- If you do not provide an @eventType@, Amazon Personalize will use all+    -- interactions for training with equal weight regardless of type.+    eventType :: Prelude.Maybe Prelude.Text,+    -- | Whether to perform automated machine learning (AutoML). The default is+    -- @false@. For this case, you must specify @recipeArn@.+    --+    -- When set to @true@, Amazon Personalize analyzes your training data and+    -- selects the optimal USER_PERSONALIZATION recipe and hyperparameters. In+    -- this case, you must omit @recipeArn@. Amazon Personalize determines the+    -- optimal recipe by running tests with different values for the+    -- hyperparameters. AutoML lengthens the training process as compared to+    -- selecting a specific recipe.+    performAutoML :: Prelude.Maybe Prelude.Bool,+    -- | Whether to perform hyperparameter optimization (HPO) on the specified or+    -- selected recipe. The default is @false@.+    --+    -- When performing AutoML, this parameter is always @true@ and you should+    -- not set it to @false@.+    performHPO :: Prelude.Maybe Prelude.Bool,+    -- | The ARN of the recipe to use for model training. Only specified when+    -- @performAutoML@ is false.+    recipeArn :: Prelude.Maybe Prelude.Text,+    -- | The configuration to use with the solution. When @performAutoML@ is set+    -- to true, Amazon Personalize only evaluates the @autoMLConfig@ section of+    -- the solution configuration.+    --+    -- Amazon Personalize doesn\'t support configuring the @hpoObjective@ at+    -- this time.+    solutionConfig :: Prelude.Maybe SolutionConfig,+    -- | A list of+    -- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+    -- to apply to the solution.+    tags :: Prelude.Maybe [Tag],+    -- | The name for the solution.+    name :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the dataset group that provides the+    -- training data.+    datasetGroupArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateSolution' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventType', 'createSolution_eventType' - When your have multiple event types (using an @EVENT_TYPE@ schema+-- field), this parameter specifies which event type (for example,+-- \'click\' or \'like\') is used for training the model.+--+-- If you do not provide an @eventType@, Amazon Personalize will use all+-- interactions for training with equal weight regardless of type.+--+-- 'performAutoML', 'createSolution_performAutoML' - Whether to perform automated machine learning (AutoML). The default is+-- @false@. For this case, you must specify @recipeArn@.+--+-- When set to @true@, Amazon Personalize analyzes your training data and+-- selects the optimal USER_PERSONALIZATION recipe and hyperparameters. In+-- this case, you must omit @recipeArn@. Amazon Personalize determines the+-- optimal recipe by running tests with different values for the+-- hyperparameters. AutoML lengthens the training process as compared to+-- selecting a specific recipe.+--+-- 'performHPO', 'createSolution_performHPO' - Whether to perform hyperparameter optimization (HPO) on the specified or+-- selected recipe. The default is @false@.+--+-- When performing AutoML, this parameter is always @true@ and you should+-- not set it to @false@.+--+-- 'recipeArn', 'createSolution_recipeArn' - The ARN of the recipe to use for model training. Only specified when+-- @performAutoML@ is false.+--+-- 'solutionConfig', 'createSolution_solutionConfig' - The configuration to use with the solution. When @performAutoML@ is set+-- to true, Amazon Personalize only evaluates the @autoMLConfig@ section of+-- the solution configuration.+--+-- Amazon Personalize doesn\'t support configuring the @hpoObjective@ at+-- this time.+--+-- 'tags', 'createSolution_tags' - A list of+-- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+-- to apply to the solution.+--+-- 'name', 'createSolution_name' - The name for the solution.+--+-- 'datasetGroupArn', 'createSolution_datasetGroupArn' - The Amazon Resource Name (ARN) of the dataset group that provides the+-- training data.+newCreateSolution ::+  -- | 'name'+  Prelude.Text ->+  -- | 'datasetGroupArn'+  Prelude.Text ->+  CreateSolution+newCreateSolution pName_ pDatasetGroupArn_ =+  CreateSolution'+    { eventType = Prelude.Nothing,+      performAutoML = Prelude.Nothing,+      performHPO = Prelude.Nothing,+      recipeArn = Prelude.Nothing,+      solutionConfig = Prelude.Nothing,+      tags = Prelude.Nothing,+      name = pName_,+      datasetGroupArn = pDatasetGroupArn_+    }++-- | When your have multiple event types (using an @EVENT_TYPE@ schema+-- field), this parameter specifies which event type (for example,+-- \'click\' or \'like\') is used for training the model.+--+-- If you do not provide an @eventType@, Amazon Personalize will use all+-- interactions for training with equal weight regardless of type.+createSolution_eventType :: Lens.Lens' CreateSolution (Prelude.Maybe Prelude.Text)+createSolution_eventType = Lens.lens (\CreateSolution' {eventType} -> eventType) (\s@CreateSolution' {} a -> s {eventType = a} :: CreateSolution)++-- | Whether to perform automated machine learning (AutoML). The default is+-- @false@. For this case, you must specify @recipeArn@.+--+-- When set to @true@, Amazon Personalize analyzes your training data and+-- selects the optimal USER_PERSONALIZATION recipe and hyperparameters. In+-- this case, you must omit @recipeArn@. Amazon Personalize determines the+-- optimal recipe by running tests with different values for the+-- hyperparameters. AutoML lengthens the training process as compared to+-- selecting a specific recipe.+createSolution_performAutoML :: Lens.Lens' CreateSolution (Prelude.Maybe Prelude.Bool)+createSolution_performAutoML = Lens.lens (\CreateSolution' {performAutoML} -> performAutoML) (\s@CreateSolution' {} a -> s {performAutoML = a} :: CreateSolution)++-- | Whether to perform hyperparameter optimization (HPO) on the specified or+-- selected recipe. The default is @false@.+--+-- When performing AutoML, this parameter is always @true@ and you should+-- not set it to @false@.+createSolution_performHPO :: Lens.Lens' CreateSolution (Prelude.Maybe Prelude.Bool)+createSolution_performHPO = Lens.lens (\CreateSolution' {performHPO} -> performHPO) (\s@CreateSolution' {} a -> s {performHPO = a} :: CreateSolution)++-- | The ARN of the recipe to use for model training. Only specified when+-- @performAutoML@ is false.+createSolution_recipeArn :: Lens.Lens' CreateSolution (Prelude.Maybe Prelude.Text)+createSolution_recipeArn = Lens.lens (\CreateSolution' {recipeArn} -> recipeArn) (\s@CreateSolution' {} a -> s {recipeArn = a} :: CreateSolution)++-- | The configuration to use with the solution. When @performAutoML@ is set+-- to true, Amazon Personalize only evaluates the @autoMLConfig@ section of+-- the solution configuration.+--+-- Amazon Personalize doesn\'t support configuring the @hpoObjective@ at+-- this time.+createSolution_solutionConfig :: Lens.Lens' CreateSolution (Prelude.Maybe SolutionConfig)+createSolution_solutionConfig = Lens.lens (\CreateSolution' {solutionConfig} -> solutionConfig) (\s@CreateSolution' {} a -> s {solutionConfig = a} :: CreateSolution)++-- | A list of+-- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+-- to apply to the solution.+createSolution_tags :: Lens.Lens' CreateSolution (Prelude.Maybe [Tag])+createSolution_tags = Lens.lens (\CreateSolution' {tags} -> tags) (\s@CreateSolution' {} a -> s {tags = a} :: CreateSolution) Prelude.. Lens.mapping Lens.coerced++-- | The name for the solution.+createSolution_name :: Lens.Lens' CreateSolution Prelude.Text+createSolution_name = Lens.lens (\CreateSolution' {name} -> name) (\s@CreateSolution' {} a -> s {name = a} :: CreateSolution)++-- | The Amazon Resource Name (ARN) of the dataset group that provides the+-- training data.+createSolution_datasetGroupArn :: Lens.Lens' CreateSolution Prelude.Text+createSolution_datasetGroupArn = Lens.lens (\CreateSolution' {datasetGroupArn} -> datasetGroupArn) (\s@CreateSolution' {} a -> s {datasetGroupArn = a} :: CreateSolution)++instance Core.AWSRequest CreateSolution where+  type+    AWSResponse CreateSolution =+      CreateSolutionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateSolutionResponse'+            Prelude.<$> (x Data..?> "solutionArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateSolution where+  hashWithSalt _salt CreateSolution' {..} =+    _salt+      `Prelude.hashWithSalt` eventType+      `Prelude.hashWithSalt` performAutoML+      `Prelude.hashWithSalt` performHPO+      `Prelude.hashWithSalt` recipeArn+      `Prelude.hashWithSalt` solutionConfig+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` datasetGroupArn++instance Prelude.NFData CreateSolution where+  rnf CreateSolution' {..} =+    Prelude.rnf eventType+      `Prelude.seq` Prelude.rnf performAutoML+      `Prelude.seq` Prelude.rnf performHPO+      `Prelude.seq` Prelude.rnf recipeArn+      `Prelude.seq` Prelude.rnf solutionConfig+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf datasetGroupArn++instance Data.ToHeaders CreateSolution where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.CreateSolution" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateSolution where+  toJSON CreateSolution' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("eventType" Data..=) Prelude.<$> eventType,+            ("performAutoML" Data..=) Prelude.<$> performAutoML,+            ("performHPO" Data..=) Prelude.<$> performHPO,+            ("recipeArn" Data..=) Prelude.<$> recipeArn,+            ("solutionConfig" Data..=)+              Prelude.<$> solutionConfig,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("name" Data..= name),+            Prelude.Just+              ("datasetGroupArn" Data..= datasetGroupArn)+          ]+      )++instance Data.ToPath CreateSolution where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateSolution where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateSolutionResponse' smart constructor.+data CreateSolutionResponse = CreateSolutionResponse'+  { -- | The ARN of the solution.+    solutionArn :: 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 'CreateSolutionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'solutionArn', 'createSolutionResponse_solutionArn' - The ARN of the solution.+--+-- 'httpStatus', 'createSolutionResponse_httpStatus' - The response's http status code.+newCreateSolutionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateSolutionResponse+newCreateSolutionResponse pHttpStatus_ =+  CreateSolutionResponse'+    { solutionArn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the solution.+createSolutionResponse_solutionArn :: Lens.Lens' CreateSolutionResponse (Prelude.Maybe Prelude.Text)+createSolutionResponse_solutionArn = Lens.lens (\CreateSolutionResponse' {solutionArn} -> solutionArn) (\s@CreateSolutionResponse' {} a -> s {solutionArn = a} :: CreateSolutionResponse)++-- | The response's http status code.+createSolutionResponse_httpStatus :: Lens.Lens' CreateSolutionResponse Prelude.Int+createSolutionResponse_httpStatus = Lens.lens (\CreateSolutionResponse' {httpStatus} -> httpStatus) (\s@CreateSolutionResponse' {} a -> s {httpStatus = a} :: CreateSolutionResponse)++instance Prelude.NFData CreateSolutionResponse where+  rnf CreateSolutionResponse' {..} =+    Prelude.rnf solutionArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/CreateSolutionVersion.hs view
@@ -0,0 +1,302 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.CreateSolutionVersion+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Trains or retrains an active solution in a Custom dataset group. A+-- solution is created using the+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateSolution.html CreateSolution>+-- operation and must be in the ACTIVE state before calling+-- @CreateSolutionVersion@. A new version of the solution is created every+-- time you call this operation.+--+-- __Status__+--+-- A solution version can be in one of the following states:+--+-- -   CREATE PENDING+--+-- -   CREATE IN_PROGRESS+--+-- -   ACTIVE+--+-- -   CREATE FAILED+--+-- -   CREATE STOPPING+--+-- -   CREATE STOPPED+--+-- To get the status of the version, call+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeSolutionVersion.html DescribeSolutionVersion>.+-- Wait until the status shows as ACTIVE before calling @CreateCampaign@.+--+-- If the status shows as CREATE FAILED, the response includes a+-- @failureReason@ key, which describes why the job failed.+--+-- __Related APIs__+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_ListSolutionVersions.html ListSolutionVersions>+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeSolutionVersion.html DescribeSolutionVersion>+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_ListSolutions.html ListSolutions>+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateSolution.html CreateSolution>+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeSolution.html DescribeSolution>+--+-- -   <https://docs.aws.amazon.com/personalize/latest/dg/API_DeleteSolution.html DeleteSolution>+module Amazonka.Personalize.CreateSolutionVersion+  ( -- * Creating a Request+    CreateSolutionVersion (..),+    newCreateSolutionVersion,++    -- * Request Lenses+    createSolutionVersion_name,+    createSolutionVersion_tags,+    createSolutionVersion_trainingMode,+    createSolutionVersion_solutionArn,++    -- * Destructuring the Response+    CreateSolutionVersionResponse (..),+    newCreateSolutionVersionResponse,++    -- * Response Lenses+    createSolutionVersionResponse_solutionVersionArn,+    createSolutionVersionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateSolutionVersion' smart constructor.+data CreateSolutionVersion = CreateSolutionVersion'+  { -- | The name of the solution version.+    name :: Prelude.Maybe Prelude.Text,+    -- | A list of+    -- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+    -- to apply to the solution version.+    tags :: Prelude.Maybe [Tag],+    -- | The scope of training to be performed when creating the solution+    -- version. The @FULL@ option trains the solution version based on the+    -- entirety of the input solution\'s training data, while the @UPDATE@+    -- option processes only the data that has changed in comparison to the+    -- input solution. Choose @UPDATE@ when you want to incrementally update+    -- your solution version instead of creating an entirely new one.+    --+    -- The @UPDATE@ option can only be used when you already have an active+    -- solution version created from the input solution using the @FULL@ option+    -- and the input solution was trained with the+    -- <https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-new-item-USER_PERSONALIZATION.html User-Personalization>+    -- recipe or the+    -- <https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-hrnn-coldstart.html HRNN-Coldstart>+    -- recipe.+    trainingMode :: Prelude.Maybe TrainingMode,+    -- | The Amazon Resource Name (ARN) of the solution containing the training+    -- configuration information.+    solutionArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateSolutionVersion' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createSolutionVersion_name' - The name of the solution version.+--+-- 'tags', 'createSolutionVersion_tags' - A list of+-- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+-- to apply to the solution version.+--+-- 'trainingMode', 'createSolutionVersion_trainingMode' - The scope of training to be performed when creating the solution+-- version. The @FULL@ option trains the solution version based on the+-- entirety of the input solution\'s training data, while the @UPDATE@+-- option processes only the data that has changed in comparison to the+-- input solution. Choose @UPDATE@ when you want to incrementally update+-- your solution version instead of creating an entirely new one.+--+-- The @UPDATE@ option can only be used when you already have an active+-- solution version created from the input solution using the @FULL@ option+-- and the input solution was trained with the+-- <https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-new-item-USER_PERSONALIZATION.html User-Personalization>+-- recipe or the+-- <https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-hrnn-coldstart.html HRNN-Coldstart>+-- recipe.+--+-- 'solutionArn', 'createSolutionVersion_solutionArn' - The Amazon Resource Name (ARN) of the solution containing the training+-- configuration information.+newCreateSolutionVersion ::+  -- | 'solutionArn'+  Prelude.Text ->+  CreateSolutionVersion+newCreateSolutionVersion pSolutionArn_ =+  CreateSolutionVersion'+    { name = Prelude.Nothing,+      tags = Prelude.Nothing,+      trainingMode = Prelude.Nothing,+      solutionArn = pSolutionArn_+    }++-- | The name of the solution version.+createSolutionVersion_name :: Lens.Lens' CreateSolutionVersion (Prelude.Maybe Prelude.Text)+createSolutionVersion_name = Lens.lens (\CreateSolutionVersion' {name} -> name) (\s@CreateSolutionVersion' {} a -> s {name = a} :: CreateSolutionVersion)++-- | A list of+-- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+-- to apply to the solution version.+createSolutionVersion_tags :: Lens.Lens' CreateSolutionVersion (Prelude.Maybe [Tag])+createSolutionVersion_tags = Lens.lens (\CreateSolutionVersion' {tags} -> tags) (\s@CreateSolutionVersion' {} a -> s {tags = a} :: CreateSolutionVersion) Prelude.. Lens.mapping Lens.coerced++-- | The scope of training to be performed when creating the solution+-- version. The @FULL@ option trains the solution version based on the+-- entirety of the input solution\'s training data, while the @UPDATE@+-- option processes only the data that has changed in comparison to the+-- input solution. Choose @UPDATE@ when you want to incrementally update+-- your solution version instead of creating an entirely new one.+--+-- The @UPDATE@ option can only be used when you already have an active+-- solution version created from the input solution using the @FULL@ option+-- and the input solution was trained with the+-- <https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-new-item-USER_PERSONALIZATION.html User-Personalization>+-- recipe or the+-- <https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-hrnn-coldstart.html HRNN-Coldstart>+-- recipe.+createSolutionVersion_trainingMode :: Lens.Lens' CreateSolutionVersion (Prelude.Maybe TrainingMode)+createSolutionVersion_trainingMode = Lens.lens (\CreateSolutionVersion' {trainingMode} -> trainingMode) (\s@CreateSolutionVersion' {} a -> s {trainingMode = a} :: CreateSolutionVersion)++-- | The Amazon Resource Name (ARN) of the solution containing the training+-- configuration information.+createSolutionVersion_solutionArn :: Lens.Lens' CreateSolutionVersion Prelude.Text+createSolutionVersion_solutionArn = Lens.lens (\CreateSolutionVersion' {solutionArn} -> solutionArn) (\s@CreateSolutionVersion' {} a -> s {solutionArn = a} :: CreateSolutionVersion)++instance Core.AWSRequest CreateSolutionVersion where+  type+    AWSResponse CreateSolutionVersion =+      CreateSolutionVersionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateSolutionVersionResponse'+            Prelude.<$> (x Data..?> "solutionVersionArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateSolutionVersion where+  hashWithSalt _salt CreateSolutionVersion' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` trainingMode+      `Prelude.hashWithSalt` solutionArn++instance Prelude.NFData CreateSolutionVersion where+  rnf CreateSolutionVersion' {..} =+    Prelude.rnf name+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf trainingMode+      `Prelude.seq` Prelude.rnf solutionArn++instance Data.ToHeaders CreateSolutionVersion where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.CreateSolutionVersion" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateSolutionVersion where+  toJSON CreateSolutionVersion' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("name" Data..=) Prelude.<$> name,+            ("tags" Data..=) Prelude.<$> tags,+            ("trainingMode" Data..=) Prelude.<$> trainingMode,+            Prelude.Just ("solutionArn" Data..= solutionArn)+          ]+      )++instance Data.ToPath CreateSolutionVersion where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateSolutionVersion where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateSolutionVersionResponse' smart constructor.+data CreateSolutionVersionResponse = CreateSolutionVersionResponse'+  { -- | The ARN of the new solution version.+    solutionVersionArn :: 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 'CreateSolutionVersionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'solutionVersionArn', 'createSolutionVersionResponse_solutionVersionArn' - The ARN of the new solution version.+--+-- 'httpStatus', 'createSolutionVersionResponse_httpStatus' - The response's http status code.+newCreateSolutionVersionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateSolutionVersionResponse+newCreateSolutionVersionResponse pHttpStatus_ =+  CreateSolutionVersionResponse'+    { solutionVersionArn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the new solution version.+createSolutionVersionResponse_solutionVersionArn :: Lens.Lens' CreateSolutionVersionResponse (Prelude.Maybe Prelude.Text)+createSolutionVersionResponse_solutionVersionArn = Lens.lens (\CreateSolutionVersionResponse' {solutionVersionArn} -> solutionVersionArn) (\s@CreateSolutionVersionResponse' {} a -> s {solutionVersionArn = a} :: CreateSolutionVersionResponse)++-- | The response's http status code.+createSolutionVersionResponse_httpStatus :: Lens.Lens' CreateSolutionVersionResponse Prelude.Int+createSolutionVersionResponse_httpStatus = Lens.lens (\CreateSolutionVersionResponse' {httpStatus} -> httpStatus) (\s@CreateSolutionVersionResponse' {} a -> s {httpStatus = a} :: CreateSolutionVersionResponse)++instance Prelude.NFData CreateSolutionVersionResponse where+  rnf CreateSolutionVersionResponse' {..} =+    Prelude.rnf solutionVersionArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/DeleteCampaign.hs view
@@ -0,0 +1,137 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.DeleteCampaign+-- 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 campaign by deleting the solution deployment. The solution+-- that the campaign is based on is not deleted and can be redeployed when+-- needed. A deleted campaign can no longer be specified in a+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_RS_GetRecommendations.html GetRecommendations>+-- request. For information on creating campaigns, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateCampaign.html CreateCampaign>.+module Amazonka.Personalize.DeleteCampaign+  ( -- * Creating a Request+    DeleteCampaign (..),+    newDeleteCampaign,++    -- * Request Lenses+    deleteCampaign_campaignArn,++    -- * Destructuring the Response+    DeleteCampaignResponse (..),+    newDeleteCampaignResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteCampaign' smart constructor.+data DeleteCampaign = DeleteCampaign'+  { -- | The Amazon Resource Name (ARN) of the campaign to delete.+    campaignArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteCampaign' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'campaignArn', 'deleteCampaign_campaignArn' - The Amazon Resource Name (ARN) of the campaign to delete.+newDeleteCampaign ::+  -- | 'campaignArn'+  Prelude.Text ->+  DeleteCampaign+newDeleteCampaign pCampaignArn_ =+  DeleteCampaign' {campaignArn = pCampaignArn_}++-- | The Amazon Resource Name (ARN) of the campaign to delete.+deleteCampaign_campaignArn :: Lens.Lens' DeleteCampaign Prelude.Text+deleteCampaign_campaignArn = Lens.lens (\DeleteCampaign' {campaignArn} -> campaignArn) (\s@DeleteCampaign' {} a -> s {campaignArn = a} :: DeleteCampaign)++instance Core.AWSRequest DeleteCampaign where+  type+    AWSResponse DeleteCampaign =+      DeleteCampaignResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveNull DeleteCampaignResponse'++instance Prelude.Hashable DeleteCampaign where+  hashWithSalt _salt DeleteCampaign' {..} =+    _salt `Prelude.hashWithSalt` campaignArn++instance Prelude.NFData DeleteCampaign where+  rnf DeleteCampaign' {..} = Prelude.rnf campaignArn++instance Data.ToHeaders DeleteCampaign where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.DeleteCampaign" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteCampaign where+  toJSON DeleteCampaign' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("campaignArn" Data..= campaignArn)]+      )++instance Data.ToPath DeleteCampaign where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteCampaign where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteCampaignResponse' smart constructor.+data DeleteCampaignResponse = DeleteCampaignResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteCampaignResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteCampaignResponse ::+  DeleteCampaignResponse+newDeleteCampaignResponse = DeleteCampaignResponse'++instance Prelude.NFData DeleteCampaignResponse where+  rnf _ = ()
+ gen/Amazonka/Personalize/DeleteDataset.hs view
@@ -0,0 +1,135 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.DeleteDataset+-- 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 dataset. You can\'t delete a dataset if an associated+-- @DatasetImportJob@ or @SolutionVersion@ is in the CREATE PENDING or IN+-- PROGRESS state. For more information on datasets, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDataset.html CreateDataset>.+module Amazonka.Personalize.DeleteDataset+  ( -- * Creating a Request+    DeleteDataset (..),+    newDeleteDataset,++    -- * Request Lenses+    deleteDataset_datasetArn,++    -- * Destructuring the Response+    DeleteDatasetResponse (..),+    newDeleteDatasetResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteDataset' smart constructor.+data DeleteDataset = DeleteDataset'+  { -- | The Amazon Resource Name (ARN) of the dataset to delete.+    datasetArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDataset' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'datasetArn', 'deleteDataset_datasetArn' - The Amazon Resource Name (ARN) of the dataset to delete.+newDeleteDataset ::+  -- | 'datasetArn'+  Prelude.Text ->+  DeleteDataset+newDeleteDataset pDatasetArn_ =+  DeleteDataset' {datasetArn = pDatasetArn_}++-- | The Amazon Resource Name (ARN) of the dataset to delete.+deleteDataset_datasetArn :: Lens.Lens' DeleteDataset Prelude.Text+deleteDataset_datasetArn = Lens.lens (\DeleteDataset' {datasetArn} -> datasetArn) (\s@DeleteDataset' {} a -> s {datasetArn = a} :: DeleteDataset)++instance Core.AWSRequest DeleteDataset where+  type+    AWSResponse DeleteDataset =+      DeleteDatasetResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveNull DeleteDatasetResponse'++instance Prelude.Hashable DeleteDataset where+  hashWithSalt _salt DeleteDataset' {..} =+    _salt `Prelude.hashWithSalt` datasetArn++instance Prelude.NFData DeleteDataset where+  rnf DeleteDataset' {..} = Prelude.rnf datasetArn++instance Data.ToHeaders DeleteDataset where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.DeleteDataset" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteDataset where+  toJSON DeleteDataset' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("datasetArn" Data..= datasetArn)]+      )++instance Data.ToPath DeleteDataset where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteDataset where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteDatasetResponse' smart constructor.+data DeleteDatasetResponse = DeleteDatasetResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDatasetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteDatasetResponse ::+  DeleteDatasetResponse+newDeleteDatasetResponse = DeleteDatasetResponse'++instance Prelude.NFData DeleteDatasetResponse where+  rnf _ = ()
+ gen/Amazonka/Personalize/DeleteDatasetGroup.hs view
@@ -0,0 +1,146 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.DeleteDatasetGroup+-- 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 dataset group. Before you delete a dataset group, you must+-- delete the following:+--+-- -   All associated event trackers.+--+-- -   All associated solutions.+--+-- -   All datasets in the dataset group.+module Amazonka.Personalize.DeleteDatasetGroup+  ( -- * Creating a Request+    DeleteDatasetGroup (..),+    newDeleteDatasetGroup,++    -- * Request Lenses+    deleteDatasetGroup_datasetGroupArn,++    -- * Destructuring the Response+    DeleteDatasetGroupResponse (..),+    newDeleteDatasetGroupResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteDatasetGroup' smart constructor.+data DeleteDatasetGroup = DeleteDatasetGroup'+  { -- | The ARN of the dataset group to delete.+    datasetGroupArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDatasetGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'datasetGroupArn', 'deleteDatasetGroup_datasetGroupArn' - The ARN of the dataset group to delete.+newDeleteDatasetGroup ::+  -- | 'datasetGroupArn'+  Prelude.Text ->+  DeleteDatasetGroup+newDeleteDatasetGroup pDatasetGroupArn_ =+  DeleteDatasetGroup'+    { datasetGroupArn =+        pDatasetGroupArn_+    }++-- | The ARN of the dataset group to delete.+deleteDatasetGroup_datasetGroupArn :: Lens.Lens' DeleteDatasetGroup Prelude.Text+deleteDatasetGroup_datasetGroupArn = Lens.lens (\DeleteDatasetGroup' {datasetGroupArn} -> datasetGroupArn) (\s@DeleteDatasetGroup' {} a -> s {datasetGroupArn = a} :: DeleteDatasetGroup)++instance Core.AWSRequest DeleteDatasetGroup where+  type+    AWSResponse DeleteDatasetGroup =+      DeleteDatasetGroupResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveNull DeleteDatasetGroupResponse'++instance Prelude.Hashable DeleteDatasetGroup where+  hashWithSalt _salt DeleteDatasetGroup' {..} =+    _salt `Prelude.hashWithSalt` datasetGroupArn++instance Prelude.NFData DeleteDatasetGroup where+  rnf DeleteDatasetGroup' {..} =+    Prelude.rnf datasetGroupArn++instance Data.ToHeaders DeleteDatasetGroup where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.DeleteDatasetGroup" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteDatasetGroup where+  toJSON DeleteDatasetGroup' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("datasetGroupArn" Data..= datasetGroupArn)+          ]+      )++instance Data.ToPath DeleteDatasetGroup where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteDatasetGroup where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteDatasetGroupResponse' smart constructor.+data DeleteDatasetGroupResponse = DeleteDatasetGroupResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDatasetGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteDatasetGroupResponse ::+  DeleteDatasetGroupResponse+newDeleteDatasetGroupResponse =+  DeleteDatasetGroupResponse'++instance Prelude.NFData DeleteDatasetGroupResponse where+  rnf _ = ()
+ gen/Amazonka/Personalize/DeleteEventTracker.hs view
@@ -0,0 +1,142 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.DeleteEventTracker+-- 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 event tracker. Does not delete the event-interactions+-- dataset from the associated dataset group. For more information on event+-- trackers, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateEventTracker.html CreateEventTracker>.+module Amazonka.Personalize.DeleteEventTracker+  ( -- * Creating a Request+    DeleteEventTracker (..),+    newDeleteEventTracker,++    -- * Request Lenses+    deleteEventTracker_eventTrackerArn,++    -- * Destructuring the Response+    DeleteEventTrackerResponse (..),+    newDeleteEventTrackerResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteEventTracker' smart constructor.+data DeleteEventTracker = DeleteEventTracker'+  { -- | The Amazon Resource Name (ARN) of the event tracker to delete.+    eventTrackerArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteEventTracker' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventTrackerArn', 'deleteEventTracker_eventTrackerArn' - The Amazon Resource Name (ARN) of the event tracker to delete.+newDeleteEventTracker ::+  -- | 'eventTrackerArn'+  Prelude.Text ->+  DeleteEventTracker+newDeleteEventTracker pEventTrackerArn_ =+  DeleteEventTracker'+    { eventTrackerArn =+        pEventTrackerArn_+    }++-- | The Amazon Resource Name (ARN) of the event tracker to delete.+deleteEventTracker_eventTrackerArn :: Lens.Lens' DeleteEventTracker Prelude.Text+deleteEventTracker_eventTrackerArn = Lens.lens (\DeleteEventTracker' {eventTrackerArn} -> eventTrackerArn) (\s@DeleteEventTracker' {} a -> s {eventTrackerArn = a} :: DeleteEventTracker)++instance Core.AWSRequest DeleteEventTracker where+  type+    AWSResponse DeleteEventTracker =+      DeleteEventTrackerResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveNull DeleteEventTrackerResponse'++instance Prelude.Hashable DeleteEventTracker where+  hashWithSalt _salt DeleteEventTracker' {..} =+    _salt `Prelude.hashWithSalt` eventTrackerArn++instance Prelude.NFData DeleteEventTracker where+  rnf DeleteEventTracker' {..} =+    Prelude.rnf eventTrackerArn++instance Data.ToHeaders DeleteEventTracker where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.DeleteEventTracker" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteEventTracker where+  toJSON DeleteEventTracker' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("eventTrackerArn" Data..= eventTrackerArn)+          ]+      )++instance Data.ToPath DeleteEventTracker where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteEventTracker where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteEventTrackerResponse' smart constructor.+data DeleteEventTrackerResponse = DeleteEventTrackerResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteEventTrackerResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteEventTrackerResponse ::+  DeleteEventTrackerResponse+newDeleteEventTrackerResponse =+  DeleteEventTrackerResponse'++instance Prelude.NFData DeleteEventTrackerResponse where+  rnf _ = ()
+ gen/Amazonka/Personalize/DeleteFilter.hs view
@@ -0,0 +1,129 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.DeleteFilter+-- 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 filter.+module Amazonka.Personalize.DeleteFilter+  ( -- * Creating a Request+    DeleteFilter (..),+    newDeleteFilter,++    -- * Request Lenses+    deleteFilter_filterArn,++    -- * Destructuring the Response+    DeleteFilterResponse (..),+    newDeleteFilterResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteFilter' smart constructor.+data DeleteFilter = DeleteFilter'+  { -- | The ARN of the filter to delete.+    filterArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filterArn', 'deleteFilter_filterArn' - The ARN of the filter to delete.+newDeleteFilter ::+  -- | 'filterArn'+  Prelude.Text ->+  DeleteFilter+newDeleteFilter pFilterArn_ =+  DeleteFilter' {filterArn = pFilterArn_}++-- | The ARN of the filter to delete.+deleteFilter_filterArn :: Lens.Lens' DeleteFilter Prelude.Text+deleteFilter_filterArn = Lens.lens (\DeleteFilter' {filterArn} -> filterArn) (\s@DeleteFilter' {} a -> s {filterArn = a} :: DeleteFilter)++instance Core.AWSRequest DeleteFilter where+  type AWSResponse DeleteFilter = DeleteFilterResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response = Response.receiveNull DeleteFilterResponse'++instance Prelude.Hashable DeleteFilter where+  hashWithSalt _salt DeleteFilter' {..} =+    _salt `Prelude.hashWithSalt` filterArn++instance Prelude.NFData DeleteFilter where+  rnf DeleteFilter' {..} = Prelude.rnf filterArn++instance Data.ToHeaders DeleteFilter where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.DeleteFilter" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteFilter where+  toJSON DeleteFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("filterArn" Data..= filterArn)]+      )++instance Data.ToPath DeleteFilter where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteFilter where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteFilterResponse' smart constructor.+data DeleteFilterResponse = DeleteFilterResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteFilterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteFilterResponse ::+  DeleteFilterResponse+newDeleteFilterResponse = DeleteFilterResponse'++instance Prelude.NFData DeleteFilterResponse where+  rnf _ = ()
+ gen/Amazonka/Personalize/DeleteMetricAttribution.hs view
@@ -0,0 +1,145 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.DeleteMetricAttribution+-- 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 metric attribution.+module Amazonka.Personalize.DeleteMetricAttribution+  ( -- * Creating a Request+    DeleteMetricAttribution (..),+    newDeleteMetricAttribution,++    -- * Request Lenses+    deleteMetricAttribution_metricAttributionArn,++    -- * Destructuring the Response+    DeleteMetricAttributionResponse (..),+    newDeleteMetricAttributionResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteMetricAttribution' smart constructor.+data DeleteMetricAttribution = DeleteMetricAttribution'+  { -- | The metric attribution\'s Amazon Resource Name (ARN).+    metricAttributionArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteMetricAttribution' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'metricAttributionArn', 'deleteMetricAttribution_metricAttributionArn' - The metric attribution\'s Amazon Resource Name (ARN).+newDeleteMetricAttribution ::+  -- | 'metricAttributionArn'+  Prelude.Text ->+  DeleteMetricAttribution+newDeleteMetricAttribution pMetricAttributionArn_ =+  DeleteMetricAttribution'+    { metricAttributionArn =+        pMetricAttributionArn_+    }++-- | The metric attribution\'s Amazon Resource Name (ARN).+deleteMetricAttribution_metricAttributionArn :: Lens.Lens' DeleteMetricAttribution Prelude.Text+deleteMetricAttribution_metricAttributionArn = Lens.lens (\DeleteMetricAttribution' {metricAttributionArn} -> metricAttributionArn) (\s@DeleteMetricAttribution' {} a -> s {metricAttributionArn = a} :: DeleteMetricAttribution)++instance Core.AWSRequest DeleteMetricAttribution where+  type+    AWSResponse DeleteMetricAttribution =+      DeleteMetricAttributionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveNull+      DeleteMetricAttributionResponse'++instance Prelude.Hashable DeleteMetricAttribution where+  hashWithSalt _salt DeleteMetricAttribution' {..} =+    _salt `Prelude.hashWithSalt` metricAttributionArn++instance Prelude.NFData DeleteMetricAttribution where+  rnf DeleteMetricAttribution' {..} =+    Prelude.rnf metricAttributionArn++instance Data.ToHeaders DeleteMetricAttribution where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.DeleteMetricAttribution" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteMetricAttribution where+  toJSON DeleteMetricAttribution' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ( "metricAttributionArn"+                  Data..= metricAttributionArn+              )+          ]+      )++instance Data.ToPath DeleteMetricAttribution where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteMetricAttribution where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteMetricAttributionResponse' smart constructor.+data DeleteMetricAttributionResponse = DeleteMetricAttributionResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteMetricAttributionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteMetricAttributionResponse ::+  DeleteMetricAttributionResponse+newDeleteMetricAttributionResponse =+  DeleteMetricAttributionResponse'++instance+  Prelude.NFData+    DeleteMetricAttributionResponse+  where+  rnf _ = ()
+ gen/Amazonka/Personalize/DeleteRecommender.hs view
@@ -0,0 +1,142 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.DeleteRecommender+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deactivates and removes a recommender. A deleted recommender can no+-- longer be specified in a+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_RS_GetRecommendations.html GetRecommendations>+-- request.+module Amazonka.Personalize.DeleteRecommender+  ( -- * Creating a Request+    DeleteRecommender (..),+    newDeleteRecommender,++    -- * Request Lenses+    deleteRecommender_recommenderArn,++    -- * Destructuring the Response+    DeleteRecommenderResponse (..),+    newDeleteRecommenderResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteRecommender' smart constructor.+data DeleteRecommender = DeleteRecommender'+  { -- | The Amazon Resource Name (ARN) of the recommender to delete.+    recommenderArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteRecommender' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'recommenderArn', 'deleteRecommender_recommenderArn' - The Amazon Resource Name (ARN) of the recommender to delete.+newDeleteRecommender ::+  -- | 'recommenderArn'+  Prelude.Text ->+  DeleteRecommender+newDeleteRecommender pRecommenderArn_ =+  DeleteRecommender'+    { recommenderArn =+        pRecommenderArn_+    }++-- | The Amazon Resource Name (ARN) of the recommender to delete.+deleteRecommender_recommenderArn :: Lens.Lens' DeleteRecommender Prelude.Text+deleteRecommender_recommenderArn = Lens.lens (\DeleteRecommender' {recommenderArn} -> recommenderArn) (\s@DeleteRecommender' {} a -> s {recommenderArn = a} :: DeleteRecommender)++instance Core.AWSRequest DeleteRecommender where+  type+    AWSResponse DeleteRecommender =+      DeleteRecommenderResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveNull DeleteRecommenderResponse'++instance Prelude.Hashable DeleteRecommender where+  hashWithSalt _salt DeleteRecommender' {..} =+    _salt `Prelude.hashWithSalt` recommenderArn++instance Prelude.NFData DeleteRecommender where+  rnf DeleteRecommender' {..} =+    Prelude.rnf recommenderArn++instance Data.ToHeaders DeleteRecommender where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.DeleteRecommender" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteRecommender where+  toJSON DeleteRecommender' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("recommenderArn" Data..= recommenderArn)+          ]+      )++instance Data.ToPath DeleteRecommender where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteRecommender where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteRecommenderResponse' smart constructor.+data DeleteRecommenderResponse = DeleteRecommenderResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteRecommenderResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteRecommenderResponse ::+  DeleteRecommenderResponse+newDeleteRecommenderResponse =+  DeleteRecommenderResponse'++instance Prelude.NFData DeleteRecommenderResponse where+  rnf _ = ()
+ gen/Amazonka/Personalize/DeleteSchema.hs view
@@ -0,0 +1,131 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.DeleteSchema+-- 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 schema. Before deleting a schema, you must delete all datasets+-- referencing the schema. For more information on schemas, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateSchema.html CreateSchema>.+module Amazonka.Personalize.DeleteSchema+  ( -- * Creating a Request+    DeleteSchema (..),+    newDeleteSchema,++    -- * Request Lenses+    deleteSchema_schemaArn,++    -- * Destructuring the Response+    DeleteSchemaResponse (..),+    newDeleteSchemaResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteSchema' smart constructor.+data DeleteSchema = DeleteSchema'+  { -- | The Amazon Resource Name (ARN) of the schema to delete.+    schemaArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSchema' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'schemaArn', 'deleteSchema_schemaArn' - The Amazon Resource Name (ARN) of the schema to delete.+newDeleteSchema ::+  -- | 'schemaArn'+  Prelude.Text ->+  DeleteSchema+newDeleteSchema pSchemaArn_ =+  DeleteSchema' {schemaArn = pSchemaArn_}++-- | The Amazon Resource Name (ARN) of the schema to delete.+deleteSchema_schemaArn :: Lens.Lens' DeleteSchema Prelude.Text+deleteSchema_schemaArn = Lens.lens (\DeleteSchema' {schemaArn} -> schemaArn) (\s@DeleteSchema' {} a -> s {schemaArn = a} :: DeleteSchema)++instance Core.AWSRequest DeleteSchema where+  type AWSResponse DeleteSchema = DeleteSchemaResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response = Response.receiveNull DeleteSchemaResponse'++instance Prelude.Hashable DeleteSchema where+  hashWithSalt _salt DeleteSchema' {..} =+    _salt `Prelude.hashWithSalt` schemaArn++instance Prelude.NFData DeleteSchema where+  rnf DeleteSchema' {..} = Prelude.rnf schemaArn++instance Data.ToHeaders DeleteSchema where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.DeleteSchema" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteSchema where+  toJSON DeleteSchema' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("schemaArn" Data..= schemaArn)]+      )++instance Data.ToPath DeleteSchema where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteSchema where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteSchemaResponse' smart constructor.+data DeleteSchemaResponse = DeleteSchemaResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSchemaResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteSchemaResponse ::+  DeleteSchemaResponse+newDeleteSchemaResponse = DeleteSchemaResponse'++instance Prelude.NFData DeleteSchemaResponse where+  rnf _ = ()
+ gen/Amazonka/Personalize/DeleteSolution.hs view
@@ -0,0 +1,139 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.DeleteSolution+-- 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 versions of a solution and the @Solution@ object itself.+-- Before deleting a solution, you must delete all campaigns based on the+-- solution. To determine what campaigns are using the solution, call+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_ListCampaigns.html ListCampaigns>+-- and supply the Amazon Resource Name (ARN) of the solution. You can\'t+-- delete a solution if an associated @SolutionVersion@ is in the CREATE+-- PENDING or IN PROGRESS state. For more information on solutions, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateSolution.html CreateSolution>.+module Amazonka.Personalize.DeleteSolution+  ( -- * Creating a Request+    DeleteSolution (..),+    newDeleteSolution,++    -- * Request Lenses+    deleteSolution_solutionArn,++    -- * Destructuring the Response+    DeleteSolutionResponse (..),+    newDeleteSolutionResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteSolution' smart constructor.+data DeleteSolution = DeleteSolution'+  { -- | The ARN of the solution to delete.+    solutionArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSolution' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'solutionArn', 'deleteSolution_solutionArn' - The ARN of the solution to delete.+newDeleteSolution ::+  -- | 'solutionArn'+  Prelude.Text ->+  DeleteSolution+newDeleteSolution pSolutionArn_ =+  DeleteSolution' {solutionArn = pSolutionArn_}++-- | The ARN of the solution to delete.+deleteSolution_solutionArn :: Lens.Lens' DeleteSolution Prelude.Text+deleteSolution_solutionArn = Lens.lens (\DeleteSolution' {solutionArn} -> solutionArn) (\s@DeleteSolution' {} a -> s {solutionArn = a} :: DeleteSolution)++instance Core.AWSRequest DeleteSolution where+  type+    AWSResponse DeleteSolution =+      DeleteSolutionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveNull DeleteSolutionResponse'++instance Prelude.Hashable DeleteSolution where+  hashWithSalt _salt DeleteSolution' {..} =+    _salt `Prelude.hashWithSalt` solutionArn++instance Prelude.NFData DeleteSolution where+  rnf DeleteSolution' {..} = Prelude.rnf solutionArn++instance Data.ToHeaders DeleteSolution where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.DeleteSolution" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteSolution where+  toJSON DeleteSolution' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("solutionArn" Data..= solutionArn)]+      )++instance Data.ToPath DeleteSolution where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteSolution where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteSolutionResponse' smart constructor.+data DeleteSolutionResponse = DeleteSolutionResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSolutionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteSolutionResponse ::+  DeleteSolutionResponse+newDeleteSolutionResponse = DeleteSolutionResponse'++instance Prelude.NFData DeleteSolutionResponse where+  rnf _ = ()
+ gen/Amazonka/Personalize/DescribeAlgorithm.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.Personalize.DescribeAlgorithm+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes the given algorithm.+module Amazonka.Personalize.DescribeAlgorithm+  ( -- * Creating a Request+    DescribeAlgorithm (..),+    newDescribeAlgorithm,++    -- * Request Lenses+    describeAlgorithm_algorithmArn,++    -- * Destructuring the Response+    DescribeAlgorithmResponse (..),+    newDescribeAlgorithmResponse,++    -- * Response Lenses+    describeAlgorithmResponse_algorithm,+    describeAlgorithmResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeAlgorithm' smart constructor.+data DescribeAlgorithm = DescribeAlgorithm'+  { -- | The Amazon Resource Name (ARN) of the algorithm to describe.+    algorithmArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeAlgorithm' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'algorithmArn', 'describeAlgorithm_algorithmArn' - The Amazon Resource Name (ARN) of the algorithm to describe.+newDescribeAlgorithm ::+  -- | 'algorithmArn'+  Prelude.Text ->+  DescribeAlgorithm+newDescribeAlgorithm pAlgorithmArn_ =+  DescribeAlgorithm' {algorithmArn = pAlgorithmArn_}++-- | The Amazon Resource Name (ARN) of the algorithm to describe.+describeAlgorithm_algorithmArn :: Lens.Lens' DescribeAlgorithm Prelude.Text+describeAlgorithm_algorithmArn = Lens.lens (\DescribeAlgorithm' {algorithmArn} -> algorithmArn) (\s@DescribeAlgorithm' {} a -> s {algorithmArn = a} :: DescribeAlgorithm)++instance Core.AWSRequest DescribeAlgorithm where+  type+    AWSResponse DescribeAlgorithm =+      DescribeAlgorithmResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeAlgorithmResponse'+            Prelude.<$> (x Data..?> "algorithm")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeAlgorithm where+  hashWithSalt _salt DescribeAlgorithm' {..} =+    _salt `Prelude.hashWithSalt` algorithmArn++instance Prelude.NFData DescribeAlgorithm where+  rnf DescribeAlgorithm' {..} = Prelude.rnf algorithmArn++instance Data.ToHeaders DescribeAlgorithm where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.DescribeAlgorithm" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeAlgorithm where+  toJSON DescribeAlgorithm' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("algorithmArn" Data..= algorithmArn)]+      )++instance Data.ToPath DescribeAlgorithm where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeAlgorithm where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeAlgorithmResponse' smart constructor.+data DescribeAlgorithmResponse = DescribeAlgorithmResponse'+  { -- | A listing of the properties of the algorithm.+    algorithm :: Prelude.Maybe Algorithm,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeAlgorithmResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'algorithm', 'describeAlgorithmResponse_algorithm' - A listing of the properties of the algorithm.+--+-- 'httpStatus', 'describeAlgorithmResponse_httpStatus' - The response's http status code.+newDescribeAlgorithmResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeAlgorithmResponse+newDescribeAlgorithmResponse pHttpStatus_ =+  DescribeAlgorithmResponse'+    { algorithm =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A listing of the properties of the algorithm.+describeAlgorithmResponse_algorithm :: Lens.Lens' DescribeAlgorithmResponse (Prelude.Maybe Algorithm)+describeAlgorithmResponse_algorithm = Lens.lens (\DescribeAlgorithmResponse' {algorithm} -> algorithm) (\s@DescribeAlgorithmResponse' {} a -> s {algorithm = a} :: DescribeAlgorithmResponse)++-- | The response's http status code.+describeAlgorithmResponse_httpStatus :: Lens.Lens' DescribeAlgorithmResponse Prelude.Int+describeAlgorithmResponse_httpStatus = Lens.lens (\DescribeAlgorithmResponse' {httpStatus} -> httpStatus) (\s@DescribeAlgorithmResponse' {} a -> s {httpStatus = a} :: DescribeAlgorithmResponse)++instance Prelude.NFData DescribeAlgorithmResponse where+  rnf DescribeAlgorithmResponse' {..} =+    Prelude.rnf algorithm+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/DescribeBatchInferenceJob.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.Personalize.DescribeBatchInferenceJob+-- 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 properties of a batch inference job including name, Amazon+-- Resource Name (ARN), status, input and output configurations, and the+-- ARN of the solution version used to generate the recommendations.+module Amazonka.Personalize.DescribeBatchInferenceJob+  ( -- * Creating a Request+    DescribeBatchInferenceJob (..),+    newDescribeBatchInferenceJob,++    -- * Request Lenses+    describeBatchInferenceJob_batchInferenceJobArn,++    -- * Destructuring the Response+    DescribeBatchInferenceJobResponse (..),+    newDescribeBatchInferenceJobResponse,++    -- * Response Lenses+    describeBatchInferenceJobResponse_batchInferenceJob,+    describeBatchInferenceJobResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeBatchInferenceJob' smart constructor.+data DescribeBatchInferenceJob = DescribeBatchInferenceJob'+  { -- | The ARN of the batch inference job to describe.+    batchInferenceJobArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeBatchInferenceJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'batchInferenceJobArn', 'describeBatchInferenceJob_batchInferenceJobArn' - The ARN of the batch inference job to describe.+newDescribeBatchInferenceJob ::+  -- | 'batchInferenceJobArn'+  Prelude.Text ->+  DescribeBatchInferenceJob+newDescribeBatchInferenceJob pBatchInferenceJobArn_ =+  DescribeBatchInferenceJob'+    { batchInferenceJobArn =+        pBatchInferenceJobArn_+    }++-- | The ARN of the batch inference job to describe.+describeBatchInferenceJob_batchInferenceJobArn :: Lens.Lens' DescribeBatchInferenceJob Prelude.Text+describeBatchInferenceJob_batchInferenceJobArn = Lens.lens (\DescribeBatchInferenceJob' {batchInferenceJobArn} -> batchInferenceJobArn) (\s@DescribeBatchInferenceJob' {} a -> s {batchInferenceJobArn = a} :: DescribeBatchInferenceJob)++instance Core.AWSRequest DescribeBatchInferenceJob where+  type+    AWSResponse DescribeBatchInferenceJob =+      DescribeBatchInferenceJobResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeBatchInferenceJobResponse'+            Prelude.<$> (x Data..?> "batchInferenceJob")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeBatchInferenceJob where+  hashWithSalt _salt DescribeBatchInferenceJob' {..} =+    _salt `Prelude.hashWithSalt` batchInferenceJobArn++instance Prelude.NFData DescribeBatchInferenceJob where+  rnf DescribeBatchInferenceJob' {..} =+    Prelude.rnf batchInferenceJobArn++instance Data.ToHeaders DescribeBatchInferenceJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.DescribeBatchInferenceJob" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeBatchInferenceJob where+  toJSON DescribeBatchInferenceJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ( "batchInferenceJobArn"+                  Data..= batchInferenceJobArn+              )+          ]+      )++instance Data.ToPath DescribeBatchInferenceJob where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeBatchInferenceJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeBatchInferenceJobResponse' smart constructor.+data DescribeBatchInferenceJobResponse = DescribeBatchInferenceJobResponse'+  { -- | Information on the specified batch inference job.+    batchInferenceJob :: Prelude.Maybe BatchInferenceJob,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeBatchInferenceJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'batchInferenceJob', 'describeBatchInferenceJobResponse_batchInferenceJob' - Information on the specified batch inference job.+--+-- 'httpStatus', 'describeBatchInferenceJobResponse_httpStatus' - The response's http status code.+newDescribeBatchInferenceJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeBatchInferenceJobResponse+newDescribeBatchInferenceJobResponse pHttpStatus_ =+  DescribeBatchInferenceJobResponse'+    { batchInferenceJob =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Information on the specified batch inference job.+describeBatchInferenceJobResponse_batchInferenceJob :: Lens.Lens' DescribeBatchInferenceJobResponse (Prelude.Maybe BatchInferenceJob)+describeBatchInferenceJobResponse_batchInferenceJob = Lens.lens (\DescribeBatchInferenceJobResponse' {batchInferenceJob} -> batchInferenceJob) (\s@DescribeBatchInferenceJobResponse' {} a -> s {batchInferenceJob = a} :: DescribeBatchInferenceJobResponse)++-- | The response's http status code.+describeBatchInferenceJobResponse_httpStatus :: Lens.Lens' DescribeBatchInferenceJobResponse Prelude.Int+describeBatchInferenceJobResponse_httpStatus = Lens.lens (\DescribeBatchInferenceJobResponse' {httpStatus} -> httpStatus) (\s@DescribeBatchInferenceJobResponse' {} a -> s {httpStatus = a} :: DescribeBatchInferenceJobResponse)++instance+  Prelude.NFData+    DescribeBatchInferenceJobResponse+  where+  rnf DescribeBatchInferenceJobResponse' {..} =+    Prelude.rnf batchInferenceJob+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/DescribeBatchSegmentJob.hs view
@@ -0,0 +1,179 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.DescribeBatchSegmentJob+-- 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 properties of a batch segment job including name, Amazon+-- Resource Name (ARN), status, input and output configurations, and the+-- ARN of the solution version used to generate segments.+module Amazonka.Personalize.DescribeBatchSegmentJob+  ( -- * Creating a Request+    DescribeBatchSegmentJob (..),+    newDescribeBatchSegmentJob,++    -- * Request Lenses+    describeBatchSegmentJob_batchSegmentJobArn,++    -- * Destructuring the Response+    DescribeBatchSegmentJobResponse (..),+    newDescribeBatchSegmentJobResponse,++    -- * Response Lenses+    describeBatchSegmentJobResponse_batchSegmentJob,+    describeBatchSegmentJobResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeBatchSegmentJob' smart constructor.+data DescribeBatchSegmentJob = DescribeBatchSegmentJob'+  { -- | The ARN of the batch segment job to describe.+    batchSegmentJobArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeBatchSegmentJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'batchSegmentJobArn', 'describeBatchSegmentJob_batchSegmentJobArn' - The ARN of the batch segment job to describe.+newDescribeBatchSegmentJob ::+  -- | 'batchSegmentJobArn'+  Prelude.Text ->+  DescribeBatchSegmentJob+newDescribeBatchSegmentJob pBatchSegmentJobArn_ =+  DescribeBatchSegmentJob'+    { batchSegmentJobArn =+        pBatchSegmentJobArn_+    }++-- | The ARN of the batch segment job to describe.+describeBatchSegmentJob_batchSegmentJobArn :: Lens.Lens' DescribeBatchSegmentJob Prelude.Text+describeBatchSegmentJob_batchSegmentJobArn = Lens.lens (\DescribeBatchSegmentJob' {batchSegmentJobArn} -> batchSegmentJobArn) (\s@DescribeBatchSegmentJob' {} a -> s {batchSegmentJobArn = a} :: DescribeBatchSegmentJob)++instance Core.AWSRequest DescribeBatchSegmentJob where+  type+    AWSResponse DescribeBatchSegmentJob =+      DescribeBatchSegmentJobResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeBatchSegmentJobResponse'+            Prelude.<$> (x Data..?> "batchSegmentJob")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeBatchSegmentJob where+  hashWithSalt _salt DescribeBatchSegmentJob' {..} =+    _salt `Prelude.hashWithSalt` batchSegmentJobArn++instance Prelude.NFData DescribeBatchSegmentJob where+  rnf DescribeBatchSegmentJob' {..} =+    Prelude.rnf batchSegmentJobArn++instance Data.ToHeaders DescribeBatchSegmentJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.DescribeBatchSegmentJob" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeBatchSegmentJob where+  toJSON DescribeBatchSegmentJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("batchSegmentJobArn" Data..= batchSegmentJobArn)+          ]+      )++instance Data.ToPath DescribeBatchSegmentJob where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeBatchSegmentJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeBatchSegmentJobResponse' smart constructor.+data DescribeBatchSegmentJobResponse = DescribeBatchSegmentJobResponse'+  { -- | Information on the specified batch segment job.+    batchSegmentJob :: Prelude.Maybe BatchSegmentJob,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeBatchSegmentJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'batchSegmentJob', 'describeBatchSegmentJobResponse_batchSegmentJob' - Information on the specified batch segment job.+--+-- 'httpStatus', 'describeBatchSegmentJobResponse_httpStatus' - The response's http status code.+newDescribeBatchSegmentJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeBatchSegmentJobResponse+newDescribeBatchSegmentJobResponse pHttpStatus_ =+  DescribeBatchSegmentJobResponse'+    { batchSegmentJob =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Information on the specified batch segment job.+describeBatchSegmentJobResponse_batchSegmentJob :: Lens.Lens' DescribeBatchSegmentJobResponse (Prelude.Maybe BatchSegmentJob)+describeBatchSegmentJobResponse_batchSegmentJob = Lens.lens (\DescribeBatchSegmentJobResponse' {batchSegmentJob} -> batchSegmentJob) (\s@DescribeBatchSegmentJobResponse' {} a -> s {batchSegmentJob = a} :: DescribeBatchSegmentJobResponse)++-- | The response's http status code.+describeBatchSegmentJobResponse_httpStatus :: Lens.Lens' DescribeBatchSegmentJobResponse Prelude.Int+describeBatchSegmentJobResponse_httpStatus = Lens.lens (\DescribeBatchSegmentJobResponse' {httpStatus} -> httpStatus) (\s@DescribeBatchSegmentJobResponse' {} a -> s {httpStatus = a} :: DescribeBatchSegmentJobResponse)++instance+  Prelude.NFData+    DescribeBatchSegmentJobResponse+  where+  rnf DescribeBatchSegmentJobResponse' {..} =+    Prelude.rnf batchSegmentJob+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/DescribeCampaign.hs view
@@ -0,0 +1,180 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.DescribeCampaign+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes the given campaign, including its status.+--+-- A campaign can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   DELETE PENDING > DELETE IN_PROGRESS+--+-- When the @status@ is @CREATE FAILED@, the response includes the+-- @failureReason@ key, which describes why.+--+-- For more information on campaigns, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateCampaign.html CreateCampaign>.+module Amazonka.Personalize.DescribeCampaign+  ( -- * Creating a Request+    DescribeCampaign (..),+    newDescribeCampaign,++    -- * Request Lenses+    describeCampaign_campaignArn,++    -- * Destructuring the Response+    DescribeCampaignResponse (..),+    newDescribeCampaignResponse,++    -- * Response Lenses+    describeCampaignResponse_campaign,+    describeCampaignResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeCampaign' smart constructor.+data DescribeCampaign = DescribeCampaign'+  { -- | The Amazon Resource Name (ARN) of the campaign.+    campaignArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeCampaign' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'campaignArn', 'describeCampaign_campaignArn' - The Amazon Resource Name (ARN) of the campaign.+newDescribeCampaign ::+  -- | 'campaignArn'+  Prelude.Text ->+  DescribeCampaign+newDescribeCampaign pCampaignArn_ =+  DescribeCampaign' {campaignArn = pCampaignArn_}++-- | The Amazon Resource Name (ARN) of the campaign.+describeCampaign_campaignArn :: Lens.Lens' DescribeCampaign Prelude.Text+describeCampaign_campaignArn = Lens.lens (\DescribeCampaign' {campaignArn} -> campaignArn) (\s@DescribeCampaign' {} a -> s {campaignArn = a} :: DescribeCampaign)++instance Core.AWSRequest DescribeCampaign where+  type+    AWSResponse DescribeCampaign =+      DescribeCampaignResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeCampaignResponse'+            Prelude.<$> (x Data..?> "campaign")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeCampaign where+  hashWithSalt _salt DescribeCampaign' {..} =+    _salt `Prelude.hashWithSalt` campaignArn++instance Prelude.NFData DescribeCampaign where+  rnf DescribeCampaign' {..} = Prelude.rnf campaignArn++instance Data.ToHeaders DescribeCampaign where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.DescribeCampaign" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeCampaign where+  toJSON DescribeCampaign' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("campaignArn" Data..= campaignArn)]+      )++instance Data.ToPath DescribeCampaign where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeCampaign where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeCampaignResponse' smart constructor.+data DescribeCampaignResponse = DescribeCampaignResponse'+  { -- | The properties of the campaign.+    campaign :: Prelude.Maybe Campaign,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeCampaignResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'campaign', 'describeCampaignResponse_campaign' - The properties of the campaign.+--+-- 'httpStatus', 'describeCampaignResponse_httpStatus' - The response's http status code.+newDescribeCampaignResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeCampaignResponse+newDescribeCampaignResponse pHttpStatus_ =+  DescribeCampaignResponse'+    { campaign =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The properties of the campaign.+describeCampaignResponse_campaign :: Lens.Lens' DescribeCampaignResponse (Prelude.Maybe Campaign)+describeCampaignResponse_campaign = Lens.lens (\DescribeCampaignResponse' {campaign} -> campaign) (\s@DescribeCampaignResponse' {} a -> s {campaign = a} :: DescribeCampaignResponse)++-- | The response's http status code.+describeCampaignResponse_httpStatus :: Lens.Lens' DescribeCampaignResponse Prelude.Int+describeCampaignResponse_httpStatus = Lens.lens (\DescribeCampaignResponse' {httpStatus} -> httpStatus) (\s@DescribeCampaignResponse' {} a -> s {httpStatus = a} :: DescribeCampaignResponse)++instance Prelude.NFData DescribeCampaignResponse where+  rnf DescribeCampaignResponse' {..} =+    Prelude.rnf campaign+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/DescribeDataset.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.Personalize.DescribeDataset+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes the given dataset. For more information on datasets, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDataset.html CreateDataset>.+module Amazonka.Personalize.DescribeDataset+  ( -- * Creating a Request+    DescribeDataset (..),+    newDescribeDataset,++    -- * Request Lenses+    describeDataset_datasetArn,++    -- * Destructuring the Response+    DescribeDatasetResponse (..),+    newDescribeDatasetResponse,++    -- * Response Lenses+    describeDatasetResponse_dataset,+    describeDatasetResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeDataset' smart constructor.+data DescribeDataset = DescribeDataset'+  { -- | The Amazon Resource Name (ARN) of the dataset to describe.+    datasetArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDataset' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'datasetArn', 'describeDataset_datasetArn' - The Amazon Resource Name (ARN) of the dataset to describe.+newDescribeDataset ::+  -- | 'datasetArn'+  Prelude.Text ->+  DescribeDataset+newDescribeDataset pDatasetArn_ =+  DescribeDataset' {datasetArn = pDatasetArn_}++-- | The Amazon Resource Name (ARN) of the dataset to describe.+describeDataset_datasetArn :: Lens.Lens' DescribeDataset Prelude.Text+describeDataset_datasetArn = Lens.lens (\DescribeDataset' {datasetArn} -> datasetArn) (\s@DescribeDataset' {} a -> s {datasetArn = a} :: DescribeDataset)++instance Core.AWSRequest DescribeDataset where+  type+    AWSResponse DescribeDataset =+      DescribeDatasetResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeDatasetResponse'+            Prelude.<$> (x Data..?> "dataset")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeDataset where+  hashWithSalt _salt DescribeDataset' {..} =+    _salt `Prelude.hashWithSalt` datasetArn++instance Prelude.NFData DescribeDataset where+  rnf DescribeDataset' {..} = Prelude.rnf datasetArn++instance Data.ToHeaders DescribeDataset where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.DescribeDataset" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeDataset where+  toJSON DescribeDataset' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("datasetArn" Data..= datasetArn)]+      )++instance Data.ToPath DescribeDataset where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeDataset where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeDatasetResponse' smart constructor.+data DescribeDatasetResponse = DescribeDatasetResponse'+  { -- | A listing of the dataset\'s properties.+    dataset :: Prelude.Maybe Dataset,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDatasetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataset', 'describeDatasetResponse_dataset' - A listing of the dataset\'s properties.+--+-- 'httpStatus', 'describeDatasetResponse_httpStatus' - The response's http status code.+newDescribeDatasetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeDatasetResponse+newDescribeDatasetResponse pHttpStatus_ =+  DescribeDatasetResponse'+    { dataset = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A listing of the dataset\'s properties.+describeDatasetResponse_dataset :: Lens.Lens' DescribeDatasetResponse (Prelude.Maybe Dataset)+describeDatasetResponse_dataset = Lens.lens (\DescribeDatasetResponse' {dataset} -> dataset) (\s@DescribeDatasetResponse' {} a -> s {dataset = a} :: DescribeDatasetResponse)++-- | The response's http status code.+describeDatasetResponse_httpStatus :: Lens.Lens' DescribeDatasetResponse Prelude.Int+describeDatasetResponse_httpStatus = Lens.lens (\DescribeDatasetResponse' {httpStatus} -> httpStatus) (\s@DescribeDatasetResponse' {} a -> s {httpStatus = a} :: DescribeDatasetResponse)++instance Prelude.NFData DescribeDatasetResponse where+  rnf DescribeDatasetResponse' {..} =+    Prelude.rnf dataset+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/DescribeDatasetExportJob.hs view
@@ -0,0 +1,209 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.DescribeDatasetExportJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes the dataset export job created by+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDatasetExportJob.html CreateDatasetExportJob>,+-- including the export job status.+module Amazonka.Personalize.DescribeDatasetExportJob+  ( -- * Creating a Request+    DescribeDatasetExportJob (..),+    newDescribeDatasetExportJob,++    -- * Request Lenses+    describeDatasetExportJob_datasetExportJobArn,++    -- * Destructuring the Response+    DescribeDatasetExportJobResponse (..),+    newDescribeDatasetExportJobResponse,++    -- * Response Lenses+    describeDatasetExportJobResponse_datasetExportJob,+    describeDatasetExportJobResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeDatasetExportJob' smart constructor.+data DescribeDatasetExportJob = DescribeDatasetExportJob'+  { -- | The Amazon Resource Name (ARN) of the dataset export job to describe.+    datasetExportJobArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDatasetExportJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'datasetExportJobArn', 'describeDatasetExportJob_datasetExportJobArn' - The Amazon Resource Name (ARN) of the dataset export job to describe.+newDescribeDatasetExportJob ::+  -- | 'datasetExportJobArn'+  Prelude.Text ->+  DescribeDatasetExportJob+newDescribeDatasetExportJob pDatasetExportJobArn_ =+  DescribeDatasetExportJob'+    { datasetExportJobArn =+        pDatasetExportJobArn_+    }++-- | The Amazon Resource Name (ARN) of the dataset export job to describe.+describeDatasetExportJob_datasetExportJobArn :: Lens.Lens' DescribeDatasetExportJob Prelude.Text+describeDatasetExportJob_datasetExportJobArn = Lens.lens (\DescribeDatasetExportJob' {datasetExportJobArn} -> datasetExportJobArn) (\s@DescribeDatasetExportJob' {} a -> s {datasetExportJobArn = a} :: DescribeDatasetExportJob)++instance Core.AWSRequest DescribeDatasetExportJob where+  type+    AWSResponse DescribeDatasetExportJob =+      DescribeDatasetExportJobResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeDatasetExportJobResponse'+            Prelude.<$> (x Data..?> "datasetExportJob")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeDatasetExportJob where+  hashWithSalt _salt DescribeDatasetExportJob' {..} =+    _salt `Prelude.hashWithSalt` datasetExportJobArn++instance Prelude.NFData DescribeDatasetExportJob where+  rnf DescribeDatasetExportJob' {..} =+    Prelude.rnf datasetExportJobArn++instance Data.ToHeaders DescribeDatasetExportJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.DescribeDatasetExportJob" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeDatasetExportJob where+  toJSON DescribeDatasetExportJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("datasetExportJobArn" Data..= datasetExportJobArn)+          ]+      )++instance Data.ToPath DescribeDatasetExportJob where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeDatasetExportJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeDatasetExportJobResponse' smart constructor.+data DescribeDatasetExportJobResponse = DescribeDatasetExportJobResponse'+  { -- | Information about the dataset export job, including the status.+    --+    -- The status is one of the following values:+    --+    -- -   CREATE PENDING+    --+    -- -   CREATE IN_PROGRESS+    --+    -- -   ACTIVE+    --+    -- -   CREATE FAILED+    datasetExportJob :: Prelude.Maybe DatasetExportJob,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDatasetExportJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'datasetExportJob', 'describeDatasetExportJobResponse_datasetExportJob' - Information about the dataset export job, including the status.+--+-- The status is one of the following values:+--+-- -   CREATE PENDING+--+-- -   CREATE IN_PROGRESS+--+-- -   ACTIVE+--+-- -   CREATE FAILED+--+-- 'httpStatus', 'describeDatasetExportJobResponse_httpStatus' - The response's http status code.+newDescribeDatasetExportJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeDatasetExportJobResponse+newDescribeDatasetExportJobResponse pHttpStatus_ =+  DescribeDatasetExportJobResponse'+    { datasetExportJob =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Information about the dataset export job, including the status.+--+-- The status is one of the following values:+--+-- -   CREATE PENDING+--+-- -   CREATE IN_PROGRESS+--+-- -   ACTIVE+--+-- -   CREATE FAILED+describeDatasetExportJobResponse_datasetExportJob :: Lens.Lens' DescribeDatasetExportJobResponse (Prelude.Maybe DatasetExportJob)+describeDatasetExportJobResponse_datasetExportJob = Lens.lens (\DescribeDatasetExportJobResponse' {datasetExportJob} -> datasetExportJob) (\s@DescribeDatasetExportJobResponse' {} a -> s {datasetExportJob = a} :: DescribeDatasetExportJobResponse)++-- | The response's http status code.+describeDatasetExportJobResponse_httpStatus :: Lens.Lens' DescribeDatasetExportJobResponse Prelude.Int+describeDatasetExportJobResponse_httpStatus = Lens.lens (\DescribeDatasetExportJobResponse' {httpStatus} -> httpStatus) (\s@DescribeDatasetExportJobResponse' {} a -> s {httpStatus = a} :: DescribeDatasetExportJobResponse)++instance+  Prelude.NFData+    DescribeDatasetExportJobResponse+  where+  rnf DescribeDatasetExportJobResponse' {..} =+    Prelude.rnf datasetExportJob+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/DescribeDatasetGroup.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.Personalize.DescribeDatasetGroup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes the given dataset group. For more information on dataset+-- groups, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDatasetGroup.html CreateDatasetGroup>.+module Amazonka.Personalize.DescribeDatasetGroup+  ( -- * Creating a Request+    DescribeDatasetGroup (..),+    newDescribeDatasetGroup,++    -- * Request Lenses+    describeDatasetGroup_datasetGroupArn,++    -- * Destructuring the Response+    DescribeDatasetGroupResponse (..),+    newDescribeDatasetGroupResponse,++    -- * Response Lenses+    describeDatasetGroupResponse_datasetGroup,+    describeDatasetGroupResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeDatasetGroup' smart constructor.+data DescribeDatasetGroup = DescribeDatasetGroup'+  { -- | The Amazon Resource Name (ARN) of the dataset group to describe.+    datasetGroupArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDatasetGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'datasetGroupArn', 'describeDatasetGroup_datasetGroupArn' - The Amazon Resource Name (ARN) of the dataset group to describe.+newDescribeDatasetGroup ::+  -- | 'datasetGroupArn'+  Prelude.Text ->+  DescribeDatasetGroup+newDescribeDatasetGroup pDatasetGroupArn_ =+  DescribeDatasetGroup'+    { datasetGroupArn =+        pDatasetGroupArn_+    }++-- | The Amazon Resource Name (ARN) of the dataset group to describe.+describeDatasetGroup_datasetGroupArn :: Lens.Lens' DescribeDatasetGroup Prelude.Text+describeDatasetGroup_datasetGroupArn = Lens.lens (\DescribeDatasetGroup' {datasetGroupArn} -> datasetGroupArn) (\s@DescribeDatasetGroup' {} a -> s {datasetGroupArn = a} :: DescribeDatasetGroup)++instance Core.AWSRequest DescribeDatasetGroup where+  type+    AWSResponse DescribeDatasetGroup =+      DescribeDatasetGroupResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeDatasetGroupResponse'+            Prelude.<$> (x Data..?> "datasetGroup")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeDatasetGroup where+  hashWithSalt _salt DescribeDatasetGroup' {..} =+    _salt `Prelude.hashWithSalt` datasetGroupArn++instance Prelude.NFData DescribeDatasetGroup where+  rnf DescribeDatasetGroup' {..} =+    Prelude.rnf datasetGroupArn++instance Data.ToHeaders DescribeDatasetGroup where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.DescribeDatasetGroup" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeDatasetGroup where+  toJSON DescribeDatasetGroup' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("datasetGroupArn" Data..= datasetGroupArn)+          ]+      )++instance Data.ToPath DescribeDatasetGroup where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeDatasetGroup where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeDatasetGroupResponse' smart constructor.+data DescribeDatasetGroupResponse = DescribeDatasetGroupResponse'+  { -- | A listing of the dataset group\'s properties.+    datasetGroup :: Prelude.Maybe DatasetGroup,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDatasetGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'datasetGroup', 'describeDatasetGroupResponse_datasetGroup' - A listing of the dataset group\'s properties.+--+-- 'httpStatus', 'describeDatasetGroupResponse_httpStatus' - The response's http status code.+newDescribeDatasetGroupResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeDatasetGroupResponse+newDescribeDatasetGroupResponse pHttpStatus_ =+  DescribeDatasetGroupResponse'+    { datasetGroup =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A listing of the dataset group\'s properties.+describeDatasetGroupResponse_datasetGroup :: Lens.Lens' DescribeDatasetGroupResponse (Prelude.Maybe DatasetGroup)+describeDatasetGroupResponse_datasetGroup = Lens.lens (\DescribeDatasetGroupResponse' {datasetGroup} -> datasetGroup) (\s@DescribeDatasetGroupResponse' {} a -> s {datasetGroup = a} :: DescribeDatasetGroupResponse)++-- | The response's http status code.+describeDatasetGroupResponse_httpStatus :: Lens.Lens' DescribeDatasetGroupResponse Prelude.Int+describeDatasetGroupResponse_httpStatus = Lens.lens (\DescribeDatasetGroupResponse' {httpStatus} -> httpStatus) (\s@DescribeDatasetGroupResponse' {} a -> s {httpStatus = a} :: DescribeDatasetGroupResponse)++instance Prelude.NFData DescribeDatasetGroupResponse where+  rnf DescribeDatasetGroupResponse' {..} =+    Prelude.rnf datasetGroup+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/DescribeDatasetImportJob.hs view
@@ -0,0 +1,209 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.DescribeDatasetImportJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes the dataset import job created by+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDatasetImportJob.html CreateDatasetImportJob>,+-- including the import job status.+module Amazonka.Personalize.DescribeDatasetImportJob+  ( -- * Creating a Request+    DescribeDatasetImportJob (..),+    newDescribeDatasetImportJob,++    -- * Request Lenses+    describeDatasetImportJob_datasetImportJobArn,++    -- * Destructuring the Response+    DescribeDatasetImportJobResponse (..),+    newDescribeDatasetImportJobResponse,++    -- * Response Lenses+    describeDatasetImportJobResponse_datasetImportJob,+    describeDatasetImportJobResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeDatasetImportJob' smart constructor.+data DescribeDatasetImportJob = DescribeDatasetImportJob'+  { -- | The Amazon Resource Name (ARN) of the dataset import job to describe.+    datasetImportJobArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDatasetImportJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'datasetImportJobArn', 'describeDatasetImportJob_datasetImportJobArn' - The Amazon Resource Name (ARN) of the dataset import job to describe.+newDescribeDatasetImportJob ::+  -- | 'datasetImportJobArn'+  Prelude.Text ->+  DescribeDatasetImportJob+newDescribeDatasetImportJob pDatasetImportJobArn_ =+  DescribeDatasetImportJob'+    { datasetImportJobArn =+        pDatasetImportJobArn_+    }++-- | The Amazon Resource Name (ARN) of the dataset import job to describe.+describeDatasetImportJob_datasetImportJobArn :: Lens.Lens' DescribeDatasetImportJob Prelude.Text+describeDatasetImportJob_datasetImportJobArn = Lens.lens (\DescribeDatasetImportJob' {datasetImportJobArn} -> datasetImportJobArn) (\s@DescribeDatasetImportJob' {} a -> s {datasetImportJobArn = a} :: DescribeDatasetImportJob)++instance Core.AWSRequest DescribeDatasetImportJob where+  type+    AWSResponse DescribeDatasetImportJob =+      DescribeDatasetImportJobResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeDatasetImportJobResponse'+            Prelude.<$> (x Data..?> "datasetImportJob")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeDatasetImportJob where+  hashWithSalt _salt DescribeDatasetImportJob' {..} =+    _salt `Prelude.hashWithSalt` datasetImportJobArn++instance Prelude.NFData DescribeDatasetImportJob where+  rnf DescribeDatasetImportJob' {..} =+    Prelude.rnf datasetImportJobArn++instance Data.ToHeaders DescribeDatasetImportJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.DescribeDatasetImportJob" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeDatasetImportJob where+  toJSON DescribeDatasetImportJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("datasetImportJobArn" Data..= datasetImportJobArn)+          ]+      )++instance Data.ToPath DescribeDatasetImportJob where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeDatasetImportJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeDatasetImportJobResponse' smart constructor.+data DescribeDatasetImportJobResponse = DescribeDatasetImportJobResponse'+  { -- | Information about the dataset import job, including the status.+    --+    -- The status is one of the following values:+    --+    -- -   CREATE PENDING+    --+    -- -   CREATE IN_PROGRESS+    --+    -- -   ACTIVE+    --+    -- -   CREATE FAILED+    datasetImportJob :: Prelude.Maybe DatasetImportJob,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDatasetImportJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'datasetImportJob', 'describeDatasetImportJobResponse_datasetImportJob' - Information about the dataset import job, including the status.+--+-- The status is one of the following values:+--+-- -   CREATE PENDING+--+-- -   CREATE IN_PROGRESS+--+-- -   ACTIVE+--+-- -   CREATE FAILED+--+-- 'httpStatus', 'describeDatasetImportJobResponse_httpStatus' - The response's http status code.+newDescribeDatasetImportJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeDatasetImportJobResponse+newDescribeDatasetImportJobResponse pHttpStatus_ =+  DescribeDatasetImportJobResponse'+    { datasetImportJob =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Information about the dataset import job, including the status.+--+-- The status is one of the following values:+--+-- -   CREATE PENDING+--+-- -   CREATE IN_PROGRESS+--+-- -   ACTIVE+--+-- -   CREATE FAILED+describeDatasetImportJobResponse_datasetImportJob :: Lens.Lens' DescribeDatasetImportJobResponse (Prelude.Maybe DatasetImportJob)+describeDatasetImportJobResponse_datasetImportJob = Lens.lens (\DescribeDatasetImportJobResponse' {datasetImportJob} -> datasetImportJob) (\s@DescribeDatasetImportJobResponse' {} a -> s {datasetImportJob = a} :: DescribeDatasetImportJobResponse)++-- | The response's http status code.+describeDatasetImportJobResponse_httpStatus :: Lens.Lens' DescribeDatasetImportJobResponse Prelude.Int+describeDatasetImportJobResponse_httpStatus = Lens.lens (\DescribeDatasetImportJobResponse' {httpStatus} -> httpStatus) (\s@DescribeDatasetImportJobResponse' {} a -> s {httpStatus = a} :: DescribeDatasetImportJobResponse)++instance+  Prelude.NFData+    DescribeDatasetImportJobResponse+  where+  rnf DescribeDatasetImportJobResponse' {..} =+    Prelude.rnf datasetImportJob+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/DescribeEventTracker.hs view
@@ -0,0 +1,177 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.DescribeEventTracker+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes an event tracker. The response includes the @trackingId@ and+-- @status@ of the event tracker. For more information on event trackers,+-- see+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateEventTracker.html CreateEventTracker>.+module Amazonka.Personalize.DescribeEventTracker+  ( -- * Creating a Request+    DescribeEventTracker (..),+    newDescribeEventTracker,++    -- * Request Lenses+    describeEventTracker_eventTrackerArn,++    -- * Destructuring the Response+    DescribeEventTrackerResponse (..),+    newDescribeEventTrackerResponse,++    -- * Response Lenses+    describeEventTrackerResponse_eventTracker,+    describeEventTrackerResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeEventTracker' smart constructor.+data DescribeEventTracker = DescribeEventTracker'+  { -- | The Amazon Resource Name (ARN) of the event tracker to describe.+    eventTrackerArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeEventTracker' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventTrackerArn', 'describeEventTracker_eventTrackerArn' - The Amazon Resource Name (ARN) of the event tracker to describe.+newDescribeEventTracker ::+  -- | 'eventTrackerArn'+  Prelude.Text ->+  DescribeEventTracker+newDescribeEventTracker pEventTrackerArn_ =+  DescribeEventTracker'+    { eventTrackerArn =+        pEventTrackerArn_+    }++-- | The Amazon Resource Name (ARN) of the event tracker to describe.+describeEventTracker_eventTrackerArn :: Lens.Lens' DescribeEventTracker Prelude.Text+describeEventTracker_eventTrackerArn = Lens.lens (\DescribeEventTracker' {eventTrackerArn} -> eventTrackerArn) (\s@DescribeEventTracker' {} a -> s {eventTrackerArn = a} :: DescribeEventTracker)++instance Core.AWSRequest DescribeEventTracker where+  type+    AWSResponse DescribeEventTracker =+      DescribeEventTrackerResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeEventTrackerResponse'+            Prelude.<$> (x Data..?> "eventTracker")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeEventTracker where+  hashWithSalt _salt DescribeEventTracker' {..} =+    _salt `Prelude.hashWithSalt` eventTrackerArn++instance Prelude.NFData DescribeEventTracker where+  rnf DescribeEventTracker' {..} =+    Prelude.rnf eventTrackerArn++instance Data.ToHeaders DescribeEventTracker where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.DescribeEventTracker" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeEventTracker where+  toJSON DescribeEventTracker' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("eventTrackerArn" Data..= eventTrackerArn)+          ]+      )++instance Data.ToPath DescribeEventTracker where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeEventTracker where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeEventTrackerResponse' smart constructor.+data DescribeEventTrackerResponse = DescribeEventTrackerResponse'+  { -- | An object that describes the event tracker.+    eventTracker :: Prelude.Maybe EventTracker,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeEventTrackerResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventTracker', 'describeEventTrackerResponse_eventTracker' - An object that describes the event tracker.+--+-- 'httpStatus', 'describeEventTrackerResponse_httpStatus' - The response's http status code.+newDescribeEventTrackerResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeEventTrackerResponse+newDescribeEventTrackerResponse pHttpStatus_ =+  DescribeEventTrackerResponse'+    { eventTracker =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An object that describes the event tracker.+describeEventTrackerResponse_eventTracker :: Lens.Lens' DescribeEventTrackerResponse (Prelude.Maybe EventTracker)+describeEventTrackerResponse_eventTracker = Lens.lens (\DescribeEventTrackerResponse' {eventTracker} -> eventTracker) (\s@DescribeEventTrackerResponse' {} a -> s {eventTracker = a} :: DescribeEventTrackerResponse)++-- | The response's http status code.+describeEventTrackerResponse_httpStatus :: Lens.Lens' DescribeEventTrackerResponse Prelude.Int+describeEventTrackerResponse_httpStatus = Lens.lens (\DescribeEventTrackerResponse' {httpStatus} -> httpStatus) (\s@DescribeEventTrackerResponse' {} a -> s {httpStatus = a} :: DescribeEventTrackerResponse)++instance Prelude.NFData DescribeEventTrackerResponse where+  rnf DescribeEventTrackerResponse' {..} =+    Prelude.rnf eventTracker+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/DescribeFeatureTransformation.hs view
@@ -0,0 +1,190 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.DescribeFeatureTransformation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes the given feature transformation.+module Amazonka.Personalize.DescribeFeatureTransformation+  ( -- * Creating a Request+    DescribeFeatureTransformation (..),+    newDescribeFeatureTransformation,++    -- * Request Lenses+    describeFeatureTransformation_featureTransformationArn,++    -- * Destructuring the Response+    DescribeFeatureTransformationResponse (..),+    newDescribeFeatureTransformationResponse,++    -- * Response Lenses+    describeFeatureTransformationResponse_featureTransformation,+    describeFeatureTransformationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeFeatureTransformation' smart constructor.+data DescribeFeatureTransformation = DescribeFeatureTransformation'+  { -- | The Amazon Resource Name (ARN) of the feature transformation to+    -- describe.+    featureTransformationArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeFeatureTransformation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'featureTransformationArn', 'describeFeatureTransformation_featureTransformationArn' - The Amazon Resource Name (ARN) of the feature transformation to+-- describe.+newDescribeFeatureTransformation ::+  -- | 'featureTransformationArn'+  Prelude.Text ->+  DescribeFeatureTransformation+newDescribeFeatureTransformation+  pFeatureTransformationArn_ =+    DescribeFeatureTransformation'+      { featureTransformationArn =+          pFeatureTransformationArn_+      }++-- | The Amazon Resource Name (ARN) of the feature transformation to+-- describe.+describeFeatureTransformation_featureTransformationArn :: Lens.Lens' DescribeFeatureTransformation Prelude.Text+describeFeatureTransformation_featureTransformationArn = Lens.lens (\DescribeFeatureTransformation' {featureTransformationArn} -> featureTransformationArn) (\s@DescribeFeatureTransformation' {} a -> s {featureTransformationArn = a} :: DescribeFeatureTransformation)++instance+  Core.AWSRequest+    DescribeFeatureTransformation+  where+  type+    AWSResponse DescribeFeatureTransformation =+      DescribeFeatureTransformationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeFeatureTransformationResponse'+            Prelude.<$> (x Data..?> "featureTransformation")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DescribeFeatureTransformation+  where+  hashWithSalt _salt DescribeFeatureTransformation' {..} =+    _salt+      `Prelude.hashWithSalt` featureTransformationArn++instance Prelude.NFData DescribeFeatureTransformation where+  rnf DescribeFeatureTransformation' {..} =+    Prelude.rnf featureTransformationArn++instance Data.ToHeaders DescribeFeatureTransformation where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.DescribeFeatureTransformation" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeFeatureTransformation where+  toJSON DescribeFeatureTransformation' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ( "featureTransformationArn"+                  Data..= featureTransformationArn+              )+          ]+      )++instance Data.ToPath DescribeFeatureTransformation where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeFeatureTransformation where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeFeatureTransformationResponse' smart constructor.+data DescribeFeatureTransformationResponse = DescribeFeatureTransformationResponse'+  { -- | A listing of the FeatureTransformation properties.+    featureTransformation :: Prelude.Maybe FeatureTransformation,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeFeatureTransformationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'featureTransformation', 'describeFeatureTransformationResponse_featureTransformation' - A listing of the FeatureTransformation properties.+--+-- 'httpStatus', 'describeFeatureTransformationResponse_httpStatus' - The response's http status code.+newDescribeFeatureTransformationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeFeatureTransformationResponse+newDescribeFeatureTransformationResponse pHttpStatus_ =+  DescribeFeatureTransformationResponse'+    { featureTransformation =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A listing of the FeatureTransformation properties.+describeFeatureTransformationResponse_featureTransformation :: Lens.Lens' DescribeFeatureTransformationResponse (Prelude.Maybe FeatureTransformation)+describeFeatureTransformationResponse_featureTransformation = Lens.lens (\DescribeFeatureTransformationResponse' {featureTransformation} -> featureTransformation) (\s@DescribeFeatureTransformationResponse' {} a -> s {featureTransformation = a} :: DescribeFeatureTransformationResponse)++-- | The response's http status code.+describeFeatureTransformationResponse_httpStatus :: Lens.Lens' DescribeFeatureTransformationResponse Prelude.Int+describeFeatureTransformationResponse_httpStatus = Lens.lens (\DescribeFeatureTransformationResponse' {httpStatus} -> httpStatus) (\s@DescribeFeatureTransformationResponse' {} a -> s {httpStatus = a} :: DescribeFeatureTransformationResponse)++instance+  Prelude.NFData+    DescribeFeatureTransformationResponse+  where+  rnf DescribeFeatureTransformationResponse' {..} =+    Prelude.rnf featureTransformation+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/DescribeFilter.hs view
@@ -0,0 +1,167 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.DescribeFilter+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes a filter\'s properties.+module Amazonka.Personalize.DescribeFilter+  ( -- * Creating a Request+    DescribeFilter (..),+    newDescribeFilter,++    -- * Request Lenses+    describeFilter_filterArn,++    -- * Destructuring the Response+    DescribeFilterResponse (..),+    newDescribeFilterResponse,++    -- * Response Lenses+    describeFilterResponse_filter,+    describeFilterResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeFilter' smart constructor.+data DescribeFilter = DescribeFilter'+  { -- | The ARN of the filter to describe.+    filterArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filterArn', 'describeFilter_filterArn' - The ARN of the filter to describe.+newDescribeFilter ::+  -- | 'filterArn'+  Prelude.Text ->+  DescribeFilter+newDescribeFilter pFilterArn_ =+  DescribeFilter' {filterArn = pFilterArn_}++-- | The ARN of the filter to describe.+describeFilter_filterArn :: Lens.Lens' DescribeFilter Prelude.Text+describeFilter_filterArn = Lens.lens (\DescribeFilter' {filterArn} -> filterArn) (\s@DescribeFilter' {} a -> s {filterArn = a} :: DescribeFilter)++instance Core.AWSRequest DescribeFilter where+  type+    AWSResponse DescribeFilter =+      DescribeFilterResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeFilterResponse'+            Prelude.<$> (x Data..?> "filter")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeFilter where+  hashWithSalt _salt DescribeFilter' {..} =+    _salt `Prelude.hashWithSalt` filterArn++instance Prelude.NFData DescribeFilter where+  rnf DescribeFilter' {..} = Prelude.rnf filterArn++instance Data.ToHeaders DescribeFilter where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.DescribeFilter" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeFilter where+  toJSON DescribeFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("filterArn" Data..= filterArn)]+      )++instance Data.ToPath DescribeFilter where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeFilter where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeFilterResponse' smart constructor.+data DescribeFilterResponse = DescribeFilterResponse'+  { -- | The filter\'s details.+    filter' :: Prelude.Maybe Filter,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeFilterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filter'', 'describeFilterResponse_filter' - The filter\'s details.+--+-- 'httpStatus', 'describeFilterResponse_httpStatus' - The response's http status code.+newDescribeFilterResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeFilterResponse+newDescribeFilterResponse pHttpStatus_ =+  DescribeFilterResponse'+    { filter' = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The filter\'s details.+describeFilterResponse_filter :: Lens.Lens' DescribeFilterResponse (Prelude.Maybe Filter)+describeFilterResponse_filter = Lens.lens (\DescribeFilterResponse' {filter'} -> filter') (\s@DescribeFilterResponse' {} a -> s {filter' = a} :: DescribeFilterResponse)++-- | The response's http status code.+describeFilterResponse_httpStatus :: Lens.Lens' DescribeFilterResponse Prelude.Int+describeFilterResponse_httpStatus = Lens.lens (\DescribeFilterResponse' {httpStatus} -> httpStatus) (\s@DescribeFilterResponse' {} a -> s {httpStatus = a} :: DescribeFilterResponse)++instance Prelude.NFData DescribeFilterResponse where+  rnf DescribeFilterResponse' {..} =+    Prelude.rnf filter'+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/DescribeMetricAttribution.hs view
@@ -0,0 +1,179 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.DescribeMetricAttribution+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes a metric attribution.+module Amazonka.Personalize.DescribeMetricAttribution+  ( -- * Creating a Request+    DescribeMetricAttribution (..),+    newDescribeMetricAttribution,++    -- * Request Lenses+    describeMetricAttribution_metricAttributionArn,++    -- * Destructuring the Response+    DescribeMetricAttributionResponse (..),+    newDescribeMetricAttributionResponse,++    -- * Response Lenses+    describeMetricAttributionResponse_metricAttribution,+    describeMetricAttributionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeMetricAttribution' smart constructor.+data DescribeMetricAttribution = DescribeMetricAttribution'+  { -- | The metric attribution\'s Amazon Resource Name (ARN).+    metricAttributionArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeMetricAttribution' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'metricAttributionArn', 'describeMetricAttribution_metricAttributionArn' - The metric attribution\'s Amazon Resource Name (ARN).+newDescribeMetricAttribution ::+  -- | 'metricAttributionArn'+  Prelude.Text ->+  DescribeMetricAttribution+newDescribeMetricAttribution pMetricAttributionArn_ =+  DescribeMetricAttribution'+    { metricAttributionArn =+        pMetricAttributionArn_+    }++-- | The metric attribution\'s Amazon Resource Name (ARN).+describeMetricAttribution_metricAttributionArn :: Lens.Lens' DescribeMetricAttribution Prelude.Text+describeMetricAttribution_metricAttributionArn = Lens.lens (\DescribeMetricAttribution' {metricAttributionArn} -> metricAttributionArn) (\s@DescribeMetricAttribution' {} a -> s {metricAttributionArn = a} :: DescribeMetricAttribution)++instance Core.AWSRequest DescribeMetricAttribution where+  type+    AWSResponse DescribeMetricAttribution =+      DescribeMetricAttributionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeMetricAttributionResponse'+            Prelude.<$> (x Data..?> "metricAttribution")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeMetricAttribution where+  hashWithSalt _salt DescribeMetricAttribution' {..} =+    _salt `Prelude.hashWithSalt` metricAttributionArn++instance Prelude.NFData DescribeMetricAttribution where+  rnf DescribeMetricAttribution' {..} =+    Prelude.rnf metricAttributionArn++instance Data.ToHeaders DescribeMetricAttribution where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.DescribeMetricAttribution" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeMetricAttribution where+  toJSON DescribeMetricAttribution' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ( "metricAttributionArn"+                  Data..= metricAttributionArn+              )+          ]+      )++instance Data.ToPath DescribeMetricAttribution where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeMetricAttribution where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeMetricAttributionResponse' smart constructor.+data DescribeMetricAttributionResponse = DescribeMetricAttributionResponse'+  { -- | The details of the metric attribution.+    metricAttribution :: Prelude.Maybe MetricAttribution,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeMetricAttributionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'metricAttribution', 'describeMetricAttributionResponse_metricAttribution' - The details of the metric attribution.+--+-- 'httpStatus', 'describeMetricAttributionResponse_httpStatus' - The response's http status code.+newDescribeMetricAttributionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeMetricAttributionResponse+newDescribeMetricAttributionResponse pHttpStatus_ =+  DescribeMetricAttributionResponse'+    { metricAttribution =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The details of the metric attribution.+describeMetricAttributionResponse_metricAttribution :: Lens.Lens' DescribeMetricAttributionResponse (Prelude.Maybe MetricAttribution)+describeMetricAttributionResponse_metricAttribution = Lens.lens (\DescribeMetricAttributionResponse' {metricAttribution} -> metricAttribution) (\s@DescribeMetricAttributionResponse' {} a -> s {metricAttribution = a} :: DescribeMetricAttributionResponse)++-- | The response's http status code.+describeMetricAttributionResponse_httpStatus :: Lens.Lens' DescribeMetricAttributionResponse Prelude.Int+describeMetricAttributionResponse_httpStatus = Lens.lens (\DescribeMetricAttributionResponse' {httpStatus} -> httpStatus) (\s@DescribeMetricAttributionResponse' {} a -> s {httpStatus = a} :: DescribeMetricAttributionResponse)++instance+  Prelude.NFData+    DescribeMetricAttributionResponse+  where+  rnf DescribeMetricAttributionResponse' {..} =+    Prelude.rnf metricAttribution+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/DescribeRecipe.hs view
@@ -0,0 +1,185 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.DescribeRecipe+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes a recipe.+--+-- A recipe contains three items:+--+-- -   An algorithm that trains a model.+--+-- -   Hyperparameters that govern the training.+--+-- -   Feature transformation information for modifying the input data+--     before training.+--+-- Amazon Personalize provides a set of predefined recipes. You specify a+-- recipe when you create a solution with the+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateSolution.html CreateSolution>+-- API. @CreateSolution@ trains a model by using the algorithm in the+-- specified recipe and a training dataset. The solution, when deployed as+-- a campaign, can provide recommendations using the+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_RS_GetRecommendations.html GetRecommendations>+-- API.+module Amazonka.Personalize.DescribeRecipe+  ( -- * Creating a Request+    DescribeRecipe (..),+    newDescribeRecipe,++    -- * Request Lenses+    describeRecipe_recipeArn,++    -- * Destructuring the Response+    DescribeRecipeResponse (..),+    newDescribeRecipeResponse,++    -- * Response Lenses+    describeRecipeResponse_recipe,+    describeRecipeResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeRecipe' smart constructor.+data DescribeRecipe = DescribeRecipe'+  { -- | The Amazon Resource Name (ARN) of the recipe to describe.+    recipeArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeRecipe' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'recipeArn', 'describeRecipe_recipeArn' - The Amazon Resource Name (ARN) of the recipe to describe.+newDescribeRecipe ::+  -- | 'recipeArn'+  Prelude.Text ->+  DescribeRecipe+newDescribeRecipe pRecipeArn_ =+  DescribeRecipe' {recipeArn = pRecipeArn_}++-- | The Amazon Resource Name (ARN) of the recipe to describe.+describeRecipe_recipeArn :: Lens.Lens' DescribeRecipe Prelude.Text+describeRecipe_recipeArn = Lens.lens (\DescribeRecipe' {recipeArn} -> recipeArn) (\s@DescribeRecipe' {} a -> s {recipeArn = a} :: DescribeRecipe)++instance Core.AWSRequest DescribeRecipe where+  type+    AWSResponse DescribeRecipe =+      DescribeRecipeResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeRecipeResponse'+            Prelude.<$> (x Data..?> "recipe")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeRecipe where+  hashWithSalt _salt DescribeRecipe' {..} =+    _salt `Prelude.hashWithSalt` recipeArn++instance Prelude.NFData DescribeRecipe where+  rnf DescribeRecipe' {..} = Prelude.rnf recipeArn++instance Data.ToHeaders DescribeRecipe where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.DescribeRecipe" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeRecipe where+  toJSON DescribeRecipe' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("recipeArn" Data..= recipeArn)]+      )++instance Data.ToPath DescribeRecipe where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeRecipe where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeRecipeResponse' smart constructor.+data DescribeRecipeResponse = DescribeRecipeResponse'+  { -- | An object that describes the recipe.+    recipe :: Prelude.Maybe Recipe,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeRecipeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'recipe', 'describeRecipeResponse_recipe' - An object that describes the recipe.+--+-- 'httpStatus', 'describeRecipeResponse_httpStatus' - The response's http status code.+newDescribeRecipeResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeRecipeResponse+newDescribeRecipeResponse pHttpStatus_ =+  DescribeRecipeResponse'+    { recipe = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An object that describes the recipe.+describeRecipeResponse_recipe :: Lens.Lens' DescribeRecipeResponse (Prelude.Maybe Recipe)+describeRecipeResponse_recipe = Lens.lens (\DescribeRecipeResponse' {recipe} -> recipe) (\s@DescribeRecipeResponse' {} a -> s {recipe = a} :: DescribeRecipeResponse)++-- | The response's http status code.+describeRecipeResponse_httpStatus :: Lens.Lens' DescribeRecipeResponse Prelude.Int+describeRecipeResponse_httpStatus = Lens.lens (\DescribeRecipeResponse' {httpStatus} -> httpStatus) (\s@DescribeRecipeResponse' {} a -> s {httpStatus = a} :: DescribeRecipeResponse)++instance Prelude.NFData DescribeRecipeResponse where+  rnf DescribeRecipeResponse' {..} =+    Prelude.rnf recipe+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/DescribeRecommender.hs view
@@ -0,0 +1,192 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.DescribeRecommender+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes the given recommender, including its status.+--+-- A recommender can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   STOP PENDING > STOP IN_PROGRESS > INACTIVE > START PENDING > START+--     IN_PROGRESS > ACTIVE+--+-- -   DELETE PENDING > DELETE IN_PROGRESS+--+-- When the @status@ is @CREATE FAILED@, the response includes the+-- @failureReason@ key, which describes why.+--+-- The @modelMetrics@ key is null when the recommender is being created or+-- deleted.+--+-- For more information on recommenders, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateRecommender.html CreateRecommender>.+module Amazonka.Personalize.DescribeRecommender+  ( -- * Creating a Request+    DescribeRecommender (..),+    newDescribeRecommender,++    -- * Request Lenses+    describeRecommender_recommenderArn,++    -- * Destructuring the Response+    DescribeRecommenderResponse (..),+    newDescribeRecommenderResponse,++    -- * Response Lenses+    describeRecommenderResponse_recommender,+    describeRecommenderResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeRecommender' smart constructor.+data DescribeRecommender = DescribeRecommender'+  { -- | The Amazon Resource Name (ARN) of the recommender to describe.+    recommenderArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeRecommender' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'recommenderArn', 'describeRecommender_recommenderArn' - The Amazon Resource Name (ARN) of the recommender to describe.+newDescribeRecommender ::+  -- | 'recommenderArn'+  Prelude.Text ->+  DescribeRecommender+newDescribeRecommender pRecommenderArn_ =+  DescribeRecommender'+    { recommenderArn =+        pRecommenderArn_+    }++-- | The Amazon Resource Name (ARN) of the recommender to describe.+describeRecommender_recommenderArn :: Lens.Lens' DescribeRecommender Prelude.Text+describeRecommender_recommenderArn = Lens.lens (\DescribeRecommender' {recommenderArn} -> recommenderArn) (\s@DescribeRecommender' {} a -> s {recommenderArn = a} :: DescribeRecommender)++instance Core.AWSRequest DescribeRecommender where+  type+    AWSResponse DescribeRecommender =+      DescribeRecommenderResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeRecommenderResponse'+            Prelude.<$> (x Data..?> "recommender")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeRecommender where+  hashWithSalt _salt DescribeRecommender' {..} =+    _salt `Prelude.hashWithSalt` recommenderArn++instance Prelude.NFData DescribeRecommender where+  rnf DescribeRecommender' {..} =+    Prelude.rnf recommenderArn++instance Data.ToHeaders DescribeRecommender where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.DescribeRecommender" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeRecommender where+  toJSON DescribeRecommender' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("recommenderArn" Data..= recommenderArn)+          ]+      )++instance Data.ToPath DescribeRecommender where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeRecommender where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeRecommenderResponse' smart constructor.+data DescribeRecommenderResponse = DescribeRecommenderResponse'+  { -- | The properties of the recommender.+    recommender :: Prelude.Maybe Recommender,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeRecommenderResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'recommender', 'describeRecommenderResponse_recommender' - The properties of the recommender.+--+-- 'httpStatus', 'describeRecommenderResponse_httpStatus' - The response's http status code.+newDescribeRecommenderResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeRecommenderResponse+newDescribeRecommenderResponse pHttpStatus_ =+  DescribeRecommenderResponse'+    { recommender =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The properties of the recommender.+describeRecommenderResponse_recommender :: Lens.Lens' DescribeRecommenderResponse (Prelude.Maybe Recommender)+describeRecommenderResponse_recommender = Lens.lens (\DescribeRecommenderResponse' {recommender} -> recommender) (\s@DescribeRecommenderResponse' {} a -> s {recommender = a} :: DescribeRecommenderResponse)++-- | The response's http status code.+describeRecommenderResponse_httpStatus :: Lens.Lens' DescribeRecommenderResponse Prelude.Int+describeRecommenderResponse_httpStatus = Lens.lens (\DescribeRecommenderResponse' {httpStatus} -> httpStatus) (\s@DescribeRecommenderResponse' {} a -> s {httpStatus = a} :: DescribeRecommenderResponse)++instance Prelude.NFData DescribeRecommenderResponse where+  rnf DescribeRecommenderResponse' {..} =+    Prelude.rnf recommender+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/DescribeSchema.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.Personalize.DescribeSchema+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes a schema. For more information on schemas, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateSchema.html CreateSchema>.+module Amazonka.Personalize.DescribeSchema+  ( -- * Creating a Request+    DescribeSchema (..),+    newDescribeSchema,++    -- * Request Lenses+    describeSchema_schemaArn,++    -- * Destructuring the Response+    DescribeSchemaResponse (..),+    newDescribeSchemaResponse,++    -- * Response Lenses+    describeSchemaResponse_schema,+    describeSchemaResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeSchema' smart constructor.+data DescribeSchema = DescribeSchema'+  { -- | The Amazon Resource Name (ARN) of the schema to retrieve.+    schemaArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeSchema' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'schemaArn', 'describeSchema_schemaArn' - The Amazon Resource Name (ARN) of the schema to retrieve.+newDescribeSchema ::+  -- | 'schemaArn'+  Prelude.Text ->+  DescribeSchema+newDescribeSchema pSchemaArn_ =+  DescribeSchema' {schemaArn = pSchemaArn_}++-- | The Amazon Resource Name (ARN) of the schema to retrieve.+describeSchema_schemaArn :: Lens.Lens' DescribeSchema Prelude.Text+describeSchema_schemaArn = Lens.lens (\DescribeSchema' {schemaArn} -> schemaArn) (\s@DescribeSchema' {} a -> s {schemaArn = a} :: DescribeSchema)++instance Core.AWSRequest DescribeSchema where+  type+    AWSResponse DescribeSchema =+      DescribeSchemaResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeSchemaResponse'+            Prelude.<$> (x Data..?> "schema")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeSchema where+  hashWithSalt _salt DescribeSchema' {..} =+    _salt `Prelude.hashWithSalt` schemaArn++instance Prelude.NFData DescribeSchema where+  rnf DescribeSchema' {..} = Prelude.rnf schemaArn++instance Data.ToHeaders DescribeSchema where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.DescribeSchema" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeSchema where+  toJSON DescribeSchema' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("schemaArn" Data..= schemaArn)]+      )++instance Data.ToPath DescribeSchema where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeSchema where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeSchemaResponse' smart constructor.+data DescribeSchemaResponse = DescribeSchemaResponse'+  { -- | The requested schema.+    schema :: Prelude.Maybe DatasetSchema,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeSchemaResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'schema', 'describeSchemaResponse_schema' - The requested schema.+--+-- 'httpStatus', 'describeSchemaResponse_httpStatus' - The response's http status code.+newDescribeSchemaResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeSchemaResponse+newDescribeSchemaResponse pHttpStatus_ =+  DescribeSchemaResponse'+    { schema = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The requested schema.+describeSchemaResponse_schema :: Lens.Lens' DescribeSchemaResponse (Prelude.Maybe DatasetSchema)+describeSchemaResponse_schema = Lens.lens (\DescribeSchemaResponse' {schema} -> schema) (\s@DescribeSchemaResponse' {} a -> s {schema = a} :: DescribeSchemaResponse)++-- | The response's http status code.+describeSchemaResponse_httpStatus :: Lens.Lens' DescribeSchemaResponse Prelude.Int+describeSchemaResponse_httpStatus = Lens.lens (\DescribeSchemaResponse' {httpStatus} -> httpStatus) (\s@DescribeSchemaResponse' {} a -> s {httpStatus = a} :: DescribeSchemaResponse)++instance Prelude.NFData DescribeSchemaResponse where+  rnf DescribeSchemaResponse' {..} =+    Prelude.rnf schema+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/DescribeSolution.hs view
@@ -0,0 +1,169 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.DescribeSolution+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes a solution. For more information on solutions, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateSolution.html CreateSolution>.+module Amazonka.Personalize.DescribeSolution+  ( -- * Creating a Request+    DescribeSolution (..),+    newDescribeSolution,++    -- * Request Lenses+    describeSolution_solutionArn,++    -- * Destructuring the Response+    DescribeSolutionResponse (..),+    newDescribeSolutionResponse,++    -- * Response Lenses+    describeSolutionResponse_solution,+    describeSolutionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeSolution' smart constructor.+data DescribeSolution = DescribeSolution'+  { -- | The Amazon Resource Name (ARN) of the solution to describe.+    solutionArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeSolution' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'solutionArn', 'describeSolution_solutionArn' - The Amazon Resource Name (ARN) of the solution to describe.+newDescribeSolution ::+  -- | 'solutionArn'+  Prelude.Text ->+  DescribeSolution+newDescribeSolution pSolutionArn_ =+  DescribeSolution' {solutionArn = pSolutionArn_}++-- | The Amazon Resource Name (ARN) of the solution to describe.+describeSolution_solutionArn :: Lens.Lens' DescribeSolution Prelude.Text+describeSolution_solutionArn = Lens.lens (\DescribeSolution' {solutionArn} -> solutionArn) (\s@DescribeSolution' {} a -> s {solutionArn = a} :: DescribeSolution)++instance Core.AWSRequest DescribeSolution where+  type+    AWSResponse DescribeSolution =+      DescribeSolutionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeSolutionResponse'+            Prelude.<$> (x Data..?> "solution")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeSolution where+  hashWithSalt _salt DescribeSolution' {..} =+    _salt `Prelude.hashWithSalt` solutionArn++instance Prelude.NFData DescribeSolution where+  rnf DescribeSolution' {..} = Prelude.rnf solutionArn++instance Data.ToHeaders DescribeSolution where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.DescribeSolution" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeSolution where+  toJSON DescribeSolution' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("solutionArn" Data..= solutionArn)]+      )++instance Data.ToPath DescribeSolution where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeSolution where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeSolutionResponse' smart constructor.+data DescribeSolutionResponse = DescribeSolutionResponse'+  { -- | An object that describes the solution.+    solution :: Prelude.Maybe Solution,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeSolutionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'solution', 'describeSolutionResponse_solution' - An object that describes the solution.+--+-- 'httpStatus', 'describeSolutionResponse_httpStatus' - The response's http status code.+newDescribeSolutionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeSolutionResponse+newDescribeSolutionResponse pHttpStatus_ =+  DescribeSolutionResponse'+    { solution =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An object that describes the solution.+describeSolutionResponse_solution :: Lens.Lens' DescribeSolutionResponse (Prelude.Maybe Solution)+describeSolutionResponse_solution = Lens.lens (\DescribeSolutionResponse' {solution} -> solution) (\s@DescribeSolutionResponse' {} a -> s {solution = a} :: DescribeSolutionResponse)++-- | The response's http status code.+describeSolutionResponse_httpStatus :: Lens.Lens' DescribeSolutionResponse Prelude.Int+describeSolutionResponse_httpStatus = Lens.lens (\DescribeSolutionResponse' {httpStatus} -> httpStatus) (\s@DescribeSolutionResponse' {} a -> s {httpStatus = a} :: DescribeSolutionResponse)++instance Prelude.NFData DescribeSolutionResponse where+  rnf DescribeSolutionResponse' {..} =+    Prelude.rnf solution+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/DescribeSolutionVersion.hs view
@@ -0,0 +1,179 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.DescribeSolutionVersion+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes a specific version of a solution. For more information on+-- solutions, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateSolution.html CreateSolution>+module Amazonka.Personalize.DescribeSolutionVersion+  ( -- * Creating a Request+    DescribeSolutionVersion (..),+    newDescribeSolutionVersion,++    -- * Request Lenses+    describeSolutionVersion_solutionVersionArn,++    -- * Destructuring the Response+    DescribeSolutionVersionResponse (..),+    newDescribeSolutionVersionResponse,++    -- * Response Lenses+    describeSolutionVersionResponse_solutionVersion,+    describeSolutionVersionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeSolutionVersion' smart constructor.+data DescribeSolutionVersion = DescribeSolutionVersion'+  { -- | The Amazon Resource Name (ARN) of the solution version.+    solutionVersionArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeSolutionVersion' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'solutionVersionArn', 'describeSolutionVersion_solutionVersionArn' - The Amazon Resource Name (ARN) of the solution version.+newDescribeSolutionVersion ::+  -- | 'solutionVersionArn'+  Prelude.Text ->+  DescribeSolutionVersion+newDescribeSolutionVersion pSolutionVersionArn_ =+  DescribeSolutionVersion'+    { solutionVersionArn =+        pSolutionVersionArn_+    }++-- | The Amazon Resource Name (ARN) of the solution version.+describeSolutionVersion_solutionVersionArn :: Lens.Lens' DescribeSolutionVersion Prelude.Text+describeSolutionVersion_solutionVersionArn = Lens.lens (\DescribeSolutionVersion' {solutionVersionArn} -> solutionVersionArn) (\s@DescribeSolutionVersion' {} a -> s {solutionVersionArn = a} :: DescribeSolutionVersion)++instance Core.AWSRequest DescribeSolutionVersion where+  type+    AWSResponse DescribeSolutionVersion =+      DescribeSolutionVersionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeSolutionVersionResponse'+            Prelude.<$> (x Data..?> "solutionVersion")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeSolutionVersion where+  hashWithSalt _salt DescribeSolutionVersion' {..} =+    _salt `Prelude.hashWithSalt` solutionVersionArn++instance Prelude.NFData DescribeSolutionVersion where+  rnf DescribeSolutionVersion' {..} =+    Prelude.rnf solutionVersionArn++instance Data.ToHeaders DescribeSolutionVersion where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.DescribeSolutionVersion" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeSolutionVersion where+  toJSON DescribeSolutionVersion' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("solutionVersionArn" Data..= solutionVersionArn)+          ]+      )++instance Data.ToPath DescribeSolutionVersion where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeSolutionVersion where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeSolutionVersionResponse' smart constructor.+data DescribeSolutionVersionResponse = DescribeSolutionVersionResponse'+  { -- | The solution version.+    solutionVersion :: Prelude.Maybe SolutionVersion,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeSolutionVersionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'solutionVersion', 'describeSolutionVersionResponse_solutionVersion' - The solution version.+--+-- 'httpStatus', 'describeSolutionVersionResponse_httpStatus' - The response's http status code.+newDescribeSolutionVersionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeSolutionVersionResponse+newDescribeSolutionVersionResponse pHttpStatus_ =+  DescribeSolutionVersionResponse'+    { solutionVersion =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The solution version.+describeSolutionVersionResponse_solutionVersion :: Lens.Lens' DescribeSolutionVersionResponse (Prelude.Maybe SolutionVersion)+describeSolutionVersionResponse_solutionVersion = Lens.lens (\DescribeSolutionVersionResponse' {solutionVersion} -> solutionVersion) (\s@DescribeSolutionVersionResponse' {} a -> s {solutionVersion = a} :: DescribeSolutionVersionResponse)++-- | The response's http status code.+describeSolutionVersionResponse_httpStatus :: Lens.Lens' DescribeSolutionVersionResponse Prelude.Int+describeSolutionVersionResponse_httpStatus = Lens.lens (\DescribeSolutionVersionResponse' {httpStatus} -> httpStatus) (\s@DescribeSolutionVersionResponse' {} a -> s {httpStatus = a} :: DescribeSolutionVersionResponse)++instance+  Prelude.NFData+    DescribeSolutionVersionResponse+  where+  rnf DescribeSolutionVersionResponse' {..} =+    Prelude.rnf solutionVersion+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/GetSolutionMetrics.hs view
@@ -0,0 +1,195 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.GetSolutionMetrics+-- 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 metrics for the specified solution version.+module Amazonka.Personalize.GetSolutionMetrics+  ( -- * Creating a Request+    GetSolutionMetrics (..),+    newGetSolutionMetrics,++    -- * Request Lenses+    getSolutionMetrics_solutionVersionArn,++    -- * Destructuring the Response+    GetSolutionMetricsResponse (..),+    newGetSolutionMetricsResponse,++    -- * Response Lenses+    getSolutionMetricsResponse_metrics,+    getSolutionMetricsResponse_solutionVersionArn,+    getSolutionMetricsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetSolutionMetrics' smart constructor.+data GetSolutionMetrics = GetSolutionMetrics'+  { -- | The Amazon Resource Name (ARN) of the solution version for which to get+    -- metrics.+    solutionVersionArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetSolutionMetrics' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'solutionVersionArn', 'getSolutionMetrics_solutionVersionArn' - The Amazon Resource Name (ARN) of the solution version for which to get+-- metrics.+newGetSolutionMetrics ::+  -- | 'solutionVersionArn'+  Prelude.Text ->+  GetSolutionMetrics+newGetSolutionMetrics pSolutionVersionArn_ =+  GetSolutionMetrics'+    { solutionVersionArn =+        pSolutionVersionArn_+    }++-- | The Amazon Resource Name (ARN) of the solution version for which to get+-- metrics.+getSolutionMetrics_solutionVersionArn :: Lens.Lens' GetSolutionMetrics Prelude.Text+getSolutionMetrics_solutionVersionArn = Lens.lens (\GetSolutionMetrics' {solutionVersionArn} -> solutionVersionArn) (\s@GetSolutionMetrics' {} a -> s {solutionVersionArn = a} :: GetSolutionMetrics)++instance Core.AWSRequest GetSolutionMetrics where+  type+    AWSResponse GetSolutionMetrics =+      GetSolutionMetricsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetSolutionMetricsResponse'+            Prelude.<$> (x Data..?> "metrics" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "solutionVersionArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetSolutionMetrics where+  hashWithSalt _salt GetSolutionMetrics' {..} =+    _salt `Prelude.hashWithSalt` solutionVersionArn++instance Prelude.NFData GetSolutionMetrics where+  rnf GetSolutionMetrics' {..} =+    Prelude.rnf solutionVersionArn++instance Data.ToHeaders GetSolutionMetrics where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.GetSolutionMetrics" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetSolutionMetrics where+  toJSON GetSolutionMetrics' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("solutionVersionArn" Data..= solutionVersionArn)+          ]+      )++instance Data.ToPath GetSolutionMetrics where+  toPath = Prelude.const "/"++instance Data.ToQuery GetSolutionMetrics where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetSolutionMetricsResponse' smart constructor.+data GetSolutionMetricsResponse = GetSolutionMetricsResponse'+  { -- | The metrics for the solution version. For more information, see+    -- <https://docs.aws.amazon.com/personalize/latest/dg/working-with-training-metrics.html Evaluating a solution version with metrics>+    -- .+    metrics :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Double),+    -- | The same solution version ARN as specified in the request.+    solutionVersionArn :: 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 'GetSolutionMetricsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'metrics', 'getSolutionMetricsResponse_metrics' - The metrics for the solution version. For more information, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/working-with-training-metrics.html Evaluating a solution version with metrics>+-- .+--+-- 'solutionVersionArn', 'getSolutionMetricsResponse_solutionVersionArn' - The same solution version ARN as specified in the request.+--+-- 'httpStatus', 'getSolutionMetricsResponse_httpStatus' - The response's http status code.+newGetSolutionMetricsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetSolutionMetricsResponse+newGetSolutionMetricsResponse pHttpStatus_ =+  GetSolutionMetricsResponse'+    { metrics =+        Prelude.Nothing,+      solutionVersionArn = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The metrics for the solution version. For more information, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/working-with-training-metrics.html Evaluating a solution version with metrics>+-- .+getSolutionMetricsResponse_metrics :: Lens.Lens' GetSolutionMetricsResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Double))+getSolutionMetricsResponse_metrics = Lens.lens (\GetSolutionMetricsResponse' {metrics} -> metrics) (\s@GetSolutionMetricsResponse' {} a -> s {metrics = a} :: GetSolutionMetricsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The same solution version ARN as specified in the request.+getSolutionMetricsResponse_solutionVersionArn :: Lens.Lens' GetSolutionMetricsResponse (Prelude.Maybe Prelude.Text)+getSolutionMetricsResponse_solutionVersionArn = Lens.lens (\GetSolutionMetricsResponse' {solutionVersionArn} -> solutionVersionArn) (\s@GetSolutionMetricsResponse' {} a -> s {solutionVersionArn = a} :: GetSolutionMetricsResponse)++-- | The response's http status code.+getSolutionMetricsResponse_httpStatus :: Lens.Lens' GetSolutionMetricsResponse Prelude.Int+getSolutionMetricsResponse_httpStatus = Lens.lens (\GetSolutionMetricsResponse' {httpStatus} -> httpStatus) (\s@GetSolutionMetricsResponse' {} a -> s {httpStatus = a} :: GetSolutionMetricsResponse)++instance Prelude.NFData GetSolutionMetricsResponse where+  rnf GetSolutionMetricsResponse' {..} =+    Prelude.rnf metrics+      `Prelude.seq` Prelude.rnf solutionVersionArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/Lens.hs view
@@ -0,0 +1,1047 @@+{-# 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.Personalize.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.Personalize.Lens+  ( -- * Operations++    -- ** CreateBatchInferenceJob+    createBatchInferenceJob_batchInferenceJobConfig,+    createBatchInferenceJob_filterArn,+    createBatchInferenceJob_numResults,+    createBatchInferenceJob_tags,+    createBatchInferenceJob_jobName,+    createBatchInferenceJob_solutionVersionArn,+    createBatchInferenceJob_jobInput,+    createBatchInferenceJob_jobOutput,+    createBatchInferenceJob_roleArn,+    createBatchInferenceJobResponse_batchInferenceJobArn,+    createBatchInferenceJobResponse_httpStatus,++    -- ** CreateBatchSegmentJob+    createBatchSegmentJob_filterArn,+    createBatchSegmentJob_numResults,+    createBatchSegmentJob_tags,+    createBatchSegmentJob_jobName,+    createBatchSegmentJob_solutionVersionArn,+    createBatchSegmentJob_jobInput,+    createBatchSegmentJob_jobOutput,+    createBatchSegmentJob_roleArn,+    createBatchSegmentJobResponse_batchSegmentJobArn,+    createBatchSegmentJobResponse_httpStatus,++    -- ** CreateCampaign+    createCampaign_campaignConfig,+    createCampaign_minProvisionedTPS,+    createCampaign_tags,+    createCampaign_name,+    createCampaign_solutionVersionArn,+    createCampaignResponse_campaignArn,+    createCampaignResponse_httpStatus,++    -- ** CreateDataset+    createDataset_tags,+    createDataset_name,+    createDataset_schemaArn,+    createDataset_datasetGroupArn,+    createDataset_datasetType,+    createDatasetResponse_datasetArn,+    createDatasetResponse_httpStatus,++    -- ** CreateDatasetExportJob+    createDatasetExportJob_ingestionMode,+    createDatasetExportJob_tags,+    createDatasetExportJob_jobName,+    createDatasetExportJob_datasetArn,+    createDatasetExportJob_roleArn,+    createDatasetExportJob_jobOutput,+    createDatasetExportJobResponse_datasetExportJobArn,+    createDatasetExportJobResponse_httpStatus,++    -- ** CreateDatasetGroup+    createDatasetGroup_domain,+    createDatasetGroup_kmsKeyArn,+    createDatasetGroup_roleArn,+    createDatasetGroup_tags,+    createDatasetGroup_name,+    createDatasetGroupResponse_datasetGroupArn,+    createDatasetGroupResponse_domain,+    createDatasetGroupResponse_httpStatus,++    -- ** CreateDatasetImportJob+    createDatasetImportJob_importMode,+    createDatasetImportJob_publishAttributionMetricsToS3,+    createDatasetImportJob_tags,+    createDatasetImportJob_jobName,+    createDatasetImportJob_datasetArn,+    createDatasetImportJob_dataSource,+    createDatasetImportJob_roleArn,+    createDatasetImportJobResponse_datasetImportJobArn,+    createDatasetImportJobResponse_httpStatus,++    -- ** CreateEventTracker+    createEventTracker_tags,+    createEventTracker_name,+    createEventTracker_datasetGroupArn,+    createEventTrackerResponse_eventTrackerArn,+    createEventTrackerResponse_trackingId,+    createEventTrackerResponse_httpStatus,++    -- ** CreateFilter+    createFilter_tags,+    createFilter_name,+    createFilter_datasetGroupArn,+    createFilter_filterExpression,+    createFilterResponse_filterArn,+    createFilterResponse_httpStatus,++    -- ** CreateMetricAttribution+    createMetricAttribution_name,+    createMetricAttribution_datasetGroupArn,+    createMetricAttribution_metrics,+    createMetricAttribution_metricsOutputConfig,+    createMetricAttributionResponse_metricAttributionArn,+    createMetricAttributionResponse_httpStatus,++    -- ** CreateRecommender+    createRecommender_recommenderConfig,+    createRecommender_tags,+    createRecommender_name,+    createRecommender_datasetGroupArn,+    createRecommender_recipeArn,+    createRecommenderResponse_recommenderArn,+    createRecommenderResponse_httpStatus,++    -- ** CreateSchema+    createSchema_domain,+    createSchema_name,+    createSchema_schema,+    createSchemaResponse_schemaArn,+    createSchemaResponse_httpStatus,++    -- ** CreateSolution+    createSolution_eventType,+    createSolution_performAutoML,+    createSolution_performHPO,+    createSolution_recipeArn,+    createSolution_solutionConfig,+    createSolution_tags,+    createSolution_name,+    createSolution_datasetGroupArn,+    createSolutionResponse_solutionArn,+    createSolutionResponse_httpStatus,++    -- ** CreateSolutionVersion+    createSolutionVersion_name,+    createSolutionVersion_tags,+    createSolutionVersion_trainingMode,+    createSolutionVersion_solutionArn,+    createSolutionVersionResponse_solutionVersionArn,+    createSolutionVersionResponse_httpStatus,++    -- ** DeleteCampaign+    deleteCampaign_campaignArn,++    -- ** DeleteDataset+    deleteDataset_datasetArn,++    -- ** DeleteDatasetGroup+    deleteDatasetGroup_datasetGroupArn,++    -- ** DeleteEventTracker+    deleteEventTracker_eventTrackerArn,++    -- ** DeleteFilter+    deleteFilter_filterArn,++    -- ** DeleteMetricAttribution+    deleteMetricAttribution_metricAttributionArn,++    -- ** DeleteRecommender+    deleteRecommender_recommenderArn,++    -- ** DeleteSchema+    deleteSchema_schemaArn,++    -- ** DeleteSolution+    deleteSolution_solutionArn,++    -- ** DescribeAlgorithm+    describeAlgorithm_algorithmArn,+    describeAlgorithmResponse_algorithm,+    describeAlgorithmResponse_httpStatus,++    -- ** DescribeBatchInferenceJob+    describeBatchInferenceJob_batchInferenceJobArn,+    describeBatchInferenceJobResponse_batchInferenceJob,+    describeBatchInferenceJobResponse_httpStatus,++    -- ** DescribeBatchSegmentJob+    describeBatchSegmentJob_batchSegmentJobArn,+    describeBatchSegmentJobResponse_batchSegmentJob,+    describeBatchSegmentJobResponse_httpStatus,++    -- ** DescribeCampaign+    describeCampaign_campaignArn,+    describeCampaignResponse_campaign,+    describeCampaignResponse_httpStatus,++    -- ** DescribeDataset+    describeDataset_datasetArn,+    describeDatasetResponse_dataset,+    describeDatasetResponse_httpStatus,++    -- ** DescribeDatasetExportJob+    describeDatasetExportJob_datasetExportJobArn,+    describeDatasetExportJobResponse_datasetExportJob,+    describeDatasetExportJobResponse_httpStatus,++    -- ** DescribeDatasetGroup+    describeDatasetGroup_datasetGroupArn,+    describeDatasetGroupResponse_datasetGroup,+    describeDatasetGroupResponse_httpStatus,++    -- ** DescribeDatasetImportJob+    describeDatasetImportJob_datasetImportJobArn,+    describeDatasetImportJobResponse_datasetImportJob,+    describeDatasetImportJobResponse_httpStatus,++    -- ** DescribeEventTracker+    describeEventTracker_eventTrackerArn,+    describeEventTrackerResponse_eventTracker,+    describeEventTrackerResponse_httpStatus,++    -- ** DescribeFeatureTransformation+    describeFeatureTransformation_featureTransformationArn,+    describeFeatureTransformationResponse_featureTransformation,+    describeFeatureTransformationResponse_httpStatus,++    -- ** DescribeFilter+    describeFilter_filterArn,+    describeFilterResponse_filter,+    describeFilterResponse_httpStatus,++    -- ** DescribeMetricAttribution+    describeMetricAttribution_metricAttributionArn,+    describeMetricAttributionResponse_metricAttribution,+    describeMetricAttributionResponse_httpStatus,++    -- ** DescribeRecipe+    describeRecipe_recipeArn,+    describeRecipeResponse_recipe,+    describeRecipeResponse_httpStatus,++    -- ** DescribeRecommender+    describeRecommender_recommenderArn,+    describeRecommenderResponse_recommender,+    describeRecommenderResponse_httpStatus,++    -- ** DescribeSchema+    describeSchema_schemaArn,+    describeSchemaResponse_schema,+    describeSchemaResponse_httpStatus,++    -- ** DescribeSolution+    describeSolution_solutionArn,+    describeSolutionResponse_solution,+    describeSolutionResponse_httpStatus,++    -- ** DescribeSolutionVersion+    describeSolutionVersion_solutionVersionArn,+    describeSolutionVersionResponse_solutionVersion,+    describeSolutionVersionResponse_httpStatus,++    -- ** GetSolutionMetrics+    getSolutionMetrics_solutionVersionArn,+    getSolutionMetricsResponse_metrics,+    getSolutionMetricsResponse_solutionVersionArn,+    getSolutionMetricsResponse_httpStatus,++    -- ** ListBatchInferenceJobs+    listBatchInferenceJobs_maxResults,+    listBatchInferenceJobs_nextToken,+    listBatchInferenceJobs_solutionVersionArn,+    listBatchInferenceJobsResponse_batchInferenceJobs,+    listBatchInferenceJobsResponse_nextToken,+    listBatchInferenceJobsResponse_httpStatus,++    -- ** ListBatchSegmentJobs+    listBatchSegmentJobs_maxResults,+    listBatchSegmentJobs_nextToken,+    listBatchSegmentJobs_solutionVersionArn,+    listBatchSegmentJobsResponse_batchSegmentJobs,+    listBatchSegmentJobsResponse_nextToken,+    listBatchSegmentJobsResponse_httpStatus,++    -- ** ListCampaigns+    listCampaigns_maxResults,+    listCampaigns_nextToken,+    listCampaigns_solutionArn,+    listCampaignsResponse_campaigns,+    listCampaignsResponse_nextToken,+    listCampaignsResponse_httpStatus,++    -- ** ListDatasetExportJobs+    listDatasetExportJobs_datasetArn,+    listDatasetExportJobs_maxResults,+    listDatasetExportJobs_nextToken,+    listDatasetExportJobsResponse_datasetExportJobs,+    listDatasetExportJobsResponse_nextToken,+    listDatasetExportJobsResponse_httpStatus,++    -- ** ListDatasetGroups+    listDatasetGroups_maxResults,+    listDatasetGroups_nextToken,+    listDatasetGroupsResponse_datasetGroups,+    listDatasetGroupsResponse_nextToken,+    listDatasetGroupsResponse_httpStatus,++    -- ** ListDatasetImportJobs+    listDatasetImportJobs_datasetArn,+    listDatasetImportJobs_maxResults,+    listDatasetImportJobs_nextToken,+    listDatasetImportJobsResponse_datasetImportJobs,+    listDatasetImportJobsResponse_nextToken,+    listDatasetImportJobsResponse_httpStatus,++    -- ** ListDatasets+    listDatasets_datasetGroupArn,+    listDatasets_maxResults,+    listDatasets_nextToken,+    listDatasetsResponse_datasets,+    listDatasetsResponse_nextToken,+    listDatasetsResponse_httpStatus,++    -- ** ListEventTrackers+    listEventTrackers_datasetGroupArn,+    listEventTrackers_maxResults,+    listEventTrackers_nextToken,+    listEventTrackersResponse_eventTrackers,+    listEventTrackersResponse_nextToken,+    listEventTrackersResponse_httpStatus,++    -- ** ListFilters+    listFilters_datasetGroupArn,+    listFilters_maxResults,+    listFilters_nextToken,+    listFiltersResponse_filters,+    listFiltersResponse_nextToken,+    listFiltersResponse_httpStatus,++    -- ** ListMetricAttributionMetrics+    listMetricAttributionMetrics_maxResults,+    listMetricAttributionMetrics_metricAttributionArn,+    listMetricAttributionMetrics_nextToken,+    listMetricAttributionMetricsResponse_metrics,+    listMetricAttributionMetricsResponse_nextToken,+    listMetricAttributionMetricsResponse_httpStatus,++    -- ** ListMetricAttributions+    listMetricAttributions_datasetGroupArn,+    listMetricAttributions_maxResults,+    listMetricAttributions_nextToken,+    listMetricAttributionsResponse_metricAttributions,+    listMetricAttributionsResponse_nextToken,+    listMetricAttributionsResponse_httpStatus,++    -- ** ListRecipes+    listRecipes_domain,+    listRecipes_maxResults,+    listRecipes_nextToken,+    listRecipes_recipeProvider,+    listRecipesResponse_nextToken,+    listRecipesResponse_recipes,+    listRecipesResponse_httpStatus,++    -- ** ListRecommenders+    listRecommenders_datasetGroupArn,+    listRecommenders_maxResults,+    listRecommenders_nextToken,+    listRecommendersResponse_nextToken,+    listRecommendersResponse_recommenders,+    listRecommendersResponse_httpStatus,++    -- ** ListSchemas+    listSchemas_maxResults,+    listSchemas_nextToken,+    listSchemasResponse_nextToken,+    listSchemasResponse_schemas,+    listSchemasResponse_httpStatus,++    -- ** ListSolutionVersions+    listSolutionVersions_maxResults,+    listSolutionVersions_nextToken,+    listSolutionVersions_solutionArn,+    listSolutionVersionsResponse_nextToken,+    listSolutionVersionsResponse_solutionVersions,+    listSolutionVersionsResponse_httpStatus,++    -- ** ListSolutions+    listSolutions_datasetGroupArn,+    listSolutions_maxResults,+    listSolutions_nextToken,+    listSolutionsResponse_nextToken,+    listSolutionsResponse_solutions,+    listSolutionsResponse_httpStatus,++    -- ** ListTagsForResource+    listTagsForResource_resourceArn,+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,++    -- ** StartRecommender+    startRecommender_recommenderArn,+    startRecommenderResponse_recommenderArn,+    startRecommenderResponse_httpStatus,++    -- ** StopRecommender+    stopRecommender_recommenderArn,+    stopRecommenderResponse_recommenderArn,+    stopRecommenderResponse_httpStatus,++    -- ** StopSolutionVersionCreation+    stopSolutionVersionCreation_solutionVersionArn,++    -- ** TagResource+    tagResource_resourceArn,+    tagResource_tags,+    tagResourceResponse_httpStatus,++    -- ** UntagResource+    untagResource_resourceArn,+    untagResource_tagKeys,+    untagResourceResponse_httpStatus,++    -- ** UpdateCampaign+    updateCampaign_campaignConfig,+    updateCampaign_minProvisionedTPS,+    updateCampaign_solutionVersionArn,+    updateCampaign_campaignArn,+    updateCampaignResponse_campaignArn,+    updateCampaignResponse_httpStatus,++    -- ** UpdateMetricAttribution+    updateMetricAttribution_addMetrics,+    updateMetricAttribution_metricAttributionArn,+    updateMetricAttribution_metricsOutputConfig,+    updateMetricAttribution_removeMetrics,+    updateMetricAttributionResponse_metricAttributionArn,+    updateMetricAttributionResponse_httpStatus,++    -- ** UpdateRecommender+    updateRecommender_recommenderArn,+    updateRecommender_recommenderConfig,+    updateRecommenderResponse_recommenderArn,+    updateRecommenderResponse_httpStatus,++    -- * Types++    -- ** Algorithm+    algorithm_algorithmArn,+    algorithm_algorithmImage,+    algorithm_creationDateTime,+    algorithm_defaultHyperParameterRanges,+    algorithm_defaultHyperParameters,+    algorithm_defaultResourceConfig,+    algorithm_lastUpdatedDateTime,+    algorithm_name,+    algorithm_roleArn,+    algorithm_trainingInputMode,++    -- ** AlgorithmImage+    algorithmImage_name,+    algorithmImage_dockerURI,++    -- ** AutoMLConfig+    autoMLConfig_metricName,+    autoMLConfig_recipeList,++    -- ** AutoMLResult+    autoMLResult_bestRecipeArn,++    -- ** BatchInferenceJob+    batchInferenceJob_batchInferenceJobArn,+    batchInferenceJob_batchInferenceJobConfig,+    batchInferenceJob_creationDateTime,+    batchInferenceJob_failureReason,+    batchInferenceJob_filterArn,+    batchInferenceJob_jobInput,+    batchInferenceJob_jobName,+    batchInferenceJob_jobOutput,+    batchInferenceJob_lastUpdatedDateTime,+    batchInferenceJob_numResults,+    batchInferenceJob_roleArn,+    batchInferenceJob_solutionVersionArn,+    batchInferenceJob_status,++    -- ** BatchInferenceJobConfig+    batchInferenceJobConfig_itemExplorationConfig,++    -- ** BatchInferenceJobInput+    batchInferenceJobInput_s3DataSource,++    -- ** BatchInferenceJobOutput+    batchInferenceJobOutput_s3DataDestination,++    -- ** BatchInferenceJobSummary+    batchInferenceJobSummary_batchInferenceJobArn,+    batchInferenceJobSummary_creationDateTime,+    batchInferenceJobSummary_failureReason,+    batchInferenceJobSummary_jobName,+    batchInferenceJobSummary_lastUpdatedDateTime,+    batchInferenceJobSummary_solutionVersionArn,+    batchInferenceJobSummary_status,++    -- ** BatchSegmentJob+    batchSegmentJob_batchSegmentJobArn,+    batchSegmentJob_creationDateTime,+    batchSegmentJob_failureReason,+    batchSegmentJob_filterArn,+    batchSegmentJob_jobInput,+    batchSegmentJob_jobName,+    batchSegmentJob_jobOutput,+    batchSegmentJob_lastUpdatedDateTime,+    batchSegmentJob_numResults,+    batchSegmentJob_roleArn,+    batchSegmentJob_solutionVersionArn,+    batchSegmentJob_status,++    -- ** BatchSegmentJobInput+    batchSegmentJobInput_s3DataSource,++    -- ** BatchSegmentJobOutput+    batchSegmentJobOutput_s3DataDestination,++    -- ** BatchSegmentJobSummary+    batchSegmentJobSummary_batchSegmentJobArn,+    batchSegmentJobSummary_creationDateTime,+    batchSegmentJobSummary_failureReason,+    batchSegmentJobSummary_jobName,+    batchSegmentJobSummary_lastUpdatedDateTime,+    batchSegmentJobSummary_solutionVersionArn,+    batchSegmentJobSummary_status,++    -- ** Campaign+    campaign_campaignArn,+    campaign_campaignConfig,+    campaign_creationDateTime,+    campaign_failureReason,+    campaign_lastUpdatedDateTime,+    campaign_latestCampaignUpdate,+    campaign_minProvisionedTPS,+    campaign_name,+    campaign_solutionVersionArn,+    campaign_status,++    -- ** CampaignConfig+    campaignConfig_itemExplorationConfig,++    -- ** CampaignSummary+    campaignSummary_campaignArn,+    campaignSummary_creationDateTime,+    campaignSummary_failureReason,+    campaignSummary_lastUpdatedDateTime,+    campaignSummary_name,+    campaignSummary_status,++    -- ** CampaignUpdateSummary+    campaignUpdateSummary_campaignConfig,+    campaignUpdateSummary_creationDateTime,+    campaignUpdateSummary_failureReason,+    campaignUpdateSummary_lastUpdatedDateTime,+    campaignUpdateSummary_minProvisionedTPS,+    campaignUpdateSummary_solutionVersionArn,+    campaignUpdateSummary_status,++    -- ** CategoricalHyperParameterRange+    categoricalHyperParameterRange_name,+    categoricalHyperParameterRange_values,++    -- ** ContinuousHyperParameterRange+    continuousHyperParameterRange_maxValue,+    continuousHyperParameterRange_minValue,+    continuousHyperParameterRange_name,++    -- ** DataSource+    dataSource_dataLocation,++    -- ** Dataset+    dataset_creationDateTime,+    dataset_datasetArn,+    dataset_datasetGroupArn,+    dataset_datasetType,+    dataset_lastUpdatedDateTime,+    dataset_name,+    dataset_schemaArn,+    dataset_status,++    -- ** DatasetExportJob+    datasetExportJob_creationDateTime,+    datasetExportJob_datasetArn,+    datasetExportJob_datasetExportJobArn,+    datasetExportJob_failureReason,+    datasetExportJob_ingestionMode,+    datasetExportJob_jobName,+    datasetExportJob_jobOutput,+    datasetExportJob_lastUpdatedDateTime,+    datasetExportJob_roleArn,+    datasetExportJob_status,++    -- ** DatasetExportJobOutput+    datasetExportJobOutput_s3DataDestination,++    -- ** DatasetExportJobSummary+    datasetExportJobSummary_creationDateTime,+    datasetExportJobSummary_datasetExportJobArn,+    datasetExportJobSummary_failureReason,+    datasetExportJobSummary_jobName,+    datasetExportJobSummary_lastUpdatedDateTime,+    datasetExportJobSummary_status,++    -- ** DatasetGroup+    datasetGroup_creationDateTime,+    datasetGroup_datasetGroupArn,+    datasetGroup_domain,+    datasetGroup_failureReason,+    datasetGroup_kmsKeyArn,+    datasetGroup_lastUpdatedDateTime,+    datasetGroup_name,+    datasetGroup_roleArn,+    datasetGroup_status,++    -- ** DatasetGroupSummary+    datasetGroupSummary_creationDateTime,+    datasetGroupSummary_datasetGroupArn,+    datasetGroupSummary_domain,+    datasetGroupSummary_failureReason,+    datasetGroupSummary_lastUpdatedDateTime,+    datasetGroupSummary_name,+    datasetGroupSummary_status,++    -- ** DatasetImportJob+    datasetImportJob_creationDateTime,+    datasetImportJob_dataSource,+    datasetImportJob_datasetArn,+    datasetImportJob_datasetImportJobArn,+    datasetImportJob_failureReason,+    datasetImportJob_importMode,+    datasetImportJob_jobName,+    datasetImportJob_lastUpdatedDateTime,+    datasetImportJob_publishAttributionMetricsToS3,+    datasetImportJob_roleArn,+    datasetImportJob_status,++    -- ** DatasetImportJobSummary+    datasetImportJobSummary_creationDateTime,+    datasetImportJobSummary_datasetImportJobArn,+    datasetImportJobSummary_failureReason,+    datasetImportJobSummary_importMode,+    datasetImportJobSummary_jobName,+    datasetImportJobSummary_lastUpdatedDateTime,+    datasetImportJobSummary_status,++    -- ** DatasetSchema+    datasetSchema_creationDateTime,+    datasetSchema_domain,+    datasetSchema_lastUpdatedDateTime,+    datasetSchema_name,+    datasetSchema_schema,+    datasetSchema_schemaArn,++    -- ** DatasetSchemaSummary+    datasetSchemaSummary_creationDateTime,+    datasetSchemaSummary_domain,+    datasetSchemaSummary_lastUpdatedDateTime,+    datasetSchemaSummary_name,+    datasetSchemaSummary_schemaArn,++    -- ** DatasetSummary+    datasetSummary_creationDateTime,+    datasetSummary_datasetArn,+    datasetSummary_datasetType,+    datasetSummary_lastUpdatedDateTime,+    datasetSummary_name,+    datasetSummary_status,++    -- ** DefaultCategoricalHyperParameterRange+    defaultCategoricalHyperParameterRange_isTunable,+    defaultCategoricalHyperParameterRange_name,+    defaultCategoricalHyperParameterRange_values,++    -- ** DefaultContinuousHyperParameterRange+    defaultContinuousHyperParameterRange_isTunable,+    defaultContinuousHyperParameterRange_maxValue,+    defaultContinuousHyperParameterRange_minValue,+    defaultContinuousHyperParameterRange_name,++    -- ** DefaultHyperParameterRanges+    defaultHyperParameterRanges_categoricalHyperParameterRanges,+    defaultHyperParameterRanges_continuousHyperParameterRanges,+    defaultHyperParameterRanges_integerHyperParameterRanges,++    -- ** DefaultIntegerHyperParameterRange+    defaultIntegerHyperParameterRange_isTunable,+    defaultIntegerHyperParameterRange_maxValue,+    defaultIntegerHyperParameterRange_minValue,+    defaultIntegerHyperParameterRange_name,++    -- ** EventTracker+    eventTracker_accountId,+    eventTracker_creationDateTime,+    eventTracker_datasetGroupArn,+    eventTracker_eventTrackerArn,+    eventTracker_lastUpdatedDateTime,+    eventTracker_name,+    eventTracker_status,+    eventTracker_trackingId,++    -- ** EventTrackerSummary+    eventTrackerSummary_creationDateTime,+    eventTrackerSummary_eventTrackerArn,+    eventTrackerSummary_lastUpdatedDateTime,+    eventTrackerSummary_name,+    eventTrackerSummary_status,++    -- ** FeatureTransformation+    featureTransformation_creationDateTime,+    featureTransformation_defaultParameters,+    featureTransformation_featureTransformationArn,+    featureTransformation_lastUpdatedDateTime,+    featureTransformation_name,+    featureTransformation_status,++    -- ** Filter+    filter_creationDateTime,+    filter_datasetGroupArn,+    filter_failureReason,+    filter_filterArn,+    filter_filterExpression,+    filter_lastUpdatedDateTime,+    filter_name,+    filter_status,++    -- ** FilterSummary+    filterSummary_creationDateTime,+    filterSummary_datasetGroupArn,+    filterSummary_failureReason,+    filterSummary_filterArn,+    filterSummary_lastUpdatedDateTime,+    filterSummary_name,+    filterSummary_status,++    -- ** HPOConfig+    hPOConfig_algorithmHyperParameterRanges,+    hPOConfig_hpoObjective,+    hPOConfig_hpoResourceConfig,++    -- ** HPOObjective+    hPOObjective_metricName,+    hPOObjective_metricRegex,+    hPOObjective_type,++    -- ** HPOResourceConfig+    hPOResourceConfig_maxNumberOfTrainingJobs,+    hPOResourceConfig_maxParallelTrainingJobs,++    -- ** HyperParameterRanges+    hyperParameterRanges_categoricalHyperParameterRanges,+    hyperParameterRanges_continuousHyperParameterRanges,+    hyperParameterRanges_integerHyperParameterRanges,++    -- ** IntegerHyperParameterRange+    integerHyperParameterRange_maxValue,+    integerHyperParameterRange_minValue,+    integerHyperParameterRange_name,++    -- ** MetricAttribute+    metricAttribute_eventType,+    metricAttribute_metricName,+    metricAttribute_expression,++    -- ** MetricAttribution+    metricAttribution_creationDateTime,+    metricAttribution_datasetGroupArn,+    metricAttribution_failureReason,+    metricAttribution_lastUpdatedDateTime,+    metricAttribution_metricAttributionArn,+    metricAttribution_metricsOutputConfig,+    metricAttribution_name,+    metricAttribution_status,++    -- ** MetricAttributionOutput+    metricAttributionOutput_s3DataDestination,+    metricAttributionOutput_roleArn,++    -- ** MetricAttributionSummary+    metricAttributionSummary_creationDateTime,+    metricAttributionSummary_failureReason,+    metricAttributionSummary_lastUpdatedDateTime,+    metricAttributionSummary_metricAttributionArn,+    metricAttributionSummary_name,+    metricAttributionSummary_status,++    -- ** OptimizationObjective+    optimizationObjective_itemAttribute,+    optimizationObjective_objectiveSensitivity,++    -- ** Recipe+    recipe_algorithmArn,+    recipe_creationDateTime,+    recipe_description,+    recipe_featureTransformationArn,+    recipe_lastUpdatedDateTime,+    recipe_name,+    recipe_recipeArn,+    recipe_recipeType,+    recipe_status,++    -- ** RecipeSummary+    recipeSummary_creationDateTime,+    recipeSummary_domain,+    recipeSummary_lastUpdatedDateTime,+    recipeSummary_name,+    recipeSummary_recipeArn,+    recipeSummary_status,++    -- ** Recommender+    recommender_creationDateTime,+    recommender_datasetGroupArn,+    recommender_failureReason,+    recommender_lastUpdatedDateTime,+    recommender_latestRecommenderUpdate,+    recommender_modelMetrics,+    recommender_name,+    recommender_recipeArn,+    recommender_recommenderArn,+    recommender_recommenderConfig,+    recommender_status,++    -- ** RecommenderConfig+    recommenderConfig_itemExplorationConfig,+    recommenderConfig_minRecommendationRequestsPerSecond,++    -- ** RecommenderSummary+    recommenderSummary_creationDateTime,+    recommenderSummary_datasetGroupArn,+    recommenderSummary_lastUpdatedDateTime,+    recommenderSummary_name,+    recommenderSummary_recipeArn,+    recommenderSummary_recommenderArn,+    recommenderSummary_recommenderConfig,+    recommenderSummary_status,++    -- ** RecommenderUpdateSummary+    recommenderUpdateSummary_creationDateTime,+    recommenderUpdateSummary_failureReason,+    recommenderUpdateSummary_lastUpdatedDateTime,+    recommenderUpdateSummary_recommenderConfig,+    recommenderUpdateSummary_status,++    -- ** S3DataConfig+    s3DataConfig_kmsKeyArn,+    s3DataConfig_path,++    -- ** Solution+    solution_autoMLResult,+    solution_creationDateTime,+    solution_datasetGroupArn,+    solution_eventType,+    solution_lastUpdatedDateTime,+    solution_latestSolutionVersion,+    solution_name,+    solution_performAutoML,+    solution_performHPO,+    solution_recipeArn,+    solution_solutionArn,+    solution_solutionConfig,+    solution_status,++    -- ** SolutionConfig+    solutionConfig_algorithmHyperParameters,+    solutionConfig_autoMLConfig,+    solutionConfig_eventValueThreshold,+    solutionConfig_featureTransformationParameters,+    solutionConfig_hpoConfig,+    solutionConfig_optimizationObjective,++    -- ** SolutionSummary+    solutionSummary_creationDateTime,+    solutionSummary_lastUpdatedDateTime,+    solutionSummary_name,+    solutionSummary_recipeArn,+    solutionSummary_solutionArn,+    solutionSummary_status,++    -- ** SolutionVersion+    solutionVersion_creationDateTime,+    solutionVersion_datasetGroupArn,+    solutionVersion_eventType,+    solutionVersion_failureReason,+    solutionVersion_lastUpdatedDateTime,+    solutionVersion_name,+    solutionVersion_performAutoML,+    solutionVersion_performHPO,+    solutionVersion_recipeArn,+    solutionVersion_solutionArn,+    solutionVersion_solutionConfig,+    solutionVersion_solutionVersionArn,+    solutionVersion_status,+    solutionVersion_trainingHours,+    solutionVersion_trainingMode,+    solutionVersion_tunedHPOParams,++    -- ** SolutionVersionSummary+    solutionVersionSummary_creationDateTime,+    solutionVersionSummary_failureReason,+    solutionVersionSummary_lastUpdatedDateTime,+    solutionVersionSummary_solutionVersionArn,+    solutionVersionSummary_status,++    -- ** Tag+    tag_tagKey,+    tag_tagValue,++    -- ** TunedHPOParams+    tunedHPOParams_algorithmHyperParameters,+  )+where++import Amazonka.Personalize.CreateBatchInferenceJob+import Amazonka.Personalize.CreateBatchSegmentJob+import Amazonka.Personalize.CreateCampaign+import Amazonka.Personalize.CreateDataset+import Amazonka.Personalize.CreateDatasetExportJob+import Amazonka.Personalize.CreateDatasetGroup+import Amazonka.Personalize.CreateDatasetImportJob+import Amazonka.Personalize.CreateEventTracker+import Amazonka.Personalize.CreateFilter+import Amazonka.Personalize.CreateMetricAttribution+import Amazonka.Personalize.CreateRecommender+import Amazonka.Personalize.CreateSchema+import Amazonka.Personalize.CreateSolution+import Amazonka.Personalize.CreateSolutionVersion+import Amazonka.Personalize.DeleteCampaign+import Amazonka.Personalize.DeleteDataset+import Amazonka.Personalize.DeleteDatasetGroup+import Amazonka.Personalize.DeleteEventTracker+import Amazonka.Personalize.DeleteFilter+import Amazonka.Personalize.DeleteMetricAttribution+import Amazonka.Personalize.DeleteRecommender+import Amazonka.Personalize.DeleteSchema+import Amazonka.Personalize.DeleteSolution+import Amazonka.Personalize.DescribeAlgorithm+import Amazonka.Personalize.DescribeBatchInferenceJob+import Amazonka.Personalize.DescribeBatchSegmentJob+import Amazonka.Personalize.DescribeCampaign+import Amazonka.Personalize.DescribeDataset+import Amazonka.Personalize.DescribeDatasetExportJob+import Amazonka.Personalize.DescribeDatasetGroup+import Amazonka.Personalize.DescribeDatasetImportJob+import Amazonka.Personalize.DescribeEventTracker+import Amazonka.Personalize.DescribeFeatureTransformation+import Amazonka.Personalize.DescribeFilter+import Amazonka.Personalize.DescribeMetricAttribution+import Amazonka.Personalize.DescribeRecipe+import Amazonka.Personalize.DescribeRecommender+import Amazonka.Personalize.DescribeSchema+import Amazonka.Personalize.DescribeSolution+import Amazonka.Personalize.DescribeSolutionVersion+import Amazonka.Personalize.GetSolutionMetrics+import Amazonka.Personalize.ListBatchInferenceJobs+import Amazonka.Personalize.ListBatchSegmentJobs+import Amazonka.Personalize.ListCampaigns+import Amazonka.Personalize.ListDatasetExportJobs+import Amazonka.Personalize.ListDatasetGroups+import Amazonka.Personalize.ListDatasetImportJobs+import Amazonka.Personalize.ListDatasets+import Amazonka.Personalize.ListEventTrackers+import Amazonka.Personalize.ListFilters+import Amazonka.Personalize.ListMetricAttributionMetrics+import Amazonka.Personalize.ListMetricAttributions+import Amazonka.Personalize.ListRecipes+import Amazonka.Personalize.ListRecommenders+import Amazonka.Personalize.ListSchemas+import Amazonka.Personalize.ListSolutionVersions+import Amazonka.Personalize.ListSolutions+import Amazonka.Personalize.ListTagsForResource+import Amazonka.Personalize.StartRecommender+import Amazonka.Personalize.StopRecommender+import Amazonka.Personalize.StopSolutionVersionCreation+import Amazonka.Personalize.TagResource+import Amazonka.Personalize.Types.Algorithm+import Amazonka.Personalize.Types.AlgorithmImage+import Amazonka.Personalize.Types.AutoMLConfig+import Amazonka.Personalize.Types.AutoMLResult+import Amazonka.Personalize.Types.BatchInferenceJob+import Amazonka.Personalize.Types.BatchInferenceJobConfig+import Amazonka.Personalize.Types.BatchInferenceJobInput+import Amazonka.Personalize.Types.BatchInferenceJobOutput+import Amazonka.Personalize.Types.BatchInferenceJobSummary+import Amazonka.Personalize.Types.BatchSegmentJob+import Amazonka.Personalize.Types.BatchSegmentJobInput+import Amazonka.Personalize.Types.BatchSegmentJobOutput+import Amazonka.Personalize.Types.BatchSegmentJobSummary+import Amazonka.Personalize.Types.Campaign+import Amazonka.Personalize.Types.CampaignConfig+import Amazonka.Personalize.Types.CampaignSummary+import Amazonka.Personalize.Types.CampaignUpdateSummary+import Amazonka.Personalize.Types.CategoricalHyperParameterRange+import Amazonka.Personalize.Types.ContinuousHyperParameterRange+import Amazonka.Personalize.Types.DataSource+import Amazonka.Personalize.Types.Dataset+import Amazonka.Personalize.Types.DatasetExportJob+import Amazonka.Personalize.Types.DatasetExportJobOutput+import Amazonka.Personalize.Types.DatasetExportJobSummary+import Amazonka.Personalize.Types.DatasetGroup+import Amazonka.Personalize.Types.DatasetGroupSummary+import Amazonka.Personalize.Types.DatasetImportJob+import Amazonka.Personalize.Types.DatasetImportJobSummary+import Amazonka.Personalize.Types.DatasetSchema+import Amazonka.Personalize.Types.DatasetSchemaSummary+import Amazonka.Personalize.Types.DatasetSummary+import Amazonka.Personalize.Types.DefaultCategoricalHyperParameterRange+import Amazonka.Personalize.Types.DefaultContinuousHyperParameterRange+import Amazonka.Personalize.Types.DefaultHyperParameterRanges+import Amazonka.Personalize.Types.DefaultIntegerHyperParameterRange+import Amazonka.Personalize.Types.EventTracker+import Amazonka.Personalize.Types.EventTrackerSummary+import Amazonka.Personalize.Types.FeatureTransformation+import Amazonka.Personalize.Types.Filter+import Amazonka.Personalize.Types.FilterSummary+import Amazonka.Personalize.Types.HPOConfig+import Amazonka.Personalize.Types.HPOObjective+import Amazonka.Personalize.Types.HPOResourceConfig+import Amazonka.Personalize.Types.HyperParameterRanges+import Amazonka.Personalize.Types.IntegerHyperParameterRange+import Amazonka.Personalize.Types.MetricAttribute+import Amazonka.Personalize.Types.MetricAttribution+import Amazonka.Personalize.Types.MetricAttributionOutput+import Amazonka.Personalize.Types.MetricAttributionSummary+import Amazonka.Personalize.Types.OptimizationObjective+import Amazonka.Personalize.Types.Recipe+import Amazonka.Personalize.Types.RecipeSummary+import Amazonka.Personalize.Types.Recommender+import Amazonka.Personalize.Types.RecommenderConfig+import Amazonka.Personalize.Types.RecommenderSummary+import Amazonka.Personalize.Types.RecommenderUpdateSummary+import Amazonka.Personalize.Types.S3DataConfig+import Amazonka.Personalize.Types.Solution+import Amazonka.Personalize.Types.SolutionConfig+import Amazonka.Personalize.Types.SolutionSummary+import Amazonka.Personalize.Types.SolutionVersion+import Amazonka.Personalize.Types.SolutionVersionSummary+import Amazonka.Personalize.Types.Tag+import Amazonka.Personalize.Types.TunedHPOParams+import Amazonka.Personalize.UntagResource+import Amazonka.Personalize.UpdateCampaign+import Amazonka.Personalize.UpdateMetricAttribution+import Amazonka.Personalize.UpdateRecommender
+ gen/Amazonka/Personalize/ListBatchInferenceJobs.hs view
@@ -0,0 +1,251 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.ListBatchInferenceJobs+-- 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 the batch inference jobs that have been performed off of+-- a solution version.+--+-- This operation returns paginated results.+module Amazonka.Personalize.ListBatchInferenceJobs+  ( -- * Creating a Request+    ListBatchInferenceJobs (..),+    newListBatchInferenceJobs,++    -- * Request Lenses+    listBatchInferenceJobs_maxResults,+    listBatchInferenceJobs_nextToken,+    listBatchInferenceJobs_solutionVersionArn,++    -- * Destructuring the Response+    ListBatchInferenceJobsResponse (..),+    newListBatchInferenceJobsResponse,++    -- * Response Lenses+    listBatchInferenceJobsResponse_batchInferenceJobs,+    listBatchInferenceJobsResponse_nextToken,+    listBatchInferenceJobsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListBatchInferenceJobs' smart constructor.+data ListBatchInferenceJobs = ListBatchInferenceJobs'+  { -- | The maximum number of batch inference job results to return in each+    -- page. The default value is 100.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token to request the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the solution version from which the+    -- batch inference jobs were created.+    solutionVersionArn :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListBatchInferenceJobs' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listBatchInferenceJobs_maxResults' - The maximum number of batch inference job results to return in each+-- page. The default value is 100.+--+-- 'nextToken', 'listBatchInferenceJobs_nextToken' - The token to request the next page of results.+--+-- 'solutionVersionArn', 'listBatchInferenceJobs_solutionVersionArn' - The Amazon Resource Name (ARN) of the solution version from which the+-- batch inference jobs were created.+newListBatchInferenceJobs ::+  ListBatchInferenceJobs+newListBatchInferenceJobs =+  ListBatchInferenceJobs'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      solutionVersionArn = Prelude.Nothing+    }++-- | The maximum number of batch inference job results to return in each+-- page. The default value is 100.+listBatchInferenceJobs_maxResults :: Lens.Lens' ListBatchInferenceJobs (Prelude.Maybe Prelude.Natural)+listBatchInferenceJobs_maxResults = Lens.lens (\ListBatchInferenceJobs' {maxResults} -> maxResults) (\s@ListBatchInferenceJobs' {} a -> s {maxResults = a} :: ListBatchInferenceJobs)++-- | The token to request the next page of results.+listBatchInferenceJobs_nextToken :: Lens.Lens' ListBatchInferenceJobs (Prelude.Maybe Prelude.Text)+listBatchInferenceJobs_nextToken = Lens.lens (\ListBatchInferenceJobs' {nextToken} -> nextToken) (\s@ListBatchInferenceJobs' {} a -> s {nextToken = a} :: ListBatchInferenceJobs)++-- | The Amazon Resource Name (ARN) of the solution version from which the+-- batch inference jobs were created.+listBatchInferenceJobs_solutionVersionArn :: Lens.Lens' ListBatchInferenceJobs (Prelude.Maybe Prelude.Text)+listBatchInferenceJobs_solutionVersionArn = Lens.lens (\ListBatchInferenceJobs' {solutionVersionArn} -> solutionVersionArn) (\s@ListBatchInferenceJobs' {} a -> s {solutionVersionArn = a} :: ListBatchInferenceJobs)++instance Core.AWSPager ListBatchInferenceJobs where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listBatchInferenceJobsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listBatchInferenceJobsResponse_batchInferenceJobs+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listBatchInferenceJobs_nextToken+          Lens..~ rs+          Lens.^? listBatchInferenceJobsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListBatchInferenceJobs where+  type+    AWSResponse ListBatchInferenceJobs =+      ListBatchInferenceJobsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListBatchInferenceJobsResponse'+            Prelude.<$> ( x+                            Data..?> "batchInferenceJobs"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListBatchInferenceJobs where+  hashWithSalt _salt ListBatchInferenceJobs' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` solutionVersionArn++instance Prelude.NFData ListBatchInferenceJobs where+  rnf ListBatchInferenceJobs' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf solutionVersionArn++instance Data.ToHeaders ListBatchInferenceJobs where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.ListBatchInferenceJobs" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListBatchInferenceJobs where+  toJSON ListBatchInferenceJobs' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("solutionVersionArn" Data..=)+              Prelude.<$> solutionVersionArn+          ]+      )++instance Data.ToPath ListBatchInferenceJobs where+  toPath = Prelude.const "/"++instance Data.ToQuery ListBatchInferenceJobs where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListBatchInferenceJobsResponse' smart constructor.+data ListBatchInferenceJobsResponse = ListBatchInferenceJobsResponse'+  { -- | A list containing information on each job that is returned.+    batchInferenceJobs :: Prelude.Maybe [BatchInferenceJobSummary],+    -- | The token to use to retrieve the next page of results. The value is+    -- @null@ when there are no more results to return.+    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 'ListBatchInferenceJobsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'batchInferenceJobs', 'listBatchInferenceJobsResponse_batchInferenceJobs' - A list containing information on each job that is returned.+--+-- 'nextToken', 'listBatchInferenceJobsResponse_nextToken' - The token to use to retrieve the next page of results. The value is+-- @null@ when there are no more results to return.+--+-- 'httpStatus', 'listBatchInferenceJobsResponse_httpStatus' - The response's http status code.+newListBatchInferenceJobsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListBatchInferenceJobsResponse+newListBatchInferenceJobsResponse pHttpStatus_ =+  ListBatchInferenceJobsResponse'+    { batchInferenceJobs =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list containing information on each job that is returned.+listBatchInferenceJobsResponse_batchInferenceJobs :: Lens.Lens' ListBatchInferenceJobsResponse (Prelude.Maybe [BatchInferenceJobSummary])+listBatchInferenceJobsResponse_batchInferenceJobs = Lens.lens (\ListBatchInferenceJobsResponse' {batchInferenceJobs} -> batchInferenceJobs) (\s@ListBatchInferenceJobsResponse' {} a -> s {batchInferenceJobs = a} :: ListBatchInferenceJobsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token to use to retrieve the next page of results. The value is+-- @null@ when there are no more results to return.+listBatchInferenceJobsResponse_nextToken :: Lens.Lens' ListBatchInferenceJobsResponse (Prelude.Maybe Prelude.Text)+listBatchInferenceJobsResponse_nextToken = Lens.lens (\ListBatchInferenceJobsResponse' {nextToken} -> nextToken) (\s@ListBatchInferenceJobsResponse' {} a -> s {nextToken = a} :: ListBatchInferenceJobsResponse)++-- | The response's http status code.+listBatchInferenceJobsResponse_httpStatus :: Lens.Lens' ListBatchInferenceJobsResponse Prelude.Int+listBatchInferenceJobsResponse_httpStatus = Lens.lens (\ListBatchInferenceJobsResponse' {httpStatus} -> httpStatus) (\s@ListBatchInferenceJobsResponse' {} a -> s {httpStatus = a} :: ListBatchInferenceJobsResponse)++instance+  Prelude.NFData+    ListBatchInferenceJobsResponse+  where+  rnf ListBatchInferenceJobsResponse' {..} =+    Prelude.rnf batchInferenceJobs+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/ListBatchSegmentJobs.hs view
@@ -0,0 +1,247 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.ListBatchSegmentJobs+-- 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 the batch segment jobs that have been performed off of a+-- solution version that you specify.+--+-- This operation returns paginated results.+module Amazonka.Personalize.ListBatchSegmentJobs+  ( -- * Creating a Request+    ListBatchSegmentJobs (..),+    newListBatchSegmentJobs,++    -- * Request Lenses+    listBatchSegmentJobs_maxResults,+    listBatchSegmentJobs_nextToken,+    listBatchSegmentJobs_solutionVersionArn,++    -- * Destructuring the Response+    ListBatchSegmentJobsResponse (..),+    newListBatchSegmentJobsResponse,++    -- * Response Lenses+    listBatchSegmentJobsResponse_batchSegmentJobs,+    listBatchSegmentJobsResponse_nextToken,+    listBatchSegmentJobsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListBatchSegmentJobs' smart constructor.+data ListBatchSegmentJobs = ListBatchSegmentJobs'+  { -- | The maximum number of batch segment job results to return in each page.+    -- The default value is 100.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token to request the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the solution version that the batch+    -- segment jobs used to generate batch segments.+    solutionVersionArn :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListBatchSegmentJobs' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listBatchSegmentJobs_maxResults' - The maximum number of batch segment job results to return in each page.+-- The default value is 100.+--+-- 'nextToken', 'listBatchSegmentJobs_nextToken' - The token to request the next page of results.+--+-- 'solutionVersionArn', 'listBatchSegmentJobs_solutionVersionArn' - The Amazon Resource Name (ARN) of the solution version that the batch+-- segment jobs used to generate batch segments.+newListBatchSegmentJobs ::+  ListBatchSegmentJobs+newListBatchSegmentJobs =+  ListBatchSegmentJobs'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      solutionVersionArn = Prelude.Nothing+    }++-- | The maximum number of batch segment job results to return in each page.+-- The default value is 100.+listBatchSegmentJobs_maxResults :: Lens.Lens' ListBatchSegmentJobs (Prelude.Maybe Prelude.Natural)+listBatchSegmentJobs_maxResults = Lens.lens (\ListBatchSegmentJobs' {maxResults} -> maxResults) (\s@ListBatchSegmentJobs' {} a -> s {maxResults = a} :: ListBatchSegmentJobs)++-- | The token to request the next page of results.+listBatchSegmentJobs_nextToken :: Lens.Lens' ListBatchSegmentJobs (Prelude.Maybe Prelude.Text)+listBatchSegmentJobs_nextToken = Lens.lens (\ListBatchSegmentJobs' {nextToken} -> nextToken) (\s@ListBatchSegmentJobs' {} a -> s {nextToken = a} :: ListBatchSegmentJobs)++-- | The Amazon Resource Name (ARN) of the solution version that the batch+-- segment jobs used to generate batch segments.+listBatchSegmentJobs_solutionVersionArn :: Lens.Lens' ListBatchSegmentJobs (Prelude.Maybe Prelude.Text)+listBatchSegmentJobs_solutionVersionArn = Lens.lens (\ListBatchSegmentJobs' {solutionVersionArn} -> solutionVersionArn) (\s@ListBatchSegmentJobs' {} a -> s {solutionVersionArn = a} :: ListBatchSegmentJobs)++instance Core.AWSPager ListBatchSegmentJobs where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listBatchSegmentJobsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listBatchSegmentJobsResponse_batchSegmentJobs+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listBatchSegmentJobs_nextToken+          Lens..~ rs+          Lens.^? listBatchSegmentJobsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListBatchSegmentJobs where+  type+    AWSResponse ListBatchSegmentJobs =+      ListBatchSegmentJobsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListBatchSegmentJobsResponse'+            Prelude.<$> ( x+                            Data..?> "batchSegmentJobs"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListBatchSegmentJobs where+  hashWithSalt _salt ListBatchSegmentJobs' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` solutionVersionArn++instance Prelude.NFData ListBatchSegmentJobs where+  rnf ListBatchSegmentJobs' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf solutionVersionArn++instance Data.ToHeaders ListBatchSegmentJobs where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.ListBatchSegmentJobs" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListBatchSegmentJobs where+  toJSON ListBatchSegmentJobs' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("solutionVersionArn" Data..=)+              Prelude.<$> solutionVersionArn+          ]+      )++instance Data.ToPath ListBatchSegmentJobs where+  toPath = Prelude.const "/"++instance Data.ToQuery ListBatchSegmentJobs where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListBatchSegmentJobsResponse' smart constructor.+data ListBatchSegmentJobsResponse = ListBatchSegmentJobsResponse'+  { -- | A list containing information on each job that is returned.+    batchSegmentJobs :: Prelude.Maybe [BatchSegmentJobSummary],+    -- | The token to use to retrieve the next page of results. The value is+    -- @null@ when there are no more results to return.+    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 'ListBatchSegmentJobsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'batchSegmentJobs', 'listBatchSegmentJobsResponse_batchSegmentJobs' - A list containing information on each job that is returned.+--+-- 'nextToken', 'listBatchSegmentJobsResponse_nextToken' - The token to use to retrieve the next page of results. The value is+-- @null@ when there are no more results to return.+--+-- 'httpStatus', 'listBatchSegmentJobsResponse_httpStatus' - The response's http status code.+newListBatchSegmentJobsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListBatchSegmentJobsResponse+newListBatchSegmentJobsResponse pHttpStatus_ =+  ListBatchSegmentJobsResponse'+    { batchSegmentJobs =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list containing information on each job that is returned.+listBatchSegmentJobsResponse_batchSegmentJobs :: Lens.Lens' ListBatchSegmentJobsResponse (Prelude.Maybe [BatchSegmentJobSummary])+listBatchSegmentJobsResponse_batchSegmentJobs = Lens.lens (\ListBatchSegmentJobsResponse' {batchSegmentJobs} -> batchSegmentJobs) (\s@ListBatchSegmentJobsResponse' {} a -> s {batchSegmentJobs = a} :: ListBatchSegmentJobsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token to use to retrieve the next page of results. The value is+-- @null@ when there are no more results to return.+listBatchSegmentJobsResponse_nextToken :: Lens.Lens' ListBatchSegmentJobsResponse (Prelude.Maybe Prelude.Text)+listBatchSegmentJobsResponse_nextToken = Lens.lens (\ListBatchSegmentJobsResponse' {nextToken} -> nextToken) (\s@ListBatchSegmentJobsResponse' {} a -> s {nextToken = a} :: ListBatchSegmentJobsResponse)++-- | The response's http status code.+listBatchSegmentJobsResponse_httpStatus :: Lens.Lens' ListBatchSegmentJobsResponse Prelude.Int+listBatchSegmentJobsResponse_httpStatus = Lens.lens (\ListBatchSegmentJobsResponse' {httpStatus} -> httpStatus) (\s@ListBatchSegmentJobsResponse' {} a -> s {httpStatus = a} :: ListBatchSegmentJobsResponse)++instance Prelude.NFData ListBatchSegmentJobsResponse where+  rnf ListBatchSegmentJobsResponse' {..} =+    Prelude.rnf batchSegmentJobs+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/ListCampaigns.hs view
@@ -0,0 +1,249 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.ListCampaigns+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of campaigns that use the given solution. When a solution+-- is not specified, all the campaigns associated with the account are+-- listed. The response provides the properties for each campaign,+-- including the Amazon Resource Name (ARN). For more information on+-- campaigns, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateCampaign.html CreateCampaign>.+--+-- This operation returns paginated results.+module Amazonka.Personalize.ListCampaigns+  ( -- * Creating a Request+    ListCampaigns (..),+    newListCampaigns,++    -- * Request Lenses+    listCampaigns_maxResults,+    listCampaigns_nextToken,+    listCampaigns_solutionArn,++    -- * Destructuring the Response+    ListCampaignsResponse (..),+    newListCampaignsResponse,++    -- * Response Lenses+    listCampaignsResponse_campaigns,+    listCampaignsResponse_nextToken,+    listCampaignsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListCampaigns' smart constructor.+data ListCampaigns = ListCampaigns'+  { -- | The maximum number of campaigns to return.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A token returned from the previous call to+    -- <https://docs.aws.amazon.com/personalize/latest/dg/API_ListCampaigns.html ListCampaigns>+    -- for getting the next set of campaigns (if they exist).+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the solution to list the campaigns+    -- for. When a solution is not specified, all the campaigns associated with+    -- the account are listed.+    solutionArn :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListCampaigns' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listCampaigns_maxResults' - The maximum number of campaigns to return.+--+-- 'nextToken', 'listCampaigns_nextToken' - A token returned from the previous call to+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_ListCampaigns.html ListCampaigns>+-- for getting the next set of campaigns (if they exist).+--+-- 'solutionArn', 'listCampaigns_solutionArn' - The Amazon Resource Name (ARN) of the solution to list the campaigns+-- for. When a solution is not specified, all the campaigns associated with+-- the account are listed.+newListCampaigns ::+  ListCampaigns+newListCampaigns =+  ListCampaigns'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      solutionArn = Prelude.Nothing+    }++-- | The maximum number of campaigns to return.+listCampaigns_maxResults :: Lens.Lens' ListCampaigns (Prelude.Maybe Prelude.Natural)+listCampaigns_maxResults = Lens.lens (\ListCampaigns' {maxResults} -> maxResults) (\s@ListCampaigns' {} a -> s {maxResults = a} :: ListCampaigns)++-- | A token returned from the previous call to+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_ListCampaigns.html ListCampaigns>+-- for getting the next set of campaigns (if they exist).+listCampaigns_nextToken :: Lens.Lens' ListCampaigns (Prelude.Maybe Prelude.Text)+listCampaigns_nextToken = Lens.lens (\ListCampaigns' {nextToken} -> nextToken) (\s@ListCampaigns' {} a -> s {nextToken = a} :: ListCampaigns)++-- | The Amazon Resource Name (ARN) of the solution to list the campaigns+-- for. When a solution is not specified, all the campaigns associated with+-- the account are listed.+listCampaigns_solutionArn :: Lens.Lens' ListCampaigns (Prelude.Maybe Prelude.Text)+listCampaigns_solutionArn = Lens.lens (\ListCampaigns' {solutionArn} -> solutionArn) (\s@ListCampaigns' {} a -> s {solutionArn = a} :: ListCampaigns)++instance Core.AWSPager ListCampaigns where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listCampaignsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listCampaignsResponse_campaigns+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listCampaigns_nextToken+          Lens..~ rs+          Lens.^? listCampaignsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListCampaigns where+  type+    AWSResponse ListCampaigns =+      ListCampaignsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListCampaignsResponse'+            Prelude.<$> (x Data..?> "campaigns" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListCampaigns where+  hashWithSalt _salt ListCampaigns' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` solutionArn++instance Prelude.NFData ListCampaigns where+  rnf ListCampaigns' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf solutionArn++instance Data.ToHeaders ListCampaigns where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.ListCampaigns" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListCampaigns where+  toJSON ListCampaigns' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("solutionArn" Data..=) Prelude.<$> solutionArn+          ]+      )++instance Data.ToPath ListCampaigns where+  toPath = Prelude.const "/"++instance Data.ToQuery ListCampaigns where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListCampaignsResponse' smart constructor.+data ListCampaignsResponse = ListCampaignsResponse'+  { -- | A list of the campaigns.+    campaigns :: Prelude.Maybe [CampaignSummary],+    -- | A token for getting the next set of campaigns (if they exist).+    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 'ListCampaignsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'campaigns', 'listCampaignsResponse_campaigns' - A list of the campaigns.+--+-- 'nextToken', 'listCampaignsResponse_nextToken' - A token for getting the next set of campaigns (if they exist).+--+-- 'httpStatus', 'listCampaignsResponse_httpStatus' - The response's http status code.+newListCampaignsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListCampaignsResponse+newListCampaignsResponse pHttpStatus_ =+  ListCampaignsResponse'+    { campaigns = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of the campaigns.+listCampaignsResponse_campaigns :: Lens.Lens' ListCampaignsResponse (Prelude.Maybe [CampaignSummary])+listCampaignsResponse_campaigns = Lens.lens (\ListCampaignsResponse' {campaigns} -> campaigns) (\s@ListCampaignsResponse' {} a -> s {campaigns = a} :: ListCampaignsResponse) Prelude.. Lens.mapping Lens.coerced++-- | A token for getting the next set of campaigns (if they exist).+listCampaignsResponse_nextToken :: Lens.Lens' ListCampaignsResponse (Prelude.Maybe Prelude.Text)+listCampaignsResponse_nextToken = Lens.lens (\ListCampaignsResponse' {nextToken} -> nextToken) (\s@ListCampaignsResponse' {} a -> s {nextToken = a} :: ListCampaignsResponse)++-- | The response's http status code.+listCampaignsResponse_httpStatus :: Lens.Lens' ListCampaignsResponse Prelude.Int+listCampaignsResponse_httpStatus = Lens.lens (\ListCampaignsResponse' {httpStatus} -> httpStatus) (\s@ListCampaignsResponse' {} a -> s {httpStatus = a} :: ListCampaignsResponse)++instance Prelude.NFData ListCampaignsResponse where+  rnf ListCampaignsResponse' {..} =+    Prelude.rnf campaigns+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/ListDatasetExportJobs.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.Personalize.ListDatasetExportJobs+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of dataset export jobs that use the given dataset. When a+-- dataset is not specified, all the dataset export jobs associated with+-- the account are listed. The response provides the properties for each+-- dataset export job, including the Amazon Resource Name (ARN). For more+-- information on dataset export jobs, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDatasetExportJob.html CreateDatasetExportJob>.+-- For more information on datasets, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDataset.html CreateDataset>.+--+-- This operation returns paginated results.+module Amazonka.Personalize.ListDatasetExportJobs+  ( -- * Creating a Request+    ListDatasetExportJobs (..),+    newListDatasetExportJobs,++    -- * Request Lenses+    listDatasetExportJobs_datasetArn,+    listDatasetExportJobs_maxResults,+    listDatasetExportJobs_nextToken,++    -- * Destructuring the Response+    ListDatasetExportJobsResponse (..),+    newListDatasetExportJobsResponse,++    -- * Response Lenses+    listDatasetExportJobsResponse_datasetExportJobs,+    listDatasetExportJobsResponse_nextToken,+    listDatasetExportJobsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListDatasetExportJobs' smart constructor.+data ListDatasetExportJobs = ListDatasetExportJobs'+  { -- | The Amazon Resource Name (ARN) of the dataset to list the dataset export+    -- jobs for.+    datasetArn :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of dataset export jobs to return.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A token returned from the previous call to @ListDatasetExportJobs@ for+    -- getting the next set of dataset export jobs (if they exist).+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDatasetExportJobs' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'datasetArn', 'listDatasetExportJobs_datasetArn' - The Amazon Resource Name (ARN) of the dataset to list the dataset export+-- jobs for.+--+-- 'maxResults', 'listDatasetExportJobs_maxResults' - The maximum number of dataset export jobs to return.+--+-- 'nextToken', 'listDatasetExportJobs_nextToken' - A token returned from the previous call to @ListDatasetExportJobs@ for+-- getting the next set of dataset export jobs (if they exist).+newListDatasetExportJobs ::+  ListDatasetExportJobs+newListDatasetExportJobs =+  ListDatasetExportJobs'+    { datasetArn =+        Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the dataset to list the dataset export+-- jobs for.+listDatasetExportJobs_datasetArn :: Lens.Lens' ListDatasetExportJobs (Prelude.Maybe Prelude.Text)+listDatasetExportJobs_datasetArn = Lens.lens (\ListDatasetExportJobs' {datasetArn} -> datasetArn) (\s@ListDatasetExportJobs' {} a -> s {datasetArn = a} :: ListDatasetExportJobs)++-- | The maximum number of dataset export jobs to return.+listDatasetExportJobs_maxResults :: Lens.Lens' ListDatasetExportJobs (Prelude.Maybe Prelude.Natural)+listDatasetExportJobs_maxResults = Lens.lens (\ListDatasetExportJobs' {maxResults} -> maxResults) (\s@ListDatasetExportJobs' {} a -> s {maxResults = a} :: ListDatasetExportJobs)++-- | A token returned from the previous call to @ListDatasetExportJobs@ for+-- getting the next set of dataset export jobs (if they exist).+listDatasetExportJobs_nextToken :: Lens.Lens' ListDatasetExportJobs (Prelude.Maybe Prelude.Text)+listDatasetExportJobs_nextToken = Lens.lens (\ListDatasetExportJobs' {nextToken} -> nextToken) (\s@ListDatasetExportJobs' {} a -> s {nextToken = a} :: ListDatasetExportJobs)++instance Core.AWSPager ListDatasetExportJobs where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listDatasetExportJobsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listDatasetExportJobsResponse_datasetExportJobs+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listDatasetExportJobs_nextToken+          Lens..~ rs+          Lens.^? listDatasetExportJobsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListDatasetExportJobs where+  type+    AWSResponse ListDatasetExportJobs =+      ListDatasetExportJobsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListDatasetExportJobsResponse'+            Prelude.<$> ( x+                            Data..?> "datasetExportJobs"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListDatasetExportJobs where+  hashWithSalt _salt ListDatasetExportJobs' {..} =+    _salt+      `Prelude.hashWithSalt` datasetArn+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListDatasetExportJobs where+  rnf ListDatasetExportJobs' {..} =+    Prelude.rnf datasetArn+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListDatasetExportJobs where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.ListDatasetExportJobs" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListDatasetExportJobs where+  toJSON ListDatasetExportJobs' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("datasetArn" Data..=) Prelude.<$> datasetArn,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListDatasetExportJobs where+  toPath = Prelude.const "/"++instance Data.ToQuery ListDatasetExportJobs where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListDatasetExportJobsResponse' smart constructor.+data ListDatasetExportJobsResponse = ListDatasetExportJobsResponse'+  { -- | The list of dataset export jobs.+    datasetExportJobs :: Prelude.Maybe [DatasetExportJobSummary],+    -- | A token for getting the next set of dataset export jobs (if they exist).+    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 'ListDatasetExportJobsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'datasetExportJobs', 'listDatasetExportJobsResponse_datasetExportJobs' - The list of dataset export jobs.+--+-- 'nextToken', 'listDatasetExportJobsResponse_nextToken' - A token for getting the next set of dataset export jobs (if they exist).+--+-- 'httpStatus', 'listDatasetExportJobsResponse_httpStatus' - The response's http status code.+newListDatasetExportJobsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListDatasetExportJobsResponse+newListDatasetExportJobsResponse pHttpStatus_ =+  ListDatasetExportJobsResponse'+    { datasetExportJobs =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The list of dataset export jobs.+listDatasetExportJobsResponse_datasetExportJobs :: Lens.Lens' ListDatasetExportJobsResponse (Prelude.Maybe [DatasetExportJobSummary])+listDatasetExportJobsResponse_datasetExportJobs = Lens.lens (\ListDatasetExportJobsResponse' {datasetExportJobs} -> datasetExportJobs) (\s@ListDatasetExportJobsResponse' {} a -> s {datasetExportJobs = a} :: ListDatasetExportJobsResponse) Prelude.. Lens.mapping Lens.coerced++-- | A token for getting the next set of dataset export jobs (if they exist).+listDatasetExportJobsResponse_nextToken :: Lens.Lens' ListDatasetExportJobsResponse (Prelude.Maybe Prelude.Text)+listDatasetExportJobsResponse_nextToken = Lens.lens (\ListDatasetExportJobsResponse' {nextToken} -> nextToken) (\s@ListDatasetExportJobsResponse' {} a -> s {nextToken = a} :: ListDatasetExportJobsResponse)++-- | The response's http status code.+listDatasetExportJobsResponse_httpStatus :: Lens.Lens' ListDatasetExportJobsResponse Prelude.Int+listDatasetExportJobsResponse_httpStatus = Lens.lens (\ListDatasetExportJobsResponse' {httpStatus} -> httpStatus) (\s@ListDatasetExportJobsResponse' {} a -> s {httpStatus = a} :: ListDatasetExportJobsResponse)++instance Prelude.NFData ListDatasetExportJobsResponse where+  rnf ListDatasetExportJobsResponse' {..} =+    Prelude.rnf datasetExportJobs+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/ListDatasetGroups.hs view
@@ -0,0 +1,226 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.ListDatasetGroups+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of dataset groups. The response provides the properties+-- for each dataset group, including the Amazon Resource Name (ARN). For+-- more information on dataset groups, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDatasetGroup.html CreateDatasetGroup>.+--+-- This operation returns paginated results.+module Amazonka.Personalize.ListDatasetGroups+  ( -- * Creating a Request+    ListDatasetGroups (..),+    newListDatasetGroups,++    -- * Request Lenses+    listDatasetGroups_maxResults,+    listDatasetGroups_nextToken,++    -- * Destructuring the Response+    ListDatasetGroupsResponse (..),+    newListDatasetGroupsResponse,++    -- * Response Lenses+    listDatasetGroupsResponse_datasetGroups,+    listDatasetGroupsResponse_nextToken,+    listDatasetGroupsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListDatasetGroups' smart constructor.+data ListDatasetGroups = ListDatasetGroups'+  { -- | The maximum number of dataset groups to return.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A token returned from the previous call to @ListDatasetGroups@ for+    -- getting the next set of dataset groups (if they exist).+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDatasetGroups' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listDatasetGroups_maxResults' - The maximum number of dataset groups to return.+--+-- 'nextToken', 'listDatasetGroups_nextToken' - A token returned from the previous call to @ListDatasetGroups@ for+-- getting the next set of dataset groups (if they exist).+newListDatasetGroups ::+  ListDatasetGroups+newListDatasetGroups =+  ListDatasetGroups'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of dataset groups to return.+listDatasetGroups_maxResults :: Lens.Lens' ListDatasetGroups (Prelude.Maybe Prelude.Natural)+listDatasetGroups_maxResults = Lens.lens (\ListDatasetGroups' {maxResults} -> maxResults) (\s@ListDatasetGroups' {} a -> s {maxResults = a} :: ListDatasetGroups)++-- | A token returned from the previous call to @ListDatasetGroups@ for+-- getting the next set of dataset groups (if they exist).+listDatasetGroups_nextToken :: Lens.Lens' ListDatasetGroups (Prelude.Maybe Prelude.Text)+listDatasetGroups_nextToken = Lens.lens (\ListDatasetGroups' {nextToken} -> nextToken) (\s@ListDatasetGroups' {} a -> s {nextToken = a} :: ListDatasetGroups)++instance Core.AWSPager ListDatasetGroups where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listDatasetGroupsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listDatasetGroupsResponse_datasetGroups+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listDatasetGroups_nextToken+          Lens..~ rs+          Lens.^? listDatasetGroupsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListDatasetGroups where+  type+    AWSResponse ListDatasetGroups =+      ListDatasetGroupsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListDatasetGroupsResponse'+            Prelude.<$> (x Data..?> "datasetGroups" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListDatasetGroups where+  hashWithSalt _salt ListDatasetGroups' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListDatasetGroups where+  rnf ListDatasetGroups' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListDatasetGroups where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.ListDatasetGroups" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListDatasetGroups where+  toJSON ListDatasetGroups' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListDatasetGroups where+  toPath = Prelude.const "/"++instance Data.ToQuery ListDatasetGroups where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListDatasetGroupsResponse' smart constructor.+data ListDatasetGroupsResponse = ListDatasetGroupsResponse'+  { -- | The list of your dataset groups.+    datasetGroups :: Prelude.Maybe [DatasetGroupSummary],+    -- | A token for getting the next set of dataset groups (if they exist).+    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 'ListDatasetGroupsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'datasetGroups', 'listDatasetGroupsResponse_datasetGroups' - The list of your dataset groups.+--+-- 'nextToken', 'listDatasetGroupsResponse_nextToken' - A token for getting the next set of dataset groups (if they exist).+--+-- 'httpStatus', 'listDatasetGroupsResponse_httpStatus' - The response's http status code.+newListDatasetGroupsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListDatasetGroupsResponse+newListDatasetGroupsResponse pHttpStatus_ =+  ListDatasetGroupsResponse'+    { datasetGroups =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The list of your dataset groups.+listDatasetGroupsResponse_datasetGroups :: Lens.Lens' ListDatasetGroupsResponse (Prelude.Maybe [DatasetGroupSummary])+listDatasetGroupsResponse_datasetGroups = Lens.lens (\ListDatasetGroupsResponse' {datasetGroups} -> datasetGroups) (\s@ListDatasetGroupsResponse' {} a -> s {datasetGroups = a} :: ListDatasetGroupsResponse) Prelude.. Lens.mapping Lens.coerced++-- | A token for getting the next set of dataset groups (if they exist).+listDatasetGroupsResponse_nextToken :: Lens.Lens' ListDatasetGroupsResponse (Prelude.Maybe Prelude.Text)+listDatasetGroupsResponse_nextToken = Lens.lens (\ListDatasetGroupsResponse' {nextToken} -> nextToken) (\s@ListDatasetGroupsResponse' {} a -> s {nextToken = a} :: ListDatasetGroupsResponse)++-- | The response's http status code.+listDatasetGroupsResponse_httpStatus :: Lens.Lens' ListDatasetGroupsResponse Prelude.Int+listDatasetGroupsResponse_httpStatus = Lens.lens (\ListDatasetGroupsResponse' {httpStatus} -> httpStatus) (\s@ListDatasetGroupsResponse' {} a -> s {httpStatus = a} :: ListDatasetGroupsResponse)++instance Prelude.NFData ListDatasetGroupsResponse where+  rnf ListDatasetGroupsResponse' {..} =+    Prelude.rnf datasetGroups+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/ListDatasetImportJobs.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.Personalize.ListDatasetImportJobs+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of dataset import jobs that use the given dataset. When a+-- dataset is not specified, all the dataset import jobs associated with+-- the account are listed. The response provides the properties for each+-- dataset import job, including the Amazon Resource Name (ARN). For more+-- information on dataset import jobs, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDatasetImportJob.html CreateDatasetImportJob>.+-- For more information on datasets, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDataset.html CreateDataset>.+--+-- This operation returns paginated results.+module Amazonka.Personalize.ListDatasetImportJobs+  ( -- * Creating a Request+    ListDatasetImportJobs (..),+    newListDatasetImportJobs,++    -- * Request Lenses+    listDatasetImportJobs_datasetArn,+    listDatasetImportJobs_maxResults,+    listDatasetImportJobs_nextToken,++    -- * Destructuring the Response+    ListDatasetImportJobsResponse (..),+    newListDatasetImportJobsResponse,++    -- * Response Lenses+    listDatasetImportJobsResponse_datasetImportJobs,+    listDatasetImportJobsResponse_nextToken,+    listDatasetImportJobsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListDatasetImportJobs' smart constructor.+data ListDatasetImportJobs = ListDatasetImportJobs'+  { -- | The Amazon Resource Name (ARN) of the dataset to list the dataset import+    -- jobs for.+    datasetArn :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of dataset import jobs to return.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A token returned from the previous call to @ListDatasetImportJobs@ for+    -- getting the next set of dataset import jobs (if they exist).+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDatasetImportJobs' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'datasetArn', 'listDatasetImportJobs_datasetArn' - The Amazon Resource Name (ARN) of the dataset to list the dataset import+-- jobs for.+--+-- 'maxResults', 'listDatasetImportJobs_maxResults' - The maximum number of dataset import jobs to return.+--+-- 'nextToken', 'listDatasetImportJobs_nextToken' - A token returned from the previous call to @ListDatasetImportJobs@ for+-- getting the next set of dataset import jobs (if they exist).+newListDatasetImportJobs ::+  ListDatasetImportJobs+newListDatasetImportJobs =+  ListDatasetImportJobs'+    { datasetArn =+        Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the dataset to list the dataset import+-- jobs for.+listDatasetImportJobs_datasetArn :: Lens.Lens' ListDatasetImportJobs (Prelude.Maybe Prelude.Text)+listDatasetImportJobs_datasetArn = Lens.lens (\ListDatasetImportJobs' {datasetArn} -> datasetArn) (\s@ListDatasetImportJobs' {} a -> s {datasetArn = a} :: ListDatasetImportJobs)++-- | The maximum number of dataset import jobs to return.+listDatasetImportJobs_maxResults :: Lens.Lens' ListDatasetImportJobs (Prelude.Maybe Prelude.Natural)+listDatasetImportJobs_maxResults = Lens.lens (\ListDatasetImportJobs' {maxResults} -> maxResults) (\s@ListDatasetImportJobs' {} a -> s {maxResults = a} :: ListDatasetImportJobs)++-- | A token returned from the previous call to @ListDatasetImportJobs@ for+-- getting the next set of dataset import jobs (if they exist).+listDatasetImportJobs_nextToken :: Lens.Lens' ListDatasetImportJobs (Prelude.Maybe Prelude.Text)+listDatasetImportJobs_nextToken = Lens.lens (\ListDatasetImportJobs' {nextToken} -> nextToken) (\s@ListDatasetImportJobs' {} a -> s {nextToken = a} :: ListDatasetImportJobs)++instance Core.AWSPager ListDatasetImportJobs where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listDatasetImportJobsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listDatasetImportJobsResponse_datasetImportJobs+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listDatasetImportJobs_nextToken+          Lens..~ rs+          Lens.^? listDatasetImportJobsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListDatasetImportJobs where+  type+    AWSResponse ListDatasetImportJobs =+      ListDatasetImportJobsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListDatasetImportJobsResponse'+            Prelude.<$> ( x+                            Data..?> "datasetImportJobs"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListDatasetImportJobs where+  hashWithSalt _salt ListDatasetImportJobs' {..} =+    _salt+      `Prelude.hashWithSalt` datasetArn+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListDatasetImportJobs where+  rnf ListDatasetImportJobs' {..} =+    Prelude.rnf datasetArn+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListDatasetImportJobs where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.ListDatasetImportJobs" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListDatasetImportJobs where+  toJSON ListDatasetImportJobs' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("datasetArn" Data..=) Prelude.<$> datasetArn,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListDatasetImportJobs where+  toPath = Prelude.const "/"++instance Data.ToQuery ListDatasetImportJobs where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListDatasetImportJobsResponse' smart constructor.+data ListDatasetImportJobsResponse = ListDatasetImportJobsResponse'+  { -- | The list of dataset import jobs.+    datasetImportJobs :: Prelude.Maybe [DatasetImportJobSummary],+    -- | A token for getting the next set of dataset import jobs (if they exist).+    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 'ListDatasetImportJobsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'datasetImportJobs', 'listDatasetImportJobsResponse_datasetImportJobs' - The list of dataset import jobs.+--+-- 'nextToken', 'listDatasetImportJobsResponse_nextToken' - A token for getting the next set of dataset import jobs (if they exist).+--+-- 'httpStatus', 'listDatasetImportJobsResponse_httpStatus' - The response's http status code.+newListDatasetImportJobsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListDatasetImportJobsResponse+newListDatasetImportJobsResponse pHttpStatus_ =+  ListDatasetImportJobsResponse'+    { datasetImportJobs =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The list of dataset import jobs.+listDatasetImportJobsResponse_datasetImportJobs :: Lens.Lens' ListDatasetImportJobsResponse (Prelude.Maybe [DatasetImportJobSummary])+listDatasetImportJobsResponse_datasetImportJobs = Lens.lens (\ListDatasetImportJobsResponse' {datasetImportJobs} -> datasetImportJobs) (\s@ListDatasetImportJobsResponse' {} a -> s {datasetImportJobs = a} :: ListDatasetImportJobsResponse) Prelude.. Lens.mapping Lens.coerced++-- | A token for getting the next set of dataset import jobs (if they exist).+listDatasetImportJobsResponse_nextToken :: Lens.Lens' ListDatasetImportJobsResponse (Prelude.Maybe Prelude.Text)+listDatasetImportJobsResponse_nextToken = Lens.lens (\ListDatasetImportJobsResponse' {nextToken} -> nextToken) (\s@ListDatasetImportJobsResponse' {} a -> s {nextToken = a} :: ListDatasetImportJobsResponse)++-- | The response's http status code.+listDatasetImportJobsResponse_httpStatus :: Lens.Lens' ListDatasetImportJobsResponse Prelude.Int+listDatasetImportJobsResponse_httpStatus = Lens.lens (\ListDatasetImportJobsResponse' {httpStatus} -> httpStatus) (\s@ListDatasetImportJobsResponse' {} a -> s {httpStatus = a} :: ListDatasetImportJobsResponse)++instance Prelude.NFData ListDatasetImportJobsResponse where+  rnf ListDatasetImportJobsResponse' {..} =+    Prelude.rnf datasetImportJobs+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/ListDatasets.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.Personalize.ListDatasets+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the list of datasets contained in the given dataset group. The+-- response provides the properties for each dataset, including the Amazon+-- Resource Name (ARN). For more information on datasets, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDataset.html CreateDataset>.+--+-- This operation returns paginated results.+module Amazonka.Personalize.ListDatasets+  ( -- * Creating a Request+    ListDatasets (..),+    newListDatasets,++    -- * Request Lenses+    listDatasets_datasetGroupArn,+    listDatasets_maxResults,+    listDatasets_nextToken,++    -- * Destructuring the Response+    ListDatasetsResponse (..),+    newListDatasetsResponse,++    -- * Response Lenses+    listDatasetsResponse_datasets,+    listDatasetsResponse_nextToken,+    listDatasetsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListDatasets' smart constructor.+data ListDatasets = ListDatasets'+  { -- | The Amazon Resource Name (ARN) of the dataset group that contains the+    -- datasets to list.+    datasetGroupArn :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of datasets to return.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A token returned from the previous call to @ListDatasetImportJobs@ for+    -- getting the next set of dataset import jobs (if they exist).+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDatasets' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'datasetGroupArn', 'listDatasets_datasetGroupArn' - The Amazon Resource Name (ARN) of the dataset group that contains the+-- datasets to list.+--+-- 'maxResults', 'listDatasets_maxResults' - The maximum number of datasets to return.+--+-- 'nextToken', 'listDatasets_nextToken' - A token returned from the previous call to @ListDatasetImportJobs@ for+-- getting the next set of dataset import jobs (if they exist).+newListDatasets ::+  ListDatasets+newListDatasets =+  ListDatasets'+    { datasetGroupArn = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the dataset group that contains the+-- datasets to list.+listDatasets_datasetGroupArn :: Lens.Lens' ListDatasets (Prelude.Maybe Prelude.Text)+listDatasets_datasetGroupArn = Lens.lens (\ListDatasets' {datasetGroupArn} -> datasetGroupArn) (\s@ListDatasets' {} a -> s {datasetGroupArn = a} :: ListDatasets)++-- | The maximum number of datasets to return.+listDatasets_maxResults :: Lens.Lens' ListDatasets (Prelude.Maybe Prelude.Natural)+listDatasets_maxResults = Lens.lens (\ListDatasets' {maxResults} -> maxResults) (\s@ListDatasets' {} a -> s {maxResults = a} :: ListDatasets)++-- | A token returned from the previous call to @ListDatasetImportJobs@ for+-- getting the next set of dataset import jobs (if they exist).+listDatasets_nextToken :: Lens.Lens' ListDatasets (Prelude.Maybe Prelude.Text)+listDatasets_nextToken = Lens.lens (\ListDatasets' {nextToken} -> nextToken) (\s@ListDatasets' {} a -> s {nextToken = a} :: ListDatasets)++instance Core.AWSPager ListDatasets where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listDatasetsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listDatasetsResponse_datasets+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listDatasets_nextToken+          Lens..~ rs+          Lens.^? listDatasetsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListDatasets where+  type AWSResponse ListDatasets = ListDatasetsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListDatasetsResponse'+            Prelude.<$> (x Data..?> "datasets" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListDatasets where+  hashWithSalt _salt ListDatasets' {..} =+    _salt+      `Prelude.hashWithSalt` datasetGroupArn+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListDatasets where+  rnf ListDatasets' {..} =+    Prelude.rnf datasetGroupArn+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListDatasets where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.ListDatasets" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListDatasets where+  toJSON ListDatasets' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("datasetGroupArn" Data..=)+              Prelude.<$> datasetGroupArn,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListDatasets where+  toPath = Prelude.const "/"++instance Data.ToQuery ListDatasets where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListDatasetsResponse' smart constructor.+data ListDatasetsResponse = ListDatasetsResponse'+  { -- | An array of @Dataset@ objects. Each object provides metadata+    -- information.+    datasets :: Prelude.Maybe [DatasetSummary],+    -- | A token for getting the next set of datasets (if they exist).+    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 'ListDatasetsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'datasets', 'listDatasetsResponse_datasets' - An array of @Dataset@ objects. Each object provides metadata+-- information.+--+-- 'nextToken', 'listDatasetsResponse_nextToken' - A token for getting the next set of datasets (if they exist).+--+-- 'httpStatus', 'listDatasetsResponse_httpStatus' - The response's http status code.+newListDatasetsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListDatasetsResponse+newListDatasetsResponse pHttpStatus_ =+  ListDatasetsResponse'+    { datasets = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array of @Dataset@ objects. Each object provides metadata+-- information.+listDatasetsResponse_datasets :: Lens.Lens' ListDatasetsResponse (Prelude.Maybe [DatasetSummary])+listDatasetsResponse_datasets = Lens.lens (\ListDatasetsResponse' {datasets} -> datasets) (\s@ListDatasetsResponse' {} a -> s {datasets = a} :: ListDatasetsResponse) Prelude.. Lens.mapping Lens.coerced++-- | A token for getting the next set of datasets (if they exist).+listDatasetsResponse_nextToken :: Lens.Lens' ListDatasetsResponse (Prelude.Maybe Prelude.Text)+listDatasetsResponse_nextToken = Lens.lens (\ListDatasetsResponse' {nextToken} -> nextToken) (\s@ListDatasetsResponse' {} a -> s {nextToken = a} :: ListDatasetsResponse)++-- | The response's http status code.+listDatasetsResponse_httpStatus :: Lens.Lens' ListDatasetsResponse Prelude.Int+listDatasetsResponse_httpStatus = Lens.lens (\ListDatasetsResponse' {httpStatus} -> httpStatus) (\s@ListDatasetsResponse' {} a -> s {httpStatus = a} :: ListDatasetsResponse)++instance Prelude.NFData ListDatasetsResponse where+  rnf ListDatasetsResponse' {..} =+    Prelude.rnf datasets+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/ListEventTrackers.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.Personalize.ListEventTrackers+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the list of event trackers associated with the account. The+-- response provides the properties for each event tracker, including the+-- Amazon Resource Name (ARN) and tracking ID. For more information on+-- event trackers, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateEventTracker.html CreateEventTracker>.+--+-- This operation returns paginated results.+module Amazonka.Personalize.ListEventTrackers+  ( -- * Creating a Request+    ListEventTrackers (..),+    newListEventTrackers,++    -- * Request Lenses+    listEventTrackers_datasetGroupArn,+    listEventTrackers_maxResults,+    listEventTrackers_nextToken,++    -- * Destructuring the Response+    ListEventTrackersResponse (..),+    newListEventTrackersResponse,++    -- * Response Lenses+    listEventTrackersResponse_eventTrackers,+    listEventTrackersResponse_nextToken,+    listEventTrackersResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListEventTrackers' smart constructor.+data ListEventTrackers = ListEventTrackers'+  { -- | The ARN of a dataset group used to filter the response.+    datasetGroupArn :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of event trackers to return.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A token returned from the previous call to @ListEventTrackers@ for+    -- getting the next set of event trackers (if they exist).+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListEventTrackers' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'datasetGroupArn', 'listEventTrackers_datasetGroupArn' - The ARN of a dataset group used to filter the response.+--+-- 'maxResults', 'listEventTrackers_maxResults' - The maximum number of event trackers to return.+--+-- 'nextToken', 'listEventTrackers_nextToken' - A token returned from the previous call to @ListEventTrackers@ for+-- getting the next set of event trackers (if they exist).+newListEventTrackers ::+  ListEventTrackers+newListEventTrackers =+  ListEventTrackers'+    { datasetGroupArn =+        Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The ARN of a dataset group used to filter the response.+listEventTrackers_datasetGroupArn :: Lens.Lens' ListEventTrackers (Prelude.Maybe Prelude.Text)+listEventTrackers_datasetGroupArn = Lens.lens (\ListEventTrackers' {datasetGroupArn} -> datasetGroupArn) (\s@ListEventTrackers' {} a -> s {datasetGroupArn = a} :: ListEventTrackers)++-- | The maximum number of event trackers to return.+listEventTrackers_maxResults :: Lens.Lens' ListEventTrackers (Prelude.Maybe Prelude.Natural)+listEventTrackers_maxResults = Lens.lens (\ListEventTrackers' {maxResults} -> maxResults) (\s@ListEventTrackers' {} a -> s {maxResults = a} :: ListEventTrackers)++-- | A token returned from the previous call to @ListEventTrackers@ for+-- getting the next set of event trackers (if they exist).+listEventTrackers_nextToken :: Lens.Lens' ListEventTrackers (Prelude.Maybe Prelude.Text)+listEventTrackers_nextToken = Lens.lens (\ListEventTrackers' {nextToken} -> nextToken) (\s@ListEventTrackers' {} a -> s {nextToken = a} :: ListEventTrackers)++instance Core.AWSPager ListEventTrackers where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listEventTrackersResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listEventTrackersResponse_eventTrackers+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listEventTrackers_nextToken+          Lens..~ rs+          Lens.^? listEventTrackersResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListEventTrackers where+  type+    AWSResponse ListEventTrackers =+      ListEventTrackersResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListEventTrackersResponse'+            Prelude.<$> (x Data..?> "eventTrackers" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListEventTrackers where+  hashWithSalt _salt ListEventTrackers' {..} =+    _salt+      `Prelude.hashWithSalt` datasetGroupArn+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListEventTrackers where+  rnf ListEventTrackers' {..} =+    Prelude.rnf datasetGroupArn+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListEventTrackers where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.ListEventTrackers" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListEventTrackers where+  toJSON ListEventTrackers' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("datasetGroupArn" Data..=)+              Prelude.<$> datasetGroupArn,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListEventTrackers where+  toPath = Prelude.const "/"++instance Data.ToQuery ListEventTrackers where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListEventTrackersResponse' smart constructor.+data ListEventTrackersResponse = ListEventTrackersResponse'+  { -- | A list of event trackers.+    eventTrackers :: Prelude.Maybe [EventTrackerSummary],+    -- | A token for getting the next set of event trackers (if they exist).+    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 'ListEventTrackersResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventTrackers', 'listEventTrackersResponse_eventTrackers' - A list of event trackers.+--+-- 'nextToken', 'listEventTrackersResponse_nextToken' - A token for getting the next set of event trackers (if they exist).+--+-- 'httpStatus', 'listEventTrackersResponse_httpStatus' - The response's http status code.+newListEventTrackersResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListEventTrackersResponse+newListEventTrackersResponse pHttpStatus_ =+  ListEventTrackersResponse'+    { eventTrackers =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of event trackers.+listEventTrackersResponse_eventTrackers :: Lens.Lens' ListEventTrackersResponse (Prelude.Maybe [EventTrackerSummary])+listEventTrackersResponse_eventTrackers = Lens.lens (\ListEventTrackersResponse' {eventTrackers} -> eventTrackers) (\s@ListEventTrackersResponse' {} a -> s {eventTrackers = a} :: ListEventTrackersResponse) Prelude.. Lens.mapping Lens.coerced++-- | A token for getting the next set of event trackers (if they exist).+listEventTrackersResponse_nextToken :: Lens.Lens' ListEventTrackersResponse (Prelude.Maybe Prelude.Text)+listEventTrackersResponse_nextToken = Lens.lens (\ListEventTrackersResponse' {nextToken} -> nextToken) (\s@ListEventTrackersResponse' {} a -> s {nextToken = a} :: ListEventTrackersResponse)++-- | The response's http status code.+listEventTrackersResponse_httpStatus :: Lens.Lens' ListEventTrackersResponse Prelude.Int+listEventTrackersResponse_httpStatus = Lens.lens (\ListEventTrackersResponse' {httpStatus} -> httpStatus) (\s@ListEventTrackersResponse' {} a -> s {httpStatus = a} :: ListEventTrackersResponse)++instance Prelude.NFData ListEventTrackersResponse where+  rnf ListEventTrackersResponse' {..} =+    Prelude.rnf eventTrackers+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/ListFilters.hs view
@@ -0,0 +1,234 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.ListFilters+-- 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 filters that belong to a given dataset group.+--+-- This operation returns paginated results.+module Amazonka.Personalize.ListFilters+  ( -- * Creating a Request+    ListFilters (..),+    newListFilters,++    -- * Request Lenses+    listFilters_datasetGroupArn,+    listFilters_maxResults,+    listFilters_nextToken,++    -- * Destructuring the Response+    ListFiltersResponse (..),+    newListFiltersResponse,++    -- * Response Lenses+    listFiltersResponse_filters,+    listFiltersResponse_nextToken,+    listFiltersResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListFilters' smart constructor.+data ListFilters = ListFilters'+  { -- | The ARN of the dataset group that contains the filters.+    datasetGroupArn :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of filters to return.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A token returned from the previous call to @ListFilters@ for getting the+    -- next set of filters (if they exist).+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListFilters' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'datasetGroupArn', 'listFilters_datasetGroupArn' - The ARN of the dataset group that contains the filters.+--+-- 'maxResults', 'listFilters_maxResults' - The maximum number of filters to return.+--+-- 'nextToken', 'listFilters_nextToken' - A token returned from the previous call to @ListFilters@ for getting the+-- next set of filters (if they exist).+newListFilters ::+  ListFilters+newListFilters =+  ListFilters'+    { datasetGroupArn = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The ARN of the dataset group that contains the filters.+listFilters_datasetGroupArn :: Lens.Lens' ListFilters (Prelude.Maybe Prelude.Text)+listFilters_datasetGroupArn = Lens.lens (\ListFilters' {datasetGroupArn} -> datasetGroupArn) (\s@ListFilters' {} a -> s {datasetGroupArn = a} :: ListFilters)++-- | The maximum number of filters to return.+listFilters_maxResults :: Lens.Lens' ListFilters (Prelude.Maybe Prelude.Natural)+listFilters_maxResults = Lens.lens (\ListFilters' {maxResults} -> maxResults) (\s@ListFilters' {} a -> s {maxResults = a} :: ListFilters)++-- | A token returned from the previous call to @ListFilters@ for getting the+-- next set of filters (if they exist).+listFilters_nextToken :: Lens.Lens' ListFilters (Prelude.Maybe Prelude.Text)+listFilters_nextToken = Lens.lens (\ListFilters' {nextToken} -> nextToken) (\s@ListFilters' {} a -> s {nextToken = a} :: ListFilters)++instance Core.AWSPager ListFilters where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listFiltersResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listFiltersResponse_filters+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listFilters_nextToken+          Lens..~ rs+          Lens.^? listFiltersResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListFilters where+  type AWSResponse ListFilters = ListFiltersResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListFiltersResponse'+            Prelude.<$> (x Data..?> "Filters" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListFilters where+  hashWithSalt _salt ListFilters' {..} =+    _salt+      `Prelude.hashWithSalt` datasetGroupArn+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListFilters where+  rnf ListFilters' {..} =+    Prelude.rnf datasetGroupArn+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListFilters where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.ListFilters" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListFilters where+  toJSON ListFilters' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("datasetGroupArn" Data..=)+              Prelude.<$> datasetGroupArn,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListFilters where+  toPath = Prelude.const "/"++instance Data.ToQuery ListFilters where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListFiltersResponse' smart constructor.+data ListFiltersResponse = ListFiltersResponse'+  { -- | A list of returned filters.+    filters :: Prelude.Maybe [FilterSummary],+    -- | A token for getting the next set of filters (if they exist).+    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 'ListFiltersResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'listFiltersResponse_filters' - A list of returned filters.+--+-- 'nextToken', 'listFiltersResponse_nextToken' - A token for getting the next set of filters (if they exist).+--+-- 'httpStatus', 'listFiltersResponse_httpStatus' - The response's http status code.+newListFiltersResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListFiltersResponse+newListFiltersResponse pHttpStatus_ =+  ListFiltersResponse'+    { filters = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of returned filters.+listFiltersResponse_filters :: Lens.Lens' ListFiltersResponse (Prelude.Maybe [FilterSummary])+listFiltersResponse_filters = Lens.lens (\ListFiltersResponse' {filters} -> filters) (\s@ListFiltersResponse' {} a -> s {filters = a} :: ListFiltersResponse) Prelude.. Lens.mapping Lens.coerced++-- | A token for getting the next set of filters (if they exist).+listFiltersResponse_nextToken :: Lens.Lens' ListFiltersResponse (Prelude.Maybe Prelude.Text)+listFiltersResponse_nextToken = Lens.lens (\ListFiltersResponse' {nextToken} -> nextToken) (\s@ListFiltersResponse' {} a -> s {nextToken = a} :: ListFiltersResponse)++-- | The response's http status code.+listFiltersResponse_httpStatus :: Lens.Lens' ListFiltersResponse Prelude.Int+listFiltersResponse_httpStatus = Lens.lens (\ListFiltersResponse' {httpStatus} -> httpStatus) (\s@ListFiltersResponse' {} a -> s {httpStatus = a} :: ListFiltersResponse)++instance Prelude.NFData ListFiltersResponse where+  rnf ListFiltersResponse' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/ListMetricAttributionMetrics.hs view
@@ -0,0 +1,253 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.ListMetricAttributionMetrics+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the metrics for the metric attribution.+--+-- This operation returns paginated results.+module Amazonka.Personalize.ListMetricAttributionMetrics+  ( -- * Creating a Request+    ListMetricAttributionMetrics (..),+    newListMetricAttributionMetrics,++    -- * Request Lenses+    listMetricAttributionMetrics_maxResults,+    listMetricAttributionMetrics_metricAttributionArn,+    listMetricAttributionMetrics_nextToken,++    -- * Destructuring the Response+    ListMetricAttributionMetricsResponse (..),+    newListMetricAttributionMetricsResponse,++    -- * Response Lenses+    listMetricAttributionMetricsResponse_metrics,+    listMetricAttributionMetricsResponse_nextToken,+    listMetricAttributionMetricsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListMetricAttributionMetrics' smart constructor.+data ListMetricAttributionMetrics = ListMetricAttributionMetrics'+  { -- | The maximum number of metrics to return in one page of results.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The Amazon Resource Name (ARN) of the metric attribution to retrieve+    -- attributes for.+    metricAttributionArn :: Prelude.Maybe Prelude.Text,+    -- | Specify the pagination token from a previous request to retrieve the+    -- next page of results.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListMetricAttributionMetrics' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listMetricAttributionMetrics_maxResults' - The maximum number of metrics to return in one page of results.+--+-- 'metricAttributionArn', 'listMetricAttributionMetrics_metricAttributionArn' - The Amazon Resource Name (ARN) of the metric attribution to retrieve+-- attributes for.+--+-- 'nextToken', 'listMetricAttributionMetrics_nextToken' - Specify the pagination token from a previous request to retrieve the+-- next page of results.+newListMetricAttributionMetrics ::+  ListMetricAttributionMetrics+newListMetricAttributionMetrics =+  ListMetricAttributionMetrics'+    { maxResults =+        Prelude.Nothing,+      metricAttributionArn = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of metrics to return in one page of results.+listMetricAttributionMetrics_maxResults :: Lens.Lens' ListMetricAttributionMetrics (Prelude.Maybe Prelude.Natural)+listMetricAttributionMetrics_maxResults = Lens.lens (\ListMetricAttributionMetrics' {maxResults} -> maxResults) (\s@ListMetricAttributionMetrics' {} a -> s {maxResults = a} :: ListMetricAttributionMetrics)++-- | The Amazon Resource Name (ARN) of the metric attribution to retrieve+-- attributes for.+listMetricAttributionMetrics_metricAttributionArn :: Lens.Lens' ListMetricAttributionMetrics (Prelude.Maybe Prelude.Text)+listMetricAttributionMetrics_metricAttributionArn = Lens.lens (\ListMetricAttributionMetrics' {metricAttributionArn} -> metricAttributionArn) (\s@ListMetricAttributionMetrics' {} a -> s {metricAttributionArn = a} :: ListMetricAttributionMetrics)++-- | Specify the pagination token from a previous request to retrieve the+-- next page of results.+listMetricAttributionMetrics_nextToken :: Lens.Lens' ListMetricAttributionMetrics (Prelude.Maybe Prelude.Text)+listMetricAttributionMetrics_nextToken = Lens.lens (\ListMetricAttributionMetrics' {nextToken} -> nextToken) (\s@ListMetricAttributionMetrics' {} a -> s {nextToken = a} :: ListMetricAttributionMetrics)++instance Core.AWSPager ListMetricAttributionMetrics where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listMetricAttributionMetricsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listMetricAttributionMetricsResponse_metrics+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listMetricAttributionMetrics_nextToken+          Lens..~ rs+          Lens.^? listMetricAttributionMetricsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListMetricAttributionMetrics where+  type+    AWSResponse ListMetricAttributionMetrics =+      ListMetricAttributionMetricsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListMetricAttributionMetricsResponse'+            Prelude.<$> (x Data..?> "metrics" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    ListMetricAttributionMetrics+  where+  hashWithSalt _salt ListMetricAttributionMetrics' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` metricAttributionArn+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListMetricAttributionMetrics where+  rnf ListMetricAttributionMetrics' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf metricAttributionArn+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListMetricAttributionMetrics where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.ListMetricAttributionMetrics" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListMetricAttributionMetrics where+  toJSON ListMetricAttributionMetrics' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("metricAttributionArn" Data..=)+              Prelude.<$> metricAttributionArn,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListMetricAttributionMetrics where+  toPath = Prelude.const "/"++instance Data.ToQuery ListMetricAttributionMetrics where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListMetricAttributionMetricsResponse' smart constructor.+data ListMetricAttributionMetricsResponse = ListMetricAttributionMetricsResponse'+  { -- | The metrics for the specified metric attribution.+    metrics :: Prelude.Maybe [MetricAttribute],+    -- | Specify the pagination token from a previous+    -- @ListMetricAttributionMetricsResponse@ request to retrieve the next page+    -- of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListMetricAttributionMetricsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'metrics', 'listMetricAttributionMetricsResponse_metrics' - The metrics for the specified metric attribution.+--+-- 'nextToken', 'listMetricAttributionMetricsResponse_nextToken' - Specify the pagination token from a previous+-- @ListMetricAttributionMetricsResponse@ request to retrieve the next page+-- of results.+--+-- 'httpStatus', 'listMetricAttributionMetricsResponse_httpStatus' - The response's http status code.+newListMetricAttributionMetricsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListMetricAttributionMetricsResponse+newListMetricAttributionMetricsResponse pHttpStatus_ =+  ListMetricAttributionMetricsResponse'+    { metrics =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The metrics for the specified metric attribution.+listMetricAttributionMetricsResponse_metrics :: Lens.Lens' ListMetricAttributionMetricsResponse (Prelude.Maybe [MetricAttribute])+listMetricAttributionMetricsResponse_metrics = Lens.lens (\ListMetricAttributionMetricsResponse' {metrics} -> metrics) (\s@ListMetricAttributionMetricsResponse' {} a -> s {metrics = a} :: ListMetricAttributionMetricsResponse) Prelude.. Lens.mapping Lens.coerced++-- | Specify the pagination token from a previous+-- @ListMetricAttributionMetricsResponse@ request to retrieve the next page+-- of results.+listMetricAttributionMetricsResponse_nextToken :: Lens.Lens' ListMetricAttributionMetricsResponse (Prelude.Maybe Prelude.Text)+listMetricAttributionMetricsResponse_nextToken = Lens.lens (\ListMetricAttributionMetricsResponse' {nextToken} -> nextToken) (\s@ListMetricAttributionMetricsResponse' {} a -> s {nextToken = a} :: ListMetricAttributionMetricsResponse)++-- | The response's http status code.+listMetricAttributionMetricsResponse_httpStatus :: Lens.Lens' ListMetricAttributionMetricsResponse Prelude.Int+listMetricAttributionMetricsResponse_httpStatus = Lens.lens (\ListMetricAttributionMetricsResponse' {httpStatus} -> httpStatus) (\s@ListMetricAttributionMetricsResponse' {} a -> s {httpStatus = a} :: ListMetricAttributionMetricsResponse)++instance+  Prelude.NFData+    ListMetricAttributionMetricsResponse+  where+  rnf ListMetricAttributionMetricsResponse' {..} =+    Prelude.rnf metrics+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/ListMetricAttributions.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.Personalize.ListMetricAttributions+-- 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 metric attributions.+--+-- This operation returns paginated results.+module Amazonka.Personalize.ListMetricAttributions+  ( -- * Creating a Request+    ListMetricAttributions (..),+    newListMetricAttributions,++    -- * Request Lenses+    listMetricAttributions_datasetGroupArn,+    listMetricAttributions_maxResults,+    listMetricAttributions_nextToken,++    -- * Destructuring the Response+    ListMetricAttributionsResponse (..),+    newListMetricAttributionsResponse,++    -- * Response Lenses+    listMetricAttributionsResponse_metricAttributions,+    listMetricAttributionsResponse_nextToken,+    listMetricAttributionsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListMetricAttributions' smart constructor.+data ListMetricAttributions = ListMetricAttributions'+  { -- | The metric attributions\' dataset group Amazon Resource Name (ARN).+    datasetGroupArn :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of metric attributions to return in one page of+    -- results.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Specify the pagination token from a previous request to retrieve the+    -- next page of results.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListMetricAttributions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'datasetGroupArn', 'listMetricAttributions_datasetGroupArn' - The metric attributions\' dataset group Amazon Resource Name (ARN).+--+-- 'maxResults', 'listMetricAttributions_maxResults' - The maximum number of metric attributions to return in one page of+-- results.+--+-- 'nextToken', 'listMetricAttributions_nextToken' - Specify the pagination token from a previous request to retrieve the+-- next page of results.+newListMetricAttributions ::+  ListMetricAttributions+newListMetricAttributions =+  ListMetricAttributions'+    { datasetGroupArn =+        Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The metric attributions\' dataset group Amazon Resource Name (ARN).+listMetricAttributions_datasetGroupArn :: Lens.Lens' ListMetricAttributions (Prelude.Maybe Prelude.Text)+listMetricAttributions_datasetGroupArn = Lens.lens (\ListMetricAttributions' {datasetGroupArn} -> datasetGroupArn) (\s@ListMetricAttributions' {} a -> s {datasetGroupArn = a} :: ListMetricAttributions)++-- | The maximum number of metric attributions to return in one page of+-- results.+listMetricAttributions_maxResults :: Lens.Lens' ListMetricAttributions (Prelude.Maybe Prelude.Natural)+listMetricAttributions_maxResults = Lens.lens (\ListMetricAttributions' {maxResults} -> maxResults) (\s@ListMetricAttributions' {} a -> s {maxResults = a} :: ListMetricAttributions)++-- | Specify the pagination token from a previous request to retrieve the+-- next page of results.+listMetricAttributions_nextToken :: Lens.Lens' ListMetricAttributions (Prelude.Maybe Prelude.Text)+listMetricAttributions_nextToken = Lens.lens (\ListMetricAttributions' {nextToken} -> nextToken) (\s@ListMetricAttributions' {} a -> s {nextToken = a} :: ListMetricAttributions)++instance Core.AWSPager ListMetricAttributions where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listMetricAttributionsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listMetricAttributionsResponse_metricAttributions+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listMetricAttributions_nextToken+          Lens..~ rs+          Lens.^? listMetricAttributionsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListMetricAttributions where+  type+    AWSResponse ListMetricAttributions =+      ListMetricAttributionsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListMetricAttributionsResponse'+            Prelude.<$> ( x+                            Data..?> "metricAttributions"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListMetricAttributions where+  hashWithSalt _salt ListMetricAttributions' {..} =+    _salt+      `Prelude.hashWithSalt` datasetGroupArn+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListMetricAttributions where+  rnf ListMetricAttributions' {..} =+    Prelude.rnf datasetGroupArn+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListMetricAttributions where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.ListMetricAttributions" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListMetricAttributions where+  toJSON ListMetricAttributions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("datasetGroupArn" Data..=)+              Prelude.<$> datasetGroupArn,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListMetricAttributions where+  toPath = Prelude.const "/"++instance Data.ToQuery ListMetricAttributions where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListMetricAttributionsResponse' smart constructor.+data ListMetricAttributionsResponse = ListMetricAttributionsResponse'+  { -- | The list of metric attributions.+    metricAttributions :: Prelude.Maybe [MetricAttributionSummary],+    -- | Specify the pagination token from a previous request to retrieve the+    -- next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListMetricAttributionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'metricAttributions', 'listMetricAttributionsResponse_metricAttributions' - The list of metric attributions.+--+-- 'nextToken', 'listMetricAttributionsResponse_nextToken' - Specify the pagination token from a previous request to retrieve the+-- next page of results.+--+-- 'httpStatus', 'listMetricAttributionsResponse_httpStatus' - The response's http status code.+newListMetricAttributionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListMetricAttributionsResponse+newListMetricAttributionsResponse pHttpStatus_ =+  ListMetricAttributionsResponse'+    { metricAttributions =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The list of metric attributions.+listMetricAttributionsResponse_metricAttributions :: Lens.Lens' ListMetricAttributionsResponse (Prelude.Maybe [MetricAttributionSummary])+listMetricAttributionsResponse_metricAttributions = Lens.lens (\ListMetricAttributionsResponse' {metricAttributions} -> metricAttributions) (\s@ListMetricAttributionsResponse' {} a -> s {metricAttributions = a} :: ListMetricAttributionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | Specify the pagination token from a previous request to retrieve the+-- next page of results.+listMetricAttributionsResponse_nextToken :: Lens.Lens' ListMetricAttributionsResponse (Prelude.Maybe Prelude.Text)+listMetricAttributionsResponse_nextToken = Lens.lens (\ListMetricAttributionsResponse' {nextToken} -> nextToken) (\s@ListMetricAttributionsResponse' {} a -> s {nextToken = a} :: ListMetricAttributionsResponse)++-- | The response's http status code.+listMetricAttributionsResponse_httpStatus :: Lens.Lens' ListMetricAttributionsResponse Prelude.Int+listMetricAttributionsResponse_httpStatus = Lens.lens (\ListMetricAttributionsResponse' {httpStatus} -> httpStatus) (\s@ListMetricAttributionsResponse' {} a -> s {httpStatus = a} :: ListMetricAttributionsResponse)++instance+  Prelude.NFData+    ListMetricAttributionsResponse+  where+  rnf ListMetricAttributionsResponse' {..} =+    Prelude.rnf metricAttributions+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/ListRecipes.hs view
@@ -0,0 +1,255 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.ListRecipes+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of available recipes. The response provides the+-- properties for each recipe, including the recipe\'s Amazon Resource Name+-- (ARN).+--+-- This operation returns paginated results.+module Amazonka.Personalize.ListRecipes+  ( -- * Creating a Request+    ListRecipes (..),+    newListRecipes,++    -- * Request Lenses+    listRecipes_domain,+    listRecipes_maxResults,+    listRecipes_nextToken,+    listRecipes_recipeProvider,++    -- * Destructuring the Response+    ListRecipesResponse (..),+    newListRecipesResponse,++    -- * Response Lenses+    listRecipesResponse_nextToken,+    listRecipesResponse_recipes,+    listRecipesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListRecipes' smart constructor.+data ListRecipes = ListRecipes'+  { -- | Filters returned recipes by domain for a Domain dataset group. Only+    -- recipes (Domain dataset group use cases) for this domain are included in+    -- the response. If you don\'t specify a domain, all recipes are returned.+    domain :: Prelude.Maybe Domain,+    -- | The maximum number of recipes to return.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A token returned from the previous call to @ListRecipes@ for getting the+    -- next set of recipes (if they exist).+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The default is @SERVICE@.+    recipeProvider :: Prelude.Maybe RecipeProvider+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListRecipes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'domain', 'listRecipes_domain' - Filters returned recipes by domain for a Domain dataset group. Only+-- recipes (Domain dataset group use cases) for this domain are included in+-- the response. If you don\'t specify a domain, all recipes are returned.+--+-- 'maxResults', 'listRecipes_maxResults' - The maximum number of recipes to return.+--+-- 'nextToken', 'listRecipes_nextToken' - A token returned from the previous call to @ListRecipes@ for getting the+-- next set of recipes (if they exist).+--+-- 'recipeProvider', 'listRecipes_recipeProvider' - The default is @SERVICE@.+newListRecipes ::+  ListRecipes+newListRecipes =+  ListRecipes'+    { domain = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      recipeProvider = Prelude.Nothing+    }++-- | Filters returned recipes by domain for a Domain dataset group. Only+-- recipes (Domain dataset group use cases) for this domain are included in+-- the response. If you don\'t specify a domain, all recipes are returned.+listRecipes_domain :: Lens.Lens' ListRecipes (Prelude.Maybe Domain)+listRecipes_domain = Lens.lens (\ListRecipes' {domain} -> domain) (\s@ListRecipes' {} a -> s {domain = a} :: ListRecipes)++-- | The maximum number of recipes to return.+listRecipes_maxResults :: Lens.Lens' ListRecipes (Prelude.Maybe Prelude.Natural)+listRecipes_maxResults = Lens.lens (\ListRecipes' {maxResults} -> maxResults) (\s@ListRecipes' {} a -> s {maxResults = a} :: ListRecipes)++-- | A token returned from the previous call to @ListRecipes@ for getting the+-- next set of recipes (if they exist).+listRecipes_nextToken :: Lens.Lens' ListRecipes (Prelude.Maybe Prelude.Text)+listRecipes_nextToken = Lens.lens (\ListRecipes' {nextToken} -> nextToken) (\s@ListRecipes' {} a -> s {nextToken = a} :: ListRecipes)++-- | The default is @SERVICE@.+listRecipes_recipeProvider :: Lens.Lens' ListRecipes (Prelude.Maybe RecipeProvider)+listRecipes_recipeProvider = Lens.lens (\ListRecipes' {recipeProvider} -> recipeProvider) (\s@ListRecipes' {} a -> s {recipeProvider = a} :: ListRecipes)++instance Core.AWSPager ListRecipes where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listRecipesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listRecipesResponse_recipes+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listRecipes_nextToken+          Lens..~ rs+          Lens.^? listRecipesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListRecipes where+  type AWSResponse ListRecipes = ListRecipesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListRecipesResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (x Data..?> "recipes" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListRecipes where+  hashWithSalt _salt ListRecipes' {..} =+    _salt+      `Prelude.hashWithSalt` domain+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` recipeProvider++instance Prelude.NFData ListRecipes where+  rnf ListRecipes' {..} =+    Prelude.rnf domain+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf recipeProvider++instance Data.ToHeaders ListRecipes where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.ListRecipes" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListRecipes where+  toJSON ListRecipes' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("domain" Data..=) Prelude.<$> domain,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("recipeProvider" Data..=)+              Prelude.<$> recipeProvider+          ]+      )++instance Data.ToPath ListRecipes where+  toPath = Prelude.const "/"++instance Data.ToQuery ListRecipes where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListRecipesResponse' smart constructor.+data ListRecipesResponse = ListRecipesResponse'+  { -- | A token for getting the next set of recipes.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The list of available recipes.+    recipes :: Prelude.Maybe [RecipeSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListRecipesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listRecipesResponse_nextToken' - A token for getting the next set of recipes.+--+-- 'recipes', 'listRecipesResponse_recipes' - The list of available recipes.+--+-- 'httpStatus', 'listRecipesResponse_httpStatus' - The response's http status code.+newListRecipesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListRecipesResponse+newListRecipesResponse pHttpStatus_ =+  ListRecipesResponse'+    { nextToken = Prelude.Nothing,+      recipes = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A token for getting the next set of recipes.+listRecipesResponse_nextToken :: Lens.Lens' ListRecipesResponse (Prelude.Maybe Prelude.Text)+listRecipesResponse_nextToken = Lens.lens (\ListRecipesResponse' {nextToken} -> nextToken) (\s@ListRecipesResponse' {} a -> s {nextToken = a} :: ListRecipesResponse)++-- | The list of available recipes.+listRecipesResponse_recipes :: Lens.Lens' ListRecipesResponse (Prelude.Maybe [RecipeSummary])+listRecipesResponse_recipes = Lens.lens (\ListRecipesResponse' {recipes} -> recipes) (\s@ListRecipesResponse' {} a -> s {recipes = a} :: ListRecipesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listRecipesResponse_httpStatus :: Lens.Lens' ListRecipesResponse Prelude.Int+listRecipesResponse_httpStatus = Lens.lens (\ListRecipesResponse' {httpStatus} -> httpStatus) (\s@ListRecipesResponse' {} a -> s {httpStatus = a} :: ListRecipesResponse)++instance Prelude.NFData ListRecipesResponse where+  rnf ListRecipesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf recipes+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/ListRecommenders.hs view
@@ -0,0 +1,249 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.ListRecommenders+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of recommenders in a given Domain dataset group. When a+-- Domain dataset group is not specified, all the recommenders associated+-- with the account are listed. The response provides the properties for+-- each recommender, including the Amazon Resource Name (ARN). For more+-- information on recommenders, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateRecommender.html CreateRecommender>.+--+-- This operation returns paginated results.+module Amazonka.Personalize.ListRecommenders+  ( -- * Creating a Request+    ListRecommenders (..),+    newListRecommenders,++    -- * Request Lenses+    listRecommenders_datasetGroupArn,+    listRecommenders_maxResults,+    listRecommenders_nextToken,++    -- * Destructuring the Response+    ListRecommendersResponse (..),+    newListRecommendersResponse,++    -- * Response Lenses+    listRecommendersResponse_nextToken,+    listRecommendersResponse_recommenders,+    listRecommendersResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListRecommenders' smart constructor.+data ListRecommenders = ListRecommenders'+  { -- | The Amazon Resource Name (ARN) of the Domain dataset group to list the+    -- recommenders for. When a Domain dataset group is not specified, all the+    -- recommenders associated with the account are listed.+    datasetGroupArn :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of recommenders to return.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A token returned from the previous call to @ListRecommenders@ for+    -- getting the next set of recommenders (if they exist).+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListRecommenders' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'datasetGroupArn', 'listRecommenders_datasetGroupArn' - The Amazon Resource Name (ARN) of the Domain dataset group to list the+-- recommenders for. When a Domain dataset group is not specified, all the+-- recommenders associated with the account are listed.+--+-- 'maxResults', 'listRecommenders_maxResults' - The maximum number of recommenders to return.+--+-- 'nextToken', 'listRecommenders_nextToken' - A token returned from the previous call to @ListRecommenders@ for+-- getting the next set of recommenders (if they exist).+newListRecommenders ::+  ListRecommenders+newListRecommenders =+  ListRecommenders'+    { datasetGroupArn =+        Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the Domain dataset group to list the+-- recommenders for. When a Domain dataset group is not specified, all the+-- recommenders associated with the account are listed.+listRecommenders_datasetGroupArn :: Lens.Lens' ListRecommenders (Prelude.Maybe Prelude.Text)+listRecommenders_datasetGroupArn = Lens.lens (\ListRecommenders' {datasetGroupArn} -> datasetGroupArn) (\s@ListRecommenders' {} a -> s {datasetGroupArn = a} :: ListRecommenders)++-- | The maximum number of recommenders to return.+listRecommenders_maxResults :: Lens.Lens' ListRecommenders (Prelude.Maybe Prelude.Natural)+listRecommenders_maxResults = Lens.lens (\ListRecommenders' {maxResults} -> maxResults) (\s@ListRecommenders' {} a -> s {maxResults = a} :: ListRecommenders)++-- | A token returned from the previous call to @ListRecommenders@ for+-- getting the next set of recommenders (if they exist).+listRecommenders_nextToken :: Lens.Lens' ListRecommenders (Prelude.Maybe Prelude.Text)+listRecommenders_nextToken = Lens.lens (\ListRecommenders' {nextToken} -> nextToken) (\s@ListRecommenders' {} a -> s {nextToken = a} :: ListRecommenders)++instance Core.AWSPager ListRecommenders where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listRecommendersResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listRecommendersResponse_recommenders+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listRecommenders_nextToken+          Lens..~ rs+          Lens.^? listRecommendersResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListRecommenders where+  type+    AWSResponse ListRecommenders =+      ListRecommendersResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListRecommendersResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (x Data..?> "recommenders" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListRecommenders where+  hashWithSalt _salt ListRecommenders' {..} =+    _salt+      `Prelude.hashWithSalt` datasetGroupArn+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListRecommenders where+  rnf ListRecommenders' {..} =+    Prelude.rnf datasetGroupArn+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListRecommenders where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.ListRecommenders" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListRecommenders where+  toJSON ListRecommenders' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("datasetGroupArn" Data..=)+              Prelude.<$> datasetGroupArn,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListRecommenders where+  toPath = Prelude.const "/"++instance Data.ToQuery ListRecommenders where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListRecommendersResponse' smart constructor.+data ListRecommendersResponse = ListRecommendersResponse'+  { -- | A token for getting the next set of recommenders (if they exist).+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A list of the recommenders.+    recommenders :: Prelude.Maybe [RecommenderSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListRecommendersResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listRecommendersResponse_nextToken' - A token for getting the next set of recommenders (if they exist).+--+-- 'recommenders', 'listRecommendersResponse_recommenders' - A list of the recommenders.+--+-- 'httpStatus', 'listRecommendersResponse_httpStatus' - The response's http status code.+newListRecommendersResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListRecommendersResponse+newListRecommendersResponse pHttpStatus_ =+  ListRecommendersResponse'+    { nextToken =+        Prelude.Nothing,+      recommenders = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A token for getting the next set of recommenders (if they exist).+listRecommendersResponse_nextToken :: Lens.Lens' ListRecommendersResponse (Prelude.Maybe Prelude.Text)+listRecommendersResponse_nextToken = Lens.lens (\ListRecommendersResponse' {nextToken} -> nextToken) (\s@ListRecommendersResponse' {} a -> s {nextToken = a} :: ListRecommendersResponse)++-- | A list of the recommenders.+listRecommendersResponse_recommenders :: Lens.Lens' ListRecommendersResponse (Prelude.Maybe [RecommenderSummary])+listRecommendersResponse_recommenders = Lens.lens (\ListRecommendersResponse' {recommenders} -> recommenders) (\s@ListRecommendersResponse' {} a -> s {recommenders = a} :: ListRecommendersResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listRecommendersResponse_httpStatus :: Lens.Lens' ListRecommendersResponse Prelude.Int+listRecommendersResponse_httpStatus = Lens.lens (\ListRecommendersResponse' {httpStatus} -> httpStatus) (\s@ListRecommendersResponse' {} a -> s {httpStatus = a} :: ListRecommendersResponse)++instance Prelude.NFData ListRecommendersResponse where+  rnf ListRecommendersResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf recommenders+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/ListSchemas.hs view
@@ -0,0 +1,223 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.ListSchemas+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the list of schemas associated with the account. The response+-- provides the properties for each schema, including the Amazon Resource+-- Name (ARN). For more information on schemas, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateSchema.html CreateSchema>.+--+-- This operation returns paginated results.+module Amazonka.Personalize.ListSchemas+  ( -- * Creating a Request+    ListSchemas (..),+    newListSchemas,++    -- * Request Lenses+    listSchemas_maxResults,+    listSchemas_nextToken,++    -- * Destructuring the Response+    ListSchemasResponse (..),+    newListSchemasResponse,++    -- * Response Lenses+    listSchemasResponse_nextToken,+    listSchemasResponse_schemas,+    listSchemasResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListSchemas' smart constructor.+data ListSchemas = ListSchemas'+  { -- | The maximum number of schemas to return.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A token returned from the previous call to @ListSchemas@ for getting the+    -- next set of schemas (if they exist).+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSchemas' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listSchemas_maxResults' - The maximum number of schemas to return.+--+-- 'nextToken', 'listSchemas_nextToken' - A token returned from the previous call to @ListSchemas@ for getting the+-- next set of schemas (if they exist).+newListSchemas ::+  ListSchemas+newListSchemas =+  ListSchemas'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of schemas to return.+listSchemas_maxResults :: Lens.Lens' ListSchemas (Prelude.Maybe Prelude.Natural)+listSchemas_maxResults = Lens.lens (\ListSchemas' {maxResults} -> maxResults) (\s@ListSchemas' {} a -> s {maxResults = a} :: ListSchemas)++-- | A token returned from the previous call to @ListSchemas@ for getting the+-- next set of schemas (if they exist).+listSchemas_nextToken :: Lens.Lens' ListSchemas (Prelude.Maybe Prelude.Text)+listSchemas_nextToken = Lens.lens (\ListSchemas' {nextToken} -> nextToken) (\s@ListSchemas' {} a -> s {nextToken = a} :: ListSchemas)++instance Core.AWSPager ListSchemas where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listSchemasResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listSchemasResponse_schemas+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listSchemas_nextToken+          Lens..~ rs+          Lens.^? listSchemasResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListSchemas where+  type AWSResponse ListSchemas = ListSchemasResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListSchemasResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (x Data..?> "schemas" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListSchemas where+  hashWithSalt _salt ListSchemas' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListSchemas where+  rnf ListSchemas' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListSchemas where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.ListSchemas" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListSchemas where+  toJSON ListSchemas' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListSchemas where+  toPath = Prelude.const "/"++instance Data.ToQuery ListSchemas where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListSchemasResponse' smart constructor.+data ListSchemasResponse = ListSchemasResponse'+  { -- | A token used to get the next set of schemas (if they exist).+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A list of schemas.+    schemas :: Prelude.Maybe [DatasetSchemaSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSchemasResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listSchemasResponse_nextToken' - A token used to get the next set of schemas (if they exist).+--+-- 'schemas', 'listSchemasResponse_schemas' - A list of schemas.+--+-- 'httpStatus', 'listSchemasResponse_httpStatus' - The response's http status code.+newListSchemasResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListSchemasResponse+newListSchemasResponse pHttpStatus_ =+  ListSchemasResponse'+    { nextToken = Prelude.Nothing,+      schemas = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A token used to get the next set of schemas (if they exist).+listSchemasResponse_nextToken :: Lens.Lens' ListSchemasResponse (Prelude.Maybe Prelude.Text)+listSchemasResponse_nextToken = Lens.lens (\ListSchemasResponse' {nextToken} -> nextToken) (\s@ListSchemasResponse' {} a -> s {nextToken = a} :: ListSchemasResponse)++-- | A list of schemas.+listSchemasResponse_schemas :: Lens.Lens' ListSchemasResponse (Prelude.Maybe [DatasetSchemaSummary])+listSchemasResponse_schemas = Lens.lens (\ListSchemasResponse' {schemas} -> schemas) (\s@ListSchemasResponse' {} a -> s {schemas = a} :: ListSchemasResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listSchemasResponse_httpStatus :: Lens.Lens' ListSchemasResponse Prelude.Int+listSchemasResponse_httpStatus = Lens.lens (\ListSchemasResponse' {httpStatus} -> httpStatus) (\s@ListSchemasResponse' {} a -> s {httpStatus = a} :: ListSchemasResponse)++instance Prelude.NFData ListSchemasResponse where+  rnf ListSchemasResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf schemas+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/ListSolutionVersions.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.Personalize.ListSolutionVersions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of solution versions for the given solution. When a+-- solution is not specified, all the solution versions associated with the+-- account are listed. The response provides the properties for each+-- solution version, including the Amazon Resource Name (ARN).+--+-- This operation returns paginated results.+module Amazonka.Personalize.ListSolutionVersions+  ( -- * Creating a Request+    ListSolutionVersions (..),+    newListSolutionVersions,++    -- * Request Lenses+    listSolutionVersions_maxResults,+    listSolutionVersions_nextToken,+    listSolutionVersions_solutionArn,++    -- * Destructuring the Response+    ListSolutionVersionsResponse (..),+    newListSolutionVersionsResponse,++    -- * Response Lenses+    listSolutionVersionsResponse_nextToken,+    listSolutionVersionsResponse_solutionVersions,+    listSolutionVersionsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListSolutionVersions' smart constructor.+data ListSolutionVersions = ListSolutionVersions'+  { -- | The maximum number of solution versions to return.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A token returned from the previous call to @ListSolutionVersions@ for+    -- getting the next set of solution versions (if they exist).+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the solution.+    solutionArn :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSolutionVersions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listSolutionVersions_maxResults' - The maximum number of solution versions to return.+--+-- 'nextToken', 'listSolutionVersions_nextToken' - A token returned from the previous call to @ListSolutionVersions@ for+-- getting the next set of solution versions (if they exist).+--+-- 'solutionArn', 'listSolutionVersions_solutionArn' - The Amazon Resource Name (ARN) of the solution.+newListSolutionVersions ::+  ListSolutionVersions+newListSolutionVersions =+  ListSolutionVersions'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      solutionArn = Prelude.Nothing+    }++-- | The maximum number of solution versions to return.+listSolutionVersions_maxResults :: Lens.Lens' ListSolutionVersions (Prelude.Maybe Prelude.Natural)+listSolutionVersions_maxResults = Lens.lens (\ListSolutionVersions' {maxResults} -> maxResults) (\s@ListSolutionVersions' {} a -> s {maxResults = a} :: ListSolutionVersions)++-- | A token returned from the previous call to @ListSolutionVersions@ for+-- getting the next set of solution versions (if they exist).+listSolutionVersions_nextToken :: Lens.Lens' ListSolutionVersions (Prelude.Maybe Prelude.Text)+listSolutionVersions_nextToken = Lens.lens (\ListSolutionVersions' {nextToken} -> nextToken) (\s@ListSolutionVersions' {} a -> s {nextToken = a} :: ListSolutionVersions)++-- | The Amazon Resource Name (ARN) of the solution.+listSolutionVersions_solutionArn :: Lens.Lens' ListSolutionVersions (Prelude.Maybe Prelude.Text)+listSolutionVersions_solutionArn = Lens.lens (\ListSolutionVersions' {solutionArn} -> solutionArn) (\s@ListSolutionVersions' {} a -> s {solutionArn = a} :: ListSolutionVersions)++instance Core.AWSPager ListSolutionVersions where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listSolutionVersionsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listSolutionVersionsResponse_solutionVersions+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listSolutionVersions_nextToken+          Lens..~ rs+          Lens.^? listSolutionVersionsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListSolutionVersions where+  type+    AWSResponse ListSolutionVersions =+      ListSolutionVersionsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListSolutionVersionsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> ( x+                            Data..?> "solutionVersions"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListSolutionVersions where+  hashWithSalt _salt ListSolutionVersions' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` solutionArn++instance Prelude.NFData ListSolutionVersions where+  rnf ListSolutionVersions' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf solutionArn++instance Data.ToHeaders ListSolutionVersions where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.ListSolutionVersions" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListSolutionVersions where+  toJSON ListSolutionVersions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("solutionArn" Data..=) Prelude.<$> solutionArn+          ]+      )++instance Data.ToPath ListSolutionVersions where+  toPath = Prelude.const "/"++instance Data.ToQuery ListSolutionVersions where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListSolutionVersionsResponse' smart constructor.+data ListSolutionVersionsResponse = ListSolutionVersionsResponse'+  { -- | A token for getting the next set of solution versions (if they exist).+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A list of solution versions describing the version properties.+    solutionVersions :: Prelude.Maybe [SolutionVersionSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSolutionVersionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listSolutionVersionsResponse_nextToken' - A token for getting the next set of solution versions (if they exist).+--+-- 'solutionVersions', 'listSolutionVersionsResponse_solutionVersions' - A list of solution versions describing the version properties.+--+-- 'httpStatus', 'listSolutionVersionsResponse_httpStatus' - The response's http status code.+newListSolutionVersionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListSolutionVersionsResponse+newListSolutionVersionsResponse pHttpStatus_ =+  ListSolutionVersionsResponse'+    { nextToken =+        Prelude.Nothing,+      solutionVersions = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A token for getting the next set of solution versions (if they exist).+listSolutionVersionsResponse_nextToken :: Lens.Lens' ListSolutionVersionsResponse (Prelude.Maybe Prelude.Text)+listSolutionVersionsResponse_nextToken = Lens.lens (\ListSolutionVersionsResponse' {nextToken} -> nextToken) (\s@ListSolutionVersionsResponse' {} a -> s {nextToken = a} :: ListSolutionVersionsResponse)++-- | A list of solution versions describing the version properties.+listSolutionVersionsResponse_solutionVersions :: Lens.Lens' ListSolutionVersionsResponse (Prelude.Maybe [SolutionVersionSummary])+listSolutionVersionsResponse_solutionVersions = Lens.lens (\ListSolutionVersionsResponse' {solutionVersions} -> solutionVersions) (\s@ListSolutionVersionsResponse' {} a -> s {solutionVersions = a} :: ListSolutionVersionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listSolutionVersionsResponse_httpStatus :: Lens.Lens' ListSolutionVersionsResponse Prelude.Int+listSolutionVersionsResponse_httpStatus = Lens.lens (\ListSolutionVersionsResponse' {httpStatus} -> httpStatus) (\s@ListSolutionVersionsResponse' {} a -> s {httpStatus = a} :: ListSolutionVersionsResponse)++instance Prelude.NFData ListSolutionVersionsResponse where+  rnf ListSolutionVersionsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf solutionVersions+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/ListSolutions.hs view
@@ -0,0 +1,241 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.ListSolutions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of solutions that use the given dataset group. When a+-- dataset group is not specified, all the solutions associated with the+-- account are listed. The response provides the properties for each+-- solution, including the Amazon Resource Name (ARN). For more information+-- on solutions, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateSolution.html CreateSolution>.+--+-- This operation returns paginated results.+module Amazonka.Personalize.ListSolutions+  ( -- * Creating a Request+    ListSolutions (..),+    newListSolutions,++    -- * Request Lenses+    listSolutions_datasetGroupArn,+    listSolutions_maxResults,+    listSolutions_nextToken,++    -- * Destructuring the Response+    ListSolutionsResponse (..),+    newListSolutionsResponse,++    -- * Response Lenses+    listSolutionsResponse_nextToken,+    listSolutionsResponse_solutions,+    listSolutionsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListSolutions' smart constructor.+data ListSolutions = ListSolutions'+  { -- | The Amazon Resource Name (ARN) of the dataset group.+    datasetGroupArn :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of solutions to return.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A token returned from the previous call to @ListSolutions@ for getting+    -- the next set of solutions (if they exist).+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSolutions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'datasetGroupArn', 'listSolutions_datasetGroupArn' - The Amazon Resource Name (ARN) of the dataset group.+--+-- 'maxResults', 'listSolutions_maxResults' - The maximum number of solutions to return.+--+-- 'nextToken', 'listSolutions_nextToken' - A token returned from the previous call to @ListSolutions@ for getting+-- the next set of solutions (if they exist).+newListSolutions ::+  ListSolutions+newListSolutions =+  ListSolutions'+    { datasetGroupArn = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the dataset group.+listSolutions_datasetGroupArn :: Lens.Lens' ListSolutions (Prelude.Maybe Prelude.Text)+listSolutions_datasetGroupArn = Lens.lens (\ListSolutions' {datasetGroupArn} -> datasetGroupArn) (\s@ListSolutions' {} a -> s {datasetGroupArn = a} :: ListSolutions)++-- | The maximum number of solutions to return.+listSolutions_maxResults :: Lens.Lens' ListSolutions (Prelude.Maybe Prelude.Natural)+listSolutions_maxResults = Lens.lens (\ListSolutions' {maxResults} -> maxResults) (\s@ListSolutions' {} a -> s {maxResults = a} :: ListSolutions)++-- | A token returned from the previous call to @ListSolutions@ for getting+-- the next set of solutions (if they exist).+listSolutions_nextToken :: Lens.Lens' ListSolutions (Prelude.Maybe Prelude.Text)+listSolutions_nextToken = Lens.lens (\ListSolutions' {nextToken} -> nextToken) (\s@ListSolutions' {} a -> s {nextToken = a} :: ListSolutions)++instance Core.AWSPager ListSolutions where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listSolutionsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listSolutionsResponse_solutions+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listSolutions_nextToken+          Lens..~ rs+          Lens.^? listSolutionsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListSolutions where+  type+    AWSResponse ListSolutions =+      ListSolutionsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListSolutionsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (x Data..?> "solutions" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListSolutions where+  hashWithSalt _salt ListSolutions' {..} =+    _salt+      `Prelude.hashWithSalt` datasetGroupArn+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListSolutions where+  rnf ListSolutions' {..} =+    Prelude.rnf datasetGroupArn+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListSolutions where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.ListSolutions" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListSolutions where+  toJSON ListSolutions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("datasetGroupArn" Data..=)+              Prelude.<$> datasetGroupArn,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListSolutions where+  toPath = Prelude.const "/"++instance Data.ToQuery ListSolutions where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListSolutionsResponse' smart constructor.+data ListSolutionsResponse = ListSolutionsResponse'+  { -- | A token for getting the next set of solutions (if they exist).+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A list of the current solutions.+    solutions :: Prelude.Maybe [SolutionSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSolutionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listSolutionsResponse_nextToken' - A token for getting the next set of solutions (if they exist).+--+-- 'solutions', 'listSolutionsResponse_solutions' - A list of the current solutions.+--+-- 'httpStatus', 'listSolutionsResponse_httpStatus' - The response's http status code.+newListSolutionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListSolutionsResponse+newListSolutionsResponse pHttpStatus_ =+  ListSolutionsResponse'+    { nextToken = Prelude.Nothing,+      solutions = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A token for getting the next set of solutions (if they exist).+listSolutionsResponse_nextToken :: Lens.Lens' ListSolutionsResponse (Prelude.Maybe Prelude.Text)+listSolutionsResponse_nextToken = Lens.lens (\ListSolutionsResponse' {nextToken} -> nextToken) (\s@ListSolutionsResponse' {} a -> s {nextToken = a} :: ListSolutionsResponse)++-- | A list of the current solutions.+listSolutionsResponse_solutions :: Lens.Lens' ListSolutionsResponse (Prelude.Maybe [SolutionSummary])+listSolutionsResponse_solutions = Lens.lens (\ListSolutionsResponse' {solutions} -> solutions) (\s@ListSolutionsResponse' {} a -> s {solutions = a} :: ListSolutionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listSolutionsResponse_httpStatus :: Lens.Lens' ListSolutionsResponse Prelude.Int+listSolutionsResponse_httpStatus = Lens.lens (\ListSolutionsResponse' {httpStatus} -> httpStatus) (\s@ListSolutionsResponse' {} a -> s {httpStatus = a} :: ListSolutionsResponse)++instance Prelude.NFData ListSolutionsResponse where+  rnf ListSolutionsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf solutions+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/ListTagsForResource.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.Personalize.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)+--+-- Get a list of+-- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+-- attached to a resource.+module Amazonka.Personalize.ListTagsForResource+  ( -- * Creating a Request+    ListTagsForResource (..),+    newListTagsForResource,++    -- * Request Lenses+    listTagsForResource_resourceArn,++    -- * Destructuring the Response+    ListTagsForResourceResponse (..),+    newListTagsForResourceResponse,++    -- * Response Lenses+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.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 resource\'s Amazon Resource Name.+    resourceArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'listTagsForResource_resourceArn' - The resource\'s Amazon Resource Name.+newListTagsForResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  ListTagsForResource+newListTagsForResource pResourceArn_ =+  ListTagsForResource' {resourceArn = pResourceArn_}++-- | The resource\'s Amazon Resource Name.+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..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListTagsForResource where+  hashWithSalt _salt ListTagsForResource' {..} =+    _salt `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData ListTagsForResource where+  rnf ListTagsForResource' {..} =+    Prelude.rnf resourceArn++instance Data.ToHeaders ListTagsForResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.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+          [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 resource\'s tags.+    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:+--+-- 'tags', 'listTagsForResourceResponse_tags' - The resource\'s tags.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+  ListTagsForResourceResponse'+    { tags =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The resource\'s tags.+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 tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/StartRecommender.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.Personalize.StartRecommender+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Starts a recommender that is INACTIVE. Starting a recommender does not+-- create any new models, but resumes billing and automatic retraining for+-- the recommender.+module Amazonka.Personalize.StartRecommender+  ( -- * Creating a Request+    StartRecommender (..),+    newStartRecommender,++    -- * Request Lenses+    startRecommender_recommenderArn,++    -- * Destructuring the Response+    StartRecommenderResponse (..),+    newStartRecommenderResponse,++    -- * Response Lenses+    startRecommenderResponse_recommenderArn,+    startRecommenderResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStartRecommender' smart constructor.+data StartRecommender = StartRecommender'+  { -- | The Amazon Resource Name (ARN) of the recommender to start.+    recommenderArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartRecommender' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'recommenderArn', 'startRecommender_recommenderArn' - The Amazon Resource Name (ARN) of the recommender to start.+newStartRecommender ::+  -- | 'recommenderArn'+  Prelude.Text ->+  StartRecommender+newStartRecommender pRecommenderArn_ =+  StartRecommender'+    { recommenderArn =+        pRecommenderArn_+    }++-- | The Amazon Resource Name (ARN) of the recommender to start.+startRecommender_recommenderArn :: Lens.Lens' StartRecommender Prelude.Text+startRecommender_recommenderArn = Lens.lens (\StartRecommender' {recommenderArn} -> recommenderArn) (\s@StartRecommender' {} a -> s {recommenderArn = a} :: StartRecommender)++instance Core.AWSRequest StartRecommender where+  type+    AWSResponse StartRecommender =+      StartRecommenderResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          StartRecommenderResponse'+            Prelude.<$> (x Data..?> "recommenderArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable StartRecommender where+  hashWithSalt _salt StartRecommender' {..} =+    _salt `Prelude.hashWithSalt` recommenderArn++instance Prelude.NFData StartRecommender where+  rnf StartRecommender' {..} =+    Prelude.rnf recommenderArn++instance Data.ToHeaders StartRecommender where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.StartRecommender" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON StartRecommender where+  toJSON StartRecommender' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("recommenderArn" Data..= recommenderArn)+          ]+      )++instance Data.ToPath StartRecommender where+  toPath = Prelude.const "/"++instance Data.ToQuery StartRecommender where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStartRecommenderResponse' smart constructor.+data StartRecommenderResponse = StartRecommenderResponse'+  { -- | The Amazon Resource Name (ARN) of the recommender you started.+    recommenderArn :: 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 'StartRecommenderResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'recommenderArn', 'startRecommenderResponse_recommenderArn' - The Amazon Resource Name (ARN) of the recommender you started.+--+-- 'httpStatus', 'startRecommenderResponse_httpStatus' - The response's http status code.+newStartRecommenderResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  StartRecommenderResponse+newStartRecommenderResponse pHttpStatus_ =+  StartRecommenderResponse'+    { recommenderArn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the recommender you started.+startRecommenderResponse_recommenderArn :: Lens.Lens' StartRecommenderResponse (Prelude.Maybe Prelude.Text)+startRecommenderResponse_recommenderArn = Lens.lens (\StartRecommenderResponse' {recommenderArn} -> recommenderArn) (\s@StartRecommenderResponse' {} a -> s {recommenderArn = a} :: StartRecommenderResponse)++-- | The response's http status code.+startRecommenderResponse_httpStatus :: Lens.Lens' StartRecommenderResponse Prelude.Int+startRecommenderResponse_httpStatus = Lens.lens (\StartRecommenderResponse' {httpStatus} -> httpStatus) (\s@StartRecommenderResponse' {} a -> s {httpStatus = a} :: StartRecommenderResponse)++instance Prelude.NFData StartRecommenderResponse where+  rnf StartRecommenderResponse' {..} =+    Prelude.rnf recommenderArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/StopRecommender.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.Personalize.StopRecommender+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Stops a recommender that is ACTIVE. Stopping a recommender halts billing+-- and automatic retraining for the recommender.+module Amazonka.Personalize.StopRecommender+  ( -- * Creating a Request+    StopRecommender (..),+    newStopRecommender,++    -- * Request Lenses+    stopRecommender_recommenderArn,++    -- * Destructuring the Response+    StopRecommenderResponse (..),+    newStopRecommenderResponse,++    -- * Response Lenses+    stopRecommenderResponse_recommenderArn,+    stopRecommenderResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStopRecommender' smart constructor.+data StopRecommender = StopRecommender'+  { -- | The Amazon Resource Name (ARN) of the recommender to stop.+    recommenderArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StopRecommender' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'recommenderArn', 'stopRecommender_recommenderArn' - The Amazon Resource Name (ARN) of the recommender to stop.+newStopRecommender ::+  -- | 'recommenderArn'+  Prelude.Text ->+  StopRecommender+newStopRecommender pRecommenderArn_ =+  StopRecommender' {recommenderArn = pRecommenderArn_}++-- | The Amazon Resource Name (ARN) of the recommender to stop.+stopRecommender_recommenderArn :: Lens.Lens' StopRecommender Prelude.Text+stopRecommender_recommenderArn = Lens.lens (\StopRecommender' {recommenderArn} -> recommenderArn) (\s@StopRecommender' {} a -> s {recommenderArn = a} :: StopRecommender)++instance Core.AWSRequest StopRecommender where+  type+    AWSResponse StopRecommender =+      StopRecommenderResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          StopRecommenderResponse'+            Prelude.<$> (x Data..?> "recommenderArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable StopRecommender where+  hashWithSalt _salt StopRecommender' {..} =+    _salt `Prelude.hashWithSalt` recommenderArn++instance Prelude.NFData StopRecommender where+  rnf StopRecommender' {..} = Prelude.rnf recommenderArn++instance Data.ToHeaders StopRecommender where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.StopRecommender" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON StopRecommender where+  toJSON StopRecommender' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("recommenderArn" Data..= recommenderArn)+          ]+      )++instance Data.ToPath StopRecommender where+  toPath = Prelude.const "/"++instance Data.ToQuery StopRecommender where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStopRecommenderResponse' smart constructor.+data StopRecommenderResponse = StopRecommenderResponse'+  { -- | The Amazon Resource Name (ARN) of the recommender you stopped.+    recommenderArn :: 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 'StopRecommenderResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'recommenderArn', 'stopRecommenderResponse_recommenderArn' - The Amazon Resource Name (ARN) of the recommender you stopped.+--+-- 'httpStatus', 'stopRecommenderResponse_httpStatus' - The response's http status code.+newStopRecommenderResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  StopRecommenderResponse+newStopRecommenderResponse pHttpStatus_ =+  StopRecommenderResponse'+    { recommenderArn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the recommender you stopped.+stopRecommenderResponse_recommenderArn :: Lens.Lens' StopRecommenderResponse (Prelude.Maybe Prelude.Text)+stopRecommenderResponse_recommenderArn = Lens.lens (\StopRecommenderResponse' {recommenderArn} -> recommenderArn) (\s@StopRecommenderResponse' {} a -> s {recommenderArn = a} :: StopRecommenderResponse)++-- | The response's http status code.+stopRecommenderResponse_httpStatus :: Lens.Lens' StopRecommenderResponse Prelude.Int+stopRecommenderResponse_httpStatus = Lens.lens (\StopRecommenderResponse' {httpStatus} -> httpStatus) (\s@StopRecommenderResponse' {} a -> s {httpStatus = a} :: StopRecommenderResponse)++instance Prelude.NFData StopRecommenderResponse where+  rnf StopRecommenderResponse' {..} =+    Prelude.rnf recommenderArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/StopSolutionVersionCreation.hs view
@@ -0,0 +1,160 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.StopSolutionVersionCreation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Stops creating a solution version that is in a state of CREATE_PENDING+-- or CREATE IN_PROGRESS.+--+-- Depending on the current state of the solution version, the solution+-- version state changes as follows:+--+-- -   CREATE_PENDING > CREATE_STOPPED+--+--     or+--+-- -   CREATE_IN_PROGRESS > CREATE_STOPPING > CREATE_STOPPED+--+-- You are billed for all of the training completed up until you stop the+-- solution version creation. You cannot resume creating a solution version+-- once it has been stopped.+module Amazonka.Personalize.StopSolutionVersionCreation+  ( -- * Creating a Request+    StopSolutionVersionCreation (..),+    newStopSolutionVersionCreation,++    -- * Request Lenses+    stopSolutionVersionCreation_solutionVersionArn,++    -- * Destructuring the Response+    StopSolutionVersionCreationResponse (..),+    newStopSolutionVersionCreationResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStopSolutionVersionCreation' smart constructor.+data StopSolutionVersionCreation = StopSolutionVersionCreation'+  { -- | The Amazon Resource Name (ARN) of the solution version you want to stop+    -- creating.+    solutionVersionArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StopSolutionVersionCreation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'solutionVersionArn', 'stopSolutionVersionCreation_solutionVersionArn' - The Amazon Resource Name (ARN) of the solution version you want to stop+-- creating.+newStopSolutionVersionCreation ::+  -- | 'solutionVersionArn'+  Prelude.Text ->+  StopSolutionVersionCreation+newStopSolutionVersionCreation pSolutionVersionArn_ =+  StopSolutionVersionCreation'+    { solutionVersionArn =+        pSolutionVersionArn_+    }++-- | The Amazon Resource Name (ARN) of the solution version you want to stop+-- creating.+stopSolutionVersionCreation_solutionVersionArn :: Lens.Lens' StopSolutionVersionCreation Prelude.Text+stopSolutionVersionCreation_solutionVersionArn = Lens.lens (\StopSolutionVersionCreation' {solutionVersionArn} -> solutionVersionArn) (\s@StopSolutionVersionCreation' {} a -> s {solutionVersionArn = a} :: StopSolutionVersionCreation)++instance Core.AWSRequest StopSolutionVersionCreation where+  type+    AWSResponse StopSolutionVersionCreation =+      StopSolutionVersionCreationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveNull+      StopSolutionVersionCreationResponse'++instance Prelude.Hashable StopSolutionVersionCreation where+  hashWithSalt _salt StopSolutionVersionCreation' {..} =+    _salt `Prelude.hashWithSalt` solutionVersionArn++instance Prelude.NFData StopSolutionVersionCreation where+  rnf StopSolutionVersionCreation' {..} =+    Prelude.rnf solutionVersionArn++instance Data.ToHeaders StopSolutionVersionCreation where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.StopSolutionVersionCreation" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON StopSolutionVersionCreation where+  toJSON StopSolutionVersionCreation' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("solutionVersionArn" Data..= solutionVersionArn)+          ]+      )++instance Data.ToPath StopSolutionVersionCreation where+  toPath = Prelude.const "/"++instance Data.ToQuery StopSolutionVersionCreation where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStopSolutionVersionCreationResponse' smart constructor.+data StopSolutionVersionCreationResponse = StopSolutionVersionCreationResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StopSolutionVersionCreationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newStopSolutionVersionCreationResponse ::+  StopSolutionVersionCreationResponse+newStopSolutionVersionCreationResponse =+  StopSolutionVersionCreationResponse'++instance+  Prelude.NFData+    StopSolutionVersionCreationResponse+  where+  rnf _ = ()
+ gen/Amazonka/Personalize/TagResource.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.Personalize.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)+--+-- Add a list of tags to a resource.+module Amazonka.Personalize.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.Personalize.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\'s Amazon Resource Name (ARN).+    resourceArn :: Prelude.Text,+    -- | Tags to apply to the resource. For more information see+    -- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html Tagging Personalize resources>.+    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\'s Amazon Resource Name (ARN).+--+-- 'tags', 'tagResource_tags' - Tags to apply to the resource. For more information see+-- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html Tagging Personalize resources>.+newTagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  TagResource+newTagResource pResourceArn_ =+  TagResource'+    { resourceArn = pResourceArn_,+      tags = Prelude.mempty+    }++-- | The resource\'s Amazon Resource Name (ARN).+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++-- | Tags to apply to the resource. For more information see+-- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html Tagging Personalize resources>.+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.=# ( "AmazonPersonalize.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/Personalize/Types.hs view
@@ -0,0 +1,847 @@+{-# 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.Personalize.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.Personalize.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _InvalidInputException,+    _InvalidNextTokenException,+    _LimitExceededException,+    _ResourceAlreadyExistsException,+    _ResourceInUseException,+    _ResourceNotFoundException,+    _TooManyTagKeysException,+    _TooManyTagsException,++    -- * Domain+    Domain (..),++    -- * ImportMode+    ImportMode (..),++    -- * IngestionMode+    IngestionMode (..),++    -- * ObjectiveSensitivity+    ObjectiveSensitivity (..),++    -- * RecipeProvider+    RecipeProvider (..),++    -- * TrainingMode+    TrainingMode (..),++    -- * Algorithm+    Algorithm (..),+    newAlgorithm,+    algorithm_algorithmArn,+    algorithm_algorithmImage,+    algorithm_creationDateTime,+    algorithm_defaultHyperParameterRanges,+    algorithm_defaultHyperParameters,+    algorithm_defaultResourceConfig,+    algorithm_lastUpdatedDateTime,+    algorithm_name,+    algorithm_roleArn,+    algorithm_trainingInputMode,++    -- * AlgorithmImage+    AlgorithmImage (..),+    newAlgorithmImage,+    algorithmImage_name,+    algorithmImage_dockerURI,++    -- * AutoMLConfig+    AutoMLConfig (..),+    newAutoMLConfig,+    autoMLConfig_metricName,+    autoMLConfig_recipeList,++    -- * AutoMLResult+    AutoMLResult (..),+    newAutoMLResult,+    autoMLResult_bestRecipeArn,++    -- * BatchInferenceJob+    BatchInferenceJob (..),+    newBatchInferenceJob,+    batchInferenceJob_batchInferenceJobArn,+    batchInferenceJob_batchInferenceJobConfig,+    batchInferenceJob_creationDateTime,+    batchInferenceJob_failureReason,+    batchInferenceJob_filterArn,+    batchInferenceJob_jobInput,+    batchInferenceJob_jobName,+    batchInferenceJob_jobOutput,+    batchInferenceJob_lastUpdatedDateTime,+    batchInferenceJob_numResults,+    batchInferenceJob_roleArn,+    batchInferenceJob_solutionVersionArn,+    batchInferenceJob_status,++    -- * BatchInferenceJobConfig+    BatchInferenceJobConfig (..),+    newBatchInferenceJobConfig,+    batchInferenceJobConfig_itemExplorationConfig,++    -- * BatchInferenceJobInput+    BatchInferenceJobInput (..),+    newBatchInferenceJobInput,+    batchInferenceJobInput_s3DataSource,++    -- * BatchInferenceJobOutput+    BatchInferenceJobOutput (..),+    newBatchInferenceJobOutput,+    batchInferenceJobOutput_s3DataDestination,++    -- * BatchInferenceJobSummary+    BatchInferenceJobSummary (..),+    newBatchInferenceJobSummary,+    batchInferenceJobSummary_batchInferenceJobArn,+    batchInferenceJobSummary_creationDateTime,+    batchInferenceJobSummary_failureReason,+    batchInferenceJobSummary_jobName,+    batchInferenceJobSummary_lastUpdatedDateTime,+    batchInferenceJobSummary_solutionVersionArn,+    batchInferenceJobSummary_status,++    -- * BatchSegmentJob+    BatchSegmentJob (..),+    newBatchSegmentJob,+    batchSegmentJob_batchSegmentJobArn,+    batchSegmentJob_creationDateTime,+    batchSegmentJob_failureReason,+    batchSegmentJob_filterArn,+    batchSegmentJob_jobInput,+    batchSegmentJob_jobName,+    batchSegmentJob_jobOutput,+    batchSegmentJob_lastUpdatedDateTime,+    batchSegmentJob_numResults,+    batchSegmentJob_roleArn,+    batchSegmentJob_solutionVersionArn,+    batchSegmentJob_status,++    -- * BatchSegmentJobInput+    BatchSegmentJobInput (..),+    newBatchSegmentJobInput,+    batchSegmentJobInput_s3DataSource,++    -- * BatchSegmentJobOutput+    BatchSegmentJobOutput (..),+    newBatchSegmentJobOutput,+    batchSegmentJobOutput_s3DataDestination,++    -- * BatchSegmentJobSummary+    BatchSegmentJobSummary (..),+    newBatchSegmentJobSummary,+    batchSegmentJobSummary_batchSegmentJobArn,+    batchSegmentJobSummary_creationDateTime,+    batchSegmentJobSummary_failureReason,+    batchSegmentJobSummary_jobName,+    batchSegmentJobSummary_lastUpdatedDateTime,+    batchSegmentJobSummary_solutionVersionArn,+    batchSegmentJobSummary_status,++    -- * Campaign+    Campaign (..),+    newCampaign,+    campaign_campaignArn,+    campaign_campaignConfig,+    campaign_creationDateTime,+    campaign_failureReason,+    campaign_lastUpdatedDateTime,+    campaign_latestCampaignUpdate,+    campaign_minProvisionedTPS,+    campaign_name,+    campaign_solutionVersionArn,+    campaign_status,++    -- * CampaignConfig+    CampaignConfig (..),+    newCampaignConfig,+    campaignConfig_itemExplorationConfig,++    -- * CampaignSummary+    CampaignSummary (..),+    newCampaignSummary,+    campaignSummary_campaignArn,+    campaignSummary_creationDateTime,+    campaignSummary_failureReason,+    campaignSummary_lastUpdatedDateTime,+    campaignSummary_name,+    campaignSummary_status,++    -- * CampaignUpdateSummary+    CampaignUpdateSummary (..),+    newCampaignUpdateSummary,+    campaignUpdateSummary_campaignConfig,+    campaignUpdateSummary_creationDateTime,+    campaignUpdateSummary_failureReason,+    campaignUpdateSummary_lastUpdatedDateTime,+    campaignUpdateSummary_minProvisionedTPS,+    campaignUpdateSummary_solutionVersionArn,+    campaignUpdateSummary_status,++    -- * CategoricalHyperParameterRange+    CategoricalHyperParameterRange (..),+    newCategoricalHyperParameterRange,+    categoricalHyperParameterRange_name,+    categoricalHyperParameterRange_values,++    -- * ContinuousHyperParameterRange+    ContinuousHyperParameterRange (..),+    newContinuousHyperParameterRange,+    continuousHyperParameterRange_maxValue,+    continuousHyperParameterRange_minValue,+    continuousHyperParameterRange_name,++    -- * DataSource+    DataSource (..),+    newDataSource,+    dataSource_dataLocation,++    -- * Dataset+    Dataset (..),+    newDataset,+    dataset_creationDateTime,+    dataset_datasetArn,+    dataset_datasetGroupArn,+    dataset_datasetType,+    dataset_lastUpdatedDateTime,+    dataset_name,+    dataset_schemaArn,+    dataset_status,++    -- * DatasetExportJob+    DatasetExportJob (..),+    newDatasetExportJob,+    datasetExportJob_creationDateTime,+    datasetExportJob_datasetArn,+    datasetExportJob_datasetExportJobArn,+    datasetExportJob_failureReason,+    datasetExportJob_ingestionMode,+    datasetExportJob_jobName,+    datasetExportJob_jobOutput,+    datasetExportJob_lastUpdatedDateTime,+    datasetExportJob_roleArn,+    datasetExportJob_status,++    -- * DatasetExportJobOutput+    DatasetExportJobOutput (..),+    newDatasetExportJobOutput,+    datasetExportJobOutput_s3DataDestination,++    -- * DatasetExportJobSummary+    DatasetExportJobSummary (..),+    newDatasetExportJobSummary,+    datasetExportJobSummary_creationDateTime,+    datasetExportJobSummary_datasetExportJobArn,+    datasetExportJobSummary_failureReason,+    datasetExportJobSummary_jobName,+    datasetExportJobSummary_lastUpdatedDateTime,+    datasetExportJobSummary_status,++    -- * DatasetGroup+    DatasetGroup (..),+    newDatasetGroup,+    datasetGroup_creationDateTime,+    datasetGroup_datasetGroupArn,+    datasetGroup_domain,+    datasetGroup_failureReason,+    datasetGroup_kmsKeyArn,+    datasetGroup_lastUpdatedDateTime,+    datasetGroup_name,+    datasetGroup_roleArn,+    datasetGroup_status,++    -- * DatasetGroupSummary+    DatasetGroupSummary (..),+    newDatasetGroupSummary,+    datasetGroupSummary_creationDateTime,+    datasetGroupSummary_datasetGroupArn,+    datasetGroupSummary_domain,+    datasetGroupSummary_failureReason,+    datasetGroupSummary_lastUpdatedDateTime,+    datasetGroupSummary_name,+    datasetGroupSummary_status,++    -- * DatasetImportJob+    DatasetImportJob (..),+    newDatasetImportJob,+    datasetImportJob_creationDateTime,+    datasetImportJob_dataSource,+    datasetImportJob_datasetArn,+    datasetImportJob_datasetImportJobArn,+    datasetImportJob_failureReason,+    datasetImportJob_importMode,+    datasetImportJob_jobName,+    datasetImportJob_lastUpdatedDateTime,+    datasetImportJob_publishAttributionMetricsToS3,+    datasetImportJob_roleArn,+    datasetImportJob_status,++    -- * DatasetImportJobSummary+    DatasetImportJobSummary (..),+    newDatasetImportJobSummary,+    datasetImportJobSummary_creationDateTime,+    datasetImportJobSummary_datasetImportJobArn,+    datasetImportJobSummary_failureReason,+    datasetImportJobSummary_importMode,+    datasetImportJobSummary_jobName,+    datasetImportJobSummary_lastUpdatedDateTime,+    datasetImportJobSummary_status,++    -- * DatasetSchema+    DatasetSchema (..),+    newDatasetSchema,+    datasetSchema_creationDateTime,+    datasetSchema_domain,+    datasetSchema_lastUpdatedDateTime,+    datasetSchema_name,+    datasetSchema_schema,+    datasetSchema_schemaArn,++    -- * DatasetSchemaSummary+    DatasetSchemaSummary (..),+    newDatasetSchemaSummary,+    datasetSchemaSummary_creationDateTime,+    datasetSchemaSummary_domain,+    datasetSchemaSummary_lastUpdatedDateTime,+    datasetSchemaSummary_name,+    datasetSchemaSummary_schemaArn,++    -- * DatasetSummary+    DatasetSummary (..),+    newDatasetSummary,+    datasetSummary_creationDateTime,+    datasetSummary_datasetArn,+    datasetSummary_datasetType,+    datasetSummary_lastUpdatedDateTime,+    datasetSummary_name,+    datasetSummary_status,++    -- * DefaultCategoricalHyperParameterRange+    DefaultCategoricalHyperParameterRange (..),+    newDefaultCategoricalHyperParameterRange,+    defaultCategoricalHyperParameterRange_isTunable,+    defaultCategoricalHyperParameterRange_name,+    defaultCategoricalHyperParameterRange_values,++    -- * DefaultContinuousHyperParameterRange+    DefaultContinuousHyperParameterRange (..),+    newDefaultContinuousHyperParameterRange,+    defaultContinuousHyperParameterRange_isTunable,+    defaultContinuousHyperParameterRange_maxValue,+    defaultContinuousHyperParameterRange_minValue,+    defaultContinuousHyperParameterRange_name,++    -- * DefaultHyperParameterRanges+    DefaultHyperParameterRanges (..),+    newDefaultHyperParameterRanges,+    defaultHyperParameterRanges_categoricalHyperParameterRanges,+    defaultHyperParameterRanges_continuousHyperParameterRanges,+    defaultHyperParameterRanges_integerHyperParameterRanges,++    -- * DefaultIntegerHyperParameterRange+    DefaultIntegerHyperParameterRange (..),+    newDefaultIntegerHyperParameterRange,+    defaultIntegerHyperParameterRange_isTunable,+    defaultIntegerHyperParameterRange_maxValue,+    defaultIntegerHyperParameterRange_minValue,+    defaultIntegerHyperParameterRange_name,++    -- * EventTracker+    EventTracker (..),+    newEventTracker,+    eventTracker_accountId,+    eventTracker_creationDateTime,+    eventTracker_datasetGroupArn,+    eventTracker_eventTrackerArn,+    eventTracker_lastUpdatedDateTime,+    eventTracker_name,+    eventTracker_status,+    eventTracker_trackingId,++    -- * EventTrackerSummary+    EventTrackerSummary (..),+    newEventTrackerSummary,+    eventTrackerSummary_creationDateTime,+    eventTrackerSummary_eventTrackerArn,+    eventTrackerSummary_lastUpdatedDateTime,+    eventTrackerSummary_name,+    eventTrackerSummary_status,++    -- * FeatureTransformation+    FeatureTransformation (..),+    newFeatureTransformation,+    featureTransformation_creationDateTime,+    featureTransformation_defaultParameters,+    featureTransformation_featureTransformationArn,+    featureTransformation_lastUpdatedDateTime,+    featureTransformation_name,+    featureTransformation_status,++    -- * Filter+    Filter (..),+    newFilter,+    filter_creationDateTime,+    filter_datasetGroupArn,+    filter_failureReason,+    filter_filterArn,+    filter_filterExpression,+    filter_lastUpdatedDateTime,+    filter_name,+    filter_status,++    -- * FilterSummary+    FilterSummary (..),+    newFilterSummary,+    filterSummary_creationDateTime,+    filterSummary_datasetGroupArn,+    filterSummary_failureReason,+    filterSummary_filterArn,+    filterSummary_lastUpdatedDateTime,+    filterSummary_name,+    filterSummary_status,++    -- * HPOConfig+    HPOConfig (..),+    newHPOConfig,+    hPOConfig_algorithmHyperParameterRanges,+    hPOConfig_hpoObjective,+    hPOConfig_hpoResourceConfig,++    -- * HPOObjective+    HPOObjective (..),+    newHPOObjective,+    hPOObjective_metricName,+    hPOObjective_metricRegex,+    hPOObjective_type,++    -- * HPOResourceConfig+    HPOResourceConfig (..),+    newHPOResourceConfig,+    hPOResourceConfig_maxNumberOfTrainingJobs,+    hPOResourceConfig_maxParallelTrainingJobs,++    -- * HyperParameterRanges+    HyperParameterRanges (..),+    newHyperParameterRanges,+    hyperParameterRanges_categoricalHyperParameterRanges,+    hyperParameterRanges_continuousHyperParameterRanges,+    hyperParameterRanges_integerHyperParameterRanges,++    -- * IntegerHyperParameterRange+    IntegerHyperParameterRange (..),+    newIntegerHyperParameterRange,+    integerHyperParameterRange_maxValue,+    integerHyperParameterRange_minValue,+    integerHyperParameterRange_name,++    -- * MetricAttribute+    MetricAttribute (..),+    newMetricAttribute,+    metricAttribute_eventType,+    metricAttribute_metricName,+    metricAttribute_expression,++    -- * MetricAttribution+    MetricAttribution (..),+    newMetricAttribution,+    metricAttribution_creationDateTime,+    metricAttribution_datasetGroupArn,+    metricAttribution_failureReason,+    metricAttribution_lastUpdatedDateTime,+    metricAttribution_metricAttributionArn,+    metricAttribution_metricsOutputConfig,+    metricAttribution_name,+    metricAttribution_status,++    -- * MetricAttributionOutput+    MetricAttributionOutput (..),+    newMetricAttributionOutput,+    metricAttributionOutput_s3DataDestination,+    metricAttributionOutput_roleArn,++    -- * MetricAttributionSummary+    MetricAttributionSummary (..),+    newMetricAttributionSummary,+    metricAttributionSummary_creationDateTime,+    metricAttributionSummary_failureReason,+    metricAttributionSummary_lastUpdatedDateTime,+    metricAttributionSummary_metricAttributionArn,+    metricAttributionSummary_name,+    metricAttributionSummary_status,++    -- * OptimizationObjective+    OptimizationObjective (..),+    newOptimizationObjective,+    optimizationObjective_itemAttribute,+    optimizationObjective_objectiveSensitivity,++    -- * Recipe+    Recipe (..),+    newRecipe,+    recipe_algorithmArn,+    recipe_creationDateTime,+    recipe_description,+    recipe_featureTransformationArn,+    recipe_lastUpdatedDateTime,+    recipe_name,+    recipe_recipeArn,+    recipe_recipeType,+    recipe_status,++    -- * RecipeSummary+    RecipeSummary (..),+    newRecipeSummary,+    recipeSummary_creationDateTime,+    recipeSummary_domain,+    recipeSummary_lastUpdatedDateTime,+    recipeSummary_name,+    recipeSummary_recipeArn,+    recipeSummary_status,++    -- * Recommender+    Recommender (..),+    newRecommender,+    recommender_creationDateTime,+    recommender_datasetGroupArn,+    recommender_failureReason,+    recommender_lastUpdatedDateTime,+    recommender_latestRecommenderUpdate,+    recommender_modelMetrics,+    recommender_name,+    recommender_recipeArn,+    recommender_recommenderArn,+    recommender_recommenderConfig,+    recommender_status,++    -- * RecommenderConfig+    RecommenderConfig (..),+    newRecommenderConfig,+    recommenderConfig_itemExplorationConfig,+    recommenderConfig_minRecommendationRequestsPerSecond,++    -- * RecommenderSummary+    RecommenderSummary (..),+    newRecommenderSummary,+    recommenderSummary_creationDateTime,+    recommenderSummary_datasetGroupArn,+    recommenderSummary_lastUpdatedDateTime,+    recommenderSummary_name,+    recommenderSummary_recipeArn,+    recommenderSummary_recommenderArn,+    recommenderSummary_recommenderConfig,+    recommenderSummary_status,++    -- * RecommenderUpdateSummary+    RecommenderUpdateSummary (..),+    newRecommenderUpdateSummary,+    recommenderUpdateSummary_creationDateTime,+    recommenderUpdateSummary_failureReason,+    recommenderUpdateSummary_lastUpdatedDateTime,+    recommenderUpdateSummary_recommenderConfig,+    recommenderUpdateSummary_status,++    -- * S3DataConfig+    S3DataConfig (..),+    newS3DataConfig,+    s3DataConfig_kmsKeyArn,+    s3DataConfig_path,++    -- * Solution+    Solution (..),+    newSolution,+    solution_autoMLResult,+    solution_creationDateTime,+    solution_datasetGroupArn,+    solution_eventType,+    solution_lastUpdatedDateTime,+    solution_latestSolutionVersion,+    solution_name,+    solution_performAutoML,+    solution_performHPO,+    solution_recipeArn,+    solution_solutionArn,+    solution_solutionConfig,+    solution_status,++    -- * SolutionConfig+    SolutionConfig (..),+    newSolutionConfig,+    solutionConfig_algorithmHyperParameters,+    solutionConfig_autoMLConfig,+    solutionConfig_eventValueThreshold,+    solutionConfig_featureTransformationParameters,+    solutionConfig_hpoConfig,+    solutionConfig_optimizationObjective,++    -- * SolutionSummary+    SolutionSummary (..),+    newSolutionSummary,+    solutionSummary_creationDateTime,+    solutionSummary_lastUpdatedDateTime,+    solutionSummary_name,+    solutionSummary_recipeArn,+    solutionSummary_solutionArn,+    solutionSummary_status,++    -- * SolutionVersion+    SolutionVersion (..),+    newSolutionVersion,+    solutionVersion_creationDateTime,+    solutionVersion_datasetGroupArn,+    solutionVersion_eventType,+    solutionVersion_failureReason,+    solutionVersion_lastUpdatedDateTime,+    solutionVersion_name,+    solutionVersion_performAutoML,+    solutionVersion_performHPO,+    solutionVersion_recipeArn,+    solutionVersion_solutionArn,+    solutionVersion_solutionConfig,+    solutionVersion_solutionVersionArn,+    solutionVersion_status,+    solutionVersion_trainingHours,+    solutionVersion_trainingMode,+    solutionVersion_tunedHPOParams,++    -- * SolutionVersionSummary+    SolutionVersionSummary (..),+    newSolutionVersionSummary,+    solutionVersionSummary_creationDateTime,+    solutionVersionSummary_failureReason,+    solutionVersionSummary_lastUpdatedDateTime,+    solutionVersionSummary_solutionVersionArn,+    solutionVersionSummary_status,++    -- * Tag+    Tag (..),+    newTag,+    tag_tagKey,+    tag_tagValue,++    -- * TunedHPOParams+    TunedHPOParams (..),+    newTunedHPOParams,+    tunedHPOParams_algorithmHyperParameters,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.Personalize.Types.Algorithm+import Amazonka.Personalize.Types.AlgorithmImage+import Amazonka.Personalize.Types.AutoMLConfig+import Amazonka.Personalize.Types.AutoMLResult+import Amazonka.Personalize.Types.BatchInferenceJob+import Amazonka.Personalize.Types.BatchInferenceJobConfig+import Amazonka.Personalize.Types.BatchInferenceJobInput+import Amazonka.Personalize.Types.BatchInferenceJobOutput+import Amazonka.Personalize.Types.BatchInferenceJobSummary+import Amazonka.Personalize.Types.BatchSegmentJob+import Amazonka.Personalize.Types.BatchSegmentJobInput+import Amazonka.Personalize.Types.BatchSegmentJobOutput+import Amazonka.Personalize.Types.BatchSegmentJobSummary+import Amazonka.Personalize.Types.Campaign+import Amazonka.Personalize.Types.CampaignConfig+import Amazonka.Personalize.Types.CampaignSummary+import Amazonka.Personalize.Types.CampaignUpdateSummary+import Amazonka.Personalize.Types.CategoricalHyperParameterRange+import Amazonka.Personalize.Types.ContinuousHyperParameterRange+import Amazonka.Personalize.Types.DataSource+import Amazonka.Personalize.Types.Dataset+import Amazonka.Personalize.Types.DatasetExportJob+import Amazonka.Personalize.Types.DatasetExportJobOutput+import Amazonka.Personalize.Types.DatasetExportJobSummary+import Amazonka.Personalize.Types.DatasetGroup+import Amazonka.Personalize.Types.DatasetGroupSummary+import Amazonka.Personalize.Types.DatasetImportJob+import Amazonka.Personalize.Types.DatasetImportJobSummary+import Amazonka.Personalize.Types.DatasetSchema+import Amazonka.Personalize.Types.DatasetSchemaSummary+import Amazonka.Personalize.Types.DatasetSummary+import Amazonka.Personalize.Types.DefaultCategoricalHyperParameterRange+import Amazonka.Personalize.Types.DefaultContinuousHyperParameterRange+import Amazonka.Personalize.Types.DefaultHyperParameterRanges+import Amazonka.Personalize.Types.DefaultIntegerHyperParameterRange+import Amazonka.Personalize.Types.Domain+import Amazonka.Personalize.Types.EventTracker+import Amazonka.Personalize.Types.EventTrackerSummary+import Amazonka.Personalize.Types.FeatureTransformation+import Amazonka.Personalize.Types.Filter+import Amazonka.Personalize.Types.FilterSummary+import Amazonka.Personalize.Types.HPOConfig+import Amazonka.Personalize.Types.HPOObjective+import Amazonka.Personalize.Types.HPOResourceConfig+import Amazonka.Personalize.Types.HyperParameterRanges+import Amazonka.Personalize.Types.ImportMode+import Amazonka.Personalize.Types.IngestionMode+import Amazonka.Personalize.Types.IntegerHyperParameterRange+import Amazonka.Personalize.Types.MetricAttribute+import Amazonka.Personalize.Types.MetricAttribution+import Amazonka.Personalize.Types.MetricAttributionOutput+import Amazonka.Personalize.Types.MetricAttributionSummary+import Amazonka.Personalize.Types.ObjectiveSensitivity+import Amazonka.Personalize.Types.OptimizationObjective+import Amazonka.Personalize.Types.Recipe+import Amazonka.Personalize.Types.RecipeProvider+import Amazonka.Personalize.Types.RecipeSummary+import Amazonka.Personalize.Types.Recommender+import Amazonka.Personalize.Types.RecommenderConfig+import Amazonka.Personalize.Types.RecommenderSummary+import Amazonka.Personalize.Types.RecommenderUpdateSummary+import Amazonka.Personalize.Types.S3DataConfig+import Amazonka.Personalize.Types.Solution+import Amazonka.Personalize.Types.SolutionConfig+import Amazonka.Personalize.Types.SolutionSummary+import Amazonka.Personalize.Types.SolutionVersion+import Amazonka.Personalize.Types.SolutionVersionSummary+import Amazonka.Personalize.Types.Tag+import Amazonka.Personalize.Types.TrainingMode+import Amazonka.Personalize.Types.TunedHPOParams+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2018-05-22@ of the Amazon Personalize SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "Personalize",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "personalize",+      Core.signingName = "personalize",+      Core.version = "2018-05-22",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "Personalize",+      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++-- | Provide a valid value for the field or parameter.+_InvalidInputException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidInputException =+  Core._MatchServiceError+    defaultService+    "InvalidInputException"++-- | The token is not valid.+_InvalidNextTokenException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidNextTokenException =+  Core._MatchServiceError+    defaultService+    "InvalidNextTokenException"++-- | The limit on the number of requests per second has been exceeded.+_LimitExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_LimitExceededException =+  Core._MatchServiceError+    defaultService+    "LimitExceededException"++-- | The specified resource already exists.+_ResourceAlreadyExistsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceAlreadyExistsException =+  Core._MatchServiceError+    defaultService+    "ResourceAlreadyExistsException"++-- | The specified resource is in use.+_ResourceInUseException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceInUseException =+  Core._MatchServiceError+    defaultService+    "ResourceInUseException"++-- | Could not find the specified resource.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+  Core._MatchServiceError+    defaultService+    "ResourceNotFoundException"++-- | The request contains more tag keys than can be associated with a+-- resource (50 tag keys per resource).+_TooManyTagKeysException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_TooManyTagKeysException =+  Core._MatchServiceError+    defaultService+    "TooManyTagKeysException"++-- | You have exceeded the maximum number of tags you can apply to this+-- resource.+_TooManyTagsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_TooManyTagsException =+  Core._MatchServiceError+    defaultService+    "TooManyTagsException"
+ gen/Amazonka/Personalize/Types/Algorithm.hs view
@@ -0,0 +1,197 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.Algorithm+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.Algorithm where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types.AlgorithmImage+import Amazonka.Personalize.Types.DefaultHyperParameterRanges+import qualified Amazonka.Prelude as Prelude++-- | Describes a custom algorithm.+--+-- /See:/ 'newAlgorithm' smart constructor.+data Algorithm = Algorithm'+  { -- | The Amazon Resource Name (ARN) of the algorithm.+    algorithmArn :: Prelude.Maybe Prelude.Text,+    -- | The URI of the Docker container for the algorithm image.+    algorithmImage :: Prelude.Maybe AlgorithmImage,+    -- | The date and time (in Unix time) that the algorithm was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | Specifies the default hyperparameters, their ranges, and whether they+    -- are tunable. A tunable hyperparameter can have its value determined+    -- during hyperparameter optimization (HPO).+    defaultHyperParameterRanges :: Prelude.Maybe DefaultHyperParameterRanges,+    -- | Specifies the default hyperparameters.+    defaultHyperParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Specifies the default maximum number of training jobs and parallel+    -- training jobs.+    defaultResourceConfig :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The date and time (in Unix time) that the algorithm was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The name of the algorithm.+    name :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the role.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | The training input mode.+    trainingInputMode :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Algorithm' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'algorithmArn', 'algorithm_algorithmArn' - The Amazon Resource Name (ARN) of the algorithm.+--+-- 'algorithmImage', 'algorithm_algorithmImage' - The URI of the Docker container for the algorithm image.+--+-- 'creationDateTime', 'algorithm_creationDateTime' - The date and time (in Unix time) that the algorithm was created.+--+-- 'defaultHyperParameterRanges', 'algorithm_defaultHyperParameterRanges' - Specifies the default hyperparameters, their ranges, and whether they+-- are tunable. A tunable hyperparameter can have its value determined+-- during hyperparameter optimization (HPO).+--+-- 'defaultHyperParameters', 'algorithm_defaultHyperParameters' - Specifies the default hyperparameters.+--+-- 'defaultResourceConfig', 'algorithm_defaultResourceConfig' - Specifies the default maximum number of training jobs and parallel+-- training jobs.+--+-- 'lastUpdatedDateTime', 'algorithm_lastUpdatedDateTime' - The date and time (in Unix time) that the algorithm was last updated.+--+-- 'name', 'algorithm_name' - The name of the algorithm.+--+-- 'roleArn', 'algorithm_roleArn' - The Amazon Resource Name (ARN) of the role.+--+-- 'trainingInputMode', 'algorithm_trainingInputMode' - The training input mode.+newAlgorithm ::+  Algorithm+newAlgorithm =+  Algorithm'+    { algorithmArn = Prelude.Nothing,+      algorithmImage = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      defaultHyperParameterRanges = Prelude.Nothing,+      defaultHyperParameters = Prelude.Nothing,+      defaultResourceConfig = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      name = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      trainingInputMode = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the algorithm.+algorithm_algorithmArn :: Lens.Lens' Algorithm (Prelude.Maybe Prelude.Text)+algorithm_algorithmArn = Lens.lens (\Algorithm' {algorithmArn} -> algorithmArn) (\s@Algorithm' {} a -> s {algorithmArn = a} :: Algorithm)++-- | The URI of the Docker container for the algorithm image.+algorithm_algorithmImage :: Lens.Lens' Algorithm (Prelude.Maybe AlgorithmImage)+algorithm_algorithmImage = Lens.lens (\Algorithm' {algorithmImage} -> algorithmImage) (\s@Algorithm' {} a -> s {algorithmImage = a} :: Algorithm)++-- | The date and time (in Unix time) that the algorithm was created.+algorithm_creationDateTime :: Lens.Lens' Algorithm (Prelude.Maybe Prelude.UTCTime)+algorithm_creationDateTime = Lens.lens (\Algorithm' {creationDateTime} -> creationDateTime) (\s@Algorithm' {} a -> s {creationDateTime = a} :: Algorithm) Prelude.. Lens.mapping Data._Time++-- | Specifies the default hyperparameters, their ranges, and whether they+-- are tunable. A tunable hyperparameter can have its value determined+-- during hyperparameter optimization (HPO).+algorithm_defaultHyperParameterRanges :: Lens.Lens' Algorithm (Prelude.Maybe DefaultHyperParameterRanges)+algorithm_defaultHyperParameterRanges = Lens.lens (\Algorithm' {defaultHyperParameterRanges} -> defaultHyperParameterRanges) (\s@Algorithm' {} a -> s {defaultHyperParameterRanges = a} :: Algorithm)++-- | Specifies the default hyperparameters.+algorithm_defaultHyperParameters :: Lens.Lens' Algorithm (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+algorithm_defaultHyperParameters = Lens.lens (\Algorithm' {defaultHyperParameters} -> defaultHyperParameters) (\s@Algorithm' {} a -> s {defaultHyperParameters = a} :: Algorithm) Prelude.. Lens.mapping Lens.coerced++-- | Specifies the default maximum number of training jobs and parallel+-- training jobs.+algorithm_defaultResourceConfig :: Lens.Lens' Algorithm (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+algorithm_defaultResourceConfig = Lens.lens (\Algorithm' {defaultResourceConfig} -> defaultResourceConfig) (\s@Algorithm' {} a -> s {defaultResourceConfig = a} :: Algorithm) Prelude.. Lens.mapping Lens.coerced++-- | The date and time (in Unix time) that the algorithm was last updated.+algorithm_lastUpdatedDateTime :: Lens.Lens' Algorithm (Prelude.Maybe Prelude.UTCTime)+algorithm_lastUpdatedDateTime = Lens.lens (\Algorithm' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@Algorithm' {} a -> s {lastUpdatedDateTime = a} :: Algorithm) Prelude.. Lens.mapping Data._Time++-- | The name of the algorithm.+algorithm_name :: Lens.Lens' Algorithm (Prelude.Maybe Prelude.Text)+algorithm_name = Lens.lens (\Algorithm' {name} -> name) (\s@Algorithm' {} a -> s {name = a} :: Algorithm)++-- | The Amazon Resource Name (ARN) of the role.+algorithm_roleArn :: Lens.Lens' Algorithm (Prelude.Maybe Prelude.Text)+algorithm_roleArn = Lens.lens (\Algorithm' {roleArn} -> roleArn) (\s@Algorithm' {} a -> s {roleArn = a} :: Algorithm)++-- | The training input mode.+algorithm_trainingInputMode :: Lens.Lens' Algorithm (Prelude.Maybe Prelude.Text)+algorithm_trainingInputMode = Lens.lens (\Algorithm' {trainingInputMode} -> trainingInputMode) (\s@Algorithm' {} a -> s {trainingInputMode = a} :: Algorithm)++instance Data.FromJSON Algorithm where+  parseJSON =+    Data.withObject+      "Algorithm"+      ( \x ->+          Algorithm'+            Prelude.<$> (x Data..:? "algorithmArn")+            Prelude.<*> (x Data..:? "algorithmImage")+            Prelude.<*> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "defaultHyperParameterRanges")+            Prelude.<*> ( x+                            Data..:? "defaultHyperParameters"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "defaultResourceConfig"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "roleArn")+            Prelude.<*> (x Data..:? "trainingInputMode")+      )++instance Prelude.Hashable Algorithm where+  hashWithSalt _salt Algorithm' {..} =+    _salt+      `Prelude.hashWithSalt` algorithmArn+      `Prelude.hashWithSalt` algorithmImage+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` defaultHyperParameterRanges+      `Prelude.hashWithSalt` defaultHyperParameters+      `Prelude.hashWithSalt` defaultResourceConfig+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` trainingInputMode++instance Prelude.NFData Algorithm where+  rnf Algorithm' {..} =+    Prelude.rnf algorithmArn+      `Prelude.seq` Prelude.rnf algorithmImage+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf defaultHyperParameterRanges+      `Prelude.seq` Prelude.rnf defaultHyperParameters+      `Prelude.seq` Prelude.rnf defaultResourceConfig+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf trainingInputMode
+ gen/Amazonka/Personalize/Types/AlgorithmImage.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.Personalize.Types.AlgorithmImage+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.AlgorithmImage 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++-- | Describes an algorithm image.+--+-- /See:/ 'newAlgorithmImage' smart constructor.+data AlgorithmImage = AlgorithmImage'+  { -- | The name of the algorithm image.+    name :: Prelude.Maybe Prelude.Text,+    -- | The URI of the Docker container for the algorithm image.+    dockerURI :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AlgorithmImage' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'algorithmImage_name' - The name of the algorithm image.+--+-- 'dockerURI', 'algorithmImage_dockerURI' - The URI of the Docker container for the algorithm image.+newAlgorithmImage ::+  -- | 'dockerURI'+  Prelude.Text ->+  AlgorithmImage+newAlgorithmImage pDockerURI_ =+  AlgorithmImage'+    { name = Prelude.Nothing,+      dockerURI = pDockerURI_+    }++-- | The name of the algorithm image.+algorithmImage_name :: Lens.Lens' AlgorithmImage (Prelude.Maybe Prelude.Text)+algorithmImage_name = Lens.lens (\AlgorithmImage' {name} -> name) (\s@AlgorithmImage' {} a -> s {name = a} :: AlgorithmImage)++-- | The URI of the Docker container for the algorithm image.+algorithmImage_dockerURI :: Lens.Lens' AlgorithmImage Prelude.Text+algorithmImage_dockerURI = Lens.lens (\AlgorithmImage' {dockerURI} -> dockerURI) (\s@AlgorithmImage' {} a -> s {dockerURI = a} :: AlgorithmImage)++instance Data.FromJSON AlgorithmImage where+  parseJSON =+    Data.withObject+      "AlgorithmImage"+      ( \x ->+          AlgorithmImage'+            Prelude.<$> (x Data..:? "name")+            Prelude.<*> (x Data..: "dockerURI")+      )++instance Prelude.Hashable AlgorithmImage where+  hashWithSalt _salt AlgorithmImage' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` dockerURI++instance Prelude.NFData AlgorithmImage where+  rnf AlgorithmImage' {..} =+    Prelude.rnf name+      `Prelude.seq` Prelude.rnf dockerURI
+ gen/Amazonka/Personalize/Types/AutoMLConfig.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.Personalize.Types.AutoMLConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.AutoMLConfig 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++-- | When the solution performs AutoML (@performAutoML@ is true in+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateSolution.html CreateSolution>),+-- Amazon Personalize determines which recipe, from the specified list,+-- optimizes the given metric. Amazon Personalize then uses that recipe for+-- the solution.+--+-- /See:/ 'newAutoMLConfig' smart constructor.+data AutoMLConfig = AutoMLConfig'+  { -- | The metric to optimize.+    metricName :: Prelude.Maybe Prelude.Text,+    -- | The list of candidate recipes.+    recipeList :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AutoMLConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'metricName', 'autoMLConfig_metricName' - The metric to optimize.+--+-- 'recipeList', 'autoMLConfig_recipeList' - The list of candidate recipes.+newAutoMLConfig ::+  AutoMLConfig+newAutoMLConfig =+  AutoMLConfig'+    { metricName = Prelude.Nothing,+      recipeList = Prelude.Nothing+    }++-- | The metric to optimize.+autoMLConfig_metricName :: Lens.Lens' AutoMLConfig (Prelude.Maybe Prelude.Text)+autoMLConfig_metricName = Lens.lens (\AutoMLConfig' {metricName} -> metricName) (\s@AutoMLConfig' {} a -> s {metricName = a} :: AutoMLConfig)++-- | The list of candidate recipes.+autoMLConfig_recipeList :: Lens.Lens' AutoMLConfig (Prelude.Maybe [Prelude.Text])+autoMLConfig_recipeList = Lens.lens (\AutoMLConfig' {recipeList} -> recipeList) (\s@AutoMLConfig' {} a -> s {recipeList = a} :: AutoMLConfig) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON AutoMLConfig where+  parseJSON =+    Data.withObject+      "AutoMLConfig"+      ( \x ->+          AutoMLConfig'+            Prelude.<$> (x Data..:? "metricName")+            Prelude.<*> (x Data..:? "recipeList" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable AutoMLConfig where+  hashWithSalt _salt AutoMLConfig' {..} =+    _salt+      `Prelude.hashWithSalt` metricName+      `Prelude.hashWithSalt` recipeList++instance Prelude.NFData AutoMLConfig where+  rnf AutoMLConfig' {..} =+    Prelude.rnf metricName+      `Prelude.seq` Prelude.rnf recipeList++instance Data.ToJSON AutoMLConfig where+  toJSON AutoMLConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("metricName" Data..=) Prelude.<$> metricName,+            ("recipeList" Data..=) Prelude.<$> recipeList+          ]+      )
+ gen/Amazonka/Personalize/Types/AutoMLResult.hs view
@@ -0,0 +1,70 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.AutoMLResult+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.AutoMLResult 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++-- | When the solution performs AutoML (@performAutoML@ is true in+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateSolution.html CreateSolution>),+-- specifies the recipe that best optimized the specified metric.+--+-- /See:/ 'newAutoMLResult' smart constructor.+data AutoMLResult = AutoMLResult'+  { -- | The Amazon Resource Name (ARN) of the best recipe.+    bestRecipeArn :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AutoMLResult' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'bestRecipeArn', 'autoMLResult_bestRecipeArn' - The Amazon Resource Name (ARN) of the best recipe.+newAutoMLResult ::+  AutoMLResult+newAutoMLResult =+  AutoMLResult' {bestRecipeArn = Prelude.Nothing}++-- | The Amazon Resource Name (ARN) of the best recipe.+autoMLResult_bestRecipeArn :: Lens.Lens' AutoMLResult (Prelude.Maybe Prelude.Text)+autoMLResult_bestRecipeArn = Lens.lens (\AutoMLResult' {bestRecipeArn} -> bestRecipeArn) (\s@AutoMLResult' {} a -> s {bestRecipeArn = a} :: AutoMLResult)++instance Data.FromJSON AutoMLResult where+  parseJSON =+    Data.withObject+      "AutoMLResult"+      ( \x ->+          AutoMLResult'+            Prelude.<$> (x Data..:? "bestRecipeArn")+      )++instance Prelude.Hashable AutoMLResult where+  hashWithSalt _salt AutoMLResult' {..} =+    _salt `Prelude.hashWithSalt` bestRecipeArn++instance Prelude.NFData AutoMLResult where+  rnf AutoMLResult' {..} = Prelude.rnf bestRecipeArn
+ gen/Amazonka/Personalize/Types/BatchInferenceJob.hs view
@@ -0,0 +1,265 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.BatchInferenceJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.BatchInferenceJob where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types.BatchInferenceJobConfig+import Amazonka.Personalize.Types.BatchInferenceJobInput+import Amazonka.Personalize.Types.BatchInferenceJobOutput+import qualified Amazonka.Prelude as Prelude++-- | Contains information on a batch inference job.+--+-- /See:/ 'newBatchInferenceJob' smart constructor.+data BatchInferenceJob = BatchInferenceJob'+  { -- | The Amazon Resource Name (ARN) of the batch inference job.+    batchInferenceJobArn :: Prelude.Maybe Prelude.Text,+    -- | A string to string map of the configuration details of a batch inference+    -- job.+    batchInferenceJobConfig :: Prelude.Maybe BatchInferenceJobConfig,+    -- | The time at which the batch inference job was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | If the batch inference job failed, the reason for the failure.+    failureReason :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the filter used on the batch inference job.+    filterArn :: Prelude.Maybe Prelude.Text,+    -- | The Amazon S3 path that leads to the input data used to generate the+    -- batch inference job.+    jobInput :: Prelude.Maybe BatchInferenceJobInput,+    -- | The name of the batch inference job.+    jobName :: Prelude.Maybe Prelude.Text,+    -- | The Amazon S3 bucket that contains the output data generated by the+    -- batch inference job.+    jobOutput :: Prelude.Maybe BatchInferenceJobOutput,+    -- | The time at which the batch inference job was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The number of recommendations generated by the batch inference job. This+    -- number includes the error messages generated for failed input records.+    numResults :: Prelude.Maybe Prelude.Int,+    -- | The ARN of the Amazon Identity and Access Management (IAM) role that+    -- requested the batch inference job.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the solution version from which the+    -- batch inference job was created.+    solutionVersionArn :: Prelude.Maybe Prelude.Text,+    -- | The status of the batch inference job. The status is one of the+    -- following values:+    --+    -- -   PENDING+    --+    -- -   IN PROGRESS+    --+    -- -   ACTIVE+    --+    -- -   CREATE FAILED+    status :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchInferenceJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'batchInferenceJobArn', 'batchInferenceJob_batchInferenceJobArn' - The Amazon Resource Name (ARN) of the batch inference job.+--+-- 'batchInferenceJobConfig', 'batchInferenceJob_batchInferenceJobConfig' - A string to string map of the configuration details of a batch inference+-- job.+--+-- 'creationDateTime', 'batchInferenceJob_creationDateTime' - The time at which the batch inference job was created.+--+-- 'failureReason', 'batchInferenceJob_failureReason' - If the batch inference job failed, the reason for the failure.+--+-- 'filterArn', 'batchInferenceJob_filterArn' - The ARN of the filter used on the batch inference job.+--+-- 'jobInput', 'batchInferenceJob_jobInput' - The Amazon S3 path that leads to the input data used to generate the+-- batch inference job.+--+-- 'jobName', 'batchInferenceJob_jobName' - The name of the batch inference job.+--+-- 'jobOutput', 'batchInferenceJob_jobOutput' - The Amazon S3 bucket that contains the output data generated by the+-- batch inference job.+--+-- 'lastUpdatedDateTime', 'batchInferenceJob_lastUpdatedDateTime' - The time at which the batch inference job was last updated.+--+-- 'numResults', 'batchInferenceJob_numResults' - The number of recommendations generated by the batch inference job. This+-- number includes the error messages generated for failed input records.+--+-- 'roleArn', 'batchInferenceJob_roleArn' - The ARN of the Amazon Identity and Access Management (IAM) role that+-- requested the batch inference job.+--+-- 'solutionVersionArn', 'batchInferenceJob_solutionVersionArn' - The Amazon Resource Name (ARN) of the solution version from which the+-- batch inference job was created.+--+-- 'status', 'batchInferenceJob_status' - The status of the batch inference job. The status is one of the+-- following values:+--+-- -   PENDING+--+-- -   IN PROGRESS+--+-- -   ACTIVE+--+-- -   CREATE FAILED+newBatchInferenceJob ::+  BatchInferenceJob+newBatchInferenceJob =+  BatchInferenceJob'+    { batchInferenceJobArn =+        Prelude.Nothing,+      batchInferenceJobConfig = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      failureReason = Prelude.Nothing,+      filterArn = Prelude.Nothing,+      jobInput = Prelude.Nothing,+      jobName = Prelude.Nothing,+      jobOutput = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      numResults = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      solutionVersionArn = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the batch inference job.+batchInferenceJob_batchInferenceJobArn :: Lens.Lens' BatchInferenceJob (Prelude.Maybe Prelude.Text)+batchInferenceJob_batchInferenceJobArn = Lens.lens (\BatchInferenceJob' {batchInferenceJobArn} -> batchInferenceJobArn) (\s@BatchInferenceJob' {} a -> s {batchInferenceJobArn = a} :: BatchInferenceJob)++-- | A string to string map of the configuration details of a batch inference+-- job.+batchInferenceJob_batchInferenceJobConfig :: Lens.Lens' BatchInferenceJob (Prelude.Maybe BatchInferenceJobConfig)+batchInferenceJob_batchInferenceJobConfig = Lens.lens (\BatchInferenceJob' {batchInferenceJobConfig} -> batchInferenceJobConfig) (\s@BatchInferenceJob' {} a -> s {batchInferenceJobConfig = a} :: BatchInferenceJob)++-- | The time at which the batch inference job was created.+batchInferenceJob_creationDateTime :: Lens.Lens' BatchInferenceJob (Prelude.Maybe Prelude.UTCTime)+batchInferenceJob_creationDateTime = Lens.lens (\BatchInferenceJob' {creationDateTime} -> creationDateTime) (\s@BatchInferenceJob' {} a -> s {creationDateTime = a} :: BatchInferenceJob) Prelude.. Lens.mapping Data._Time++-- | If the batch inference job failed, the reason for the failure.+batchInferenceJob_failureReason :: Lens.Lens' BatchInferenceJob (Prelude.Maybe Prelude.Text)+batchInferenceJob_failureReason = Lens.lens (\BatchInferenceJob' {failureReason} -> failureReason) (\s@BatchInferenceJob' {} a -> s {failureReason = a} :: BatchInferenceJob)++-- | The ARN of the filter used on the batch inference job.+batchInferenceJob_filterArn :: Lens.Lens' BatchInferenceJob (Prelude.Maybe Prelude.Text)+batchInferenceJob_filterArn = Lens.lens (\BatchInferenceJob' {filterArn} -> filterArn) (\s@BatchInferenceJob' {} a -> s {filterArn = a} :: BatchInferenceJob)++-- | The Amazon S3 path that leads to the input data used to generate the+-- batch inference job.+batchInferenceJob_jobInput :: Lens.Lens' BatchInferenceJob (Prelude.Maybe BatchInferenceJobInput)+batchInferenceJob_jobInput = Lens.lens (\BatchInferenceJob' {jobInput} -> jobInput) (\s@BatchInferenceJob' {} a -> s {jobInput = a} :: BatchInferenceJob)++-- | The name of the batch inference job.+batchInferenceJob_jobName :: Lens.Lens' BatchInferenceJob (Prelude.Maybe Prelude.Text)+batchInferenceJob_jobName = Lens.lens (\BatchInferenceJob' {jobName} -> jobName) (\s@BatchInferenceJob' {} a -> s {jobName = a} :: BatchInferenceJob)++-- | The Amazon S3 bucket that contains the output data generated by the+-- batch inference job.+batchInferenceJob_jobOutput :: Lens.Lens' BatchInferenceJob (Prelude.Maybe BatchInferenceJobOutput)+batchInferenceJob_jobOutput = Lens.lens (\BatchInferenceJob' {jobOutput} -> jobOutput) (\s@BatchInferenceJob' {} a -> s {jobOutput = a} :: BatchInferenceJob)++-- | The time at which the batch inference job was last updated.+batchInferenceJob_lastUpdatedDateTime :: Lens.Lens' BatchInferenceJob (Prelude.Maybe Prelude.UTCTime)+batchInferenceJob_lastUpdatedDateTime = Lens.lens (\BatchInferenceJob' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@BatchInferenceJob' {} a -> s {lastUpdatedDateTime = a} :: BatchInferenceJob) Prelude.. Lens.mapping Data._Time++-- | The number of recommendations generated by the batch inference job. This+-- number includes the error messages generated for failed input records.+batchInferenceJob_numResults :: Lens.Lens' BatchInferenceJob (Prelude.Maybe Prelude.Int)+batchInferenceJob_numResults = Lens.lens (\BatchInferenceJob' {numResults} -> numResults) (\s@BatchInferenceJob' {} a -> s {numResults = a} :: BatchInferenceJob)++-- | The ARN of the Amazon Identity and Access Management (IAM) role that+-- requested the batch inference job.+batchInferenceJob_roleArn :: Lens.Lens' BatchInferenceJob (Prelude.Maybe Prelude.Text)+batchInferenceJob_roleArn = Lens.lens (\BatchInferenceJob' {roleArn} -> roleArn) (\s@BatchInferenceJob' {} a -> s {roleArn = a} :: BatchInferenceJob)++-- | The Amazon Resource Name (ARN) of the solution version from which the+-- batch inference job was created.+batchInferenceJob_solutionVersionArn :: Lens.Lens' BatchInferenceJob (Prelude.Maybe Prelude.Text)+batchInferenceJob_solutionVersionArn = Lens.lens (\BatchInferenceJob' {solutionVersionArn} -> solutionVersionArn) (\s@BatchInferenceJob' {} a -> s {solutionVersionArn = a} :: BatchInferenceJob)++-- | The status of the batch inference job. The status is one of the+-- following values:+--+-- -   PENDING+--+-- -   IN PROGRESS+--+-- -   ACTIVE+--+-- -   CREATE FAILED+batchInferenceJob_status :: Lens.Lens' BatchInferenceJob (Prelude.Maybe Prelude.Text)+batchInferenceJob_status = Lens.lens (\BatchInferenceJob' {status} -> status) (\s@BatchInferenceJob' {} a -> s {status = a} :: BatchInferenceJob)++instance Data.FromJSON BatchInferenceJob where+  parseJSON =+    Data.withObject+      "BatchInferenceJob"+      ( \x ->+          BatchInferenceJob'+            Prelude.<$> (x Data..:? "batchInferenceJobArn")+            Prelude.<*> (x Data..:? "batchInferenceJobConfig")+            Prelude.<*> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "failureReason")+            Prelude.<*> (x Data..:? "filterArn")+            Prelude.<*> (x Data..:? "jobInput")+            Prelude.<*> (x Data..:? "jobName")+            Prelude.<*> (x Data..:? "jobOutput")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "numResults")+            Prelude.<*> (x Data..:? "roleArn")+            Prelude.<*> (x Data..:? "solutionVersionArn")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable BatchInferenceJob where+  hashWithSalt _salt BatchInferenceJob' {..} =+    _salt+      `Prelude.hashWithSalt` batchInferenceJobArn+      `Prelude.hashWithSalt` batchInferenceJobConfig+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` failureReason+      `Prelude.hashWithSalt` filterArn+      `Prelude.hashWithSalt` jobInput+      `Prelude.hashWithSalt` jobName+      `Prelude.hashWithSalt` jobOutput+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` numResults+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` solutionVersionArn+      `Prelude.hashWithSalt` status++instance Prelude.NFData BatchInferenceJob where+  rnf BatchInferenceJob' {..} =+    Prelude.rnf batchInferenceJobArn+      `Prelude.seq` Prelude.rnf batchInferenceJobConfig+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf filterArn+      `Prelude.seq` Prelude.rnf jobInput+      `Prelude.seq` Prelude.rnf jobName+      `Prelude.seq` Prelude.rnf jobOutput+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf numResults+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf solutionVersionArn+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Personalize/Types/BatchInferenceJobConfig.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.Personalize.Types.BatchInferenceJobConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.BatchInferenceJobConfig 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 configuration details of a batch inference job.+--+-- /See:/ 'newBatchInferenceJobConfig' smart constructor.+data BatchInferenceJobConfig = BatchInferenceJobConfig'+  { -- | A string to string map specifying the exploration configuration+    -- hyperparameters, including @explorationWeight@ and+    -- @explorationItemAgeCutOff@, you want to use to configure the amount of+    -- item exploration Amazon Personalize uses when recommending items. See+    -- <https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-new-item-USER_PERSONALIZATION.html User-Personalization>.+    itemExplorationConfig :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchInferenceJobConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'itemExplorationConfig', 'batchInferenceJobConfig_itemExplorationConfig' - A string to string map specifying the exploration configuration+-- hyperparameters, including @explorationWeight@ and+-- @explorationItemAgeCutOff@, you want to use to configure the amount of+-- item exploration Amazon Personalize uses when recommending items. See+-- <https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-new-item-USER_PERSONALIZATION.html User-Personalization>.+newBatchInferenceJobConfig ::+  BatchInferenceJobConfig+newBatchInferenceJobConfig =+  BatchInferenceJobConfig'+    { itemExplorationConfig =+        Prelude.Nothing+    }++-- | A string to string map specifying the exploration configuration+-- hyperparameters, including @explorationWeight@ and+-- @explorationItemAgeCutOff@, you want to use to configure the amount of+-- item exploration Amazon Personalize uses when recommending items. See+-- <https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-new-item-USER_PERSONALIZATION.html User-Personalization>.+batchInferenceJobConfig_itemExplorationConfig :: Lens.Lens' BatchInferenceJobConfig (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+batchInferenceJobConfig_itemExplorationConfig = Lens.lens (\BatchInferenceJobConfig' {itemExplorationConfig} -> itemExplorationConfig) (\s@BatchInferenceJobConfig' {} a -> s {itemExplorationConfig = a} :: BatchInferenceJobConfig) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON BatchInferenceJobConfig where+  parseJSON =+    Data.withObject+      "BatchInferenceJobConfig"+      ( \x ->+          BatchInferenceJobConfig'+            Prelude.<$> ( x+                            Data..:? "itemExplorationConfig"+                            Data..!= Prelude.mempty+                        )+      )++instance Prelude.Hashable BatchInferenceJobConfig where+  hashWithSalt _salt BatchInferenceJobConfig' {..} =+    _salt `Prelude.hashWithSalt` itemExplorationConfig++instance Prelude.NFData BatchInferenceJobConfig where+  rnf BatchInferenceJobConfig' {..} =+    Prelude.rnf itemExplorationConfig++instance Data.ToJSON BatchInferenceJobConfig where+  toJSON BatchInferenceJobConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("itemExplorationConfig" Data..=)+              Prelude.<$> itemExplorationConfig+          ]+      )
+ gen/Amazonka/Personalize/Types/BatchInferenceJobInput.hs view
@@ -0,0 +1,88 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.BatchInferenceJobInput+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.BatchInferenceJobInput where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types.S3DataConfig+import qualified Amazonka.Prelude as Prelude++-- | The input configuration of a batch inference job.+--+-- /See:/ 'newBatchInferenceJobInput' smart constructor.+data BatchInferenceJobInput = BatchInferenceJobInput'+  { -- | The URI of the Amazon S3 location that contains your input data. The+    -- Amazon S3 bucket must be in the same region as the API endpoint you are+    -- calling.+    s3DataSource :: S3DataConfig+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchInferenceJobInput' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 's3DataSource', 'batchInferenceJobInput_s3DataSource' - The URI of the Amazon S3 location that contains your input data. The+-- Amazon S3 bucket must be in the same region as the API endpoint you are+-- calling.+newBatchInferenceJobInput ::+  -- | 's3DataSource'+  S3DataConfig ->+  BatchInferenceJobInput+newBatchInferenceJobInput pS3DataSource_ =+  BatchInferenceJobInput'+    { s3DataSource =+        pS3DataSource_+    }++-- | The URI of the Amazon S3 location that contains your input data. The+-- Amazon S3 bucket must be in the same region as the API endpoint you are+-- calling.+batchInferenceJobInput_s3DataSource :: Lens.Lens' BatchInferenceJobInput S3DataConfig+batchInferenceJobInput_s3DataSource = Lens.lens (\BatchInferenceJobInput' {s3DataSource} -> s3DataSource) (\s@BatchInferenceJobInput' {} a -> s {s3DataSource = a} :: BatchInferenceJobInput)++instance Data.FromJSON BatchInferenceJobInput where+  parseJSON =+    Data.withObject+      "BatchInferenceJobInput"+      ( \x ->+          BatchInferenceJobInput'+            Prelude.<$> (x Data..: "s3DataSource")+      )++instance Prelude.Hashable BatchInferenceJobInput where+  hashWithSalt _salt BatchInferenceJobInput' {..} =+    _salt `Prelude.hashWithSalt` s3DataSource++instance Prelude.NFData BatchInferenceJobInput where+  rnf BatchInferenceJobInput' {..} =+    Prelude.rnf s3DataSource++instance Data.ToJSON BatchInferenceJobInput where+  toJSON BatchInferenceJobInput' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("s3DataSource" Data..= s3DataSource)]+      )
+ gen/Amazonka/Personalize/Types/BatchInferenceJobOutput.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.Personalize.Types.BatchInferenceJobOutput+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.BatchInferenceJobOutput where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types.S3DataConfig+import qualified Amazonka.Prelude as Prelude++-- | The output configuration parameters of a batch inference job.+--+-- /See:/ 'newBatchInferenceJobOutput' smart constructor.+data BatchInferenceJobOutput = BatchInferenceJobOutput'+  { -- | Information on the Amazon S3 bucket in which the batch inference job\'s+    -- output is stored.+    s3DataDestination :: S3DataConfig+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchInferenceJobOutput' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 's3DataDestination', 'batchInferenceJobOutput_s3DataDestination' - Information on the Amazon S3 bucket in which the batch inference job\'s+-- output is stored.+newBatchInferenceJobOutput ::+  -- | 's3DataDestination'+  S3DataConfig ->+  BatchInferenceJobOutput+newBatchInferenceJobOutput pS3DataDestination_ =+  BatchInferenceJobOutput'+    { s3DataDestination =+        pS3DataDestination_+    }++-- | Information on the Amazon S3 bucket in which the batch inference job\'s+-- output is stored.+batchInferenceJobOutput_s3DataDestination :: Lens.Lens' BatchInferenceJobOutput S3DataConfig+batchInferenceJobOutput_s3DataDestination = Lens.lens (\BatchInferenceJobOutput' {s3DataDestination} -> s3DataDestination) (\s@BatchInferenceJobOutput' {} a -> s {s3DataDestination = a} :: BatchInferenceJobOutput)++instance Data.FromJSON BatchInferenceJobOutput where+  parseJSON =+    Data.withObject+      "BatchInferenceJobOutput"+      ( \x ->+          BatchInferenceJobOutput'+            Prelude.<$> (x Data..: "s3DataDestination")+      )++instance Prelude.Hashable BatchInferenceJobOutput where+  hashWithSalt _salt BatchInferenceJobOutput' {..} =+    _salt `Prelude.hashWithSalt` s3DataDestination++instance Prelude.NFData BatchInferenceJobOutput where+  rnf BatchInferenceJobOutput' {..} =+    Prelude.rnf s3DataDestination++instance Data.ToJSON BatchInferenceJobOutput where+  toJSON BatchInferenceJobOutput' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("s3DataDestination" Data..= s3DataDestination)+          ]+      )
+ gen/Amazonka/Personalize/Types/BatchInferenceJobSummary.hs view
@@ -0,0 +1,176 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.BatchInferenceJobSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.BatchInferenceJobSummary 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 truncated version of the+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_BatchInferenceJob.html BatchInferenceJob>.+-- The+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_ListBatchInferenceJobs.html ListBatchInferenceJobs>+-- operation returns a list of batch inference job summaries.+--+-- /See:/ 'newBatchInferenceJobSummary' smart constructor.+data BatchInferenceJobSummary = BatchInferenceJobSummary'+  { -- | The Amazon Resource Name (ARN) of the batch inference job.+    batchInferenceJobArn :: Prelude.Maybe Prelude.Text,+    -- | The time at which the batch inference job was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | If the batch inference job failed, the reason for the failure.+    failureReason :: Prelude.Maybe Prelude.Text,+    -- | The name of the batch inference job.+    jobName :: Prelude.Maybe Prelude.Text,+    -- | The time at which the batch inference job was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The ARN of the solution version used by the batch inference job.+    solutionVersionArn :: Prelude.Maybe Prelude.Text,+    -- | The status of the batch inference job. The status is one of the+    -- following values:+    --+    -- -   PENDING+    --+    -- -   IN PROGRESS+    --+    -- -   ACTIVE+    --+    -- -   CREATE FAILED+    status :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchInferenceJobSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'batchInferenceJobArn', 'batchInferenceJobSummary_batchInferenceJobArn' - The Amazon Resource Name (ARN) of the batch inference job.+--+-- 'creationDateTime', 'batchInferenceJobSummary_creationDateTime' - The time at which the batch inference job was created.+--+-- 'failureReason', 'batchInferenceJobSummary_failureReason' - If the batch inference job failed, the reason for the failure.+--+-- 'jobName', 'batchInferenceJobSummary_jobName' - The name of the batch inference job.+--+-- 'lastUpdatedDateTime', 'batchInferenceJobSummary_lastUpdatedDateTime' - The time at which the batch inference job was last updated.+--+-- 'solutionVersionArn', 'batchInferenceJobSummary_solutionVersionArn' - The ARN of the solution version used by the batch inference job.+--+-- 'status', 'batchInferenceJobSummary_status' - The status of the batch inference job. The status is one of the+-- following values:+--+-- -   PENDING+--+-- -   IN PROGRESS+--+-- -   ACTIVE+--+-- -   CREATE FAILED+newBatchInferenceJobSummary ::+  BatchInferenceJobSummary+newBatchInferenceJobSummary =+  BatchInferenceJobSummary'+    { batchInferenceJobArn =+        Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      failureReason = Prelude.Nothing,+      jobName = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      solutionVersionArn = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the batch inference job.+batchInferenceJobSummary_batchInferenceJobArn :: Lens.Lens' BatchInferenceJobSummary (Prelude.Maybe Prelude.Text)+batchInferenceJobSummary_batchInferenceJobArn = Lens.lens (\BatchInferenceJobSummary' {batchInferenceJobArn} -> batchInferenceJobArn) (\s@BatchInferenceJobSummary' {} a -> s {batchInferenceJobArn = a} :: BatchInferenceJobSummary)++-- | The time at which the batch inference job was created.+batchInferenceJobSummary_creationDateTime :: Lens.Lens' BatchInferenceJobSummary (Prelude.Maybe Prelude.UTCTime)+batchInferenceJobSummary_creationDateTime = Lens.lens (\BatchInferenceJobSummary' {creationDateTime} -> creationDateTime) (\s@BatchInferenceJobSummary' {} a -> s {creationDateTime = a} :: BatchInferenceJobSummary) Prelude.. Lens.mapping Data._Time++-- | If the batch inference job failed, the reason for the failure.+batchInferenceJobSummary_failureReason :: Lens.Lens' BatchInferenceJobSummary (Prelude.Maybe Prelude.Text)+batchInferenceJobSummary_failureReason = Lens.lens (\BatchInferenceJobSummary' {failureReason} -> failureReason) (\s@BatchInferenceJobSummary' {} a -> s {failureReason = a} :: BatchInferenceJobSummary)++-- | The name of the batch inference job.+batchInferenceJobSummary_jobName :: Lens.Lens' BatchInferenceJobSummary (Prelude.Maybe Prelude.Text)+batchInferenceJobSummary_jobName = Lens.lens (\BatchInferenceJobSummary' {jobName} -> jobName) (\s@BatchInferenceJobSummary' {} a -> s {jobName = a} :: BatchInferenceJobSummary)++-- | The time at which the batch inference job was last updated.+batchInferenceJobSummary_lastUpdatedDateTime :: Lens.Lens' BatchInferenceJobSummary (Prelude.Maybe Prelude.UTCTime)+batchInferenceJobSummary_lastUpdatedDateTime = Lens.lens (\BatchInferenceJobSummary' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@BatchInferenceJobSummary' {} a -> s {lastUpdatedDateTime = a} :: BatchInferenceJobSummary) Prelude.. Lens.mapping Data._Time++-- | The ARN of the solution version used by the batch inference job.+batchInferenceJobSummary_solutionVersionArn :: Lens.Lens' BatchInferenceJobSummary (Prelude.Maybe Prelude.Text)+batchInferenceJobSummary_solutionVersionArn = Lens.lens (\BatchInferenceJobSummary' {solutionVersionArn} -> solutionVersionArn) (\s@BatchInferenceJobSummary' {} a -> s {solutionVersionArn = a} :: BatchInferenceJobSummary)++-- | The status of the batch inference job. The status is one of the+-- following values:+--+-- -   PENDING+--+-- -   IN PROGRESS+--+-- -   ACTIVE+--+-- -   CREATE FAILED+batchInferenceJobSummary_status :: Lens.Lens' BatchInferenceJobSummary (Prelude.Maybe Prelude.Text)+batchInferenceJobSummary_status = Lens.lens (\BatchInferenceJobSummary' {status} -> status) (\s@BatchInferenceJobSummary' {} a -> s {status = a} :: BatchInferenceJobSummary)++instance Data.FromJSON BatchInferenceJobSummary where+  parseJSON =+    Data.withObject+      "BatchInferenceJobSummary"+      ( \x ->+          BatchInferenceJobSummary'+            Prelude.<$> (x Data..:? "batchInferenceJobArn")+            Prelude.<*> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "failureReason")+            Prelude.<*> (x Data..:? "jobName")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "solutionVersionArn")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable BatchInferenceJobSummary where+  hashWithSalt _salt BatchInferenceJobSummary' {..} =+    _salt+      `Prelude.hashWithSalt` batchInferenceJobArn+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` failureReason+      `Prelude.hashWithSalt` jobName+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` solutionVersionArn+      `Prelude.hashWithSalt` status++instance Prelude.NFData BatchInferenceJobSummary where+  rnf BatchInferenceJobSummary' {..} =+    Prelude.rnf batchInferenceJobArn+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf jobName+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf solutionVersionArn+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Personalize/Types/BatchSegmentJob.hs view
@@ -0,0 +1,249 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.BatchSegmentJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.BatchSegmentJob where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types.BatchSegmentJobInput+import Amazonka.Personalize.Types.BatchSegmentJobOutput+import qualified Amazonka.Prelude as Prelude++-- | Contains information on a batch segment job.+--+-- /See:/ 'newBatchSegmentJob' smart constructor.+data BatchSegmentJob = BatchSegmentJob'+  { -- | The Amazon Resource Name (ARN) of the batch segment job.+    batchSegmentJobArn :: Prelude.Maybe Prelude.Text,+    -- | The time at which the batch segment job was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | If the batch segment job failed, the reason for the failure.+    failureReason :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the filter used on the batch segment job.+    filterArn :: Prelude.Maybe Prelude.Text,+    -- | The Amazon S3 path that leads to the input data used to generate the+    -- batch segment job.+    jobInput :: Prelude.Maybe BatchSegmentJobInput,+    -- | The name of the batch segment job.+    jobName :: Prelude.Maybe Prelude.Text,+    -- | The Amazon S3 bucket that contains the output data generated by the+    -- batch segment job.+    jobOutput :: Prelude.Maybe BatchSegmentJobOutput,+    -- | The time at which the batch segment job last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The number of predicted users generated by the batch segment job for+    -- each line of input data.+    numResults :: Prelude.Maybe Prelude.Int,+    -- | The ARN of the Amazon Identity and Access Management (IAM) role that+    -- requested the batch segment job.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the solution version used by the batch+    -- segment job to generate batch segments.+    solutionVersionArn :: Prelude.Maybe Prelude.Text,+    -- | The status of the batch segment job. The status is one of the following+    -- values:+    --+    -- -   PENDING+    --+    -- -   IN PROGRESS+    --+    -- -   ACTIVE+    --+    -- -   CREATE FAILED+    status :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchSegmentJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'batchSegmentJobArn', 'batchSegmentJob_batchSegmentJobArn' - The Amazon Resource Name (ARN) of the batch segment job.+--+-- 'creationDateTime', 'batchSegmentJob_creationDateTime' - The time at which the batch segment job was created.+--+-- 'failureReason', 'batchSegmentJob_failureReason' - If the batch segment job failed, the reason for the failure.+--+-- 'filterArn', 'batchSegmentJob_filterArn' - The ARN of the filter used on the batch segment job.+--+-- 'jobInput', 'batchSegmentJob_jobInput' - The Amazon S3 path that leads to the input data used to generate the+-- batch segment job.+--+-- 'jobName', 'batchSegmentJob_jobName' - The name of the batch segment job.+--+-- 'jobOutput', 'batchSegmentJob_jobOutput' - The Amazon S3 bucket that contains the output data generated by the+-- batch segment job.+--+-- 'lastUpdatedDateTime', 'batchSegmentJob_lastUpdatedDateTime' - The time at which the batch segment job last updated.+--+-- 'numResults', 'batchSegmentJob_numResults' - The number of predicted users generated by the batch segment job for+-- each line of input data.+--+-- 'roleArn', 'batchSegmentJob_roleArn' - The ARN of the Amazon Identity and Access Management (IAM) role that+-- requested the batch segment job.+--+-- 'solutionVersionArn', 'batchSegmentJob_solutionVersionArn' - The Amazon Resource Name (ARN) of the solution version used by the batch+-- segment job to generate batch segments.+--+-- 'status', 'batchSegmentJob_status' - The status of the batch segment job. The status is one of the following+-- values:+--+-- -   PENDING+--+-- -   IN PROGRESS+--+-- -   ACTIVE+--+-- -   CREATE FAILED+newBatchSegmentJob ::+  BatchSegmentJob+newBatchSegmentJob =+  BatchSegmentJob'+    { batchSegmentJobArn =+        Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      failureReason = Prelude.Nothing,+      filterArn = Prelude.Nothing,+      jobInput = Prelude.Nothing,+      jobName = Prelude.Nothing,+      jobOutput = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      numResults = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      solutionVersionArn = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the batch segment job.+batchSegmentJob_batchSegmentJobArn :: Lens.Lens' BatchSegmentJob (Prelude.Maybe Prelude.Text)+batchSegmentJob_batchSegmentJobArn = Lens.lens (\BatchSegmentJob' {batchSegmentJobArn} -> batchSegmentJobArn) (\s@BatchSegmentJob' {} a -> s {batchSegmentJobArn = a} :: BatchSegmentJob)++-- | The time at which the batch segment job was created.+batchSegmentJob_creationDateTime :: Lens.Lens' BatchSegmentJob (Prelude.Maybe Prelude.UTCTime)+batchSegmentJob_creationDateTime = Lens.lens (\BatchSegmentJob' {creationDateTime} -> creationDateTime) (\s@BatchSegmentJob' {} a -> s {creationDateTime = a} :: BatchSegmentJob) Prelude.. Lens.mapping Data._Time++-- | If the batch segment job failed, the reason for the failure.+batchSegmentJob_failureReason :: Lens.Lens' BatchSegmentJob (Prelude.Maybe Prelude.Text)+batchSegmentJob_failureReason = Lens.lens (\BatchSegmentJob' {failureReason} -> failureReason) (\s@BatchSegmentJob' {} a -> s {failureReason = a} :: BatchSegmentJob)++-- | The ARN of the filter used on the batch segment job.+batchSegmentJob_filterArn :: Lens.Lens' BatchSegmentJob (Prelude.Maybe Prelude.Text)+batchSegmentJob_filterArn = Lens.lens (\BatchSegmentJob' {filterArn} -> filterArn) (\s@BatchSegmentJob' {} a -> s {filterArn = a} :: BatchSegmentJob)++-- | The Amazon S3 path that leads to the input data used to generate the+-- batch segment job.+batchSegmentJob_jobInput :: Lens.Lens' BatchSegmentJob (Prelude.Maybe BatchSegmentJobInput)+batchSegmentJob_jobInput = Lens.lens (\BatchSegmentJob' {jobInput} -> jobInput) (\s@BatchSegmentJob' {} a -> s {jobInput = a} :: BatchSegmentJob)++-- | The name of the batch segment job.+batchSegmentJob_jobName :: Lens.Lens' BatchSegmentJob (Prelude.Maybe Prelude.Text)+batchSegmentJob_jobName = Lens.lens (\BatchSegmentJob' {jobName} -> jobName) (\s@BatchSegmentJob' {} a -> s {jobName = a} :: BatchSegmentJob)++-- | The Amazon S3 bucket that contains the output data generated by the+-- batch segment job.+batchSegmentJob_jobOutput :: Lens.Lens' BatchSegmentJob (Prelude.Maybe BatchSegmentJobOutput)+batchSegmentJob_jobOutput = Lens.lens (\BatchSegmentJob' {jobOutput} -> jobOutput) (\s@BatchSegmentJob' {} a -> s {jobOutput = a} :: BatchSegmentJob)++-- | The time at which the batch segment job last updated.+batchSegmentJob_lastUpdatedDateTime :: Lens.Lens' BatchSegmentJob (Prelude.Maybe Prelude.UTCTime)+batchSegmentJob_lastUpdatedDateTime = Lens.lens (\BatchSegmentJob' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@BatchSegmentJob' {} a -> s {lastUpdatedDateTime = a} :: BatchSegmentJob) Prelude.. Lens.mapping Data._Time++-- | The number of predicted users generated by the batch segment job for+-- each line of input data.+batchSegmentJob_numResults :: Lens.Lens' BatchSegmentJob (Prelude.Maybe Prelude.Int)+batchSegmentJob_numResults = Lens.lens (\BatchSegmentJob' {numResults} -> numResults) (\s@BatchSegmentJob' {} a -> s {numResults = a} :: BatchSegmentJob)++-- | The ARN of the Amazon Identity and Access Management (IAM) role that+-- requested the batch segment job.+batchSegmentJob_roleArn :: Lens.Lens' BatchSegmentJob (Prelude.Maybe Prelude.Text)+batchSegmentJob_roleArn = Lens.lens (\BatchSegmentJob' {roleArn} -> roleArn) (\s@BatchSegmentJob' {} a -> s {roleArn = a} :: BatchSegmentJob)++-- | The Amazon Resource Name (ARN) of the solution version used by the batch+-- segment job to generate batch segments.+batchSegmentJob_solutionVersionArn :: Lens.Lens' BatchSegmentJob (Prelude.Maybe Prelude.Text)+batchSegmentJob_solutionVersionArn = Lens.lens (\BatchSegmentJob' {solutionVersionArn} -> solutionVersionArn) (\s@BatchSegmentJob' {} a -> s {solutionVersionArn = a} :: BatchSegmentJob)++-- | The status of the batch segment job. The status is one of the following+-- values:+--+-- -   PENDING+--+-- -   IN PROGRESS+--+-- -   ACTIVE+--+-- -   CREATE FAILED+batchSegmentJob_status :: Lens.Lens' BatchSegmentJob (Prelude.Maybe Prelude.Text)+batchSegmentJob_status = Lens.lens (\BatchSegmentJob' {status} -> status) (\s@BatchSegmentJob' {} a -> s {status = a} :: BatchSegmentJob)++instance Data.FromJSON BatchSegmentJob where+  parseJSON =+    Data.withObject+      "BatchSegmentJob"+      ( \x ->+          BatchSegmentJob'+            Prelude.<$> (x Data..:? "batchSegmentJobArn")+            Prelude.<*> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "failureReason")+            Prelude.<*> (x Data..:? "filterArn")+            Prelude.<*> (x Data..:? "jobInput")+            Prelude.<*> (x Data..:? "jobName")+            Prelude.<*> (x Data..:? "jobOutput")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "numResults")+            Prelude.<*> (x Data..:? "roleArn")+            Prelude.<*> (x Data..:? "solutionVersionArn")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable BatchSegmentJob where+  hashWithSalt _salt BatchSegmentJob' {..} =+    _salt+      `Prelude.hashWithSalt` batchSegmentJobArn+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` failureReason+      `Prelude.hashWithSalt` filterArn+      `Prelude.hashWithSalt` jobInput+      `Prelude.hashWithSalt` jobName+      `Prelude.hashWithSalt` jobOutput+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` numResults+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` solutionVersionArn+      `Prelude.hashWithSalt` status++instance Prelude.NFData BatchSegmentJob where+  rnf BatchSegmentJob' {..} =+    Prelude.rnf batchSegmentJobArn+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf filterArn+      `Prelude.seq` Prelude.rnf jobInput+      `Prelude.seq` Prelude.rnf jobName+      `Prelude.seq` Prelude.rnf jobOutput+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf numResults+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf solutionVersionArn+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Personalize/Types/BatchSegmentJobInput.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.BatchSegmentJobInput+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.BatchSegmentJobInput where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types.S3DataConfig+import qualified Amazonka.Prelude as Prelude++-- | The input configuration of a batch segment job.+--+-- /See:/ 'newBatchSegmentJobInput' smart constructor.+data BatchSegmentJobInput = BatchSegmentJobInput'+  { s3DataSource :: S3DataConfig+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchSegmentJobInput' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 's3DataSource', 'batchSegmentJobInput_s3DataSource' - Undocumented member.+newBatchSegmentJobInput ::+  -- | 's3DataSource'+  S3DataConfig ->+  BatchSegmentJobInput+newBatchSegmentJobInput pS3DataSource_ =+  BatchSegmentJobInput'+    { s3DataSource =+        pS3DataSource_+    }++-- | Undocumented member.+batchSegmentJobInput_s3DataSource :: Lens.Lens' BatchSegmentJobInput S3DataConfig+batchSegmentJobInput_s3DataSource = Lens.lens (\BatchSegmentJobInput' {s3DataSource} -> s3DataSource) (\s@BatchSegmentJobInput' {} a -> s {s3DataSource = a} :: BatchSegmentJobInput)++instance Data.FromJSON BatchSegmentJobInput where+  parseJSON =+    Data.withObject+      "BatchSegmentJobInput"+      ( \x ->+          BatchSegmentJobInput'+            Prelude.<$> (x Data..: "s3DataSource")+      )++instance Prelude.Hashable BatchSegmentJobInput where+  hashWithSalt _salt BatchSegmentJobInput' {..} =+    _salt `Prelude.hashWithSalt` s3DataSource++instance Prelude.NFData BatchSegmentJobInput where+  rnf BatchSegmentJobInput' {..} =+    Prelude.rnf s3DataSource++instance Data.ToJSON BatchSegmentJobInput where+  toJSON BatchSegmentJobInput' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("s3DataSource" Data..= s3DataSource)]+      )
+ gen/Amazonka/Personalize/Types/BatchSegmentJobOutput.hs view
@@ -0,0 +1,83 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.BatchSegmentJobOutput+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.BatchSegmentJobOutput where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types.S3DataConfig+import qualified Amazonka.Prelude as Prelude++-- | The output configuration parameters of a batch segment job.+--+-- /See:/ 'newBatchSegmentJobOutput' smart constructor.+data BatchSegmentJobOutput = BatchSegmentJobOutput'+  { s3DataDestination :: S3DataConfig+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchSegmentJobOutput' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 's3DataDestination', 'batchSegmentJobOutput_s3DataDestination' - Undocumented member.+newBatchSegmentJobOutput ::+  -- | 's3DataDestination'+  S3DataConfig ->+  BatchSegmentJobOutput+newBatchSegmentJobOutput pS3DataDestination_ =+  BatchSegmentJobOutput'+    { s3DataDestination =+        pS3DataDestination_+    }++-- | Undocumented member.+batchSegmentJobOutput_s3DataDestination :: Lens.Lens' BatchSegmentJobOutput S3DataConfig+batchSegmentJobOutput_s3DataDestination = Lens.lens (\BatchSegmentJobOutput' {s3DataDestination} -> s3DataDestination) (\s@BatchSegmentJobOutput' {} a -> s {s3DataDestination = a} :: BatchSegmentJobOutput)++instance Data.FromJSON BatchSegmentJobOutput where+  parseJSON =+    Data.withObject+      "BatchSegmentJobOutput"+      ( \x ->+          BatchSegmentJobOutput'+            Prelude.<$> (x Data..: "s3DataDestination")+      )++instance Prelude.Hashable BatchSegmentJobOutput where+  hashWithSalt _salt BatchSegmentJobOutput' {..} =+    _salt `Prelude.hashWithSalt` s3DataDestination++instance Prelude.NFData BatchSegmentJobOutput where+  rnf BatchSegmentJobOutput' {..} =+    Prelude.rnf s3DataDestination++instance Data.ToJSON BatchSegmentJobOutput where+  toJSON BatchSegmentJobOutput' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("s3DataDestination" Data..= s3DataDestination)+          ]+      )
+ gen/Amazonka/Personalize/Types/BatchSegmentJobSummary.hs view
@@ -0,0 +1,179 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.BatchSegmentJobSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.BatchSegmentJobSummary 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 truncated version of the+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_BatchSegmentJob.html BatchSegmentJob>+-- datatype.+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_ListBatchSegmentJobs.html ListBatchSegmentJobs>+-- operation returns a list of batch segment job summaries.+--+-- /See:/ 'newBatchSegmentJobSummary' smart constructor.+data BatchSegmentJobSummary = BatchSegmentJobSummary'+  { -- | The Amazon Resource Name (ARN) of the batch segment job.+    batchSegmentJobArn :: Prelude.Maybe Prelude.Text,+    -- | The time at which the batch segment job was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | If the batch segment job failed, the reason for the failure.+    failureReason :: Prelude.Maybe Prelude.Text,+    -- | The name of the batch segment job.+    jobName :: Prelude.Maybe Prelude.Text,+    -- | The time at which the batch segment job was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) of the solution version used by the batch+    -- segment job to generate batch segments.+    solutionVersionArn :: Prelude.Maybe Prelude.Text,+    -- | The status of the batch segment job. The status is one of the following+    -- values:+    --+    -- -   PENDING+    --+    -- -   IN PROGRESS+    --+    -- -   ACTIVE+    --+    -- -   CREATE FAILED+    status :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchSegmentJobSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'batchSegmentJobArn', 'batchSegmentJobSummary_batchSegmentJobArn' - The Amazon Resource Name (ARN) of the batch segment job.+--+-- 'creationDateTime', 'batchSegmentJobSummary_creationDateTime' - The time at which the batch segment job was created.+--+-- 'failureReason', 'batchSegmentJobSummary_failureReason' - If the batch segment job failed, the reason for the failure.+--+-- 'jobName', 'batchSegmentJobSummary_jobName' - The name of the batch segment job.+--+-- 'lastUpdatedDateTime', 'batchSegmentJobSummary_lastUpdatedDateTime' - The time at which the batch segment job was last updated.+--+-- 'solutionVersionArn', 'batchSegmentJobSummary_solutionVersionArn' - The Amazon Resource Name (ARN) of the solution version used by the batch+-- segment job to generate batch segments.+--+-- 'status', 'batchSegmentJobSummary_status' - The status of the batch segment job. The status is one of the following+-- values:+--+-- -   PENDING+--+-- -   IN PROGRESS+--+-- -   ACTIVE+--+-- -   CREATE FAILED+newBatchSegmentJobSummary ::+  BatchSegmentJobSummary+newBatchSegmentJobSummary =+  BatchSegmentJobSummary'+    { batchSegmentJobArn =+        Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      failureReason = Prelude.Nothing,+      jobName = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      solutionVersionArn = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the batch segment job.+batchSegmentJobSummary_batchSegmentJobArn :: Lens.Lens' BatchSegmentJobSummary (Prelude.Maybe Prelude.Text)+batchSegmentJobSummary_batchSegmentJobArn = Lens.lens (\BatchSegmentJobSummary' {batchSegmentJobArn} -> batchSegmentJobArn) (\s@BatchSegmentJobSummary' {} a -> s {batchSegmentJobArn = a} :: BatchSegmentJobSummary)++-- | The time at which the batch segment job was created.+batchSegmentJobSummary_creationDateTime :: Lens.Lens' BatchSegmentJobSummary (Prelude.Maybe Prelude.UTCTime)+batchSegmentJobSummary_creationDateTime = Lens.lens (\BatchSegmentJobSummary' {creationDateTime} -> creationDateTime) (\s@BatchSegmentJobSummary' {} a -> s {creationDateTime = a} :: BatchSegmentJobSummary) Prelude.. Lens.mapping Data._Time++-- | If the batch segment job failed, the reason for the failure.+batchSegmentJobSummary_failureReason :: Lens.Lens' BatchSegmentJobSummary (Prelude.Maybe Prelude.Text)+batchSegmentJobSummary_failureReason = Lens.lens (\BatchSegmentJobSummary' {failureReason} -> failureReason) (\s@BatchSegmentJobSummary' {} a -> s {failureReason = a} :: BatchSegmentJobSummary)++-- | The name of the batch segment job.+batchSegmentJobSummary_jobName :: Lens.Lens' BatchSegmentJobSummary (Prelude.Maybe Prelude.Text)+batchSegmentJobSummary_jobName = Lens.lens (\BatchSegmentJobSummary' {jobName} -> jobName) (\s@BatchSegmentJobSummary' {} a -> s {jobName = a} :: BatchSegmentJobSummary)++-- | The time at which the batch segment job was last updated.+batchSegmentJobSummary_lastUpdatedDateTime :: Lens.Lens' BatchSegmentJobSummary (Prelude.Maybe Prelude.UTCTime)+batchSegmentJobSummary_lastUpdatedDateTime = Lens.lens (\BatchSegmentJobSummary' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@BatchSegmentJobSummary' {} a -> s {lastUpdatedDateTime = a} :: BatchSegmentJobSummary) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the solution version used by the batch+-- segment job to generate batch segments.+batchSegmentJobSummary_solutionVersionArn :: Lens.Lens' BatchSegmentJobSummary (Prelude.Maybe Prelude.Text)+batchSegmentJobSummary_solutionVersionArn = Lens.lens (\BatchSegmentJobSummary' {solutionVersionArn} -> solutionVersionArn) (\s@BatchSegmentJobSummary' {} a -> s {solutionVersionArn = a} :: BatchSegmentJobSummary)++-- | The status of the batch segment job. The status is one of the following+-- values:+--+-- -   PENDING+--+-- -   IN PROGRESS+--+-- -   ACTIVE+--+-- -   CREATE FAILED+batchSegmentJobSummary_status :: Lens.Lens' BatchSegmentJobSummary (Prelude.Maybe Prelude.Text)+batchSegmentJobSummary_status = Lens.lens (\BatchSegmentJobSummary' {status} -> status) (\s@BatchSegmentJobSummary' {} a -> s {status = a} :: BatchSegmentJobSummary)++instance Data.FromJSON BatchSegmentJobSummary where+  parseJSON =+    Data.withObject+      "BatchSegmentJobSummary"+      ( \x ->+          BatchSegmentJobSummary'+            Prelude.<$> (x Data..:? "batchSegmentJobArn")+            Prelude.<*> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "failureReason")+            Prelude.<*> (x Data..:? "jobName")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "solutionVersionArn")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable BatchSegmentJobSummary where+  hashWithSalt _salt BatchSegmentJobSummary' {..} =+    _salt+      `Prelude.hashWithSalt` batchSegmentJobArn+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` failureReason+      `Prelude.hashWithSalt` jobName+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` solutionVersionArn+      `Prelude.hashWithSalt` status++instance Prelude.NFData BatchSegmentJobSummary where+  rnf BatchSegmentJobSummary' {..} =+    Prelude.rnf batchSegmentJobArn+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf jobName+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf solutionVersionArn+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Personalize/Types/Campaign.hs view
@@ -0,0 +1,204 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.Campaign+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.Campaign where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types.CampaignConfig+import Amazonka.Personalize.Types.CampaignUpdateSummary+import qualified Amazonka.Prelude as Prelude++-- | An object that describes the deployment of a solution version. For more+-- information on campaigns, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateCampaign.html CreateCampaign>.+--+-- /See:/ 'newCampaign' smart constructor.+data Campaign = Campaign'+  { -- | The Amazon Resource Name (ARN) of the campaign.+    campaignArn :: Prelude.Maybe Prelude.Text,+    -- | The configuration details of a campaign.+    campaignConfig :: Prelude.Maybe CampaignConfig,+    -- | The date and time (in Unix format) that the campaign was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | If a campaign fails, the reason behind the failure.+    failureReason :: Prelude.Maybe Prelude.Text,+    -- | The date and time (in Unix format) that the campaign was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    latestCampaignUpdate :: Prelude.Maybe CampaignUpdateSummary,+    -- | Specifies the requested minimum provisioned transactions+    -- (recommendations) per second.+    minProvisionedTPS :: Prelude.Maybe Prelude.Natural,+    -- | The name of the campaign.+    name :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of a specific version of the solution.+    solutionVersionArn :: Prelude.Maybe Prelude.Text,+    -- | The status of the campaign.+    --+    -- A campaign can be in one of the following states:+    --+    -- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+    --+    -- -   DELETE PENDING > DELETE IN_PROGRESS+    status :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Campaign' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'campaignArn', 'campaign_campaignArn' - The Amazon Resource Name (ARN) of the campaign.+--+-- 'campaignConfig', 'campaign_campaignConfig' - The configuration details of a campaign.+--+-- 'creationDateTime', 'campaign_creationDateTime' - The date and time (in Unix format) that the campaign was created.+--+-- 'failureReason', 'campaign_failureReason' - If a campaign fails, the reason behind the failure.+--+-- 'lastUpdatedDateTime', 'campaign_lastUpdatedDateTime' - The date and time (in Unix format) that the campaign was last updated.+--+-- 'latestCampaignUpdate', 'campaign_latestCampaignUpdate' - Undocumented member.+--+-- 'minProvisionedTPS', 'campaign_minProvisionedTPS' - Specifies the requested minimum provisioned transactions+-- (recommendations) per second.+--+-- 'name', 'campaign_name' - The name of the campaign.+--+-- 'solutionVersionArn', 'campaign_solutionVersionArn' - The Amazon Resource Name (ARN) of a specific version of the solution.+--+-- 'status', 'campaign_status' - The status of the campaign.+--+-- A campaign can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   DELETE PENDING > DELETE IN_PROGRESS+newCampaign ::+  Campaign+newCampaign =+  Campaign'+    { campaignArn = Prelude.Nothing,+      campaignConfig = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      failureReason = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      latestCampaignUpdate = Prelude.Nothing,+      minProvisionedTPS = Prelude.Nothing,+      name = Prelude.Nothing,+      solutionVersionArn = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the campaign.+campaign_campaignArn :: Lens.Lens' Campaign (Prelude.Maybe Prelude.Text)+campaign_campaignArn = Lens.lens (\Campaign' {campaignArn} -> campaignArn) (\s@Campaign' {} a -> s {campaignArn = a} :: Campaign)++-- | The configuration details of a campaign.+campaign_campaignConfig :: Lens.Lens' Campaign (Prelude.Maybe CampaignConfig)+campaign_campaignConfig = Lens.lens (\Campaign' {campaignConfig} -> campaignConfig) (\s@Campaign' {} a -> s {campaignConfig = a} :: Campaign)++-- | The date and time (in Unix format) that the campaign was created.+campaign_creationDateTime :: Lens.Lens' Campaign (Prelude.Maybe Prelude.UTCTime)+campaign_creationDateTime = Lens.lens (\Campaign' {creationDateTime} -> creationDateTime) (\s@Campaign' {} a -> s {creationDateTime = a} :: Campaign) Prelude.. Lens.mapping Data._Time++-- | If a campaign fails, the reason behind the failure.+campaign_failureReason :: Lens.Lens' Campaign (Prelude.Maybe Prelude.Text)+campaign_failureReason = Lens.lens (\Campaign' {failureReason} -> failureReason) (\s@Campaign' {} a -> s {failureReason = a} :: Campaign)++-- | The date and time (in Unix format) that the campaign was last updated.+campaign_lastUpdatedDateTime :: Lens.Lens' Campaign (Prelude.Maybe Prelude.UTCTime)+campaign_lastUpdatedDateTime = Lens.lens (\Campaign' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@Campaign' {} a -> s {lastUpdatedDateTime = a} :: Campaign) Prelude.. Lens.mapping Data._Time++-- | Undocumented member.+campaign_latestCampaignUpdate :: Lens.Lens' Campaign (Prelude.Maybe CampaignUpdateSummary)+campaign_latestCampaignUpdate = Lens.lens (\Campaign' {latestCampaignUpdate} -> latestCampaignUpdate) (\s@Campaign' {} a -> s {latestCampaignUpdate = a} :: Campaign)++-- | Specifies the requested minimum provisioned transactions+-- (recommendations) per second.+campaign_minProvisionedTPS :: Lens.Lens' Campaign (Prelude.Maybe Prelude.Natural)+campaign_minProvisionedTPS = Lens.lens (\Campaign' {minProvisionedTPS} -> minProvisionedTPS) (\s@Campaign' {} a -> s {minProvisionedTPS = a} :: Campaign)++-- | The name of the campaign.+campaign_name :: Lens.Lens' Campaign (Prelude.Maybe Prelude.Text)+campaign_name = Lens.lens (\Campaign' {name} -> name) (\s@Campaign' {} a -> s {name = a} :: Campaign)++-- | The Amazon Resource Name (ARN) of a specific version of the solution.+campaign_solutionVersionArn :: Lens.Lens' Campaign (Prelude.Maybe Prelude.Text)+campaign_solutionVersionArn = Lens.lens (\Campaign' {solutionVersionArn} -> solutionVersionArn) (\s@Campaign' {} a -> s {solutionVersionArn = a} :: Campaign)++-- | The status of the campaign.+--+-- A campaign can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   DELETE PENDING > DELETE IN_PROGRESS+campaign_status :: Lens.Lens' Campaign (Prelude.Maybe Prelude.Text)+campaign_status = Lens.lens (\Campaign' {status} -> status) (\s@Campaign' {} a -> s {status = a} :: Campaign)++instance Data.FromJSON Campaign where+  parseJSON =+    Data.withObject+      "Campaign"+      ( \x ->+          Campaign'+            Prelude.<$> (x Data..:? "campaignArn")+            Prelude.<*> (x Data..:? "campaignConfig")+            Prelude.<*> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "failureReason")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "latestCampaignUpdate")+            Prelude.<*> (x Data..:? "minProvisionedTPS")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "solutionVersionArn")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable Campaign where+  hashWithSalt _salt Campaign' {..} =+    _salt+      `Prelude.hashWithSalt` campaignArn+      `Prelude.hashWithSalt` campaignConfig+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` failureReason+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` latestCampaignUpdate+      `Prelude.hashWithSalt` minProvisionedTPS+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` solutionVersionArn+      `Prelude.hashWithSalt` status++instance Prelude.NFData Campaign where+  rnf Campaign' {..} =+    Prelude.rnf campaignArn+      `Prelude.seq` Prelude.rnf campaignConfig+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf latestCampaignUpdate+      `Prelude.seq` Prelude.rnf minProvisionedTPS+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf solutionVersionArn+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Personalize/Types/CampaignConfig.hs view
@@ -0,0 +1,102 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.CampaignConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.CampaignConfig 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 configuration details of a campaign.+--+-- /See:/ 'newCampaignConfig' smart constructor.+data CampaignConfig = CampaignConfig'+  { -- | Specifies the exploration configuration hyperparameters, including+    -- @explorationWeight@ and @explorationItemAgeCutOff@, you want to use to+    -- configure the amount of item exploration Amazon Personalize uses when+    -- recommending items. Provide @itemExplorationConfig@ data only if your+    -- solution uses the+    -- <https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-new-item-USER_PERSONALIZATION.html User-Personalization>+    -- recipe.+    itemExplorationConfig :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CampaignConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'itemExplorationConfig', 'campaignConfig_itemExplorationConfig' - Specifies the exploration configuration hyperparameters, including+-- @explorationWeight@ and @explorationItemAgeCutOff@, you want to use to+-- configure the amount of item exploration Amazon Personalize uses when+-- recommending items. Provide @itemExplorationConfig@ data only if your+-- solution uses the+-- <https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-new-item-USER_PERSONALIZATION.html User-Personalization>+-- recipe.+newCampaignConfig ::+  CampaignConfig+newCampaignConfig =+  CampaignConfig'+    { itemExplorationConfig =+        Prelude.Nothing+    }++-- | Specifies the exploration configuration hyperparameters, including+-- @explorationWeight@ and @explorationItemAgeCutOff@, you want to use to+-- configure the amount of item exploration Amazon Personalize uses when+-- recommending items. Provide @itemExplorationConfig@ data only if your+-- solution uses the+-- <https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-new-item-USER_PERSONALIZATION.html User-Personalization>+-- recipe.+campaignConfig_itemExplorationConfig :: Lens.Lens' CampaignConfig (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+campaignConfig_itemExplorationConfig = Lens.lens (\CampaignConfig' {itemExplorationConfig} -> itemExplorationConfig) (\s@CampaignConfig' {} a -> s {itemExplorationConfig = a} :: CampaignConfig) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON CampaignConfig where+  parseJSON =+    Data.withObject+      "CampaignConfig"+      ( \x ->+          CampaignConfig'+            Prelude.<$> ( x+                            Data..:? "itemExplorationConfig"+                            Data..!= Prelude.mempty+                        )+      )++instance Prelude.Hashable CampaignConfig where+  hashWithSalt _salt CampaignConfig' {..} =+    _salt `Prelude.hashWithSalt` itemExplorationConfig++instance Prelude.NFData CampaignConfig where+  rnf CampaignConfig' {..} =+    Prelude.rnf itemExplorationConfig++instance Data.ToJSON CampaignConfig where+  toJSON CampaignConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("itemExplorationConfig" Data..=)+              Prelude.<$> itemExplorationConfig+          ]+      )
+ gen/Amazonka/Personalize/Types/CampaignSummary.hs view
@@ -0,0 +1,153 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.CampaignSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.CampaignSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides a summary of the properties of a campaign. For a complete+-- listing, call the+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeCampaign.html DescribeCampaign>+-- API.+--+-- /See:/ 'newCampaignSummary' smart constructor.+data CampaignSummary = CampaignSummary'+  { -- | The Amazon Resource Name (ARN) of the campaign.+    campaignArn :: Prelude.Maybe Prelude.Text,+    -- | The date and time (in Unix time) that the campaign was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | If a campaign fails, the reason behind the failure.+    failureReason :: Prelude.Maybe Prelude.Text,+    -- | The date and time (in Unix time) that the campaign was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The name of the campaign.+    name :: Prelude.Maybe Prelude.Text,+    -- | The status of the campaign.+    --+    -- A campaign can be in one of the following states:+    --+    -- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+    --+    -- -   DELETE PENDING > DELETE IN_PROGRESS+    status :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CampaignSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'campaignArn', 'campaignSummary_campaignArn' - The Amazon Resource Name (ARN) of the campaign.+--+-- 'creationDateTime', 'campaignSummary_creationDateTime' - The date and time (in Unix time) that the campaign was created.+--+-- 'failureReason', 'campaignSummary_failureReason' - If a campaign fails, the reason behind the failure.+--+-- 'lastUpdatedDateTime', 'campaignSummary_lastUpdatedDateTime' - The date and time (in Unix time) that the campaign was last updated.+--+-- 'name', 'campaignSummary_name' - The name of the campaign.+--+-- 'status', 'campaignSummary_status' - The status of the campaign.+--+-- A campaign can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   DELETE PENDING > DELETE IN_PROGRESS+newCampaignSummary ::+  CampaignSummary+newCampaignSummary =+  CampaignSummary'+    { campaignArn = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      failureReason = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      name = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the campaign.+campaignSummary_campaignArn :: Lens.Lens' CampaignSummary (Prelude.Maybe Prelude.Text)+campaignSummary_campaignArn = Lens.lens (\CampaignSummary' {campaignArn} -> campaignArn) (\s@CampaignSummary' {} a -> s {campaignArn = a} :: CampaignSummary)++-- | The date and time (in Unix time) that the campaign was created.+campaignSummary_creationDateTime :: Lens.Lens' CampaignSummary (Prelude.Maybe Prelude.UTCTime)+campaignSummary_creationDateTime = Lens.lens (\CampaignSummary' {creationDateTime} -> creationDateTime) (\s@CampaignSummary' {} a -> s {creationDateTime = a} :: CampaignSummary) Prelude.. Lens.mapping Data._Time++-- | If a campaign fails, the reason behind the failure.+campaignSummary_failureReason :: Lens.Lens' CampaignSummary (Prelude.Maybe Prelude.Text)+campaignSummary_failureReason = Lens.lens (\CampaignSummary' {failureReason} -> failureReason) (\s@CampaignSummary' {} a -> s {failureReason = a} :: CampaignSummary)++-- | The date and time (in Unix time) that the campaign was last updated.+campaignSummary_lastUpdatedDateTime :: Lens.Lens' CampaignSummary (Prelude.Maybe Prelude.UTCTime)+campaignSummary_lastUpdatedDateTime = Lens.lens (\CampaignSummary' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@CampaignSummary' {} a -> s {lastUpdatedDateTime = a} :: CampaignSummary) Prelude.. Lens.mapping Data._Time++-- | The name of the campaign.+campaignSummary_name :: Lens.Lens' CampaignSummary (Prelude.Maybe Prelude.Text)+campaignSummary_name = Lens.lens (\CampaignSummary' {name} -> name) (\s@CampaignSummary' {} a -> s {name = a} :: CampaignSummary)++-- | The status of the campaign.+--+-- A campaign can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   DELETE PENDING > DELETE IN_PROGRESS+campaignSummary_status :: Lens.Lens' CampaignSummary (Prelude.Maybe Prelude.Text)+campaignSummary_status = Lens.lens (\CampaignSummary' {status} -> status) (\s@CampaignSummary' {} a -> s {status = a} :: CampaignSummary)++instance Data.FromJSON CampaignSummary where+  parseJSON =+    Data.withObject+      "CampaignSummary"+      ( \x ->+          CampaignSummary'+            Prelude.<$> (x Data..:? "campaignArn")+            Prelude.<*> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "failureReason")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable CampaignSummary where+  hashWithSalt _salt CampaignSummary' {..} =+    _salt+      `Prelude.hashWithSalt` campaignArn+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` failureReason+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` status++instance Prelude.NFData CampaignSummary where+  rnf CampaignSummary' {..} =+    Prelude.rnf campaignArn+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Personalize/Types/CampaignUpdateSummary.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.Personalize.Types.CampaignUpdateSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.CampaignUpdateSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types.CampaignConfig+import qualified Amazonka.Prelude as Prelude++-- | Provides a summary of the properties of a campaign update. For a+-- complete listing, call the+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeCampaign.html DescribeCampaign>+-- API.+--+-- /See:/ 'newCampaignUpdateSummary' smart constructor.+data CampaignUpdateSummary = CampaignUpdateSummary'+  { campaignConfig :: Prelude.Maybe CampaignConfig,+    -- | The date and time (in Unix time) that the campaign update was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | If a campaign update fails, the reason behind the failure.+    failureReason :: Prelude.Maybe Prelude.Text,+    -- | The date and time (in Unix time) that the campaign update was last+    -- updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | Specifies the requested minimum provisioned transactions+    -- (recommendations) per second that Amazon Personalize will support.+    minProvisionedTPS :: Prelude.Maybe Prelude.Natural,+    -- | The Amazon Resource Name (ARN) of the deployed solution version.+    solutionVersionArn :: Prelude.Maybe Prelude.Text,+    -- | The status of the campaign update.+    --+    -- A campaign update can be in one of the following states:+    --+    -- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+    --+    -- -   DELETE PENDING > DELETE IN_PROGRESS+    status :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CampaignUpdateSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'campaignConfig', 'campaignUpdateSummary_campaignConfig' - Undocumented member.+--+-- 'creationDateTime', 'campaignUpdateSummary_creationDateTime' - The date and time (in Unix time) that the campaign update was created.+--+-- 'failureReason', 'campaignUpdateSummary_failureReason' - If a campaign update fails, the reason behind the failure.+--+-- 'lastUpdatedDateTime', 'campaignUpdateSummary_lastUpdatedDateTime' - The date and time (in Unix time) that the campaign update was last+-- updated.+--+-- 'minProvisionedTPS', 'campaignUpdateSummary_minProvisionedTPS' - Specifies the requested minimum provisioned transactions+-- (recommendations) per second that Amazon Personalize will support.+--+-- 'solutionVersionArn', 'campaignUpdateSummary_solutionVersionArn' - The Amazon Resource Name (ARN) of the deployed solution version.+--+-- 'status', 'campaignUpdateSummary_status' - The status of the campaign update.+--+-- A campaign update can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   DELETE PENDING > DELETE IN_PROGRESS+newCampaignUpdateSummary ::+  CampaignUpdateSummary+newCampaignUpdateSummary =+  CampaignUpdateSummary'+    { campaignConfig =+        Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      failureReason = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      minProvisionedTPS = Prelude.Nothing,+      solutionVersionArn = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | Undocumented member.+campaignUpdateSummary_campaignConfig :: Lens.Lens' CampaignUpdateSummary (Prelude.Maybe CampaignConfig)+campaignUpdateSummary_campaignConfig = Lens.lens (\CampaignUpdateSummary' {campaignConfig} -> campaignConfig) (\s@CampaignUpdateSummary' {} a -> s {campaignConfig = a} :: CampaignUpdateSummary)++-- | The date and time (in Unix time) that the campaign update was created.+campaignUpdateSummary_creationDateTime :: Lens.Lens' CampaignUpdateSummary (Prelude.Maybe Prelude.UTCTime)+campaignUpdateSummary_creationDateTime = Lens.lens (\CampaignUpdateSummary' {creationDateTime} -> creationDateTime) (\s@CampaignUpdateSummary' {} a -> s {creationDateTime = a} :: CampaignUpdateSummary) Prelude.. Lens.mapping Data._Time++-- | If a campaign update fails, the reason behind the failure.+campaignUpdateSummary_failureReason :: Lens.Lens' CampaignUpdateSummary (Prelude.Maybe Prelude.Text)+campaignUpdateSummary_failureReason = Lens.lens (\CampaignUpdateSummary' {failureReason} -> failureReason) (\s@CampaignUpdateSummary' {} a -> s {failureReason = a} :: CampaignUpdateSummary)++-- | The date and time (in Unix time) that the campaign update was last+-- updated.+campaignUpdateSummary_lastUpdatedDateTime :: Lens.Lens' CampaignUpdateSummary (Prelude.Maybe Prelude.UTCTime)+campaignUpdateSummary_lastUpdatedDateTime = Lens.lens (\CampaignUpdateSummary' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@CampaignUpdateSummary' {} a -> s {lastUpdatedDateTime = a} :: CampaignUpdateSummary) Prelude.. Lens.mapping Data._Time++-- | Specifies the requested minimum provisioned transactions+-- (recommendations) per second that Amazon Personalize will support.+campaignUpdateSummary_minProvisionedTPS :: Lens.Lens' CampaignUpdateSummary (Prelude.Maybe Prelude.Natural)+campaignUpdateSummary_minProvisionedTPS = Lens.lens (\CampaignUpdateSummary' {minProvisionedTPS} -> minProvisionedTPS) (\s@CampaignUpdateSummary' {} a -> s {minProvisionedTPS = a} :: CampaignUpdateSummary)++-- | The Amazon Resource Name (ARN) of the deployed solution version.+campaignUpdateSummary_solutionVersionArn :: Lens.Lens' CampaignUpdateSummary (Prelude.Maybe Prelude.Text)+campaignUpdateSummary_solutionVersionArn = Lens.lens (\CampaignUpdateSummary' {solutionVersionArn} -> solutionVersionArn) (\s@CampaignUpdateSummary' {} a -> s {solutionVersionArn = a} :: CampaignUpdateSummary)++-- | The status of the campaign update.+--+-- A campaign update can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   DELETE PENDING > DELETE IN_PROGRESS+campaignUpdateSummary_status :: Lens.Lens' CampaignUpdateSummary (Prelude.Maybe Prelude.Text)+campaignUpdateSummary_status = Lens.lens (\CampaignUpdateSummary' {status} -> status) (\s@CampaignUpdateSummary' {} a -> s {status = a} :: CampaignUpdateSummary)++instance Data.FromJSON CampaignUpdateSummary where+  parseJSON =+    Data.withObject+      "CampaignUpdateSummary"+      ( \x ->+          CampaignUpdateSummary'+            Prelude.<$> (x Data..:? "campaignConfig")+            Prelude.<*> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "failureReason")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "minProvisionedTPS")+            Prelude.<*> (x Data..:? "solutionVersionArn")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable CampaignUpdateSummary where+  hashWithSalt _salt CampaignUpdateSummary' {..} =+    _salt+      `Prelude.hashWithSalt` campaignConfig+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` failureReason+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` minProvisionedTPS+      `Prelude.hashWithSalt` solutionVersionArn+      `Prelude.hashWithSalt` status++instance Prelude.NFData CampaignUpdateSummary where+  rnf CampaignUpdateSummary' {..} =+    Prelude.rnf campaignConfig+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf minProvisionedTPS+      `Prelude.seq` Prelude.rnf solutionVersionArn+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Personalize/Types/CategoricalHyperParameterRange.hs view
@@ -0,0 +1,101 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.CategoricalHyperParameterRange+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.CategoricalHyperParameterRange 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 name and range of a categorical hyperparameter.+--+-- /See:/ 'newCategoricalHyperParameterRange' smart constructor.+data CategoricalHyperParameterRange = CategoricalHyperParameterRange'+  { -- | The name of the hyperparameter.+    name :: Prelude.Maybe Prelude.Text,+    -- | A list of the categories for the hyperparameter.+    values :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CategoricalHyperParameterRange' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'categoricalHyperParameterRange_name' - The name of the hyperparameter.+--+-- 'values', 'categoricalHyperParameterRange_values' - A list of the categories for the hyperparameter.+newCategoricalHyperParameterRange ::+  CategoricalHyperParameterRange+newCategoricalHyperParameterRange =+  CategoricalHyperParameterRange'+    { name =+        Prelude.Nothing,+      values = Prelude.Nothing+    }++-- | The name of the hyperparameter.+categoricalHyperParameterRange_name :: Lens.Lens' CategoricalHyperParameterRange (Prelude.Maybe Prelude.Text)+categoricalHyperParameterRange_name = Lens.lens (\CategoricalHyperParameterRange' {name} -> name) (\s@CategoricalHyperParameterRange' {} a -> s {name = a} :: CategoricalHyperParameterRange)++-- | A list of the categories for the hyperparameter.+categoricalHyperParameterRange_values :: Lens.Lens' CategoricalHyperParameterRange (Prelude.Maybe [Prelude.Text])+categoricalHyperParameterRange_values = Lens.lens (\CategoricalHyperParameterRange' {values} -> values) (\s@CategoricalHyperParameterRange' {} a -> s {values = a} :: CategoricalHyperParameterRange) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON CategoricalHyperParameterRange where+  parseJSON =+    Data.withObject+      "CategoricalHyperParameterRange"+      ( \x ->+          CategoricalHyperParameterRange'+            Prelude.<$> (x Data..:? "name")+            Prelude.<*> (x Data..:? "values" Data..!= Prelude.mempty)+      )++instance+  Prelude.Hashable+    CategoricalHyperParameterRange+  where+  hashWithSalt+    _salt+    CategoricalHyperParameterRange' {..} =+      _salt+        `Prelude.hashWithSalt` name+        `Prelude.hashWithSalt` values++instance+  Prelude.NFData+    CategoricalHyperParameterRange+  where+  rnf CategoricalHyperParameterRange' {..} =+    Prelude.rnf name `Prelude.seq` Prelude.rnf values++instance Data.ToJSON CategoricalHyperParameterRange where+  toJSON CategoricalHyperParameterRange' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("name" Data..=) Prelude.<$> name,+            ("values" Data..=) Prelude.<$> values+          ]+      )
+ gen/Amazonka/Personalize/Types/ContinuousHyperParameterRange.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.Personalize.Types.ContinuousHyperParameterRange+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.ContinuousHyperParameterRange 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 name and range of a continuous hyperparameter.+--+-- /See:/ 'newContinuousHyperParameterRange' smart constructor.+data ContinuousHyperParameterRange = ContinuousHyperParameterRange'+  { -- | The maximum allowable value for the hyperparameter.+    maxValue :: Prelude.Maybe Prelude.Double,+    -- | The minimum allowable value for the hyperparameter.+    minValue :: Prelude.Maybe Prelude.Double,+    -- | The name of the hyperparameter.+    name :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ContinuousHyperParameterRange' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxValue', 'continuousHyperParameterRange_maxValue' - The maximum allowable value for the hyperparameter.+--+-- 'minValue', 'continuousHyperParameterRange_minValue' - The minimum allowable value for the hyperparameter.+--+-- 'name', 'continuousHyperParameterRange_name' - The name of the hyperparameter.+newContinuousHyperParameterRange ::+  ContinuousHyperParameterRange+newContinuousHyperParameterRange =+  ContinuousHyperParameterRange'+    { maxValue =+        Prelude.Nothing,+      minValue = Prelude.Nothing,+      name = Prelude.Nothing+    }++-- | The maximum allowable value for the hyperparameter.+continuousHyperParameterRange_maxValue :: Lens.Lens' ContinuousHyperParameterRange (Prelude.Maybe Prelude.Double)+continuousHyperParameterRange_maxValue = Lens.lens (\ContinuousHyperParameterRange' {maxValue} -> maxValue) (\s@ContinuousHyperParameterRange' {} a -> s {maxValue = a} :: ContinuousHyperParameterRange)++-- | The minimum allowable value for the hyperparameter.+continuousHyperParameterRange_minValue :: Lens.Lens' ContinuousHyperParameterRange (Prelude.Maybe Prelude.Double)+continuousHyperParameterRange_minValue = Lens.lens (\ContinuousHyperParameterRange' {minValue} -> minValue) (\s@ContinuousHyperParameterRange' {} a -> s {minValue = a} :: ContinuousHyperParameterRange)++-- | The name of the hyperparameter.+continuousHyperParameterRange_name :: Lens.Lens' ContinuousHyperParameterRange (Prelude.Maybe Prelude.Text)+continuousHyperParameterRange_name = Lens.lens (\ContinuousHyperParameterRange' {name} -> name) (\s@ContinuousHyperParameterRange' {} a -> s {name = a} :: ContinuousHyperParameterRange)++instance Data.FromJSON ContinuousHyperParameterRange where+  parseJSON =+    Data.withObject+      "ContinuousHyperParameterRange"+      ( \x ->+          ContinuousHyperParameterRange'+            Prelude.<$> (x Data..:? "maxValue")+            Prelude.<*> (x Data..:? "minValue")+            Prelude.<*> (x Data..:? "name")+      )++instance+  Prelude.Hashable+    ContinuousHyperParameterRange+  where+  hashWithSalt _salt ContinuousHyperParameterRange' {..} =+    _salt+      `Prelude.hashWithSalt` maxValue+      `Prelude.hashWithSalt` minValue+      `Prelude.hashWithSalt` name++instance Prelude.NFData ContinuousHyperParameterRange where+  rnf ContinuousHyperParameterRange' {..} =+    Prelude.rnf maxValue+      `Prelude.seq` Prelude.rnf minValue+      `Prelude.seq` Prelude.rnf name++instance Data.ToJSON ContinuousHyperParameterRange where+  toJSON ContinuousHyperParameterRange' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxValue" Data..=) Prelude.<$> maxValue,+            ("minValue" Data..=) Prelude.<$> minValue,+            ("name" Data..=) Prelude.<$> name+          ]+      )
+ gen/Amazonka/Personalize/Types/DataSource.hs view
@@ -0,0 +1,83 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.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.Personalize.Types.DataSource 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++-- | Describes the data source that contains the data to upload to a dataset.+--+-- /See:/ 'newDataSource' smart constructor.+data DataSource = DataSource'+  { -- | The path to the Amazon S3 bucket where the data that you want to upload+    -- to your dataset is stored. For example:+    --+    -- @s3:\/\/bucket-name\/folder-name\/@+    dataLocation :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataSource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'dataSource_dataLocation' - The path to the Amazon S3 bucket where the data that you want to upload+-- to your dataset is stored. For example:+--+-- @s3:\/\/bucket-name\/folder-name\/@+newDataSource ::+  DataSource+newDataSource =+  DataSource' {dataLocation = Prelude.Nothing}++-- | The path to the Amazon S3 bucket where the data that you want to upload+-- to your dataset is stored. For example:+--+-- @s3:\/\/bucket-name\/folder-name\/@+dataSource_dataLocation :: Lens.Lens' DataSource (Prelude.Maybe Prelude.Text)+dataSource_dataLocation = Lens.lens (\DataSource' {dataLocation} -> dataLocation) (\s@DataSource' {} a -> s {dataLocation = a} :: DataSource)++instance Data.FromJSON DataSource where+  parseJSON =+    Data.withObject+      "DataSource"+      ( \x ->+          DataSource' Prelude.<$> (x Data..:? "dataLocation")+      )++instance Prelude.Hashable DataSource where+  hashWithSalt _salt DataSource' {..} =+    _salt `Prelude.hashWithSalt` dataLocation++instance Prelude.NFData DataSource where+  rnf DataSource' {..} = Prelude.rnf dataLocation++instance Data.ToJSON DataSource where+  toJSON DataSource' {..} =+    Data.object+      ( Prelude.catMaybes+          [("dataLocation" Data..=) Prelude.<$> dataLocation]+      )
+ gen/Amazonka/Personalize/Types/Dataset.hs view
@@ -0,0 +1,195 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.Dataset+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.Dataset 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 metadata for a dataset.+--+-- /See:/ 'newDataset' smart constructor.+data Dataset = Dataset'+  { -- | The creation date and time (in Unix time) of the dataset.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) of the dataset that you want metadata+    -- for.+    datasetArn :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the dataset group.+    datasetGroupArn :: Prelude.Maybe Prelude.Text,+    -- | One of the following values:+    --+    -- -   Interactions+    --+    -- -   Items+    --+    -- -   Users+    datasetType :: Prelude.Maybe Prelude.Text,+    -- | A time stamp that shows when the dataset was updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The name of the dataset.+    name :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the associated schema.+    schemaArn :: Prelude.Maybe Prelude.Text,+    -- | The status of the dataset.+    --+    -- A dataset can be in one of the following states:+    --+    -- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+    --+    -- -   DELETE PENDING > DELETE IN_PROGRESS+    status :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Dataset' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationDateTime', 'dataset_creationDateTime' - The creation date and time (in Unix time) of the dataset.+--+-- 'datasetArn', 'dataset_datasetArn' - The Amazon Resource Name (ARN) of the dataset that you want metadata+-- for.+--+-- 'datasetGroupArn', 'dataset_datasetGroupArn' - The Amazon Resource Name (ARN) of the dataset group.+--+-- 'datasetType', 'dataset_datasetType' - One of the following values:+--+-- -   Interactions+--+-- -   Items+--+-- -   Users+--+-- 'lastUpdatedDateTime', 'dataset_lastUpdatedDateTime' - A time stamp that shows when the dataset was updated.+--+-- 'name', 'dataset_name' - The name of the dataset.+--+-- 'schemaArn', 'dataset_schemaArn' - The ARN of the associated schema.+--+-- 'status', 'dataset_status' - The status of the dataset.+--+-- A dataset can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   DELETE PENDING > DELETE IN_PROGRESS+newDataset ::+  Dataset+newDataset =+  Dataset'+    { creationDateTime = Prelude.Nothing,+      datasetArn = Prelude.Nothing,+      datasetGroupArn = Prelude.Nothing,+      datasetType = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      name = Prelude.Nothing,+      schemaArn = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The creation date and time (in Unix time) of the dataset.+dataset_creationDateTime :: Lens.Lens' Dataset (Prelude.Maybe Prelude.UTCTime)+dataset_creationDateTime = Lens.lens (\Dataset' {creationDateTime} -> creationDateTime) (\s@Dataset' {} a -> s {creationDateTime = a} :: Dataset) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the dataset that you want metadata+-- for.+dataset_datasetArn :: Lens.Lens' Dataset (Prelude.Maybe Prelude.Text)+dataset_datasetArn = Lens.lens (\Dataset' {datasetArn} -> datasetArn) (\s@Dataset' {} a -> s {datasetArn = a} :: Dataset)++-- | The Amazon Resource Name (ARN) of the dataset group.+dataset_datasetGroupArn :: Lens.Lens' Dataset (Prelude.Maybe Prelude.Text)+dataset_datasetGroupArn = Lens.lens (\Dataset' {datasetGroupArn} -> datasetGroupArn) (\s@Dataset' {} a -> s {datasetGroupArn = a} :: Dataset)++-- | One of the following values:+--+-- -   Interactions+--+-- -   Items+--+-- -   Users+dataset_datasetType :: Lens.Lens' Dataset (Prelude.Maybe Prelude.Text)+dataset_datasetType = Lens.lens (\Dataset' {datasetType} -> datasetType) (\s@Dataset' {} a -> s {datasetType = a} :: Dataset)++-- | A time stamp that shows when the dataset was updated.+dataset_lastUpdatedDateTime :: Lens.Lens' Dataset (Prelude.Maybe Prelude.UTCTime)+dataset_lastUpdatedDateTime = Lens.lens (\Dataset' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@Dataset' {} a -> s {lastUpdatedDateTime = a} :: Dataset) Prelude.. Lens.mapping Data._Time++-- | The name of the dataset.+dataset_name :: Lens.Lens' Dataset (Prelude.Maybe Prelude.Text)+dataset_name = Lens.lens (\Dataset' {name} -> name) (\s@Dataset' {} a -> s {name = a} :: Dataset)++-- | The ARN of the associated schema.+dataset_schemaArn :: Lens.Lens' Dataset (Prelude.Maybe Prelude.Text)+dataset_schemaArn = Lens.lens (\Dataset' {schemaArn} -> schemaArn) (\s@Dataset' {} a -> s {schemaArn = a} :: Dataset)++-- | The status of the dataset.+--+-- A dataset can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   DELETE PENDING > DELETE IN_PROGRESS+dataset_status :: Lens.Lens' Dataset (Prelude.Maybe Prelude.Text)+dataset_status = Lens.lens (\Dataset' {status} -> status) (\s@Dataset' {} a -> s {status = a} :: Dataset)++instance Data.FromJSON Dataset where+  parseJSON =+    Data.withObject+      "Dataset"+      ( \x ->+          Dataset'+            Prelude.<$> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "datasetArn")+            Prelude.<*> (x Data..:? "datasetGroupArn")+            Prelude.<*> (x Data..:? "datasetType")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "schemaArn")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable Dataset where+  hashWithSalt _salt Dataset' {..} =+    _salt+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` datasetArn+      `Prelude.hashWithSalt` datasetGroupArn+      `Prelude.hashWithSalt` datasetType+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` schemaArn+      `Prelude.hashWithSalt` status++instance Prelude.NFData Dataset where+  rnf Dataset' {..} =+    Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf datasetArn+      `Prelude.seq` Prelude.rnf datasetGroupArn+      `Prelude.seq` Prelude.rnf datasetType+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf schemaArn+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Personalize/Types/DatasetExportJob.hs view
@@ -0,0 +1,228 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.DatasetExportJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.DatasetExportJob where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types.DatasetExportJobOutput+import Amazonka.Personalize.Types.IngestionMode+import qualified Amazonka.Prelude as Prelude++-- | Describes a job that exports a dataset to an Amazon S3 bucket. For more+-- information, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDatasetExportJob.html CreateDatasetExportJob>.+--+-- A dataset export job can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- /See:/ 'newDatasetExportJob' smart constructor.+data DatasetExportJob = DatasetExportJob'+  { -- | The creation date and time (in Unix time) of the dataset export job.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) of the dataset to export.+    datasetArn :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the dataset export job.+    datasetExportJobArn :: Prelude.Maybe Prelude.Text,+    -- | If a dataset export job fails, provides the reason why.+    failureReason :: Prelude.Maybe Prelude.Text,+    -- | The data to export, based on how you imported the data. You can choose+    -- to export @BULK@ data that you imported using a dataset import job,+    -- @PUT@ data that you imported incrementally (using the console,+    -- PutEvents, PutUsers and PutItems operations), or @ALL@ for both types.+    -- The default value is @PUT@.+    ingestionMode :: Prelude.Maybe IngestionMode,+    -- | The name of the export job.+    jobName :: Prelude.Maybe Prelude.Text,+    -- | The path to the Amazon S3 bucket where the job\'s output is stored. For+    -- example:+    --+    -- @s3:\/\/bucket-name\/folder-name\/@+    jobOutput :: Prelude.Maybe DatasetExportJobOutput,+    -- | The date and time (in Unix time) the status of the dataset export job+    -- was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) of the IAM service role that has+    -- permissions to add data to your output Amazon S3 bucket.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | The status of the dataset export job.+    --+    -- A dataset export job can be in one of the following states:+    --+    -- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+    status :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DatasetExportJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationDateTime', 'datasetExportJob_creationDateTime' - The creation date and time (in Unix time) of the dataset export job.+--+-- 'datasetArn', 'datasetExportJob_datasetArn' - The Amazon Resource Name (ARN) of the dataset to export.+--+-- 'datasetExportJobArn', 'datasetExportJob_datasetExportJobArn' - The Amazon Resource Name (ARN) of the dataset export job.+--+-- 'failureReason', 'datasetExportJob_failureReason' - If a dataset export job fails, provides the reason why.+--+-- 'ingestionMode', 'datasetExportJob_ingestionMode' - The data to export, based on how you imported the data. You can choose+-- to export @BULK@ data that you imported using a dataset import job,+-- @PUT@ data that you imported incrementally (using the console,+-- PutEvents, PutUsers and PutItems operations), or @ALL@ for both types.+-- The default value is @PUT@.+--+-- 'jobName', 'datasetExportJob_jobName' - The name of the export job.+--+-- 'jobOutput', 'datasetExportJob_jobOutput' - The path to the Amazon S3 bucket where the job\'s output is stored. For+-- example:+--+-- @s3:\/\/bucket-name\/folder-name\/@+--+-- 'lastUpdatedDateTime', 'datasetExportJob_lastUpdatedDateTime' - The date and time (in Unix time) the status of the dataset export job+-- was last updated.+--+-- 'roleArn', 'datasetExportJob_roleArn' - The Amazon Resource Name (ARN) of the IAM service role that has+-- permissions to add data to your output Amazon S3 bucket.+--+-- 'status', 'datasetExportJob_status' - The status of the dataset export job.+--+-- A dataset export job can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+newDatasetExportJob ::+  DatasetExportJob+newDatasetExportJob =+  DatasetExportJob'+    { creationDateTime =+        Prelude.Nothing,+      datasetArn = Prelude.Nothing,+      datasetExportJobArn = Prelude.Nothing,+      failureReason = Prelude.Nothing,+      ingestionMode = Prelude.Nothing,+      jobName = Prelude.Nothing,+      jobOutput = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The creation date and time (in Unix time) of the dataset export job.+datasetExportJob_creationDateTime :: Lens.Lens' DatasetExportJob (Prelude.Maybe Prelude.UTCTime)+datasetExportJob_creationDateTime = Lens.lens (\DatasetExportJob' {creationDateTime} -> creationDateTime) (\s@DatasetExportJob' {} a -> s {creationDateTime = a} :: DatasetExportJob) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the dataset to export.+datasetExportJob_datasetArn :: Lens.Lens' DatasetExportJob (Prelude.Maybe Prelude.Text)+datasetExportJob_datasetArn = Lens.lens (\DatasetExportJob' {datasetArn} -> datasetArn) (\s@DatasetExportJob' {} a -> s {datasetArn = a} :: DatasetExportJob)++-- | The Amazon Resource Name (ARN) of the dataset export job.+datasetExportJob_datasetExportJobArn :: Lens.Lens' DatasetExportJob (Prelude.Maybe Prelude.Text)+datasetExportJob_datasetExportJobArn = Lens.lens (\DatasetExportJob' {datasetExportJobArn} -> datasetExportJobArn) (\s@DatasetExportJob' {} a -> s {datasetExportJobArn = a} :: DatasetExportJob)++-- | If a dataset export job fails, provides the reason why.+datasetExportJob_failureReason :: Lens.Lens' DatasetExportJob (Prelude.Maybe Prelude.Text)+datasetExportJob_failureReason = Lens.lens (\DatasetExportJob' {failureReason} -> failureReason) (\s@DatasetExportJob' {} a -> s {failureReason = a} :: DatasetExportJob)++-- | The data to export, based on how you imported the data. You can choose+-- to export @BULK@ data that you imported using a dataset import job,+-- @PUT@ data that you imported incrementally (using the console,+-- PutEvents, PutUsers and PutItems operations), or @ALL@ for both types.+-- The default value is @PUT@.+datasetExportJob_ingestionMode :: Lens.Lens' DatasetExportJob (Prelude.Maybe IngestionMode)+datasetExportJob_ingestionMode = Lens.lens (\DatasetExportJob' {ingestionMode} -> ingestionMode) (\s@DatasetExportJob' {} a -> s {ingestionMode = a} :: DatasetExportJob)++-- | The name of the export job.+datasetExportJob_jobName :: Lens.Lens' DatasetExportJob (Prelude.Maybe Prelude.Text)+datasetExportJob_jobName = Lens.lens (\DatasetExportJob' {jobName} -> jobName) (\s@DatasetExportJob' {} a -> s {jobName = a} :: DatasetExportJob)++-- | The path to the Amazon S3 bucket where the job\'s output is stored. For+-- example:+--+-- @s3:\/\/bucket-name\/folder-name\/@+datasetExportJob_jobOutput :: Lens.Lens' DatasetExportJob (Prelude.Maybe DatasetExportJobOutput)+datasetExportJob_jobOutput = Lens.lens (\DatasetExportJob' {jobOutput} -> jobOutput) (\s@DatasetExportJob' {} a -> s {jobOutput = a} :: DatasetExportJob)++-- | The date and time (in Unix time) the status of the dataset export job+-- was last updated.+datasetExportJob_lastUpdatedDateTime :: Lens.Lens' DatasetExportJob (Prelude.Maybe Prelude.UTCTime)+datasetExportJob_lastUpdatedDateTime = Lens.lens (\DatasetExportJob' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@DatasetExportJob' {} a -> s {lastUpdatedDateTime = a} :: DatasetExportJob) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the IAM service role that has+-- permissions to add data to your output Amazon S3 bucket.+datasetExportJob_roleArn :: Lens.Lens' DatasetExportJob (Prelude.Maybe Prelude.Text)+datasetExportJob_roleArn = Lens.lens (\DatasetExportJob' {roleArn} -> roleArn) (\s@DatasetExportJob' {} a -> s {roleArn = a} :: DatasetExportJob)++-- | The status of the dataset export job.+--+-- A dataset export job can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+datasetExportJob_status :: Lens.Lens' DatasetExportJob (Prelude.Maybe Prelude.Text)+datasetExportJob_status = Lens.lens (\DatasetExportJob' {status} -> status) (\s@DatasetExportJob' {} a -> s {status = a} :: DatasetExportJob)++instance Data.FromJSON DatasetExportJob where+  parseJSON =+    Data.withObject+      "DatasetExportJob"+      ( \x ->+          DatasetExportJob'+            Prelude.<$> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "datasetArn")+            Prelude.<*> (x Data..:? "datasetExportJobArn")+            Prelude.<*> (x Data..:? "failureReason")+            Prelude.<*> (x Data..:? "ingestionMode")+            Prelude.<*> (x Data..:? "jobName")+            Prelude.<*> (x Data..:? "jobOutput")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "roleArn")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable DatasetExportJob where+  hashWithSalt _salt DatasetExportJob' {..} =+    _salt+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` datasetArn+      `Prelude.hashWithSalt` datasetExportJobArn+      `Prelude.hashWithSalt` failureReason+      `Prelude.hashWithSalt` ingestionMode+      `Prelude.hashWithSalt` jobName+      `Prelude.hashWithSalt` jobOutput+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` status++instance Prelude.NFData DatasetExportJob where+  rnf DatasetExportJob' {..} =+    Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf datasetArn+      `Prelude.seq` Prelude.rnf datasetExportJobArn+      `Prelude.seq` Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf ingestionMode+      `Prelude.seq` Prelude.rnf jobName+      `Prelude.seq` Prelude.rnf jobOutput+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Personalize/Types/DatasetExportJobOutput.hs view
@@ -0,0 +1,83 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.DatasetExportJobOutput+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.DatasetExportJobOutput where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types.S3DataConfig+import qualified Amazonka.Prelude as Prelude++-- | The output configuration parameters of a dataset export job.+--+-- /See:/ 'newDatasetExportJobOutput' smart constructor.+data DatasetExportJobOutput = DatasetExportJobOutput'+  { s3DataDestination :: S3DataConfig+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DatasetExportJobOutput' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 's3DataDestination', 'datasetExportJobOutput_s3DataDestination' - Undocumented member.+newDatasetExportJobOutput ::+  -- | 's3DataDestination'+  S3DataConfig ->+  DatasetExportJobOutput+newDatasetExportJobOutput pS3DataDestination_ =+  DatasetExportJobOutput'+    { s3DataDestination =+        pS3DataDestination_+    }++-- | Undocumented member.+datasetExportJobOutput_s3DataDestination :: Lens.Lens' DatasetExportJobOutput S3DataConfig+datasetExportJobOutput_s3DataDestination = Lens.lens (\DatasetExportJobOutput' {s3DataDestination} -> s3DataDestination) (\s@DatasetExportJobOutput' {} a -> s {s3DataDestination = a} :: DatasetExportJobOutput)++instance Data.FromJSON DatasetExportJobOutput where+  parseJSON =+    Data.withObject+      "DatasetExportJobOutput"+      ( \x ->+          DatasetExportJobOutput'+            Prelude.<$> (x Data..: "s3DataDestination")+      )++instance Prelude.Hashable DatasetExportJobOutput where+  hashWithSalt _salt DatasetExportJobOutput' {..} =+    _salt `Prelude.hashWithSalt` s3DataDestination++instance Prelude.NFData DatasetExportJobOutput where+  rnf DatasetExportJobOutput' {..} =+    Prelude.rnf s3DataDestination++instance Data.ToJSON DatasetExportJobOutput where+  toJSON DatasetExportJobOutput' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("s3DataDestination" Data..= s3DataDestination)+          ]+      )
+ gen/Amazonka/Personalize/Types/DatasetExportJobSummary.hs view
@@ -0,0 +1,154 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.DatasetExportJobSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.DatasetExportJobSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides a summary of the properties of a dataset export job. For a+-- complete listing, call the+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeDatasetExportJob.html DescribeDatasetExportJob>+-- API.+--+-- /See:/ 'newDatasetExportJobSummary' smart constructor.+data DatasetExportJobSummary = DatasetExportJobSummary'+  { -- | The date and time (in Unix time) that the dataset export job was+    -- created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) of the dataset export job.+    datasetExportJobArn :: Prelude.Maybe Prelude.Text,+    -- | If a dataset export job fails, the reason behind the failure.+    failureReason :: Prelude.Maybe Prelude.Text,+    -- | The name of the dataset export job.+    jobName :: Prelude.Maybe Prelude.Text,+    -- | The date and time (in Unix time) that the dataset export job status was+    -- last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The status of the dataset export job.+    --+    -- A dataset export job can be in one of the following states:+    --+    -- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+    status :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DatasetExportJobSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationDateTime', 'datasetExportJobSummary_creationDateTime' - The date and time (in Unix time) that the dataset export job was+-- created.+--+-- 'datasetExportJobArn', 'datasetExportJobSummary_datasetExportJobArn' - The Amazon Resource Name (ARN) of the dataset export job.+--+-- 'failureReason', 'datasetExportJobSummary_failureReason' - If a dataset export job fails, the reason behind the failure.+--+-- 'jobName', 'datasetExportJobSummary_jobName' - The name of the dataset export job.+--+-- 'lastUpdatedDateTime', 'datasetExportJobSummary_lastUpdatedDateTime' - The date and time (in Unix time) that the dataset export job status was+-- last updated.+--+-- 'status', 'datasetExportJobSummary_status' - The status of the dataset export job.+--+-- A dataset export job can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+newDatasetExportJobSummary ::+  DatasetExportJobSummary+newDatasetExportJobSummary =+  DatasetExportJobSummary'+    { creationDateTime =+        Prelude.Nothing,+      datasetExportJobArn = Prelude.Nothing,+      failureReason = Prelude.Nothing,+      jobName = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The date and time (in Unix time) that the dataset export job was+-- created.+datasetExportJobSummary_creationDateTime :: Lens.Lens' DatasetExportJobSummary (Prelude.Maybe Prelude.UTCTime)+datasetExportJobSummary_creationDateTime = Lens.lens (\DatasetExportJobSummary' {creationDateTime} -> creationDateTime) (\s@DatasetExportJobSummary' {} a -> s {creationDateTime = a} :: DatasetExportJobSummary) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the dataset export job.+datasetExportJobSummary_datasetExportJobArn :: Lens.Lens' DatasetExportJobSummary (Prelude.Maybe Prelude.Text)+datasetExportJobSummary_datasetExportJobArn = Lens.lens (\DatasetExportJobSummary' {datasetExportJobArn} -> datasetExportJobArn) (\s@DatasetExportJobSummary' {} a -> s {datasetExportJobArn = a} :: DatasetExportJobSummary)++-- | If a dataset export job fails, the reason behind the failure.+datasetExportJobSummary_failureReason :: Lens.Lens' DatasetExportJobSummary (Prelude.Maybe Prelude.Text)+datasetExportJobSummary_failureReason = Lens.lens (\DatasetExportJobSummary' {failureReason} -> failureReason) (\s@DatasetExportJobSummary' {} a -> s {failureReason = a} :: DatasetExportJobSummary)++-- | The name of the dataset export job.+datasetExportJobSummary_jobName :: Lens.Lens' DatasetExportJobSummary (Prelude.Maybe Prelude.Text)+datasetExportJobSummary_jobName = Lens.lens (\DatasetExportJobSummary' {jobName} -> jobName) (\s@DatasetExportJobSummary' {} a -> s {jobName = a} :: DatasetExportJobSummary)++-- | The date and time (in Unix time) that the dataset export job status was+-- last updated.+datasetExportJobSummary_lastUpdatedDateTime :: Lens.Lens' DatasetExportJobSummary (Prelude.Maybe Prelude.UTCTime)+datasetExportJobSummary_lastUpdatedDateTime = Lens.lens (\DatasetExportJobSummary' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@DatasetExportJobSummary' {} a -> s {lastUpdatedDateTime = a} :: DatasetExportJobSummary) Prelude.. Lens.mapping Data._Time++-- | The status of the dataset export job.+--+-- A dataset export job can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+datasetExportJobSummary_status :: Lens.Lens' DatasetExportJobSummary (Prelude.Maybe Prelude.Text)+datasetExportJobSummary_status = Lens.lens (\DatasetExportJobSummary' {status} -> status) (\s@DatasetExportJobSummary' {} a -> s {status = a} :: DatasetExportJobSummary)++instance Data.FromJSON DatasetExportJobSummary where+  parseJSON =+    Data.withObject+      "DatasetExportJobSummary"+      ( \x ->+          DatasetExportJobSummary'+            Prelude.<$> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "datasetExportJobArn")+            Prelude.<*> (x Data..:? "failureReason")+            Prelude.<*> (x Data..:? "jobName")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable DatasetExportJobSummary where+  hashWithSalt _salt DatasetExportJobSummary' {..} =+    _salt+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` datasetExportJobArn+      `Prelude.hashWithSalt` failureReason+      `Prelude.hashWithSalt` jobName+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` status++instance Prelude.NFData DatasetExportJobSummary where+  rnf DatasetExportJobSummary' {..} =+    Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf datasetExportJobArn+      `Prelude.seq` Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf jobName+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Personalize/Types/DatasetGroup.hs view
@@ -0,0 +1,203 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.DatasetGroup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.DatasetGroup where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types.Domain+import qualified Amazonka.Prelude as Prelude++-- | A dataset group is a collection of related datasets (Interactions, User,+-- and Item). You create a dataset group by calling+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDatasetGroup.html CreateDatasetGroup>.+-- You then create a dataset and add it to a dataset group by calling+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDataset.html CreateDataset>.+-- The dataset group is used to create and train a solution by calling+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateSolution.html CreateSolution>.+-- A dataset group can contain only one of each type of dataset.+--+-- You can specify an Key Management Service (KMS) key to encrypt the+-- datasets in the group.+--+-- /See:/ 'newDatasetGroup' smart constructor.+data DatasetGroup = DatasetGroup'+  { -- | The creation date and time (in Unix time) of the dataset group.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) of the dataset group.+    datasetGroupArn :: Prelude.Maybe Prelude.Text,+    -- | The domain of a Domain dataset group.+    domain :: Prelude.Maybe Domain,+    -- | If creating a dataset group fails, provides the reason why.+    failureReason :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the Key Management Service (KMS) key+    -- used to encrypt the datasets.+    kmsKeyArn :: Prelude.Maybe Prelude.Text,+    -- | The last update date and time (in Unix time) of the dataset group.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The name of the dataset group.+    name :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the IAM role that has permissions to create the dataset+    -- group.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | The current status of the dataset group.+    --+    -- A dataset group can be in one of the following states:+    --+    -- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+    --+    -- -   DELETE PENDING+    status :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DatasetGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationDateTime', 'datasetGroup_creationDateTime' - The creation date and time (in Unix time) of the dataset group.+--+-- 'datasetGroupArn', 'datasetGroup_datasetGroupArn' - The Amazon Resource Name (ARN) of the dataset group.+--+-- 'domain', 'datasetGroup_domain' - The domain of a Domain dataset group.+--+-- 'failureReason', 'datasetGroup_failureReason' - If creating a dataset group fails, provides the reason why.+--+-- 'kmsKeyArn', 'datasetGroup_kmsKeyArn' - The Amazon Resource Name (ARN) of the Key Management Service (KMS) key+-- used to encrypt the datasets.+--+-- 'lastUpdatedDateTime', 'datasetGroup_lastUpdatedDateTime' - The last update date and time (in Unix time) of the dataset group.+--+-- 'name', 'datasetGroup_name' - The name of the dataset group.+--+-- 'roleArn', 'datasetGroup_roleArn' - The ARN of the IAM role that has permissions to create the dataset+-- group.+--+-- 'status', 'datasetGroup_status' - The current status of the dataset group.+--+-- A dataset group can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   DELETE PENDING+newDatasetGroup ::+  DatasetGroup+newDatasetGroup =+  DatasetGroup'+    { creationDateTime = Prelude.Nothing,+      datasetGroupArn = Prelude.Nothing,+      domain = Prelude.Nothing,+      failureReason = Prelude.Nothing,+      kmsKeyArn = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      name = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The creation date and time (in Unix time) of the dataset group.+datasetGroup_creationDateTime :: Lens.Lens' DatasetGroup (Prelude.Maybe Prelude.UTCTime)+datasetGroup_creationDateTime = Lens.lens (\DatasetGroup' {creationDateTime} -> creationDateTime) (\s@DatasetGroup' {} a -> s {creationDateTime = a} :: DatasetGroup) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the dataset group.+datasetGroup_datasetGroupArn :: Lens.Lens' DatasetGroup (Prelude.Maybe Prelude.Text)+datasetGroup_datasetGroupArn = Lens.lens (\DatasetGroup' {datasetGroupArn} -> datasetGroupArn) (\s@DatasetGroup' {} a -> s {datasetGroupArn = a} :: DatasetGroup)++-- | The domain of a Domain dataset group.+datasetGroup_domain :: Lens.Lens' DatasetGroup (Prelude.Maybe Domain)+datasetGroup_domain = Lens.lens (\DatasetGroup' {domain} -> domain) (\s@DatasetGroup' {} a -> s {domain = a} :: DatasetGroup)++-- | If creating a dataset group fails, provides the reason why.+datasetGroup_failureReason :: Lens.Lens' DatasetGroup (Prelude.Maybe Prelude.Text)+datasetGroup_failureReason = Lens.lens (\DatasetGroup' {failureReason} -> failureReason) (\s@DatasetGroup' {} a -> s {failureReason = a} :: DatasetGroup)++-- | The Amazon Resource Name (ARN) of the Key Management Service (KMS) key+-- used to encrypt the datasets.+datasetGroup_kmsKeyArn :: Lens.Lens' DatasetGroup (Prelude.Maybe Prelude.Text)+datasetGroup_kmsKeyArn = Lens.lens (\DatasetGroup' {kmsKeyArn} -> kmsKeyArn) (\s@DatasetGroup' {} a -> s {kmsKeyArn = a} :: DatasetGroup)++-- | The last update date and time (in Unix time) of the dataset group.+datasetGroup_lastUpdatedDateTime :: Lens.Lens' DatasetGroup (Prelude.Maybe Prelude.UTCTime)+datasetGroup_lastUpdatedDateTime = Lens.lens (\DatasetGroup' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@DatasetGroup' {} a -> s {lastUpdatedDateTime = a} :: DatasetGroup) Prelude.. Lens.mapping Data._Time++-- | The name of the dataset group.+datasetGroup_name :: Lens.Lens' DatasetGroup (Prelude.Maybe Prelude.Text)+datasetGroup_name = Lens.lens (\DatasetGroup' {name} -> name) (\s@DatasetGroup' {} a -> s {name = a} :: DatasetGroup)++-- | The ARN of the IAM role that has permissions to create the dataset+-- group.+datasetGroup_roleArn :: Lens.Lens' DatasetGroup (Prelude.Maybe Prelude.Text)+datasetGroup_roleArn = Lens.lens (\DatasetGroup' {roleArn} -> roleArn) (\s@DatasetGroup' {} a -> s {roleArn = a} :: DatasetGroup)++-- | The current status of the dataset group.+--+-- A dataset group can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   DELETE PENDING+datasetGroup_status :: Lens.Lens' DatasetGroup (Prelude.Maybe Prelude.Text)+datasetGroup_status = Lens.lens (\DatasetGroup' {status} -> status) (\s@DatasetGroup' {} a -> s {status = a} :: DatasetGroup)++instance Data.FromJSON DatasetGroup where+  parseJSON =+    Data.withObject+      "DatasetGroup"+      ( \x ->+          DatasetGroup'+            Prelude.<$> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "datasetGroupArn")+            Prelude.<*> (x Data..:? "domain")+            Prelude.<*> (x Data..:? "failureReason")+            Prelude.<*> (x Data..:? "kmsKeyArn")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "roleArn")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable DatasetGroup where+  hashWithSalt _salt DatasetGroup' {..} =+    _salt+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` datasetGroupArn+      `Prelude.hashWithSalt` domain+      `Prelude.hashWithSalt` failureReason+      `Prelude.hashWithSalt` kmsKeyArn+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` status++instance Prelude.NFData DatasetGroup where+  rnf DatasetGroup' {..} =+    Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf datasetGroupArn+      `Prelude.seq` Prelude.rnf domain+      `Prelude.seq` Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf kmsKeyArn+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Personalize/Types/DatasetGroupSummary.hs view
@@ -0,0 +1,170 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.DatasetGroupSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.DatasetGroupSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types.Domain+import qualified Amazonka.Prelude as Prelude++-- | Provides a summary of the properties of a dataset group. For a complete+-- listing, call the+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeDatasetGroup.html DescribeDatasetGroup>+-- API.+--+-- /See:/ 'newDatasetGroupSummary' smart constructor.+data DatasetGroupSummary = DatasetGroupSummary'+  { -- | The date and time (in Unix time) that the dataset group was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) of the dataset group.+    datasetGroupArn :: Prelude.Maybe Prelude.Text,+    -- | The domain of a Domain dataset group.+    domain :: Prelude.Maybe Domain,+    -- | If creating a dataset group fails, the reason behind the failure.+    failureReason :: Prelude.Maybe Prelude.Text,+    -- | The date and time (in Unix time) that the dataset group was last+    -- updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The name of the dataset group.+    name :: Prelude.Maybe Prelude.Text,+    -- | The status of the dataset group.+    --+    -- A dataset group can be in one of the following states:+    --+    -- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+    --+    -- -   DELETE PENDING+    status :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DatasetGroupSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationDateTime', 'datasetGroupSummary_creationDateTime' - The date and time (in Unix time) that the dataset group was created.+--+-- 'datasetGroupArn', 'datasetGroupSummary_datasetGroupArn' - The Amazon Resource Name (ARN) of the dataset group.+--+-- 'domain', 'datasetGroupSummary_domain' - The domain of a Domain dataset group.+--+-- 'failureReason', 'datasetGroupSummary_failureReason' - If creating a dataset group fails, the reason behind the failure.+--+-- 'lastUpdatedDateTime', 'datasetGroupSummary_lastUpdatedDateTime' - The date and time (in Unix time) that the dataset group was last+-- updated.+--+-- 'name', 'datasetGroupSummary_name' - The name of the dataset group.+--+-- 'status', 'datasetGroupSummary_status' - The status of the dataset group.+--+-- A dataset group can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   DELETE PENDING+newDatasetGroupSummary ::+  DatasetGroupSummary+newDatasetGroupSummary =+  DatasetGroupSummary'+    { creationDateTime =+        Prelude.Nothing,+      datasetGroupArn = Prelude.Nothing,+      domain = Prelude.Nothing,+      failureReason = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      name = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The date and time (in Unix time) that the dataset group was created.+datasetGroupSummary_creationDateTime :: Lens.Lens' DatasetGroupSummary (Prelude.Maybe Prelude.UTCTime)+datasetGroupSummary_creationDateTime = Lens.lens (\DatasetGroupSummary' {creationDateTime} -> creationDateTime) (\s@DatasetGroupSummary' {} a -> s {creationDateTime = a} :: DatasetGroupSummary) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the dataset group.+datasetGroupSummary_datasetGroupArn :: Lens.Lens' DatasetGroupSummary (Prelude.Maybe Prelude.Text)+datasetGroupSummary_datasetGroupArn = Lens.lens (\DatasetGroupSummary' {datasetGroupArn} -> datasetGroupArn) (\s@DatasetGroupSummary' {} a -> s {datasetGroupArn = a} :: DatasetGroupSummary)++-- | The domain of a Domain dataset group.+datasetGroupSummary_domain :: Lens.Lens' DatasetGroupSummary (Prelude.Maybe Domain)+datasetGroupSummary_domain = Lens.lens (\DatasetGroupSummary' {domain} -> domain) (\s@DatasetGroupSummary' {} a -> s {domain = a} :: DatasetGroupSummary)++-- | If creating a dataset group fails, the reason behind the failure.+datasetGroupSummary_failureReason :: Lens.Lens' DatasetGroupSummary (Prelude.Maybe Prelude.Text)+datasetGroupSummary_failureReason = Lens.lens (\DatasetGroupSummary' {failureReason} -> failureReason) (\s@DatasetGroupSummary' {} a -> s {failureReason = a} :: DatasetGroupSummary)++-- | The date and time (in Unix time) that the dataset group was last+-- updated.+datasetGroupSummary_lastUpdatedDateTime :: Lens.Lens' DatasetGroupSummary (Prelude.Maybe Prelude.UTCTime)+datasetGroupSummary_lastUpdatedDateTime = Lens.lens (\DatasetGroupSummary' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@DatasetGroupSummary' {} a -> s {lastUpdatedDateTime = a} :: DatasetGroupSummary) Prelude.. Lens.mapping Data._Time++-- | The name of the dataset group.+datasetGroupSummary_name :: Lens.Lens' DatasetGroupSummary (Prelude.Maybe Prelude.Text)+datasetGroupSummary_name = Lens.lens (\DatasetGroupSummary' {name} -> name) (\s@DatasetGroupSummary' {} a -> s {name = a} :: DatasetGroupSummary)++-- | The status of the dataset group.+--+-- A dataset group can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   DELETE PENDING+datasetGroupSummary_status :: Lens.Lens' DatasetGroupSummary (Prelude.Maybe Prelude.Text)+datasetGroupSummary_status = Lens.lens (\DatasetGroupSummary' {status} -> status) (\s@DatasetGroupSummary' {} a -> s {status = a} :: DatasetGroupSummary)++instance Data.FromJSON DatasetGroupSummary where+  parseJSON =+    Data.withObject+      "DatasetGroupSummary"+      ( \x ->+          DatasetGroupSummary'+            Prelude.<$> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "datasetGroupArn")+            Prelude.<*> (x Data..:? "domain")+            Prelude.<*> (x Data..:? "failureReason")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable DatasetGroupSummary where+  hashWithSalt _salt DatasetGroupSummary' {..} =+    _salt+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` datasetGroupArn+      `Prelude.hashWithSalt` domain+      `Prelude.hashWithSalt` failureReason+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` status++instance Prelude.NFData DatasetGroupSummary where+  rnf DatasetGroupSummary' {..} =+    Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf datasetGroupArn+      `Prelude.seq` Prelude.rnf domain+      `Prelude.seq` Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Personalize/Types/DatasetImportJob.hs view
@@ -0,0 +1,219 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.DatasetImportJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.DatasetImportJob where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types.DataSource+import Amazonka.Personalize.Types.ImportMode+import qualified Amazonka.Prelude as Prelude++-- | Describes a job that imports training data from a data source (Amazon S3+-- bucket) to an Amazon Personalize dataset. For more information, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDatasetImportJob.html CreateDatasetImportJob>.+--+-- A dataset import job can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- /See:/ 'newDatasetImportJob' smart constructor.+data DatasetImportJob = DatasetImportJob'+  { -- | The creation date and time (in Unix time) of the dataset import job.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The Amazon S3 bucket that contains the training data to import.+    dataSource :: Prelude.Maybe DataSource,+    -- | The Amazon Resource Name (ARN) of the dataset that receives the imported+    -- data.+    datasetArn :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the dataset import job.+    datasetImportJobArn :: Prelude.Maybe Prelude.Text,+    -- | If a dataset import job fails, provides the reason why.+    failureReason :: Prelude.Maybe Prelude.Text,+    -- | The import mode used by the dataset import job to import new records.+    importMode :: Prelude.Maybe ImportMode,+    -- | The name of the import job.+    jobName :: Prelude.Maybe Prelude.Text,+    -- | The date and time (in Unix time) the dataset was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | Whether the job publishes metrics to Amazon S3 for a metric attribution.+    publishAttributionMetricsToS3 :: Prelude.Maybe Prelude.Bool,+    -- | The ARN of the IAM role that has permissions to read from the Amazon S3+    -- data source.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | The status of the dataset import job.+    --+    -- A dataset import job can be in one of the following states:+    --+    -- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+    status :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DatasetImportJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationDateTime', 'datasetImportJob_creationDateTime' - The creation date and time (in Unix time) of the dataset import job.+--+-- 'dataSource', 'datasetImportJob_dataSource' - The Amazon S3 bucket that contains the training data to import.+--+-- 'datasetArn', 'datasetImportJob_datasetArn' - The Amazon Resource Name (ARN) of the dataset that receives the imported+-- data.+--+-- 'datasetImportJobArn', 'datasetImportJob_datasetImportJobArn' - The ARN of the dataset import job.+--+-- 'failureReason', 'datasetImportJob_failureReason' - If a dataset import job fails, provides the reason why.+--+-- 'importMode', 'datasetImportJob_importMode' - The import mode used by the dataset import job to import new records.+--+-- 'jobName', 'datasetImportJob_jobName' - The name of the import job.+--+-- 'lastUpdatedDateTime', 'datasetImportJob_lastUpdatedDateTime' - The date and time (in Unix time) the dataset was last updated.+--+-- 'publishAttributionMetricsToS3', 'datasetImportJob_publishAttributionMetricsToS3' - Whether the job publishes metrics to Amazon S3 for a metric attribution.+--+-- 'roleArn', 'datasetImportJob_roleArn' - The ARN of the IAM role that has permissions to read from the Amazon S3+-- data source.+--+-- 'status', 'datasetImportJob_status' - The status of the dataset import job.+--+-- A dataset import job can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+newDatasetImportJob ::+  DatasetImportJob+newDatasetImportJob =+  DatasetImportJob'+    { creationDateTime =+        Prelude.Nothing,+      dataSource = Prelude.Nothing,+      datasetArn = Prelude.Nothing,+      datasetImportJobArn = Prelude.Nothing,+      failureReason = Prelude.Nothing,+      importMode = Prelude.Nothing,+      jobName = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      publishAttributionMetricsToS3 = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The creation date and time (in Unix time) of the dataset import job.+datasetImportJob_creationDateTime :: Lens.Lens' DatasetImportJob (Prelude.Maybe Prelude.UTCTime)+datasetImportJob_creationDateTime = Lens.lens (\DatasetImportJob' {creationDateTime} -> creationDateTime) (\s@DatasetImportJob' {} a -> s {creationDateTime = a} :: DatasetImportJob) Prelude.. Lens.mapping Data._Time++-- | The Amazon S3 bucket that contains the training data to import.+datasetImportJob_dataSource :: Lens.Lens' DatasetImportJob (Prelude.Maybe DataSource)+datasetImportJob_dataSource = Lens.lens (\DatasetImportJob' {dataSource} -> dataSource) (\s@DatasetImportJob' {} a -> s {dataSource = a} :: DatasetImportJob)++-- | The Amazon Resource Name (ARN) of the dataset that receives the imported+-- data.+datasetImportJob_datasetArn :: Lens.Lens' DatasetImportJob (Prelude.Maybe Prelude.Text)+datasetImportJob_datasetArn = Lens.lens (\DatasetImportJob' {datasetArn} -> datasetArn) (\s@DatasetImportJob' {} a -> s {datasetArn = a} :: DatasetImportJob)++-- | The ARN of the dataset import job.+datasetImportJob_datasetImportJobArn :: Lens.Lens' DatasetImportJob (Prelude.Maybe Prelude.Text)+datasetImportJob_datasetImportJobArn = Lens.lens (\DatasetImportJob' {datasetImportJobArn} -> datasetImportJobArn) (\s@DatasetImportJob' {} a -> s {datasetImportJobArn = a} :: DatasetImportJob)++-- | If a dataset import job fails, provides the reason why.+datasetImportJob_failureReason :: Lens.Lens' DatasetImportJob (Prelude.Maybe Prelude.Text)+datasetImportJob_failureReason = Lens.lens (\DatasetImportJob' {failureReason} -> failureReason) (\s@DatasetImportJob' {} a -> s {failureReason = a} :: DatasetImportJob)++-- | The import mode used by the dataset import job to import new records.+datasetImportJob_importMode :: Lens.Lens' DatasetImportJob (Prelude.Maybe ImportMode)+datasetImportJob_importMode = Lens.lens (\DatasetImportJob' {importMode} -> importMode) (\s@DatasetImportJob' {} a -> s {importMode = a} :: DatasetImportJob)++-- | The name of the import job.+datasetImportJob_jobName :: Lens.Lens' DatasetImportJob (Prelude.Maybe Prelude.Text)+datasetImportJob_jobName = Lens.lens (\DatasetImportJob' {jobName} -> jobName) (\s@DatasetImportJob' {} a -> s {jobName = a} :: DatasetImportJob)++-- | The date and time (in Unix time) the dataset was last updated.+datasetImportJob_lastUpdatedDateTime :: Lens.Lens' DatasetImportJob (Prelude.Maybe Prelude.UTCTime)+datasetImportJob_lastUpdatedDateTime = Lens.lens (\DatasetImportJob' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@DatasetImportJob' {} a -> s {lastUpdatedDateTime = a} :: DatasetImportJob) Prelude.. Lens.mapping Data._Time++-- | Whether the job publishes metrics to Amazon S3 for a metric attribution.+datasetImportJob_publishAttributionMetricsToS3 :: Lens.Lens' DatasetImportJob (Prelude.Maybe Prelude.Bool)+datasetImportJob_publishAttributionMetricsToS3 = Lens.lens (\DatasetImportJob' {publishAttributionMetricsToS3} -> publishAttributionMetricsToS3) (\s@DatasetImportJob' {} a -> s {publishAttributionMetricsToS3 = a} :: DatasetImportJob)++-- | The ARN of the IAM role that has permissions to read from the Amazon S3+-- data source.+datasetImportJob_roleArn :: Lens.Lens' DatasetImportJob (Prelude.Maybe Prelude.Text)+datasetImportJob_roleArn = Lens.lens (\DatasetImportJob' {roleArn} -> roleArn) (\s@DatasetImportJob' {} a -> s {roleArn = a} :: DatasetImportJob)++-- | The status of the dataset import job.+--+-- A dataset import job can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+datasetImportJob_status :: Lens.Lens' DatasetImportJob (Prelude.Maybe Prelude.Text)+datasetImportJob_status = Lens.lens (\DatasetImportJob' {status} -> status) (\s@DatasetImportJob' {} a -> s {status = a} :: DatasetImportJob)++instance Data.FromJSON DatasetImportJob where+  parseJSON =+    Data.withObject+      "DatasetImportJob"+      ( \x ->+          DatasetImportJob'+            Prelude.<$> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "dataSource")+            Prelude.<*> (x Data..:? "datasetArn")+            Prelude.<*> (x Data..:? "datasetImportJobArn")+            Prelude.<*> (x Data..:? "failureReason")+            Prelude.<*> (x Data..:? "importMode")+            Prelude.<*> (x Data..:? "jobName")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "publishAttributionMetricsToS3")+            Prelude.<*> (x Data..:? "roleArn")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable DatasetImportJob where+  hashWithSalt _salt DatasetImportJob' {..} =+    _salt+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` dataSource+      `Prelude.hashWithSalt` datasetArn+      `Prelude.hashWithSalt` datasetImportJobArn+      `Prelude.hashWithSalt` failureReason+      `Prelude.hashWithSalt` importMode+      `Prelude.hashWithSalt` jobName+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` publishAttributionMetricsToS3+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` status++instance Prelude.NFData DatasetImportJob where+  rnf DatasetImportJob' {..} =+    Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf dataSource+      `Prelude.seq` Prelude.rnf datasetArn+      `Prelude.seq` Prelude.rnf datasetImportJobArn+      `Prelude.seq` Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf importMode+      `Prelude.seq` Prelude.rnf jobName+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf publishAttributionMetricsToS3+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Personalize/Types/DatasetImportJobSummary.hs view
@@ -0,0 +1,173 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.DatasetImportJobSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.DatasetImportJobSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types.ImportMode+import qualified Amazonka.Prelude as Prelude++-- | Provides a summary of the properties of a dataset import job. For a+-- complete listing, call the+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeDatasetImportJob.html DescribeDatasetImportJob>+-- API.+--+-- /See:/ 'newDatasetImportJobSummary' smart constructor.+data DatasetImportJobSummary = DatasetImportJobSummary'+  { -- | The date and time (in Unix time) that the dataset import job was+    -- created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) of the dataset import job.+    datasetImportJobArn :: Prelude.Maybe Prelude.Text,+    -- | If a dataset import job fails, the reason behind the failure.+    failureReason :: Prelude.Maybe Prelude.Text,+    -- | The import mode the dataset import job used to update the data in the+    -- dataset. For more information see+    -- <https://docs.aws.amazon.com/personalize/latest/dg/updating-existing-bulk-data.html Updating existing bulk data>.+    importMode :: Prelude.Maybe ImportMode,+    -- | The name of the dataset import job.+    jobName :: Prelude.Maybe Prelude.Text,+    -- | The date and time (in Unix time) that the dataset import job status was+    -- last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The status of the dataset import job.+    --+    -- A dataset import job can be in one of the following states:+    --+    -- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+    status :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DatasetImportJobSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationDateTime', 'datasetImportJobSummary_creationDateTime' - The date and time (in Unix time) that the dataset import job was+-- created.+--+-- 'datasetImportJobArn', 'datasetImportJobSummary_datasetImportJobArn' - The Amazon Resource Name (ARN) of the dataset import job.+--+-- 'failureReason', 'datasetImportJobSummary_failureReason' - If a dataset import job fails, the reason behind the failure.+--+-- 'importMode', 'datasetImportJobSummary_importMode' - The import mode the dataset import job used to update the data in the+-- dataset. For more information see+-- <https://docs.aws.amazon.com/personalize/latest/dg/updating-existing-bulk-data.html Updating existing bulk data>.+--+-- 'jobName', 'datasetImportJobSummary_jobName' - The name of the dataset import job.+--+-- 'lastUpdatedDateTime', 'datasetImportJobSummary_lastUpdatedDateTime' - The date and time (in Unix time) that the dataset import job status was+-- last updated.+--+-- 'status', 'datasetImportJobSummary_status' - The status of the dataset import job.+--+-- A dataset import job can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+newDatasetImportJobSummary ::+  DatasetImportJobSummary+newDatasetImportJobSummary =+  DatasetImportJobSummary'+    { creationDateTime =+        Prelude.Nothing,+      datasetImportJobArn = Prelude.Nothing,+      failureReason = Prelude.Nothing,+      importMode = Prelude.Nothing,+      jobName = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The date and time (in Unix time) that the dataset import job was+-- created.+datasetImportJobSummary_creationDateTime :: Lens.Lens' DatasetImportJobSummary (Prelude.Maybe Prelude.UTCTime)+datasetImportJobSummary_creationDateTime = Lens.lens (\DatasetImportJobSummary' {creationDateTime} -> creationDateTime) (\s@DatasetImportJobSummary' {} a -> s {creationDateTime = a} :: DatasetImportJobSummary) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the dataset import job.+datasetImportJobSummary_datasetImportJobArn :: Lens.Lens' DatasetImportJobSummary (Prelude.Maybe Prelude.Text)+datasetImportJobSummary_datasetImportJobArn = Lens.lens (\DatasetImportJobSummary' {datasetImportJobArn} -> datasetImportJobArn) (\s@DatasetImportJobSummary' {} a -> s {datasetImportJobArn = a} :: DatasetImportJobSummary)++-- | If a dataset import job fails, the reason behind the failure.+datasetImportJobSummary_failureReason :: Lens.Lens' DatasetImportJobSummary (Prelude.Maybe Prelude.Text)+datasetImportJobSummary_failureReason = Lens.lens (\DatasetImportJobSummary' {failureReason} -> failureReason) (\s@DatasetImportJobSummary' {} a -> s {failureReason = a} :: DatasetImportJobSummary)++-- | The import mode the dataset import job used to update the data in the+-- dataset. For more information see+-- <https://docs.aws.amazon.com/personalize/latest/dg/updating-existing-bulk-data.html Updating existing bulk data>.+datasetImportJobSummary_importMode :: Lens.Lens' DatasetImportJobSummary (Prelude.Maybe ImportMode)+datasetImportJobSummary_importMode = Lens.lens (\DatasetImportJobSummary' {importMode} -> importMode) (\s@DatasetImportJobSummary' {} a -> s {importMode = a} :: DatasetImportJobSummary)++-- | The name of the dataset import job.+datasetImportJobSummary_jobName :: Lens.Lens' DatasetImportJobSummary (Prelude.Maybe Prelude.Text)+datasetImportJobSummary_jobName = Lens.lens (\DatasetImportJobSummary' {jobName} -> jobName) (\s@DatasetImportJobSummary' {} a -> s {jobName = a} :: DatasetImportJobSummary)++-- | The date and time (in Unix time) that the dataset import job status was+-- last updated.+datasetImportJobSummary_lastUpdatedDateTime :: Lens.Lens' DatasetImportJobSummary (Prelude.Maybe Prelude.UTCTime)+datasetImportJobSummary_lastUpdatedDateTime = Lens.lens (\DatasetImportJobSummary' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@DatasetImportJobSummary' {} a -> s {lastUpdatedDateTime = a} :: DatasetImportJobSummary) Prelude.. Lens.mapping Data._Time++-- | The status of the dataset import job.+--+-- A dataset import job can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+datasetImportJobSummary_status :: Lens.Lens' DatasetImportJobSummary (Prelude.Maybe Prelude.Text)+datasetImportJobSummary_status = Lens.lens (\DatasetImportJobSummary' {status} -> status) (\s@DatasetImportJobSummary' {} a -> s {status = a} :: DatasetImportJobSummary)++instance Data.FromJSON DatasetImportJobSummary where+  parseJSON =+    Data.withObject+      "DatasetImportJobSummary"+      ( \x ->+          DatasetImportJobSummary'+            Prelude.<$> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "datasetImportJobArn")+            Prelude.<*> (x Data..:? "failureReason")+            Prelude.<*> (x Data..:? "importMode")+            Prelude.<*> (x Data..:? "jobName")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable DatasetImportJobSummary where+  hashWithSalt _salt DatasetImportJobSummary' {..} =+    _salt+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` datasetImportJobArn+      `Prelude.hashWithSalt` failureReason+      `Prelude.hashWithSalt` importMode+      `Prelude.hashWithSalt` jobName+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` status++instance Prelude.NFData DatasetImportJobSummary where+  rnf DatasetImportJobSummary' {..} =+    Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf datasetImportJobArn+      `Prelude.seq` Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf importMode+      `Prelude.seq` Prelude.rnf jobName+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Personalize/Types/DatasetSchema.hs view
@@ -0,0 +1,137 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.DatasetSchema+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.DatasetSchema where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types.Domain+import qualified Amazonka.Prelude as Prelude++-- | Describes the schema for a dataset. For more information on schemas, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateSchema.html CreateSchema>.+--+-- /See:/ 'newDatasetSchema' smart constructor.+data DatasetSchema = DatasetSchema'+  { -- | The date and time (in Unix time) that the schema was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The domain of a schema that you created for a dataset in a Domain+    -- dataset group.+    domain :: Prelude.Maybe Domain,+    -- | The date and time (in Unix time) that the schema was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The name of the schema.+    name :: Prelude.Maybe Prelude.Text,+    -- | The schema.+    schema :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the schema.+    schemaArn :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DatasetSchema' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationDateTime', 'datasetSchema_creationDateTime' - The date and time (in Unix time) that the schema was created.+--+-- 'domain', 'datasetSchema_domain' - The domain of a schema that you created for a dataset in a Domain+-- dataset group.+--+-- 'lastUpdatedDateTime', 'datasetSchema_lastUpdatedDateTime' - The date and time (in Unix time) that the schema was last updated.+--+-- 'name', 'datasetSchema_name' - The name of the schema.+--+-- 'schema', 'datasetSchema_schema' - The schema.+--+-- 'schemaArn', 'datasetSchema_schemaArn' - The Amazon Resource Name (ARN) of the schema.+newDatasetSchema ::+  DatasetSchema+newDatasetSchema =+  DatasetSchema'+    { creationDateTime = Prelude.Nothing,+      domain = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      name = Prelude.Nothing,+      schema = Prelude.Nothing,+      schemaArn = Prelude.Nothing+    }++-- | The date and time (in Unix time) that the schema was created.+datasetSchema_creationDateTime :: Lens.Lens' DatasetSchema (Prelude.Maybe Prelude.UTCTime)+datasetSchema_creationDateTime = Lens.lens (\DatasetSchema' {creationDateTime} -> creationDateTime) (\s@DatasetSchema' {} a -> s {creationDateTime = a} :: DatasetSchema) Prelude.. Lens.mapping Data._Time++-- | The domain of a schema that you created for a dataset in a Domain+-- dataset group.+datasetSchema_domain :: Lens.Lens' DatasetSchema (Prelude.Maybe Domain)+datasetSchema_domain = Lens.lens (\DatasetSchema' {domain} -> domain) (\s@DatasetSchema' {} a -> s {domain = a} :: DatasetSchema)++-- | The date and time (in Unix time) that the schema was last updated.+datasetSchema_lastUpdatedDateTime :: Lens.Lens' DatasetSchema (Prelude.Maybe Prelude.UTCTime)+datasetSchema_lastUpdatedDateTime = Lens.lens (\DatasetSchema' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@DatasetSchema' {} a -> s {lastUpdatedDateTime = a} :: DatasetSchema) Prelude.. Lens.mapping Data._Time++-- | The name of the schema.+datasetSchema_name :: Lens.Lens' DatasetSchema (Prelude.Maybe Prelude.Text)+datasetSchema_name = Lens.lens (\DatasetSchema' {name} -> name) (\s@DatasetSchema' {} a -> s {name = a} :: DatasetSchema)++-- | The schema.+datasetSchema_schema :: Lens.Lens' DatasetSchema (Prelude.Maybe Prelude.Text)+datasetSchema_schema = Lens.lens (\DatasetSchema' {schema} -> schema) (\s@DatasetSchema' {} a -> s {schema = a} :: DatasetSchema)++-- | The Amazon Resource Name (ARN) of the schema.+datasetSchema_schemaArn :: Lens.Lens' DatasetSchema (Prelude.Maybe Prelude.Text)+datasetSchema_schemaArn = Lens.lens (\DatasetSchema' {schemaArn} -> schemaArn) (\s@DatasetSchema' {} a -> s {schemaArn = a} :: DatasetSchema)++instance Data.FromJSON DatasetSchema where+  parseJSON =+    Data.withObject+      "DatasetSchema"+      ( \x ->+          DatasetSchema'+            Prelude.<$> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "domain")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "schema")+            Prelude.<*> (x Data..:? "schemaArn")+      )++instance Prelude.Hashable DatasetSchema where+  hashWithSalt _salt DatasetSchema' {..} =+    _salt+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` domain+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` schema+      `Prelude.hashWithSalt` schemaArn++instance Prelude.NFData DatasetSchema where+  rnf DatasetSchema' {..} =+    Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf domain+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf schema+      `Prelude.seq` Prelude.rnf schemaArn
+ gen/Amazonka/Personalize/Types/DatasetSchemaSummary.hs view
@@ -0,0 +1,128 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.DatasetSchemaSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.DatasetSchemaSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types.Domain+import qualified Amazonka.Prelude as Prelude++-- | Provides a summary of the properties of a dataset schema. For a complete+-- listing, call the+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeSchema.html DescribeSchema>+-- API.+--+-- /See:/ 'newDatasetSchemaSummary' smart constructor.+data DatasetSchemaSummary = DatasetSchemaSummary'+  { -- | The date and time (in Unix time) that the schema was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The domain of a schema that you created for a dataset in a Domain+    -- dataset group.+    domain :: Prelude.Maybe Domain,+    -- | The date and time (in Unix time) that the schema was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The name of the schema.+    name :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the schema.+    schemaArn :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DatasetSchemaSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationDateTime', 'datasetSchemaSummary_creationDateTime' - The date and time (in Unix time) that the schema was created.+--+-- 'domain', 'datasetSchemaSummary_domain' - The domain of a schema that you created for a dataset in a Domain+-- dataset group.+--+-- 'lastUpdatedDateTime', 'datasetSchemaSummary_lastUpdatedDateTime' - The date and time (in Unix time) that the schema was last updated.+--+-- 'name', 'datasetSchemaSummary_name' - The name of the schema.+--+-- 'schemaArn', 'datasetSchemaSummary_schemaArn' - The Amazon Resource Name (ARN) of the schema.+newDatasetSchemaSummary ::+  DatasetSchemaSummary+newDatasetSchemaSummary =+  DatasetSchemaSummary'+    { creationDateTime =+        Prelude.Nothing,+      domain = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      name = Prelude.Nothing,+      schemaArn = Prelude.Nothing+    }++-- | The date and time (in Unix time) that the schema was created.+datasetSchemaSummary_creationDateTime :: Lens.Lens' DatasetSchemaSummary (Prelude.Maybe Prelude.UTCTime)+datasetSchemaSummary_creationDateTime = Lens.lens (\DatasetSchemaSummary' {creationDateTime} -> creationDateTime) (\s@DatasetSchemaSummary' {} a -> s {creationDateTime = a} :: DatasetSchemaSummary) Prelude.. Lens.mapping Data._Time++-- | The domain of a schema that you created for a dataset in a Domain+-- dataset group.+datasetSchemaSummary_domain :: Lens.Lens' DatasetSchemaSummary (Prelude.Maybe Domain)+datasetSchemaSummary_domain = Lens.lens (\DatasetSchemaSummary' {domain} -> domain) (\s@DatasetSchemaSummary' {} a -> s {domain = a} :: DatasetSchemaSummary)++-- | The date and time (in Unix time) that the schema was last updated.+datasetSchemaSummary_lastUpdatedDateTime :: Lens.Lens' DatasetSchemaSummary (Prelude.Maybe Prelude.UTCTime)+datasetSchemaSummary_lastUpdatedDateTime = Lens.lens (\DatasetSchemaSummary' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@DatasetSchemaSummary' {} a -> s {lastUpdatedDateTime = a} :: DatasetSchemaSummary) Prelude.. Lens.mapping Data._Time++-- | The name of the schema.+datasetSchemaSummary_name :: Lens.Lens' DatasetSchemaSummary (Prelude.Maybe Prelude.Text)+datasetSchemaSummary_name = Lens.lens (\DatasetSchemaSummary' {name} -> name) (\s@DatasetSchemaSummary' {} a -> s {name = a} :: DatasetSchemaSummary)++-- | The Amazon Resource Name (ARN) of the schema.+datasetSchemaSummary_schemaArn :: Lens.Lens' DatasetSchemaSummary (Prelude.Maybe Prelude.Text)+datasetSchemaSummary_schemaArn = Lens.lens (\DatasetSchemaSummary' {schemaArn} -> schemaArn) (\s@DatasetSchemaSummary' {} a -> s {schemaArn = a} :: DatasetSchemaSummary)++instance Data.FromJSON DatasetSchemaSummary where+  parseJSON =+    Data.withObject+      "DatasetSchemaSummary"+      ( \x ->+          DatasetSchemaSummary'+            Prelude.<$> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "domain")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "schemaArn")+      )++instance Prelude.Hashable DatasetSchemaSummary where+  hashWithSalt _salt DatasetSchemaSummary' {..} =+    _salt+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` domain+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` schemaArn++instance Prelude.NFData DatasetSchemaSummary where+  rnf DatasetSchemaSummary' {..} =+    Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf domain+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf schemaArn
+ gen/Amazonka/Personalize/Types/DatasetSummary.hs view
@@ -0,0 +1,177 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.DatasetSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.DatasetSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides a summary of the properties of a dataset. For a complete+-- listing, call the+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeDataset.html DescribeDataset>+-- API.+--+-- /See:/ 'newDatasetSummary' smart constructor.+data DatasetSummary = DatasetSummary'+  { -- | The date and time (in Unix time) that the dataset was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) of the dataset.+    datasetArn :: Prelude.Maybe Prelude.Text,+    -- | The dataset type. One of the following values:+    --+    -- -   Interactions+    --+    -- -   Items+    --+    -- -   Users+    --+    -- -   Event-Interactions+    datasetType :: Prelude.Maybe Prelude.Text,+    -- | The date and time (in Unix time) that the dataset was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The name of the dataset.+    name :: Prelude.Maybe Prelude.Text,+    -- | The status of the dataset.+    --+    -- A dataset can be in one of the following states:+    --+    -- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+    --+    -- -   DELETE PENDING > DELETE IN_PROGRESS+    status :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DatasetSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationDateTime', 'datasetSummary_creationDateTime' - The date and time (in Unix time) that the dataset was created.+--+-- 'datasetArn', 'datasetSummary_datasetArn' - The Amazon Resource Name (ARN) of the dataset.+--+-- 'datasetType', 'datasetSummary_datasetType' - The dataset type. One of the following values:+--+-- -   Interactions+--+-- -   Items+--+-- -   Users+--+-- -   Event-Interactions+--+-- 'lastUpdatedDateTime', 'datasetSummary_lastUpdatedDateTime' - The date and time (in Unix time) that the dataset was last updated.+--+-- 'name', 'datasetSummary_name' - The name of the dataset.+--+-- 'status', 'datasetSummary_status' - The status of the dataset.+--+-- A dataset can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   DELETE PENDING > DELETE IN_PROGRESS+newDatasetSummary ::+  DatasetSummary+newDatasetSummary =+  DatasetSummary'+    { creationDateTime = Prelude.Nothing,+      datasetArn = Prelude.Nothing,+      datasetType = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      name = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The date and time (in Unix time) that the dataset was created.+datasetSummary_creationDateTime :: Lens.Lens' DatasetSummary (Prelude.Maybe Prelude.UTCTime)+datasetSummary_creationDateTime = Lens.lens (\DatasetSummary' {creationDateTime} -> creationDateTime) (\s@DatasetSummary' {} a -> s {creationDateTime = a} :: DatasetSummary) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the dataset.+datasetSummary_datasetArn :: Lens.Lens' DatasetSummary (Prelude.Maybe Prelude.Text)+datasetSummary_datasetArn = Lens.lens (\DatasetSummary' {datasetArn} -> datasetArn) (\s@DatasetSummary' {} a -> s {datasetArn = a} :: DatasetSummary)++-- | The dataset type. One of the following values:+--+-- -   Interactions+--+-- -   Items+--+-- -   Users+--+-- -   Event-Interactions+datasetSummary_datasetType :: Lens.Lens' DatasetSummary (Prelude.Maybe Prelude.Text)+datasetSummary_datasetType = Lens.lens (\DatasetSummary' {datasetType} -> datasetType) (\s@DatasetSummary' {} a -> s {datasetType = a} :: DatasetSummary)++-- | The date and time (in Unix time) that the dataset was last updated.+datasetSummary_lastUpdatedDateTime :: Lens.Lens' DatasetSummary (Prelude.Maybe Prelude.UTCTime)+datasetSummary_lastUpdatedDateTime = Lens.lens (\DatasetSummary' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@DatasetSummary' {} a -> s {lastUpdatedDateTime = a} :: DatasetSummary) Prelude.. Lens.mapping Data._Time++-- | The name of the dataset.+datasetSummary_name :: Lens.Lens' DatasetSummary (Prelude.Maybe Prelude.Text)+datasetSummary_name = Lens.lens (\DatasetSummary' {name} -> name) (\s@DatasetSummary' {} a -> s {name = a} :: DatasetSummary)++-- | The status of the dataset.+--+-- A dataset can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   DELETE PENDING > DELETE IN_PROGRESS+datasetSummary_status :: Lens.Lens' DatasetSummary (Prelude.Maybe Prelude.Text)+datasetSummary_status = Lens.lens (\DatasetSummary' {status} -> status) (\s@DatasetSummary' {} a -> s {status = a} :: DatasetSummary)++instance Data.FromJSON DatasetSummary where+  parseJSON =+    Data.withObject+      "DatasetSummary"+      ( \x ->+          DatasetSummary'+            Prelude.<$> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "datasetArn")+            Prelude.<*> (x Data..:? "datasetType")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable DatasetSummary where+  hashWithSalt _salt DatasetSummary' {..} =+    _salt+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` datasetArn+      `Prelude.hashWithSalt` datasetType+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` status++instance Prelude.NFData DatasetSummary where+  rnf DatasetSummary' {..} =+    Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf datasetArn+      `Prelude.seq` Prelude.rnf datasetType+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Personalize/Types/DefaultCategoricalHyperParameterRange.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.Personalize.Types.DefaultCategoricalHyperParameterRange+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.DefaultCategoricalHyperParameterRange 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 name and default range of a categorical hyperparameter and+-- whether the hyperparameter is tunable. A tunable hyperparameter can have+-- its value determined during hyperparameter optimization (HPO).+--+-- /See:/ 'newDefaultCategoricalHyperParameterRange' smart constructor.+data DefaultCategoricalHyperParameterRange = DefaultCategoricalHyperParameterRange'+  { -- | Whether the hyperparameter is tunable.+    isTunable :: Prelude.Maybe Prelude.Bool,+    -- | The name of the hyperparameter.+    name :: Prelude.Maybe Prelude.Text,+    -- | A list of the categories for the hyperparameter.+    values :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DefaultCategoricalHyperParameterRange' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'isTunable', 'defaultCategoricalHyperParameterRange_isTunable' - Whether the hyperparameter is tunable.+--+-- 'name', 'defaultCategoricalHyperParameterRange_name' - The name of the hyperparameter.+--+-- 'values', 'defaultCategoricalHyperParameterRange_values' - A list of the categories for the hyperparameter.+newDefaultCategoricalHyperParameterRange ::+  DefaultCategoricalHyperParameterRange+newDefaultCategoricalHyperParameterRange =+  DefaultCategoricalHyperParameterRange'+    { isTunable =+        Prelude.Nothing,+      name = Prelude.Nothing,+      values = Prelude.Nothing+    }++-- | Whether the hyperparameter is tunable.+defaultCategoricalHyperParameterRange_isTunable :: Lens.Lens' DefaultCategoricalHyperParameterRange (Prelude.Maybe Prelude.Bool)+defaultCategoricalHyperParameterRange_isTunable = Lens.lens (\DefaultCategoricalHyperParameterRange' {isTunable} -> isTunable) (\s@DefaultCategoricalHyperParameterRange' {} a -> s {isTunable = a} :: DefaultCategoricalHyperParameterRange)++-- | The name of the hyperparameter.+defaultCategoricalHyperParameterRange_name :: Lens.Lens' DefaultCategoricalHyperParameterRange (Prelude.Maybe Prelude.Text)+defaultCategoricalHyperParameterRange_name = Lens.lens (\DefaultCategoricalHyperParameterRange' {name} -> name) (\s@DefaultCategoricalHyperParameterRange' {} a -> s {name = a} :: DefaultCategoricalHyperParameterRange)++-- | A list of the categories for the hyperparameter.+defaultCategoricalHyperParameterRange_values :: Lens.Lens' DefaultCategoricalHyperParameterRange (Prelude.Maybe [Prelude.Text])+defaultCategoricalHyperParameterRange_values = Lens.lens (\DefaultCategoricalHyperParameterRange' {values} -> values) (\s@DefaultCategoricalHyperParameterRange' {} a -> s {values = a} :: DefaultCategoricalHyperParameterRange) Prelude.. Lens.mapping Lens.coerced++instance+  Data.FromJSON+    DefaultCategoricalHyperParameterRange+  where+  parseJSON =+    Data.withObject+      "DefaultCategoricalHyperParameterRange"+      ( \x ->+          DefaultCategoricalHyperParameterRange'+            Prelude.<$> (x Data..:? "isTunable")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "values" Data..!= Prelude.mempty)+      )++instance+  Prelude.Hashable+    DefaultCategoricalHyperParameterRange+  where+  hashWithSalt+    _salt+    DefaultCategoricalHyperParameterRange' {..} =+      _salt+        `Prelude.hashWithSalt` isTunable+        `Prelude.hashWithSalt` name+        `Prelude.hashWithSalt` values++instance+  Prelude.NFData+    DefaultCategoricalHyperParameterRange+  where+  rnf DefaultCategoricalHyperParameterRange' {..} =+    Prelude.rnf isTunable+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf values
+ gen/Amazonka/Personalize/Types/DefaultContinuousHyperParameterRange.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.Personalize.Types.DefaultContinuousHyperParameterRange+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.DefaultContinuousHyperParameterRange 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 name and default range of a continuous hyperparameter and+-- whether the hyperparameter is tunable. A tunable hyperparameter can have+-- its value determined during hyperparameter optimization (HPO).+--+-- /See:/ 'newDefaultContinuousHyperParameterRange' smart constructor.+data DefaultContinuousHyperParameterRange = DefaultContinuousHyperParameterRange'+  { -- | Whether the hyperparameter is tunable.+    isTunable :: Prelude.Maybe Prelude.Bool,+    -- | The maximum allowable value for the hyperparameter.+    maxValue :: Prelude.Maybe Prelude.Double,+    -- | The minimum allowable value for the hyperparameter.+    minValue :: Prelude.Maybe Prelude.Double,+    -- | The name of the hyperparameter.+    name :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DefaultContinuousHyperParameterRange' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'isTunable', 'defaultContinuousHyperParameterRange_isTunable' - Whether the hyperparameter is tunable.+--+-- 'maxValue', 'defaultContinuousHyperParameterRange_maxValue' - The maximum allowable value for the hyperparameter.+--+-- 'minValue', 'defaultContinuousHyperParameterRange_minValue' - The minimum allowable value for the hyperparameter.+--+-- 'name', 'defaultContinuousHyperParameterRange_name' - The name of the hyperparameter.+newDefaultContinuousHyperParameterRange ::+  DefaultContinuousHyperParameterRange+newDefaultContinuousHyperParameterRange =+  DefaultContinuousHyperParameterRange'+    { isTunable =+        Prelude.Nothing,+      maxValue = Prelude.Nothing,+      minValue = Prelude.Nothing,+      name = Prelude.Nothing+    }++-- | Whether the hyperparameter is tunable.+defaultContinuousHyperParameterRange_isTunable :: Lens.Lens' DefaultContinuousHyperParameterRange (Prelude.Maybe Prelude.Bool)+defaultContinuousHyperParameterRange_isTunable = Lens.lens (\DefaultContinuousHyperParameterRange' {isTunable} -> isTunable) (\s@DefaultContinuousHyperParameterRange' {} a -> s {isTunable = a} :: DefaultContinuousHyperParameterRange)++-- | The maximum allowable value for the hyperparameter.+defaultContinuousHyperParameterRange_maxValue :: Lens.Lens' DefaultContinuousHyperParameterRange (Prelude.Maybe Prelude.Double)+defaultContinuousHyperParameterRange_maxValue = Lens.lens (\DefaultContinuousHyperParameterRange' {maxValue} -> maxValue) (\s@DefaultContinuousHyperParameterRange' {} a -> s {maxValue = a} :: DefaultContinuousHyperParameterRange)++-- | The minimum allowable value for the hyperparameter.+defaultContinuousHyperParameterRange_minValue :: Lens.Lens' DefaultContinuousHyperParameterRange (Prelude.Maybe Prelude.Double)+defaultContinuousHyperParameterRange_minValue = Lens.lens (\DefaultContinuousHyperParameterRange' {minValue} -> minValue) (\s@DefaultContinuousHyperParameterRange' {} a -> s {minValue = a} :: DefaultContinuousHyperParameterRange)++-- | The name of the hyperparameter.+defaultContinuousHyperParameterRange_name :: Lens.Lens' DefaultContinuousHyperParameterRange (Prelude.Maybe Prelude.Text)+defaultContinuousHyperParameterRange_name = Lens.lens (\DefaultContinuousHyperParameterRange' {name} -> name) (\s@DefaultContinuousHyperParameterRange' {} a -> s {name = a} :: DefaultContinuousHyperParameterRange)++instance+  Data.FromJSON+    DefaultContinuousHyperParameterRange+  where+  parseJSON =+    Data.withObject+      "DefaultContinuousHyperParameterRange"+      ( \x ->+          DefaultContinuousHyperParameterRange'+            Prelude.<$> (x Data..:? "isTunable")+            Prelude.<*> (x Data..:? "maxValue")+            Prelude.<*> (x Data..:? "minValue")+            Prelude.<*> (x Data..:? "name")+      )++instance+  Prelude.Hashable+    DefaultContinuousHyperParameterRange+  where+  hashWithSalt+    _salt+    DefaultContinuousHyperParameterRange' {..} =+      _salt+        `Prelude.hashWithSalt` isTunable+        `Prelude.hashWithSalt` maxValue+        `Prelude.hashWithSalt` minValue+        `Prelude.hashWithSalt` name++instance+  Prelude.NFData+    DefaultContinuousHyperParameterRange+  where+  rnf DefaultContinuousHyperParameterRange' {..} =+    Prelude.rnf isTunable+      `Prelude.seq` Prelude.rnf maxValue+      `Prelude.seq` Prelude.rnf minValue+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/Personalize/Types/DefaultHyperParameterRanges.hs view
@@ -0,0 +1,111 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.DefaultHyperParameterRanges+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.DefaultHyperParameterRanges where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types.DefaultCategoricalHyperParameterRange+import Amazonka.Personalize.Types.DefaultContinuousHyperParameterRange+import Amazonka.Personalize.Types.DefaultIntegerHyperParameterRange+import qualified Amazonka.Prelude as Prelude++-- | Specifies the hyperparameters and their default ranges. Hyperparameters+-- can be categorical, continuous, or integer-valued.+--+-- /See:/ 'newDefaultHyperParameterRanges' smart constructor.+data DefaultHyperParameterRanges = DefaultHyperParameterRanges'+  { -- | The categorical hyperparameters and their default ranges.+    categoricalHyperParameterRanges :: Prelude.Maybe [DefaultCategoricalHyperParameterRange],+    -- | The continuous hyperparameters and their default ranges.+    continuousHyperParameterRanges :: Prelude.Maybe [DefaultContinuousHyperParameterRange],+    -- | The integer-valued hyperparameters and their default ranges.+    integerHyperParameterRanges :: Prelude.Maybe [DefaultIntegerHyperParameterRange]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DefaultHyperParameterRanges' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'categoricalHyperParameterRanges', 'defaultHyperParameterRanges_categoricalHyperParameterRanges' - The categorical hyperparameters and their default ranges.+--+-- 'continuousHyperParameterRanges', 'defaultHyperParameterRanges_continuousHyperParameterRanges' - The continuous hyperparameters and their default ranges.+--+-- 'integerHyperParameterRanges', 'defaultHyperParameterRanges_integerHyperParameterRanges' - The integer-valued hyperparameters and their default ranges.+newDefaultHyperParameterRanges ::+  DefaultHyperParameterRanges+newDefaultHyperParameterRanges =+  DefaultHyperParameterRanges'+    { categoricalHyperParameterRanges =+        Prelude.Nothing,+      continuousHyperParameterRanges =+        Prelude.Nothing,+      integerHyperParameterRanges = Prelude.Nothing+    }++-- | The categorical hyperparameters and their default ranges.+defaultHyperParameterRanges_categoricalHyperParameterRanges :: Lens.Lens' DefaultHyperParameterRanges (Prelude.Maybe [DefaultCategoricalHyperParameterRange])+defaultHyperParameterRanges_categoricalHyperParameterRanges = Lens.lens (\DefaultHyperParameterRanges' {categoricalHyperParameterRanges} -> categoricalHyperParameterRanges) (\s@DefaultHyperParameterRanges' {} a -> s {categoricalHyperParameterRanges = a} :: DefaultHyperParameterRanges) Prelude.. Lens.mapping Lens.coerced++-- | The continuous hyperparameters and their default ranges.+defaultHyperParameterRanges_continuousHyperParameterRanges :: Lens.Lens' DefaultHyperParameterRanges (Prelude.Maybe [DefaultContinuousHyperParameterRange])+defaultHyperParameterRanges_continuousHyperParameterRanges = Lens.lens (\DefaultHyperParameterRanges' {continuousHyperParameterRanges} -> continuousHyperParameterRanges) (\s@DefaultHyperParameterRanges' {} a -> s {continuousHyperParameterRanges = a} :: DefaultHyperParameterRanges) Prelude.. Lens.mapping Lens.coerced++-- | The integer-valued hyperparameters and their default ranges.+defaultHyperParameterRanges_integerHyperParameterRanges :: Lens.Lens' DefaultHyperParameterRanges (Prelude.Maybe [DefaultIntegerHyperParameterRange])+defaultHyperParameterRanges_integerHyperParameterRanges = Lens.lens (\DefaultHyperParameterRanges' {integerHyperParameterRanges} -> integerHyperParameterRanges) (\s@DefaultHyperParameterRanges' {} a -> s {integerHyperParameterRanges = a} :: DefaultHyperParameterRanges) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON DefaultHyperParameterRanges where+  parseJSON =+    Data.withObject+      "DefaultHyperParameterRanges"+      ( \x ->+          DefaultHyperParameterRanges'+            Prelude.<$> ( x+                            Data..:? "categoricalHyperParameterRanges"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "continuousHyperParameterRanges"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "integerHyperParameterRanges"+                            Data..!= Prelude.mempty+                        )+      )++instance Prelude.Hashable DefaultHyperParameterRanges where+  hashWithSalt _salt DefaultHyperParameterRanges' {..} =+    _salt+      `Prelude.hashWithSalt` categoricalHyperParameterRanges+      `Prelude.hashWithSalt` continuousHyperParameterRanges+      `Prelude.hashWithSalt` integerHyperParameterRanges++instance Prelude.NFData DefaultHyperParameterRanges where+  rnf DefaultHyperParameterRanges' {..} =+    Prelude.rnf categoricalHyperParameterRanges+      `Prelude.seq` Prelude.rnf continuousHyperParameterRanges+      `Prelude.seq` Prelude.rnf integerHyperParameterRanges
+ gen/Amazonka/Personalize/Types/DefaultIntegerHyperParameterRange.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.Personalize.Types.DefaultIntegerHyperParameterRange+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.DefaultIntegerHyperParameterRange 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 name and default range of a integer-valued hyperparameter+-- and whether the hyperparameter is tunable. A tunable hyperparameter can+-- have its value determined during hyperparameter optimization (HPO).+--+-- /See:/ 'newDefaultIntegerHyperParameterRange' smart constructor.+data DefaultIntegerHyperParameterRange = DefaultIntegerHyperParameterRange'+  { -- | Indicates whether the hyperparameter is tunable.+    isTunable :: Prelude.Maybe Prelude.Bool,+    -- | The maximum allowable value for the hyperparameter.+    maxValue :: Prelude.Maybe Prelude.Int,+    -- | The minimum allowable value for the hyperparameter.+    minValue :: Prelude.Maybe Prelude.Int,+    -- | The name of the hyperparameter.+    name :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DefaultIntegerHyperParameterRange' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'isTunable', 'defaultIntegerHyperParameterRange_isTunable' - Indicates whether the hyperparameter is tunable.+--+-- 'maxValue', 'defaultIntegerHyperParameterRange_maxValue' - The maximum allowable value for the hyperparameter.+--+-- 'minValue', 'defaultIntegerHyperParameterRange_minValue' - The minimum allowable value for the hyperparameter.+--+-- 'name', 'defaultIntegerHyperParameterRange_name' - The name of the hyperparameter.+newDefaultIntegerHyperParameterRange ::+  DefaultIntegerHyperParameterRange+newDefaultIntegerHyperParameterRange =+  DefaultIntegerHyperParameterRange'+    { isTunable =+        Prelude.Nothing,+      maxValue = Prelude.Nothing,+      minValue = Prelude.Nothing,+      name = Prelude.Nothing+    }++-- | Indicates whether the hyperparameter is tunable.+defaultIntegerHyperParameterRange_isTunable :: Lens.Lens' DefaultIntegerHyperParameterRange (Prelude.Maybe Prelude.Bool)+defaultIntegerHyperParameterRange_isTunable = Lens.lens (\DefaultIntegerHyperParameterRange' {isTunable} -> isTunable) (\s@DefaultIntegerHyperParameterRange' {} a -> s {isTunable = a} :: DefaultIntegerHyperParameterRange)++-- | The maximum allowable value for the hyperparameter.+defaultIntegerHyperParameterRange_maxValue :: Lens.Lens' DefaultIntegerHyperParameterRange (Prelude.Maybe Prelude.Int)+defaultIntegerHyperParameterRange_maxValue = Lens.lens (\DefaultIntegerHyperParameterRange' {maxValue} -> maxValue) (\s@DefaultIntegerHyperParameterRange' {} a -> s {maxValue = a} :: DefaultIntegerHyperParameterRange)++-- | The minimum allowable value for the hyperparameter.+defaultIntegerHyperParameterRange_minValue :: Lens.Lens' DefaultIntegerHyperParameterRange (Prelude.Maybe Prelude.Int)+defaultIntegerHyperParameterRange_minValue = Lens.lens (\DefaultIntegerHyperParameterRange' {minValue} -> minValue) (\s@DefaultIntegerHyperParameterRange' {} a -> s {minValue = a} :: DefaultIntegerHyperParameterRange)++-- | The name of the hyperparameter.+defaultIntegerHyperParameterRange_name :: Lens.Lens' DefaultIntegerHyperParameterRange (Prelude.Maybe Prelude.Text)+defaultIntegerHyperParameterRange_name = Lens.lens (\DefaultIntegerHyperParameterRange' {name} -> name) (\s@DefaultIntegerHyperParameterRange' {} a -> s {name = a} :: DefaultIntegerHyperParameterRange)++instance+  Data.FromJSON+    DefaultIntegerHyperParameterRange+  where+  parseJSON =+    Data.withObject+      "DefaultIntegerHyperParameterRange"+      ( \x ->+          DefaultIntegerHyperParameterRange'+            Prelude.<$> (x Data..:? "isTunable")+            Prelude.<*> (x Data..:? "maxValue")+            Prelude.<*> (x Data..:? "minValue")+            Prelude.<*> (x Data..:? "name")+      )++instance+  Prelude.Hashable+    DefaultIntegerHyperParameterRange+  where+  hashWithSalt+    _salt+    DefaultIntegerHyperParameterRange' {..} =+      _salt+        `Prelude.hashWithSalt` isTunable+        `Prelude.hashWithSalt` maxValue+        `Prelude.hashWithSalt` minValue+        `Prelude.hashWithSalt` name++instance+  Prelude.NFData+    DefaultIntegerHyperParameterRange+  where+  rnf DefaultIntegerHyperParameterRange' {..} =+    Prelude.rnf isTunable+      `Prelude.seq` Prelude.rnf maxValue+      `Prelude.seq` Prelude.rnf minValue+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/Personalize/Types/Domain.hs view
@@ -0,0 +1,68 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.Domain+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.Domain+  ( Domain+      ( ..,+        Domain_ECOMMERCE,+        Domain_VIDEO_ON_DEMAND+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Domain = Domain' {fromDomain :: 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 Domain_ECOMMERCE :: Domain+pattern Domain_ECOMMERCE = Domain' "ECOMMERCE"++pattern Domain_VIDEO_ON_DEMAND :: Domain+pattern Domain_VIDEO_ON_DEMAND = Domain' "VIDEO_ON_DEMAND"++{-# COMPLETE+  Domain_ECOMMERCE,+  Domain_VIDEO_ON_DEMAND,+  Domain'+  #-}
+ gen/Amazonka/Personalize/Types/EventTracker.hs view
@@ -0,0 +1,186 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.EventTracker+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.EventTracker where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides information about an event tracker.+--+-- /See:/ 'newEventTracker' smart constructor.+data EventTracker = EventTracker'+  { -- | The Amazon Web Services account that owns the event tracker.+    accountId :: Prelude.Maybe Prelude.Text,+    -- | The date and time (in Unix format) that the event tracker was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) of the dataset group that receives the+    -- event data.+    datasetGroupArn :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the event tracker.+    eventTrackerArn :: Prelude.Maybe Prelude.Text,+    -- | The date and time (in Unix time) that the event tracker was last+    -- updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The name of the event tracker.+    name :: Prelude.Maybe Prelude.Text,+    -- | The status of the event tracker.+    --+    -- An event tracker can be in one of the following states:+    --+    -- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+    --+    -- -   DELETE PENDING > DELETE IN_PROGRESS+    status :: Prelude.Maybe Prelude.Text,+    -- | The ID of the event tracker. Include this ID in requests to the+    -- <https://docs.aws.amazon.com/personalize/latest/dg/API_UBS_PutEvents.html PutEvents>+    -- API.+    trackingId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EventTracker' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'eventTracker_accountId' - The Amazon Web Services account that owns the event tracker.+--+-- 'creationDateTime', 'eventTracker_creationDateTime' - The date and time (in Unix format) that the event tracker was created.+--+-- 'datasetGroupArn', 'eventTracker_datasetGroupArn' - The Amazon Resource Name (ARN) of the dataset group that receives the+-- event data.+--+-- 'eventTrackerArn', 'eventTracker_eventTrackerArn' - The ARN of the event tracker.+--+-- 'lastUpdatedDateTime', 'eventTracker_lastUpdatedDateTime' - The date and time (in Unix time) that the event tracker was last+-- updated.+--+-- 'name', 'eventTracker_name' - The name of the event tracker.+--+-- 'status', 'eventTracker_status' - The status of the event tracker.+--+-- An event tracker can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   DELETE PENDING > DELETE IN_PROGRESS+--+-- 'trackingId', 'eventTracker_trackingId' - The ID of the event tracker. Include this ID in requests to the+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_UBS_PutEvents.html PutEvents>+-- API.+newEventTracker ::+  EventTracker+newEventTracker =+  EventTracker'+    { accountId = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      datasetGroupArn = Prelude.Nothing,+      eventTrackerArn = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      name = Prelude.Nothing,+      status = Prelude.Nothing,+      trackingId = Prelude.Nothing+    }++-- | The Amazon Web Services account that owns the event tracker.+eventTracker_accountId :: Lens.Lens' EventTracker (Prelude.Maybe Prelude.Text)+eventTracker_accountId = Lens.lens (\EventTracker' {accountId} -> accountId) (\s@EventTracker' {} a -> s {accountId = a} :: EventTracker)++-- | The date and time (in Unix format) that the event tracker was created.+eventTracker_creationDateTime :: Lens.Lens' EventTracker (Prelude.Maybe Prelude.UTCTime)+eventTracker_creationDateTime = Lens.lens (\EventTracker' {creationDateTime} -> creationDateTime) (\s@EventTracker' {} a -> s {creationDateTime = a} :: EventTracker) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the dataset group that receives the+-- event data.+eventTracker_datasetGroupArn :: Lens.Lens' EventTracker (Prelude.Maybe Prelude.Text)+eventTracker_datasetGroupArn = Lens.lens (\EventTracker' {datasetGroupArn} -> datasetGroupArn) (\s@EventTracker' {} a -> s {datasetGroupArn = a} :: EventTracker)++-- | The ARN of the event tracker.+eventTracker_eventTrackerArn :: Lens.Lens' EventTracker (Prelude.Maybe Prelude.Text)+eventTracker_eventTrackerArn = Lens.lens (\EventTracker' {eventTrackerArn} -> eventTrackerArn) (\s@EventTracker' {} a -> s {eventTrackerArn = a} :: EventTracker)++-- | The date and time (in Unix time) that the event tracker was last+-- updated.+eventTracker_lastUpdatedDateTime :: Lens.Lens' EventTracker (Prelude.Maybe Prelude.UTCTime)+eventTracker_lastUpdatedDateTime = Lens.lens (\EventTracker' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@EventTracker' {} a -> s {lastUpdatedDateTime = a} :: EventTracker) Prelude.. Lens.mapping Data._Time++-- | The name of the event tracker.+eventTracker_name :: Lens.Lens' EventTracker (Prelude.Maybe Prelude.Text)+eventTracker_name = Lens.lens (\EventTracker' {name} -> name) (\s@EventTracker' {} a -> s {name = a} :: EventTracker)++-- | The status of the event tracker.+--+-- An event tracker can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   DELETE PENDING > DELETE IN_PROGRESS+eventTracker_status :: Lens.Lens' EventTracker (Prelude.Maybe Prelude.Text)+eventTracker_status = Lens.lens (\EventTracker' {status} -> status) (\s@EventTracker' {} a -> s {status = a} :: EventTracker)++-- | The ID of the event tracker. Include this ID in requests to the+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_UBS_PutEvents.html PutEvents>+-- API.+eventTracker_trackingId :: Lens.Lens' EventTracker (Prelude.Maybe Prelude.Text)+eventTracker_trackingId = Lens.lens (\EventTracker' {trackingId} -> trackingId) (\s@EventTracker' {} a -> s {trackingId = a} :: EventTracker)++instance Data.FromJSON EventTracker where+  parseJSON =+    Data.withObject+      "EventTracker"+      ( \x ->+          EventTracker'+            Prelude.<$> (x Data..:? "accountId")+            Prelude.<*> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "datasetGroupArn")+            Prelude.<*> (x Data..:? "eventTrackerArn")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "status")+            Prelude.<*> (x Data..:? "trackingId")+      )++instance Prelude.Hashable EventTracker where+  hashWithSalt _salt EventTracker' {..} =+    _salt+      `Prelude.hashWithSalt` accountId+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` datasetGroupArn+      `Prelude.hashWithSalt` eventTrackerArn+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` trackingId++instance Prelude.NFData EventTracker where+  rnf EventTracker' {..} =+    Prelude.rnf accountId+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf datasetGroupArn+      `Prelude.seq` Prelude.rnf eventTrackerArn+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf trackingId
+ gen/Amazonka/Personalize/Types/EventTrackerSummary.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.Personalize.Types.EventTrackerSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.EventTrackerSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides a summary of the properties of an event tracker. For a complete+-- listing, call the+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeEventTracker.html DescribeEventTracker>+-- API.+--+-- /See:/ 'newEventTrackerSummary' smart constructor.+data EventTrackerSummary = EventTrackerSummary'+  { -- | The date and time (in Unix time) that the event tracker was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) of the event tracker.+    eventTrackerArn :: Prelude.Maybe Prelude.Text,+    -- | The date and time (in Unix time) that the event tracker was last+    -- updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The name of the event tracker.+    name :: Prelude.Maybe Prelude.Text,+    -- | The status of the event tracker.+    --+    -- An event tracker can be in one of the following states:+    --+    -- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+    --+    -- -   DELETE PENDING > DELETE IN_PROGRESS+    status :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EventTrackerSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationDateTime', 'eventTrackerSummary_creationDateTime' - The date and time (in Unix time) that the event tracker was created.+--+-- 'eventTrackerArn', 'eventTrackerSummary_eventTrackerArn' - The Amazon Resource Name (ARN) of the event tracker.+--+-- 'lastUpdatedDateTime', 'eventTrackerSummary_lastUpdatedDateTime' - The date and time (in Unix time) that the event tracker was last+-- updated.+--+-- 'name', 'eventTrackerSummary_name' - The name of the event tracker.+--+-- 'status', 'eventTrackerSummary_status' - The status of the event tracker.+--+-- An event tracker can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   DELETE PENDING > DELETE IN_PROGRESS+newEventTrackerSummary ::+  EventTrackerSummary+newEventTrackerSummary =+  EventTrackerSummary'+    { creationDateTime =+        Prelude.Nothing,+      eventTrackerArn = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      name = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The date and time (in Unix time) that the event tracker was created.+eventTrackerSummary_creationDateTime :: Lens.Lens' EventTrackerSummary (Prelude.Maybe Prelude.UTCTime)+eventTrackerSummary_creationDateTime = Lens.lens (\EventTrackerSummary' {creationDateTime} -> creationDateTime) (\s@EventTrackerSummary' {} a -> s {creationDateTime = a} :: EventTrackerSummary) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the event tracker.+eventTrackerSummary_eventTrackerArn :: Lens.Lens' EventTrackerSummary (Prelude.Maybe Prelude.Text)+eventTrackerSummary_eventTrackerArn = Lens.lens (\EventTrackerSummary' {eventTrackerArn} -> eventTrackerArn) (\s@EventTrackerSummary' {} a -> s {eventTrackerArn = a} :: EventTrackerSummary)++-- | The date and time (in Unix time) that the event tracker was last+-- updated.+eventTrackerSummary_lastUpdatedDateTime :: Lens.Lens' EventTrackerSummary (Prelude.Maybe Prelude.UTCTime)+eventTrackerSummary_lastUpdatedDateTime = Lens.lens (\EventTrackerSummary' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@EventTrackerSummary' {} a -> s {lastUpdatedDateTime = a} :: EventTrackerSummary) Prelude.. Lens.mapping Data._Time++-- | The name of the event tracker.+eventTrackerSummary_name :: Lens.Lens' EventTrackerSummary (Prelude.Maybe Prelude.Text)+eventTrackerSummary_name = Lens.lens (\EventTrackerSummary' {name} -> name) (\s@EventTrackerSummary' {} a -> s {name = a} :: EventTrackerSummary)++-- | The status of the event tracker.+--+-- An event tracker can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   DELETE PENDING > DELETE IN_PROGRESS+eventTrackerSummary_status :: Lens.Lens' EventTrackerSummary (Prelude.Maybe Prelude.Text)+eventTrackerSummary_status = Lens.lens (\EventTrackerSummary' {status} -> status) (\s@EventTrackerSummary' {} a -> s {status = a} :: EventTrackerSummary)++instance Data.FromJSON EventTrackerSummary where+  parseJSON =+    Data.withObject+      "EventTrackerSummary"+      ( \x ->+          EventTrackerSummary'+            Prelude.<$> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "eventTrackerArn")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable EventTrackerSummary where+  hashWithSalt _salt EventTrackerSummary' {..} =+    _salt+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` eventTrackerArn+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` status++instance Prelude.NFData EventTrackerSummary where+  rnf EventTrackerSummary' {..} =+    Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf eventTrackerArn+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Personalize/Types/FeatureTransformation.hs view
@@ -0,0 +1,153 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.FeatureTransformation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.FeatureTransformation 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 feature transformation information. Feature transformation is+-- the process of modifying raw input data into a form more suitable for+-- model training.+--+-- /See:/ 'newFeatureTransformation' smart constructor.+data FeatureTransformation = FeatureTransformation'+  { -- | The creation date and time (in Unix time) of the feature transformation.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | Provides the default parameters for feature transformation.+    defaultParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The Amazon Resource Name (ARN) of the FeatureTransformation object.+    featureTransformationArn :: Prelude.Maybe Prelude.Text,+    -- | The last update date and time (in Unix time) of the feature+    -- transformation.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The name of the feature transformation.+    name :: Prelude.Maybe Prelude.Text,+    -- | The status of the feature transformation.+    --+    -- A feature transformation can be in one of the following states:+    --+    -- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+    status :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FeatureTransformation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationDateTime', 'featureTransformation_creationDateTime' - The creation date and time (in Unix time) of the feature transformation.+--+-- 'defaultParameters', 'featureTransformation_defaultParameters' - Provides the default parameters for feature transformation.+--+-- 'featureTransformationArn', 'featureTransformation_featureTransformationArn' - The Amazon Resource Name (ARN) of the FeatureTransformation object.+--+-- 'lastUpdatedDateTime', 'featureTransformation_lastUpdatedDateTime' - The last update date and time (in Unix time) of the feature+-- transformation.+--+-- 'name', 'featureTransformation_name' - The name of the feature transformation.+--+-- 'status', 'featureTransformation_status' - The status of the feature transformation.+--+-- A feature transformation can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+newFeatureTransformation ::+  FeatureTransformation+newFeatureTransformation =+  FeatureTransformation'+    { creationDateTime =+        Prelude.Nothing,+      defaultParameters = Prelude.Nothing,+      featureTransformationArn = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      name = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The creation date and time (in Unix time) of the feature transformation.+featureTransformation_creationDateTime :: Lens.Lens' FeatureTransformation (Prelude.Maybe Prelude.UTCTime)+featureTransformation_creationDateTime = Lens.lens (\FeatureTransformation' {creationDateTime} -> creationDateTime) (\s@FeatureTransformation' {} a -> s {creationDateTime = a} :: FeatureTransformation) Prelude.. Lens.mapping Data._Time++-- | Provides the default parameters for feature transformation.+featureTransformation_defaultParameters :: Lens.Lens' FeatureTransformation (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+featureTransformation_defaultParameters = Lens.lens (\FeatureTransformation' {defaultParameters} -> defaultParameters) (\s@FeatureTransformation' {} a -> s {defaultParameters = a} :: FeatureTransformation) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) of the FeatureTransformation object.+featureTransformation_featureTransformationArn :: Lens.Lens' FeatureTransformation (Prelude.Maybe Prelude.Text)+featureTransformation_featureTransformationArn = Lens.lens (\FeatureTransformation' {featureTransformationArn} -> featureTransformationArn) (\s@FeatureTransformation' {} a -> s {featureTransformationArn = a} :: FeatureTransformation)++-- | The last update date and time (in Unix time) of the feature+-- transformation.+featureTransformation_lastUpdatedDateTime :: Lens.Lens' FeatureTransformation (Prelude.Maybe Prelude.UTCTime)+featureTransformation_lastUpdatedDateTime = Lens.lens (\FeatureTransformation' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@FeatureTransformation' {} a -> s {lastUpdatedDateTime = a} :: FeatureTransformation) Prelude.. Lens.mapping Data._Time++-- | The name of the feature transformation.+featureTransformation_name :: Lens.Lens' FeatureTransformation (Prelude.Maybe Prelude.Text)+featureTransformation_name = Lens.lens (\FeatureTransformation' {name} -> name) (\s@FeatureTransformation' {} a -> s {name = a} :: FeatureTransformation)++-- | The status of the feature transformation.+--+-- A feature transformation can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+featureTransformation_status :: Lens.Lens' FeatureTransformation (Prelude.Maybe Prelude.Text)+featureTransformation_status = Lens.lens (\FeatureTransformation' {status} -> status) (\s@FeatureTransformation' {} a -> s {status = a} :: FeatureTransformation)++instance Data.FromJSON FeatureTransformation where+  parseJSON =+    Data.withObject+      "FeatureTransformation"+      ( \x ->+          FeatureTransformation'+            Prelude.<$> (x Data..:? "creationDateTime")+            Prelude.<*> ( x+                            Data..:? "defaultParameters"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "featureTransformationArn")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable FeatureTransformation where+  hashWithSalt _salt FeatureTransformation' {..} =+    _salt+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` defaultParameters+      `Prelude.hashWithSalt` featureTransformationArn+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` status++instance Prelude.NFData FeatureTransformation where+  rnf FeatureTransformation' {..} =+    Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf defaultParameters+      `Prelude.seq` Prelude.rnf featureTransformationArn+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Personalize/Types/Filter.hs view
@@ -0,0 +1,166 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.Filter+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.Filter 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++-- | Contains information on a recommendation filter, including its ARN,+-- status, and filter expression.+--+-- /See:/ 'newFilter' smart constructor.+data Filter = Filter'+  { -- | The time at which the filter was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The ARN of the dataset group to which the filter belongs.+    datasetGroupArn :: Prelude.Maybe Prelude.Text,+    -- | If the filter failed, the reason for its failure.+    failureReason :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the filter.+    filterArn :: Prelude.Maybe Prelude.Text,+    -- | Specifies the type of item interactions to filter out of recommendation+    -- results. The filter expression must follow specific format rules. For+    -- information about filter expression structure and syntax, see+    -- <https://docs.aws.amazon.com/personalize/latest/dg/filter-expressions.html Filter expressions>.+    filterExpression :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The time at which the filter was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The name of the filter.+    name :: Prelude.Maybe Prelude.Text,+    -- | The status of the filter.+    status :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Filter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationDateTime', 'filter_creationDateTime' - The time at which the filter was created.+--+-- 'datasetGroupArn', 'filter_datasetGroupArn' - The ARN of the dataset group to which the filter belongs.+--+-- 'failureReason', 'filter_failureReason' - If the filter failed, the reason for its failure.+--+-- 'filterArn', 'filter_filterArn' - The ARN of the filter.+--+-- 'filterExpression', 'filter_filterExpression' - Specifies the type of item interactions to filter out of recommendation+-- results. The filter expression must follow specific format rules. For+-- information about filter expression structure and syntax, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/filter-expressions.html Filter expressions>.+--+-- 'lastUpdatedDateTime', 'filter_lastUpdatedDateTime' - The time at which the filter was last updated.+--+-- 'name', 'filter_name' - The name of the filter.+--+-- 'status', 'filter_status' - The status of the filter.+newFilter ::+  Filter+newFilter =+  Filter'+    { creationDateTime = Prelude.Nothing,+      datasetGroupArn = Prelude.Nothing,+      failureReason = Prelude.Nothing,+      filterArn = Prelude.Nothing,+      filterExpression = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      name = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The time at which the filter was created.+filter_creationDateTime :: Lens.Lens' Filter (Prelude.Maybe Prelude.UTCTime)+filter_creationDateTime = Lens.lens (\Filter' {creationDateTime} -> creationDateTime) (\s@Filter' {} a -> s {creationDateTime = a} :: Filter) Prelude.. Lens.mapping Data._Time++-- | The ARN of the dataset group to which the filter belongs.+filter_datasetGroupArn :: Lens.Lens' Filter (Prelude.Maybe Prelude.Text)+filter_datasetGroupArn = Lens.lens (\Filter' {datasetGroupArn} -> datasetGroupArn) (\s@Filter' {} a -> s {datasetGroupArn = a} :: Filter)++-- | If the filter failed, the reason for its failure.+filter_failureReason :: Lens.Lens' Filter (Prelude.Maybe Prelude.Text)+filter_failureReason = Lens.lens (\Filter' {failureReason} -> failureReason) (\s@Filter' {} a -> s {failureReason = a} :: Filter)++-- | The ARN of the filter.+filter_filterArn :: Lens.Lens' Filter (Prelude.Maybe Prelude.Text)+filter_filterArn = Lens.lens (\Filter' {filterArn} -> filterArn) (\s@Filter' {} a -> s {filterArn = a} :: Filter)++-- | Specifies the type of item interactions to filter out of recommendation+-- results. The filter expression must follow specific format rules. For+-- information about filter expression structure and syntax, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/filter-expressions.html Filter expressions>.+filter_filterExpression :: Lens.Lens' Filter (Prelude.Maybe Prelude.Text)+filter_filterExpression = Lens.lens (\Filter' {filterExpression} -> filterExpression) (\s@Filter' {} a -> s {filterExpression = a} :: Filter) Prelude.. Lens.mapping Data._Sensitive++-- | The time at which the filter was last updated.+filter_lastUpdatedDateTime :: Lens.Lens' Filter (Prelude.Maybe Prelude.UTCTime)+filter_lastUpdatedDateTime = Lens.lens (\Filter' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@Filter' {} a -> s {lastUpdatedDateTime = a} :: Filter) Prelude.. Lens.mapping Data._Time++-- | The name of the filter.+filter_name :: Lens.Lens' Filter (Prelude.Maybe Prelude.Text)+filter_name = Lens.lens (\Filter' {name} -> name) (\s@Filter' {} a -> s {name = a} :: Filter)++-- | The status of the filter.+filter_status :: Lens.Lens' Filter (Prelude.Maybe Prelude.Text)+filter_status = Lens.lens (\Filter' {status} -> status) (\s@Filter' {} a -> s {status = a} :: Filter)++instance Data.FromJSON Filter where+  parseJSON =+    Data.withObject+      "Filter"+      ( \x ->+          Filter'+            Prelude.<$> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "datasetGroupArn")+            Prelude.<*> (x Data..:? "failureReason")+            Prelude.<*> (x Data..:? "filterArn")+            Prelude.<*> (x Data..:? "filterExpression")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable Filter where+  hashWithSalt _salt Filter' {..} =+    _salt+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` datasetGroupArn+      `Prelude.hashWithSalt` failureReason+      `Prelude.hashWithSalt` filterArn+      `Prelude.hashWithSalt` filterExpression+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` status++instance Prelude.NFData Filter where+  rnf Filter' {..} =+    Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf datasetGroupArn+      `Prelude.seq` Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf filterArn+      `Prelude.seq` Prelude.rnf filterExpression+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Personalize/Types/FilterSummary.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.Personalize.Types.FilterSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.FilterSummary 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 short summary of a filter\'s attributes.+--+-- /See:/ 'newFilterSummary' smart constructor.+data FilterSummary = FilterSummary'+  { -- | The time at which the filter was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The ARN of the dataset group to which the filter belongs.+    datasetGroupArn :: Prelude.Maybe Prelude.Text,+    -- | If the filter failed, the reason for the failure.+    failureReason :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the filter.+    filterArn :: Prelude.Maybe Prelude.Text,+    -- | The time at which the filter was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The name of the filter.+    name :: Prelude.Maybe Prelude.Text,+    -- | The status of the filter.+    status :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FilterSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationDateTime', 'filterSummary_creationDateTime' - The time at which the filter was created.+--+-- 'datasetGroupArn', 'filterSummary_datasetGroupArn' - The ARN of the dataset group to which the filter belongs.+--+-- 'failureReason', 'filterSummary_failureReason' - If the filter failed, the reason for the failure.+--+-- 'filterArn', 'filterSummary_filterArn' - The ARN of the filter.+--+-- 'lastUpdatedDateTime', 'filterSummary_lastUpdatedDateTime' - The time at which the filter was last updated.+--+-- 'name', 'filterSummary_name' - The name of the filter.+--+-- 'status', 'filterSummary_status' - The status of the filter.+newFilterSummary ::+  FilterSummary+newFilterSummary =+  FilterSummary'+    { creationDateTime = Prelude.Nothing,+      datasetGroupArn = Prelude.Nothing,+      failureReason = Prelude.Nothing,+      filterArn = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      name = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The time at which the filter was created.+filterSummary_creationDateTime :: Lens.Lens' FilterSummary (Prelude.Maybe Prelude.UTCTime)+filterSummary_creationDateTime = Lens.lens (\FilterSummary' {creationDateTime} -> creationDateTime) (\s@FilterSummary' {} a -> s {creationDateTime = a} :: FilterSummary) Prelude.. Lens.mapping Data._Time++-- | The ARN of the dataset group to which the filter belongs.+filterSummary_datasetGroupArn :: Lens.Lens' FilterSummary (Prelude.Maybe Prelude.Text)+filterSummary_datasetGroupArn = Lens.lens (\FilterSummary' {datasetGroupArn} -> datasetGroupArn) (\s@FilterSummary' {} a -> s {datasetGroupArn = a} :: FilterSummary)++-- | If the filter failed, the reason for the failure.+filterSummary_failureReason :: Lens.Lens' FilterSummary (Prelude.Maybe Prelude.Text)+filterSummary_failureReason = Lens.lens (\FilterSummary' {failureReason} -> failureReason) (\s@FilterSummary' {} a -> s {failureReason = a} :: FilterSummary)++-- | The ARN of the filter.+filterSummary_filterArn :: Lens.Lens' FilterSummary (Prelude.Maybe Prelude.Text)+filterSummary_filterArn = Lens.lens (\FilterSummary' {filterArn} -> filterArn) (\s@FilterSummary' {} a -> s {filterArn = a} :: FilterSummary)++-- | The time at which the filter was last updated.+filterSummary_lastUpdatedDateTime :: Lens.Lens' FilterSummary (Prelude.Maybe Prelude.UTCTime)+filterSummary_lastUpdatedDateTime = Lens.lens (\FilterSummary' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@FilterSummary' {} a -> s {lastUpdatedDateTime = a} :: FilterSummary) Prelude.. Lens.mapping Data._Time++-- | The name of the filter.+filterSummary_name :: Lens.Lens' FilterSummary (Prelude.Maybe Prelude.Text)+filterSummary_name = Lens.lens (\FilterSummary' {name} -> name) (\s@FilterSummary' {} a -> s {name = a} :: FilterSummary)++-- | The status of the filter.+filterSummary_status :: Lens.Lens' FilterSummary (Prelude.Maybe Prelude.Text)+filterSummary_status = Lens.lens (\FilterSummary' {status} -> status) (\s@FilterSummary' {} a -> s {status = a} :: FilterSummary)++instance Data.FromJSON FilterSummary where+  parseJSON =+    Data.withObject+      "FilterSummary"+      ( \x ->+          FilterSummary'+            Prelude.<$> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "datasetGroupArn")+            Prelude.<*> (x Data..:? "failureReason")+            Prelude.<*> (x Data..:? "filterArn")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable FilterSummary where+  hashWithSalt _salt FilterSummary' {..} =+    _salt+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` datasetGroupArn+      `Prelude.hashWithSalt` failureReason+      `Prelude.hashWithSalt` filterArn+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` status++instance Prelude.NFData FilterSummary where+  rnf FilterSummary' {..} =+    Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf datasetGroupArn+      `Prelude.seq` Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf filterArn+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Personalize/Types/HPOConfig.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.Personalize.Types.HPOConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.HPOConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types.HPOObjective+import Amazonka.Personalize.Types.HPOResourceConfig+import Amazonka.Personalize.Types.HyperParameterRanges+import qualified Amazonka.Prelude as Prelude++-- | Describes the properties for hyperparameter optimization (HPO).+--+-- /See:/ 'newHPOConfig' smart constructor.+data HPOConfig = HPOConfig'+  { -- | The hyperparameters and their allowable ranges.+    algorithmHyperParameterRanges :: Prelude.Maybe HyperParameterRanges,+    -- | The metric to optimize during HPO.+    --+    -- Amazon Personalize doesn\'t support configuring the @hpoObjective@ at+    -- this time.+    hpoObjective :: Prelude.Maybe HPOObjective,+    -- | Describes the resource configuration for HPO.+    hpoResourceConfig :: Prelude.Maybe HPOResourceConfig+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HPOConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'algorithmHyperParameterRanges', 'hPOConfig_algorithmHyperParameterRanges' - The hyperparameters and their allowable ranges.+--+-- 'hpoObjective', 'hPOConfig_hpoObjective' - The metric to optimize during HPO.+--+-- Amazon Personalize doesn\'t support configuring the @hpoObjective@ at+-- this time.+--+-- 'hpoResourceConfig', 'hPOConfig_hpoResourceConfig' - Describes the resource configuration for HPO.+newHPOConfig ::+  HPOConfig+newHPOConfig =+  HPOConfig'+    { algorithmHyperParameterRanges =+        Prelude.Nothing,+      hpoObjective = Prelude.Nothing,+      hpoResourceConfig = Prelude.Nothing+    }++-- | The hyperparameters and their allowable ranges.+hPOConfig_algorithmHyperParameterRanges :: Lens.Lens' HPOConfig (Prelude.Maybe HyperParameterRanges)+hPOConfig_algorithmHyperParameterRanges = Lens.lens (\HPOConfig' {algorithmHyperParameterRanges} -> algorithmHyperParameterRanges) (\s@HPOConfig' {} a -> s {algorithmHyperParameterRanges = a} :: HPOConfig)++-- | The metric to optimize during HPO.+--+-- Amazon Personalize doesn\'t support configuring the @hpoObjective@ at+-- this time.+hPOConfig_hpoObjective :: Lens.Lens' HPOConfig (Prelude.Maybe HPOObjective)+hPOConfig_hpoObjective = Lens.lens (\HPOConfig' {hpoObjective} -> hpoObjective) (\s@HPOConfig' {} a -> s {hpoObjective = a} :: HPOConfig)++-- | Describes the resource configuration for HPO.+hPOConfig_hpoResourceConfig :: Lens.Lens' HPOConfig (Prelude.Maybe HPOResourceConfig)+hPOConfig_hpoResourceConfig = Lens.lens (\HPOConfig' {hpoResourceConfig} -> hpoResourceConfig) (\s@HPOConfig' {} a -> s {hpoResourceConfig = a} :: HPOConfig)++instance Data.FromJSON HPOConfig where+  parseJSON =+    Data.withObject+      "HPOConfig"+      ( \x ->+          HPOConfig'+            Prelude.<$> (x Data..:? "algorithmHyperParameterRanges")+            Prelude.<*> (x Data..:? "hpoObjective")+            Prelude.<*> (x Data..:? "hpoResourceConfig")+      )++instance Prelude.Hashable HPOConfig where+  hashWithSalt _salt HPOConfig' {..} =+    _salt+      `Prelude.hashWithSalt` algorithmHyperParameterRanges+      `Prelude.hashWithSalt` hpoObjective+      `Prelude.hashWithSalt` hpoResourceConfig++instance Prelude.NFData HPOConfig where+  rnf HPOConfig' {..} =+    Prelude.rnf algorithmHyperParameterRanges+      `Prelude.seq` Prelude.rnf hpoObjective+      `Prelude.seq` Prelude.rnf hpoResourceConfig++instance Data.ToJSON HPOConfig where+  toJSON HPOConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("algorithmHyperParameterRanges" Data..=)+              Prelude.<$> algorithmHyperParameterRanges,+            ("hpoObjective" Data..=) Prelude.<$> hpoObjective,+            ("hpoResourceConfig" Data..=)+              Prelude.<$> hpoResourceConfig+          ]+      )
+ gen/Amazonka/Personalize/Types/HPOObjective.hs view
@@ -0,0 +1,109 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.HPOObjective+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.HPOObjective 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 metric to optimize during hyperparameter optimization (HPO).+--+-- Amazon Personalize doesn\'t support configuring the @hpoObjective@ at+-- this time.+--+-- /See:/ 'newHPOObjective' smart constructor.+data HPOObjective = HPOObjective'+  { -- | The name of the metric.+    metricName :: Prelude.Maybe Prelude.Text,+    -- | A regular expression for finding the metric in the training job logs.+    metricRegex :: Prelude.Maybe Prelude.Text,+    -- | The type of the metric. Valid values are @Maximize@ and @Minimize@.+    type' :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HPOObjective' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'metricName', 'hPOObjective_metricName' - The name of the metric.+--+-- 'metricRegex', 'hPOObjective_metricRegex' - A regular expression for finding the metric in the training job logs.+--+-- 'type'', 'hPOObjective_type' - The type of the metric. Valid values are @Maximize@ and @Minimize@.+newHPOObjective ::+  HPOObjective+newHPOObjective =+  HPOObjective'+    { metricName = Prelude.Nothing,+      metricRegex = Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | The name of the metric.+hPOObjective_metricName :: Lens.Lens' HPOObjective (Prelude.Maybe Prelude.Text)+hPOObjective_metricName = Lens.lens (\HPOObjective' {metricName} -> metricName) (\s@HPOObjective' {} a -> s {metricName = a} :: HPOObjective)++-- | A regular expression for finding the metric in the training job logs.+hPOObjective_metricRegex :: Lens.Lens' HPOObjective (Prelude.Maybe Prelude.Text)+hPOObjective_metricRegex = Lens.lens (\HPOObjective' {metricRegex} -> metricRegex) (\s@HPOObjective' {} a -> s {metricRegex = a} :: HPOObjective)++-- | The type of the metric. Valid values are @Maximize@ and @Minimize@.+hPOObjective_type :: Lens.Lens' HPOObjective (Prelude.Maybe Prelude.Text)+hPOObjective_type = Lens.lens (\HPOObjective' {type'} -> type') (\s@HPOObjective' {} a -> s {type' = a} :: HPOObjective)++instance Data.FromJSON HPOObjective where+  parseJSON =+    Data.withObject+      "HPOObjective"+      ( \x ->+          HPOObjective'+            Prelude.<$> (x Data..:? "metricName")+            Prelude.<*> (x Data..:? "metricRegex")+            Prelude.<*> (x Data..:? "type")+      )++instance Prelude.Hashable HPOObjective where+  hashWithSalt _salt HPOObjective' {..} =+    _salt+      `Prelude.hashWithSalt` metricName+      `Prelude.hashWithSalt` metricRegex+      `Prelude.hashWithSalt` type'++instance Prelude.NFData HPOObjective where+  rnf HPOObjective' {..} =+    Prelude.rnf metricName+      `Prelude.seq` Prelude.rnf metricRegex+      `Prelude.seq` Prelude.rnf type'++instance Data.ToJSON HPOObjective where+  toJSON HPOObjective' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("metricName" Data..=) Prelude.<$> metricName,+            ("metricRegex" Data..=) Prelude.<$> metricRegex,+            ("type" Data..=) Prelude.<$> type'+          ]+      )
+ gen/Amazonka/Personalize/Types/HPOResourceConfig.hs view
@@ -0,0 +1,103 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.HPOResourceConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.HPOResourceConfig 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++-- | Describes the resource configuration for hyperparameter optimization+-- (HPO).+--+-- /See:/ 'newHPOResourceConfig' smart constructor.+data HPOResourceConfig = HPOResourceConfig'+  { -- | The maximum number of training jobs when you create a solution version.+    -- The maximum value for @maxNumberOfTrainingJobs@ is @40@.+    maxNumberOfTrainingJobs :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of parallel training jobs when you create a solution+    -- version. The maximum value for @maxParallelTrainingJobs@ is @10@.+    maxParallelTrainingJobs :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HPOResourceConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxNumberOfTrainingJobs', 'hPOResourceConfig_maxNumberOfTrainingJobs' - The maximum number of training jobs when you create a solution version.+-- The maximum value for @maxNumberOfTrainingJobs@ is @40@.+--+-- 'maxParallelTrainingJobs', 'hPOResourceConfig_maxParallelTrainingJobs' - The maximum number of parallel training jobs when you create a solution+-- version. The maximum value for @maxParallelTrainingJobs@ is @10@.+newHPOResourceConfig ::+  HPOResourceConfig+newHPOResourceConfig =+  HPOResourceConfig'+    { maxNumberOfTrainingJobs =+        Prelude.Nothing,+      maxParallelTrainingJobs = Prelude.Nothing+    }++-- | The maximum number of training jobs when you create a solution version.+-- The maximum value for @maxNumberOfTrainingJobs@ is @40@.+hPOResourceConfig_maxNumberOfTrainingJobs :: Lens.Lens' HPOResourceConfig (Prelude.Maybe Prelude.Text)+hPOResourceConfig_maxNumberOfTrainingJobs = Lens.lens (\HPOResourceConfig' {maxNumberOfTrainingJobs} -> maxNumberOfTrainingJobs) (\s@HPOResourceConfig' {} a -> s {maxNumberOfTrainingJobs = a} :: HPOResourceConfig)++-- | The maximum number of parallel training jobs when you create a solution+-- version. The maximum value for @maxParallelTrainingJobs@ is @10@.+hPOResourceConfig_maxParallelTrainingJobs :: Lens.Lens' HPOResourceConfig (Prelude.Maybe Prelude.Text)+hPOResourceConfig_maxParallelTrainingJobs = Lens.lens (\HPOResourceConfig' {maxParallelTrainingJobs} -> maxParallelTrainingJobs) (\s@HPOResourceConfig' {} a -> s {maxParallelTrainingJobs = a} :: HPOResourceConfig)++instance Data.FromJSON HPOResourceConfig where+  parseJSON =+    Data.withObject+      "HPOResourceConfig"+      ( \x ->+          HPOResourceConfig'+            Prelude.<$> (x Data..:? "maxNumberOfTrainingJobs")+            Prelude.<*> (x Data..:? "maxParallelTrainingJobs")+      )++instance Prelude.Hashable HPOResourceConfig where+  hashWithSalt _salt HPOResourceConfig' {..} =+    _salt+      `Prelude.hashWithSalt` maxNumberOfTrainingJobs+      `Prelude.hashWithSalt` maxParallelTrainingJobs++instance Prelude.NFData HPOResourceConfig where+  rnf HPOResourceConfig' {..} =+    Prelude.rnf maxNumberOfTrainingJobs+      `Prelude.seq` Prelude.rnf maxParallelTrainingJobs++instance Data.ToJSON HPOResourceConfig where+  toJSON HPOResourceConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxNumberOfTrainingJobs" Data..=)+              Prelude.<$> maxNumberOfTrainingJobs,+            ("maxParallelTrainingJobs" Data..=)+              Prelude.<$> maxParallelTrainingJobs+          ]+      )
+ gen/Amazonka/Personalize/Types/HyperParameterRanges.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.Personalize.Types.HyperParameterRanges+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.HyperParameterRanges where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types.CategoricalHyperParameterRange+import Amazonka.Personalize.Types.ContinuousHyperParameterRange+import Amazonka.Personalize.Types.IntegerHyperParameterRange+import qualified Amazonka.Prelude as Prelude++-- | Specifies the hyperparameters and their ranges. Hyperparameters can be+-- categorical, continuous, or integer-valued.+--+-- /See:/ 'newHyperParameterRanges' smart constructor.+data HyperParameterRanges = HyperParameterRanges'+  { -- | The categorical hyperparameters and their ranges.+    categoricalHyperParameterRanges :: Prelude.Maybe [CategoricalHyperParameterRange],+    -- | The continuous hyperparameters and their ranges.+    continuousHyperParameterRanges :: Prelude.Maybe [ContinuousHyperParameterRange],+    -- | The integer-valued hyperparameters and their ranges.+    integerHyperParameterRanges :: Prelude.Maybe [IntegerHyperParameterRange]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HyperParameterRanges' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'categoricalHyperParameterRanges', 'hyperParameterRanges_categoricalHyperParameterRanges' - The categorical hyperparameters and their ranges.+--+-- 'continuousHyperParameterRanges', 'hyperParameterRanges_continuousHyperParameterRanges' - The continuous hyperparameters and their ranges.+--+-- 'integerHyperParameterRanges', 'hyperParameterRanges_integerHyperParameterRanges' - The integer-valued hyperparameters and their ranges.+newHyperParameterRanges ::+  HyperParameterRanges+newHyperParameterRanges =+  HyperParameterRanges'+    { categoricalHyperParameterRanges =+        Prelude.Nothing,+      continuousHyperParameterRanges = Prelude.Nothing,+      integerHyperParameterRanges = Prelude.Nothing+    }++-- | The categorical hyperparameters and their ranges.+hyperParameterRanges_categoricalHyperParameterRanges :: Lens.Lens' HyperParameterRanges (Prelude.Maybe [CategoricalHyperParameterRange])+hyperParameterRanges_categoricalHyperParameterRanges = Lens.lens (\HyperParameterRanges' {categoricalHyperParameterRanges} -> categoricalHyperParameterRanges) (\s@HyperParameterRanges' {} a -> s {categoricalHyperParameterRanges = a} :: HyperParameterRanges) Prelude.. Lens.mapping Lens.coerced++-- | The continuous hyperparameters and their ranges.+hyperParameterRanges_continuousHyperParameterRanges :: Lens.Lens' HyperParameterRanges (Prelude.Maybe [ContinuousHyperParameterRange])+hyperParameterRanges_continuousHyperParameterRanges = Lens.lens (\HyperParameterRanges' {continuousHyperParameterRanges} -> continuousHyperParameterRanges) (\s@HyperParameterRanges' {} a -> s {continuousHyperParameterRanges = a} :: HyperParameterRanges) Prelude.. Lens.mapping Lens.coerced++-- | The integer-valued hyperparameters and their ranges.+hyperParameterRanges_integerHyperParameterRanges :: Lens.Lens' HyperParameterRanges (Prelude.Maybe [IntegerHyperParameterRange])+hyperParameterRanges_integerHyperParameterRanges = Lens.lens (\HyperParameterRanges' {integerHyperParameterRanges} -> integerHyperParameterRanges) (\s@HyperParameterRanges' {} a -> s {integerHyperParameterRanges = a} :: HyperParameterRanges) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON HyperParameterRanges where+  parseJSON =+    Data.withObject+      "HyperParameterRanges"+      ( \x ->+          HyperParameterRanges'+            Prelude.<$> ( x+                            Data..:? "categoricalHyperParameterRanges"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "continuousHyperParameterRanges"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "integerHyperParameterRanges"+                            Data..!= Prelude.mempty+                        )+      )++instance Prelude.Hashable HyperParameterRanges where+  hashWithSalt _salt HyperParameterRanges' {..} =+    _salt+      `Prelude.hashWithSalt` categoricalHyperParameterRanges+      `Prelude.hashWithSalt` continuousHyperParameterRanges+      `Prelude.hashWithSalt` integerHyperParameterRanges++instance Prelude.NFData HyperParameterRanges where+  rnf HyperParameterRanges' {..} =+    Prelude.rnf categoricalHyperParameterRanges+      `Prelude.seq` Prelude.rnf continuousHyperParameterRanges+      `Prelude.seq` Prelude.rnf integerHyperParameterRanges++instance Data.ToJSON HyperParameterRanges where+  toJSON HyperParameterRanges' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("categoricalHyperParameterRanges" Data..=)+              Prelude.<$> categoricalHyperParameterRanges,+            ("continuousHyperParameterRanges" Data..=)+              Prelude.<$> continuousHyperParameterRanges,+            ("integerHyperParameterRanges" Data..=)+              Prelude.<$> integerHyperParameterRanges+          ]+      )
+ gen/Amazonka/Personalize/Types/ImportMode.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.Personalize.Types.ImportMode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.ImportMode+  ( ImportMode+      ( ..,+        ImportMode_FULL,+        ImportMode_INCREMENTAL+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ImportMode = ImportMode'+  { fromImportMode ::+      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 ImportMode_FULL :: ImportMode+pattern ImportMode_FULL = ImportMode' "FULL"++pattern ImportMode_INCREMENTAL :: ImportMode+pattern ImportMode_INCREMENTAL = ImportMode' "INCREMENTAL"++{-# COMPLETE+  ImportMode_FULL,+  ImportMode_INCREMENTAL,+  ImportMode'+  #-}
+ gen/Amazonka/Personalize/Types/IngestionMode.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.Personalize.Types.IngestionMode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.IngestionMode+  ( IngestionMode+      ( ..,+        IngestionMode_ALL,+        IngestionMode_BULK,+        IngestionMode_PUT+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype IngestionMode = IngestionMode'+  { fromIngestionMode ::+      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 IngestionMode_ALL :: IngestionMode+pattern IngestionMode_ALL = IngestionMode' "ALL"++pattern IngestionMode_BULK :: IngestionMode+pattern IngestionMode_BULK = IngestionMode' "BULK"++pattern IngestionMode_PUT :: IngestionMode+pattern IngestionMode_PUT = IngestionMode' "PUT"++{-# COMPLETE+  IngestionMode_ALL,+  IngestionMode_BULK,+  IngestionMode_PUT,+  IngestionMode'+  #-}
+ gen/Amazonka/Personalize/Types/IntegerHyperParameterRange.hs view
@@ -0,0 +1,107 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.IntegerHyperParameterRange+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.IntegerHyperParameterRange 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 name and range of an integer-valued hyperparameter.+--+-- /See:/ 'newIntegerHyperParameterRange' smart constructor.+data IntegerHyperParameterRange = IntegerHyperParameterRange'+  { -- | The maximum allowable value for the hyperparameter.+    maxValue :: Prelude.Maybe Prelude.Int,+    -- | The minimum allowable value for the hyperparameter.+    minValue :: Prelude.Maybe Prelude.Int,+    -- | The name of the hyperparameter.+    name :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IntegerHyperParameterRange' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxValue', 'integerHyperParameterRange_maxValue' - The maximum allowable value for the hyperparameter.+--+-- 'minValue', 'integerHyperParameterRange_minValue' - The minimum allowable value for the hyperparameter.+--+-- 'name', 'integerHyperParameterRange_name' - The name of the hyperparameter.+newIntegerHyperParameterRange ::+  IntegerHyperParameterRange+newIntegerHyperParameterRange =+  IntegerHyperParameterRange'+    { maxValue =+        Prelude.Nothing,+      minValue = Prelude.Nothing,+      name = Prelude.Nothing+    }++-- | The maximum allowable value for the hyperparameter.+integerHyperParameterRange_maxValue :: Lens.Lens' IntegerHyperParameterRange (Prelude.Maybe Prelude.Int)+integerHyperParameterRange_maxValue = Lens.lens (\IntegerHyperParameterRange' {maxValue} -> maxValue) (\s@IntegerHyperParameterRange' {} a -> s {maxValue = a} :: IntegerHyperParameterRange)++-- | The minimum allowable value for the hyperparameter.+integerHyperParameterRange_minValue :: Lens.Lens' IntegerHyperParameterRange (Prelude.Maybe Prelude.Int)+integerHyperParameterRange_minValue = Lens.lens (\IntegerHyperParameterRange' {minValue} -> minValue) (\s@IntegerHyperParameterRange' {} a -> s {minValue = a} :: IntegerHyperParameterRange)++-- | The name of the hyperparameter.+integerHyperParameterRange_name :: Lens.Lens' IntegerHyperParameterRange (Prelude.Maybe Prelude.Text)+integerHyperParameterRange_name = Lens.lens (\IntegerHyperParameterRange' {name} -> name) (\s@IntegerHyperParameterRange' {} a -> s {name = a} :: IntegerHyperParameterRange)++instance Data.FromJSON IntegerHyperParameterRange where+  parseJSON =+    Data.withObject+      "IntegerHyperParameterRange"+      ( \x ->+          IntegerHyperParameterRange'+            Prelude.<$> (x Data..:? "maxValue")+            Prelude.<*> (x Data..:? "minValue")+            Prelude.<*> (x Data..:? "name")+      )++instance Prelude.Hashable IntegerHyperParameterRange where+  hashWithSalt _salt IntegerHyperParameterRange' {..} =+    _salt+      `Prelude.hashWithSalt` maxValue+      `Prelude.hashWithSalt` minValue+      `Prelude.hashWithSalt` name++instance Prelude.NFData IntegerHyperParameterRange where+  rnf IntegerHyperParameterRange' {..} =+    Prelude.rnf maxValue+      `Prelude.seq` Prelude.rnf minValue+      `Prelude.seq` Prelude.rnf name++instance Data.ToJSON IntegerHyperParameterRange where+  toJSON IntegerHyperParameterRange' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxValue" Data..=) Prelude.<$> maxValue,+            ("minValue" Data..=) Prelude.<$> minValue,+            ("name" Data..=) Prelude.<$> name+          ]+      )
+ gen/Amazonka/Personalize/Types/MetricAttribute.hs view
@@ -0,0 +1,129 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.MetricAttribute+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.MetricAttribute 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++-- | Contains information on a metric that a metric attribution reports on.+-- For more information, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/measuring-recommendation-impact.html Measuring impact of recommendations>.+--+-- /See:/ 'newMetricAttribute' smart constructor.+data MetricAttribute = MetricAttribute'+  { -- | The metric\'s event type.+    eventType :: Prelude.Text,+    -- | The metric\'s name. The name helps you identify the metric in Amazon+    -- CloudWatch or Amazon S3.+    metricName :: Prelude.Text,+    -- | The attribute\'s expression. Available functions are @SUM()@ or+    -- @SAMPLECOUNT()@. For SUM() functions, provide the dataset type (either+    -- Interactions or Items) and column to sum as a parameter. For example+    -- SUM(Items.PRICE).+    expression :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MetricAttribute' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventType', 'metricAttribute_eventType' - The metric\'s event type.+--+-- 'metricName', 'metricAttribute_metricName' - The metric\'s name. The name helps you identify the metric in Amazon+-- CloudWatch or Amazon S3.+--+-- 'expression', 'metricAttribute_expression' - The attribute\'s expression. Available functions are @SUM()@ or+-- @SAMPLECOUNT()@. For SUM() functions, provide the dataset type (either+-- Interactions or Items) and column to sum as a parameter. For example+-- SUM(Items.PRICE).+newMetricAttribute ::+  -- | 'eventType'+  Prelude.Text ->+  -- | 'metricName'+  Prelude.Text ->+  -- | 'expression'+  Prelude.Text ->+  MetricAttribute+newMetricAttribute+  pEventType_+  pMetricName_+  pExpression_ =+    MetricAttribute'+      { eventType = pEventType_,+        metricName = pMetricName_,+        expression = pExpression_+      }++-- | The metric\'s event type.+metricAttribute_eventType :: Lens.Lens' MetricAttribute Prelude.Text+metricAttribute_eventType = Lens.lens (\MetricAttribute' {eventType} -> eventType) (\s@MetricAttribute' {} a -> s {eventType = a} :: MetricAttribute)++-- | The metric\'s name. The name helps you identify the metric in Amazon+-- CloudWatch or Amazon S3.+metricAttribute_metricName :: Lens.Lens' MetricAttribute Prelude.Text+metricAttribute_metricName = Lens.lens (\MetricAttribute' {metricName} -> metricName) (\s@MetricAttribute' {} a -> s {metricName = a} :: MetricAttribute)++-- | The attribute\'s expression. Available functions are @SUM()@ or+-- @SAMPLECOUNT()@. For SUM() functions, provide the dataset type (either+-- Interactions or Items) and column to sum as a parameter. For example+-- SUM(Items.PRICE).+metricAttribute_expression :: Lens.Lens' MetricAttribute Prelude.Text+metricAttribute_expression = Lens.lens (\MetricAttribute' {expression} -> expression) (\s@MetricAttribute' {} a -> s {expression = a} :: MetricAttribute)++instance Data.FromJSON MetricAttribute where+  parseJSON =+    Data.withObject+      "MetricAttribute"+      ( \x ->+          MetricAttribute'+            Prelude.<$> (x Data..: "eventType")+            Prelude.<*> (x Data..: "metricName")+            Prelude.<*> (x Data..: "expression")+      )++instance Prelude.Hashable MetricAttribute where+  hashWithSalt _salt MetricAttribute' {..} =+    _salt+      `Prelude.hashWithSalt` eventType+      `Prelude.hashWithSalt` metricName+      `Prelude.hashWithSalt` expression++instance Prelude.NFData MetricAttribute where+  rnf MetricAttribute' {..} =+    Prelude.rnf eventType+      `Prelude.seq` Prelude.rnf metricName+      `Prelude.seq` Prelude.rnf expression++instance Data.ToJSON MetricAttribute where+  toJSON MetricAttribute' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("eventType" Data..= eventType),+            Prelude.Just ("metricName" Data..= metricName),+            Prelude.Just ("expression" Data..= expression)+          ]+      )
+ gen/Amazonka/Personalize/Types/MetricAttribution.hs view
@@ -0,0 +1,162 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.MetricAttribution+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.MetricAttribution where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types.MetricAttributionOutput+import qualified Amazonka.Prelude as Prelude++-- | Contains information on a metric attribution. A metric attribution+-- creates reports on the data that you import into Amazon Personalize.+-- Depending on how you import the data, you can view reports in Amazon+-- CloudWatch or Amazon S3. For more information, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/measuring-recommendation-impact.html Measuring impact of recommendations>.+--+-- /See:/ 'newMetricAttribution' smart constructor.+data MetricAttribution = MetricAttribution'+  { -- | The metric attribution\'s creation date time.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The metric attribution\'s dataset group Amazon Resource Name (ARN).+    datasetGroupArn :: Prelude.Maybe Prelude.Text,+    -- | The metric attribution\'s failure reason.+    failureReason :: Prelude.Maybe Prelude.Text,+    -- | The metric attribution\'s last updated date time.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The metric attribution\'s Amazon Resource Name (ARN).+    metricAttributionArn :: Prelude.Maybe Prelude.Text,+    -- | The metric attribution\'s output configuration.+    metricsOutputConfig :: Prelude.Maybe MetricAttributionOutput,+    -- | The metric attribution\'s name.+    name :: Prelude.Maybe Prelude.Text,+    -- | The metric attribution\'s status.+    status :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MetricAttribution' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationDateTime', 'metricAttribution_creationDateTime' - The metric attribution\'s creation date time.+--+-- 'datasetGroupArn', 'metricAttribution_datasetGroupArn' - The metric attribution\'s dataset group Amazon Resource Name (ARN).+--+-- 'failureReason', 'metricAttribution_failureReason' - The metric attribution\'s failure reason.+--+-- 'lastUpdatedDateTime', 'metricAttribution_lastUpdatedDateTime' - The metric attribution\'s last updated date time.+--+-- 'metricAttributionArn', 'metricAttribution_metricAttributionArn' - The metric attribution\'s Amazon Resource Name (ARN).+--+-- 'metricsOutputConfig', 'metricAttribution_metricsOutputConfig' - The metric attribution\'s output configuration.+--+-- 'name', 'metricAttribution_name' - The metric attribution\'s name.+--+-- 'status', 'metricAttribution_status' - The metric attribution\'s status.+newMetricAttribution ::+  MetricAttribution+newMetricAttribution =+  MetricAttribution'+    { creationDateTime =+        Prelude.Nothing,+      datasetGroupArn = Prelude.Nothing,+      failureReason = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      metricAttributionArn = Prelude.Nothing,+      metricsOutputConfig = Prelude.Nothing,+      name = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The metric attribution\'s creation date time.+metricAttribution_creationDateTime :: Lens.Lens' MetricAttribution (Prelude.Maybe Prelude.UTCTime)+metricAttribution_creationDateTime = Lens.lens (\MetricAttribution' {creationDateTime} -> creationDateTime) (\s@MetricAttribution' {} a -> s {creationDateTime = a} :: MetricAttribution) Prelude.. Lens.mapping Data._Time++-- | The metric attribution\'s dataset group Amazon Resource Name (ARN).+metricAttribution_datasetGroupArn :: Lens.Lens' MetricAttribution (Prelude.Maybe Prelude.Text)+metricAttribution_datasetGroupArn = Lens.lens (\MetricAttribution' {datasetGroupArn} -> datasetGroupArn) (\s@MetricAttribution' {} a -> s {datasetGroupArn = a} :: MetricAttribution)++-- | The metric attribution\'s failure reason.+metricAttribution_failureReason :: Lens.Lens' MetricAttribution (Prelude.Maybe Prelude.Text)+metricAttribution_failureReason = Lens.lens (\MetricAttribution' {failureReason} -> failureReason) (\s@MetricAttribution' {} a -> s {failureReason = a} :: MetricAttribution)++-- | The metric attribution\'s last updated date time.+metricAttribution_lastUpdatedDateTime :: Lens.Lens' MetricAttribution (Prelude.Maybe Prelude.UTCTime)+metricAttribution_lastUpdatedDateTime = Lens.lens (\MetricAttribution' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@MetricAttribution' {} a -> s {lastUpdatedDateTime = a} :: MetricAttribution) Prelude.. Lens.mapping Data._Time++-- | The metric attribution\'s Amazon Resource Name (ARN).+metricAttribution_metricAttributionArn :: Lens.Lens' MetricAttribution (Prelude.Maybe Prelude.Text)+metricAttribution_metricAttributionArn = Lens.lens (\MetricAttribution' {metricAttributionArn} -> metricAttributionArn) (\s@MetricAttribution' {} a -> s {metricAttributionArn = a} :: MetricAttribution)++-- | The metric attribution\'s output configuration.+metricAttribution_metricsOutputConfig :: Lens.Lens' MetricAttribution (Prelude.Maybe MetricAttributionOutput)+metricAttribution_metricsOutputConfig = Lens.lens (\MetricAttribution' {metricsOutputConfig} -> metricsOutputConfig) (\s@MetricAttribution' {} a -> s {metricsOutputConfig = a} :: MetricAttribution)++-- | The metric attribution\'s name.+metricAttribution_name :: Lens.Lens' MetricAttribution (Prelude.Maybe Prelude.Text)+metricAttribution_name = Lens.lens (\MetricAttribution' {name} -> name) (\s@MetricAttribution' {} a -> s {name = a} :: MetricAttribution)++-- | The metric attribution\'s status.+metricAttribution_status :: Lens.Lens' MetricAttribution (Prelude.Maybe Prelude.Text)+metricAttribution_status = Lens.lens (\MetricAttribution' {status} -> status) (\s@MetricAttribution' {} a -> s {status = a} :: MetricAttribution)++instance Data.FromJSON MetricAttribution where+  parseJSON =+    Data.withObject+      "MetricAttribution"+      ( \x ->+          MetricAttribution'+            Prelude.<$> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "datasetGroupArn")+            Prelude.<*> (x Data..:? "failureReason")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "metricAttributionArn")+            Prelude.<*> (x Data..:? "metricsOutputConfig")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable MetricAttribution where+  hashWithSalt _salt MetricAttribution' {..} =+    _salt+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` datasetGroupArn+      `Prelude.hashWithSalt` failureReason+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` metricAttributionArn+      `Prelude.hashWithSalt` metricsOutputConfig+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` status++instance Prelude.NFData MetricAttribution where+  rnf MetricAttribution' {..} =+    Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf datasetGroupArn+      `Prelude.seq` Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf metricAttributionArn+      `Prelude.seq` Prelude.rnf metricsOutputConfig+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Personalize/Types/MetricAttributionOutput.hs view
@@ -0,0 +1,106 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.MetricAttributionOutput+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.MetricAttributionOutput where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types.S3DataConfig+import qualified Amazonka.Prelude as Prelude++-- | The output configuration details for a metric attribution.+--+-- /See:/ 'newMetricAttributionOutput' smart constructor.+data MetricAttributionOutput = MetricAttributionOutput'+  { s3DataDestination :: Prelude.Maybe S3DataConfig,+    -- | The Amazon Resource Name (ARN) of the IAM service role that has+    -- permissions to add data to your output Amazon S3 bucket and add metrics+    -- to Amazon CloudWatch. For more information, see+    -- <https://docs.aws.amazon.com/personalize/latest/dg/measuring-recommendation-impact.html Measuring impact of recommendations>.+    roleArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MetricAttributionOutput' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 's3DataDestination', 'metricAttributionOutput_s3DataDestination' - Undocumented member.+--+-- 'roleArn', 'metricAttributionOutput_roleArn' - The Amazon Resource Name (ARN) of the IAM service role that has+-- permissions to add data to your output Amazon S3 bucket and add metrics+-- to Amazon CloudWatch. For more information, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/measuring-recommendation-impact.html Measuring impact of recommendations>.+newMetricAttributionOutput ::+  -- | 'roleArn'+  Prelude.Text ->+  MetricAttributionOutput+newMetricAttributionOutput pRoleArn_ =+  MetricAttributionOutput'+    { s3DataDestination =+        Prelude.Nothing,+      roleArn = pRoleArn_+    }++-- | Undocumented member.+metricAttributionOutput_s3DataDestination :: Lens.Lens' MetricAttributionOutput (Prelude.Maybe S3DataConfig)+metricAttributionOutput_s3DataDestination = Lens.lens (\MetricAttributionOutput' {s3DataDestination} -> s3DataDestination) (\s@MetricAttributionOutput' {} a -> s {s3DataDestination = a} :: MetricAttributionOutput)++-- | The Amazon Resource Name (ARN) of the IAM service role that has+-- permissions to add data to your output Amazon S3 bucket and add metrics+-- to Amazon CloudWatch. For more information, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/measuring-recommendation-impact.html Measuring impact of recommendations>.+metricAttributionOutput_roleArn :: Lens.Lens' MetricAttributionOutput Prelude.Text+metricAttributionOutput_roleArn = Lens.lens (\MetricAttributionOutput' {roleArn} -> roleArn) (\s@MetricAttributionOutput' {} a -> s {roleArn = a} :: MetricAttributionOutput)++instance Data.FromJSON MetricAttributionOutput where+  parseJSON =+    Data.withObject+      "MetricAttributionOutput"+      ( \x ->+          MetricAttributionOutput'+            Prelude.<$> (x Data..:? "s3DataDestination")+            Prelude.<*> (x Data..: "roleArn")+      )++instance Prelude.Hashable MetricAttributionOutput where+  hashWithSalt _salt MetricAttributionOutput' {..} =+    _salt+      `Prelude.hashWithSalt` s3DataDestination+      `Prelude.hashWithSalt` roleArn++instance Prelude.NFData MetricAttributionOutput where+  rnf MetricAttributionOutput' {..} =+    Prelude.rnf s3DataDestination+      `Prelude.seq` Prelude.rnf roleArn++instance Data.ToJSON MetricAttributionOutput where+  toJSON MetricAttributionOutput' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("s3DataDestination" Data..=)+              Prelude.<$> s3DataDestination,+            Prelude.Just ("roleArn" Data..= roleArn)+          ]+      )
+ gen/Amazonka/Personalize/Types/MetricAttributionSummary.hs view
@@ -0,0 +1,135 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.MetricAttributionSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.MetricAttributionSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides a summary of the properties of a metric attribution. For a+-- complete listing, call the+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeMetricAttribution.html DescribeMetricAttribution>.+--+-- /See:/ 'newMetricAttributionSummary' smart constructor.+data MetricAttributionSummary = MetricAttributionSummary'+  { -- | The metric attribution\'s creation date time.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The metric attribution\'s failure reason.+    failureReason :: Prelude.Maybe Prelude.Text,+    -- | The metric attribution\'s last updated date time.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The metric attribution\'s Amazon Resource Name (ARN).+    metricAttributionArn :: Prelude.Maybe Prelude.Text,+    -- | The name of the metric attribution.+    name :: Prelude.Maybe Prelude.Text,+    -- | The metric attribution\'s status.+    status :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MetricAttributionSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationDateTime', 'metricAttributionSummary_creationDateTime' - The metric attribution\'s creation date time.+--+-- 'failureReason', 'metricAttributionSummary_failureReason' - The metric attribution\'s failure reason.+--+-- 'lastUpdatedDateTime', 'metricAttributionSummary_lastUpdatedDateTime' - The metric attribution\'s last updated date time.+--+-- 'metricAttributionArn', 'metricAttributionSummary_metricAttributionArn' - The metric attribution\'s Amazon Resource Name (ARN).+--+-- 'name', 'metricAttributionSummary_name' - The name of the metric attribution.+--+-- 'status', 'metricAttributionSummary_status' - The metric attribution\'s status.+newMetricAttributionSummary ::+  MetricAttributionSummary+newMetricAttributionSummary =+  MetricAttributionSummary'+    { creationDateTime =+        Prelude.Nothing,+      failureReason = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      metricAttributionArn = Prelude.Nothing,+      name = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The metric attribution\'s creation date time.+metricAttributionSummary_creationDateTime :: Lens.Lens' MetricAttributionSummary (Prelude.Maybe Prelude.UTCTime)+metricAttributionSummary_creationDateTime = Lens.lens (\MetricAttributionSummary' {creationDateTime} -> creationDateTime) (\s@MetricAttributionSummary' {} a -> s {creationDateTime = a} :: MetricAttributionSummary) Prelude.. Lens.mapping Data._Time++-- | The metric attribution\'s failure reason.+metricAttributionSummary_failureReason :: Lens.Lens' MetricAttributionSummary (Prelude.Maybe Prelude.Text)+metricAttributionSummary_failureReason = Lens.lens (\MetricAttributionSummary' {failureReason} -> failureReason) (\s@MetricAttributionSummary' {} a -> s {failureReason = a} :: MetricAttributionSummary)++-- | The metric attribution\'s last updated date time.+metricAttributionSummary_lastUpdatedDateTime :: Lens.Lens' MetricAttributionSummary (Prelude.Maybe Prelude.UTCTime)+metricAttributionSummary_lastUpdatedDateTime = Lens.lens (\MetricAttributionSummary' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@MetricAttributionSummary' {} a -> s {lastUpdatedDateTime = a} :: MetricAttributionSummary) Prelude.. Lens.mapping Data._Time++-- | The metric attribution\'s Amazon Resource Name (ARN).+metricAttributionSummary_metricAttributionArn :: Lens.Lens' MetricAttributionSummary (Prelude.Maybe Prelude.Text)+metricAttributionSummary_metricAttributionArn = Lens.lens (\MetricAttributionSummary' {metricAttributionArn} -> metricAttributionArn) (\s@MetricAttributionSummary' {} a -> s {metricAttributionArn = a} :: MetricAttributionSummary)++-- | The name of the metric attribution.+metricAttributionSummary_name :: Lens.Lens' MetricAttributionSummary (Prelude.Maybe Prelude.Text)+metricAttributionSummary_name = Lens.lens (\MetricAttributionSummary' {name} -> name) (\s@MetricAttributionSummary' {} a -> s {name = a} :: MetricAttributionSummary)++-- | The metric attribution\'s status.+metricAttributionSummary_status :: Lens.Lens' MetricAttributionSummary (Prelude.Maybe Prelude.Text)+metricAttributionSummary_status = Lens.lens (\MetricAttributionSummary' {status} -> status) (\s@MetricAttributionSummary' {} a -> s {status = a} :: MetricAttributionSummary)++instance Data.FromJSON MetricAttributionSummary where+  parseJSON =+    Data.withObject+      "MetricAttributionSummary"+      ( \x ->+          MetricAttributionSummary'+            Prelude.<$> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "failureReason")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "metricAttributionArn")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable MetricAttributionSummary where+  hashWithSalt _salt MetricAttributionSummary' {..} =+    _salt+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` failureReason+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` metricAttributionArn+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` status++instance Prelude.NFData MetricAttributionSummary where+  rnf MetricAttributionSummary' {..} =+    Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf metricAttributionArn+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Personalize/Types/ObjectiveSensitivity.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.Personalize.Types.ObjectiveSensitivity+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.ObjectiveSensitivity+  ( ObjectiveSensitivity+      ( ..,+        ObjectiveSensitivity_HIGH,+        ObjectiveSensitivity_LOW,+        ObjectiveSensitivity_MEDIUM,+        ObjectiveSensitivity_OFF+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ObjectiveSensitivity = ObjectiveSensitivity'+  { fromObjectiveSensitivity ::+      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 ObjectiveSensitivity_HIGH :: ObjectiveSensitivity+pattern ObjectiveSensitivity_HIGH = ObjectiveSensitivity' "HIGH"++pattern ObjectiveSensitivity_LOW :: ObjectiveSensitivity+pattern ObjectiveSensitivity_LOW = ObjectiveSensitivity' "LOW"++pattern ObjectiveSensitivity_MEDIUM :: ObjectiveSensitivity+pattern ObjectiveSensitivity_MEDIUM = ObjectiveSensitivity' "MEDIUM"++pattern ObjectiveSensitivity_OFF :: ObjectiveSensitivity+pattern ObjectiveSensitivity_OFF = ObjectiveSensitivity' "OFF"++{-# COMPLETE+  ObjectiveSensitivity_HIGH,+  ObjectiveSensitivity_LOW,+  ObjectiveSensitivity_MEDIUM,+  ObjectiveSensitivity_OFF,+  ObjectiveSensitivity'+  #-}
+ gen/Amazonka/Personalize/Types/OptimizationObjective.hs view
@@ -0,0 +1,107 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.OptimizationObjective+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.OptimizationObjective where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types.ObjectiveSensitivity+import qualified Amazonka.Prelude as Prelude++-- | Describes the additional objective for the solution, such as maximizing+-- streaming minutes or increasing revenue. For more information see+-- <https://docs.aws.amazon.com/personalize/latest/dg/optimizing-solution-for-objective.html Optimizing a solution>.+--+-- /See:/ 'newOptimizationObjective' smart constructor.+data OptimizationObjective = OptimizationObjective'+  { -- | The numerical metadata column in an Items dataset related to the+    -- optimization objective. For example, VIDEO_LENGTH (to maximize streaming+    -- minutes), or PRICE (to maximize revenue).+    itemAttribute :: Prelude.Maybe Prelude.Text,+    -- | Specifies how Amazon Personalize balances the importance of your+    -- optimization objective versus relevance.+    objectiveSensitivity :: Prelude.Maybe ObjectiveSensitivity+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OptimizationObjective' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'itemAttribute', 'optimizationObjective_itemAttribute' - The numerical metadata column in an Items dataset related to the+-- optimization objective. For example, VIDEO_LENGTH (to maximize streaming+-- minutes), or PRICE (to maximize revenue).+--+-- 'objectiveSensitivity', 'optimizationObjective_objectiveSensitivity' - Specifies how Amazon Personalize balances the importance of your+-- optimization objective versus relevance.+newOptimizationObjective ::+  OptimizationObjective+newOptimizationObjective =+  OptimizationObjective'+    { itemAttribute =+        Prelude.Nothing,+      objectiveSensitivity = Prelude.Nothing+    }++-- | The numerical metadata column in an Items dataset related to the+-- optimization objective. For example, VIDEO_LENGTH (to maximize streaming+-- minutes), or PRICE (to maximize revenue).+optimizationObjective_itemAttribute :: Lens.Lens' OptimizationObjective (Prelude.Maybe Prelude.Text)+optimizationObjective_itemAttribute = Lens.lens (\OptimizationObjective' {itemAttribute} -> itemAttribute) (\s@OptimizationObjective' {} a -> s {itemAttribute = a} :: OptimizationObjective)++-- | Specifies how Amazon Personalize balances the importance of your+-- optimization objective versus relevance.+optimizationObjective_objectiveSensitivity :: Lens.Lens' OptimizationObjective (Prelude.Maybe ObjectiveSensitivity)+optimizationObjective_objectiveSensitivity = Lens.lens (\OptimizationObjective' {objectiveSensitivity} -> objectiveSensitivity) (\s@OptimizationObjective' {} a -> s {objectiveSensitivity = a} :: OptimizationObjective)++instance Data.FromJSON OptimizationObjective where+  parseJSON =+    Data.withObject+      "OptimizationObjective"+      ( \x ->+          OptimizationObjective'+            Prelude.<$> (x Data..:? "itemAttribute")+            Prelude.<*> (x Data..:? "objectiveSensitivity")+      )++instance Prelude.Hashable OptimizationObjective where+  hashWithSalt _salt OptimizationObjective' {..} =+    _salt+      `Prelude.hashWithSalt` itemAttribute+      `Prelude.hashWithSalt` objectiveSensitivity++instance Prelude.NFData OptimizationObjective where+  rnf OptimizationObjective' {..} =+    Prelude.rnf itemAttribute+      `Prelude.seq` Prelude.rnf objectiveSensitivity++instance Data.ToJSON OptimizationObjective where+  toJSON OptimizationObjective' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("itemAttribute" Data..=) Prelude.<$> itemAttribute,+            ("objectiveSensitivity" Data..=)+              Prelude.<$> objectiveSensitivity+          ]+      )
+ gen/Amazonka/Personalize/Types/Recipe.hs view
@@ -0,0 +1,192 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.Recipe+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.Recipe where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides information about a recipe. Each recipe provides an algorithm+-- that Amazon Personalize uses in model training when you use the+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateSolution.html CreateSolution>+-- operation.+--+-- /See:/ 'newRecipe' smart constructor.+data Recipe = Recipe'+  { -- | The Amazon Resource Name (ARN) of the algorithm that Amazon Personalize+    -- uses to train the model.+    algorithmArn :: Prelude.Maybe Prelude.Text,+    -- | The date and time (in Unix format) that the recipe was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The description of the recipe.+    description :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the FeatureTransformation object.+    featureTransformationArn :: Prelude.Maybe Prelude.Text,+    -- | The date and time (in Unix format) that the recipe was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The name of the recipe.+    name :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the recipe.+    recipeArn :: Prelude.Maybe Prelude.Text,+    -- | One of the following values:+    --+    -- -   PERSONALIZED_RANKING+    --+    -- -   RELATED_ITEMS+    --+    -- -   USER_PERSONALIZATION+    recipeType :: Prelude.Maybe Prelude.Text,+    -- | The status of the recipe.+    status :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Recipe' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'algorithmArn', 'recipe_algorithmArn' - The Amazon Resource Name (ARN) of the algorithm that Amazon Personalize+-- uses to train the model.+--+-- 'creationDateTime', 'recipe_creationDateTime' - The date and time (in Unix format) that the recipe was created.+--+-- 'description', 'recipe_description' - The description of the recipe.+--+-- 'featureTransformationArn', 'recipe_featureTransformationArn' - The ARN of the FeatureTransformation object.+--+-- 'lastUpdatedDateTime', 'recipe_lastUpdatedDateTime' - The date and time (in Unix format) that the recipe was last updated.+--+-- 'name', 'recipe_name' - The name of the recipe.+--+-- 'recipeArn', 'recipe_recipeArn' - The Amazon Resource Name (ARN) of the recipe.+--+-- 'recipeType', 'recipe_recipeType' - One of the following values:+--+-- -   PERSONALIZED_RANKING+--+-- -   RELATED_ITEMS+--+-- -   USER_PERSONALIZATION+--+-- 'status', 'recipe_status' - The status of the recipe.+newRecipe ::+  Recipe+newRecipe =+  Recipe'+    { algorithmArn = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      description = Prelude.Nothing,+      featureTransformationArn = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      name = Prelude.Nothing,+      recipeArn = Prelude.Nothing,+      recipeType = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the algorithm that Amazon Personalize+-- uses to train the model.+recipe_algorithmArn :: Lens.Lens' Recipe (Prelude.Maybe Prelude.Text)+recipe_algorithmArn = Lens.lens (\Recipe' {algorithmArn} -> algorithmArn) (\s@Recipe' {} a -> s {algorithmArn = a} :: Recipe)++-- | The date and time (in Unix format) that the recipe was created.+recipe_creationDateTime :: Lens.Lens' Recipe (Prelude.Maybe Prelude.UTCTime)+recipe_creationDateTime = Lens.lens (\Recipe' {creationDateTime} -> creationDateTime) (\s@Recipe' {} a -> s {creationDateTime = a} :: Recipe) Prelude.. Lens.mapping Data._Time++-- | The description of the recipe.+recipe_description :: Lens.Lens' Recipe (Prelude.Maybe Prelude.Text)+recipe_description = Lens.lens (\Recipe' {description} -> description) (\s@Recipe' {} a -> s {description = a} :: Recipe)++-- | The ARN of the FeatureTransformation object.+recipe_featureTransformationArn :: Lens.Lens' Recipe (Prelude.Maybe Prelude.Text)+recipe_featureTransformationArn = Lens.lens (\Recipe' {featureTransformationArn} -> featureTransformationArn) (\s@Recipe' {} a -> s {featureTransformationArn = a} :: Recipe)++-- | The date and time (in Unix format) that the recipe was last updated.+recipe_lastUpdatedDateTime :: Lens.Lens' Recipe (Prelude.Maybe Prelude.UTCTime)+recipe_lastUpdatedDateTime = Lens.lens (\Recipe' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@Recipe' {} a -> s {lastUpdatedDateTime = a} :: Recipe) Prelude.. Lens.mapping Data._Time++-- | The name of the recipe.+recipe_name :: Lens.Lens' Recipe (Prelude.Maybe Prelude.Text)+recipe_name = Lens.lens (\Recipe' {name} -> name) (\s@Recipe' {} a -> s {name = a} :: Recipe)++-- | The Amazon Resource Name (ARN) of the recipe.+recipe_recipeArn :: Lens.Lens' Recipe (Prelude.Maybe Prelude.Text)+recipe_recipeArn = Lens.lens (\Recipe' {recipeArn} -> recipeArn) (\s@Recipe' {} a -> s {recipeArn = a} :: Recipe)++-- | One of the following values:+--+-- -   PERSONALIZED_RANKING+--+-- -   RELATED_ITEMS+--+-- -   USER_PERSONALIZATION+recipe_recipeType :: Lens.Lens' Recipe (Prelude.Maybe Prelude.Text)+recipe_recipeType = Lens.lens (\Recipe' {recipeType} -> recipeType) (\s@Recipe' {} a -> s {recipeType = a} :: Recipe)++-- | The status of the recipe.+recipe_status :: Lens.Lens' Recipe (Prelude.Maybe Prelude.Text)+recipe_status = Lens.lens (\Recipe' {status} -> status) (\s@Recipe' {} a -> s {status = a} :: Recipe)++instance Data.FromJSON Recipe where+  parseJSON =+    Data.withObject+      "Recipe"+      ( \x ->+          Recipe'+            Prelude.<$> (x Data..:? "algorithmArn")+            Prelude.<*> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "featureTransformationArn")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "recipeArn")+            Prelude.<*> (x Data..:? "recipeType")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable Recipe where+  hashWithSalt _salt Recipe' {..} =+    _salt+      `Prelude.hashWithSalt` algorithmArn+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` featureTransformationArn+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` recipeArn+      `Prelude.hashWithSalt` recipeType+      `Prelude.hashWithSalt` status++instance Prelude.NFData Recipe where+  rnf Recipe' {..} =+    Prelude.rnf algorithmArn+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf featureTransformationArn+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf recipeArn+      `Prelude.seq` Prelude.rnf recipeType+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Personalize/Types/RecipeProvider.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.Personalize.Types.RecipeProvider+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.RecipeProvider+  ( RecipeProvider+      ( ..,+        RecipeProvider_SERVICE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype RecipeProvider = RecipeProvider'+  { fromRecipeProvider ::+      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 RecipeProvider_SERVICE :: RecipeProvider+pattern RecipeProvider_SERVICE = RecipeProvider' "SERVICE"++{-# COMPLETE+  RecipeProvider_SERVICE,+  RecipeProvider'+  #-}
+ gen/Amazonka/Personalize/Types/RecipeSummary.hs view
@@ -0,0 +1,139 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.RecipeSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.RecipeSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types.Domain+import qualified Amazonka.Prelude as Prelude++-- | Provides a summary of the properties of a recipe. For a complete+-- listing, call the+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeRecipe.html DescribeRecipe>+-- API.+--+-- /See:/ 'newRecipeSummary' smart constructor.+data RecipeSummary = RecipeSummary'+  { -- | The date and time (in Unix time) that the recipe was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The domain of the recipe (if the recipe is a Domain dataset group use+    -- case).+    domain :: Prelude.Maybe Domain,+    -- | The date and time (in Unix time) that the recipe was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The name of the recipe.+    name :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the recipe.+    recipeArn :: Prelude.Maybe Prelude.Text,+    -- | The status of the recipe.+    status :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RecipeSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationDateTime', 'recipeSummary_creationDateTime' - The date and time (in Unix time) that the recipe was created.+--+-- 'domain', 'recipeSummary_domain' - The domain of the recipe (if the recipe is a Domain dataset group use+-- case).+--+-- 'lastUpdatedDateTime', 'recipeSummary_lastUpdatedDateTime' - The date and time (in Unix time) that the recipe was last updated.+--+-- 'name', 'recipeSummary_name' - The name of the recipe.+--+-- 'recipeArn', 'recipeSummary_recipeArn' - The Amazon Resource Name (ARN) of the recipe.+--+-- 'status', 'recipeSummary_status' - The status of the recipe.+newRecipeSummary ::+  RecipeSummary+newRecipeSummary =+  RecipeSummary'+    { creationDateTime = Prelude.Nothing,+      domain = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      name = Prelude.Nothing,+      recipeArn = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The date and time (in Unix time) that the recipe was created.+recipeSummary_creationDateTime :: Lens.Lens' RecipeSummary (Prelude.Maybe Prelude.UTCTime)+recipeSummary_creationDateTime = Lens.lens (\RecipeSummary' {creationDateTime} -> creationDateTime) (\s@RecipeSummary' {} a -> s {creationDateTime = a} :: RecipeSummary) Prelude.. Lens.mapping Data._Time++-- | The domain of the recipe (if the recipe is a Domain dataset group use+-- case).+recipeSummary_domain :: Lens.Lens' RecipeSummary (Prelude.Maybe Domain)+recipeSummary_domain = Lens.lens (\RecipeSummary' {domain} -> domain) (\s@RecipeSummary' {} a -> s {domain = a} :: RecipeSummary)++-- | The date and time (in Unix time) that the recipe was last updated.+recipeSummary_lastUpdatedDateTime :: Lens.Lens' RecipeSummary (Prelude.Maybe Prelude.UTCTime)+recipeSummary_lastUpdatedDateTime = Lens.lens (\RecipeSummary' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@RecipeSummary' {} a -> s {lastUpdatedDateTime = a} :: RecipeSummary) Prelude.. Lens.mapping Data._Time++-- | The name of the recipe.+recipeSummary_name :: Lens.Lens' RecipeSummary (Prelude.Maybe Prelude.Text)+recipeSummary_name = Lens.lens (\RecipeSummary' {name} -> name) (\s@RecipeSummary' {} a -> s {name = a} :: RecipeSummary)++-- | The Amazon Resource Name (ARN) of the recipe.+recipeSummary_recipeArn :: Lens.Lens' RecipeSummary (Prelude.Maybe Prelude.Text)+recipeSummary_recipeArn = Lens.lens (\RecipeSummary' {recipeArn} -> recipeArn) (\s@RecipeSummary' {} a -> s {recipeArn = a} :: RecipeSummary)++-- | The status of the recipe.+recipeSummary_status :: Lens.Lens' RecipeSummary (Prelude.Maybe Prelude.Text)+recipeSummary_status = Lens.lens (\RecipeSummary' {status} -> status) (\s@RecipeSummary' {} a -> s {status = a} :: RecipeSummary)++instance Data.FromJSON RecipeSummary where+  parseJSON =+    Data.withObject+      "RecipeSummary"+      ( \x ->+          RecipeSummary'+            Prelude.<$> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "domain")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "recipeArn")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable RecipeSummary where+  hashWithSalt _salt RecipeSummary' {..} =+    _salt+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` domain+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` recipeArn+      `Prelude.hashWithSalt` status++instance Prelude.NFData RecipeSummary where+  rnf RecipeSummary' {..} =+    Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf domain+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf recipeArn+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Personalize/Types/Recommender.hs view
@@ -0,0 +1,240 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.Recommender+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.Recommender where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types.RecommenderConfig+import Amazonka.Personalize.Types.RecommenderUpdateSummary+import qualified Amazonka.Prelude as Prelude++-- | Describes a recommendation generator for a Domain dataset group. You+-- create a recommender in a Domain dataset group for a specific domain use+-- case (domain recipe), and specify the recommender in a+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_RS_GetRecommendations.html GetRecommendations>+-- request.+--+-- /See:/ 'newRecommender' smart constructor.+data Recommender = Recommender'+  { -- | The date and time (in Unix format) that the recommender was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) of the Domain dataset group that contains+    -- the recommender.+    datasetGroupArn :: Prelude.Maybe Prelude.Text,+    -- | If a recommender fails, the reason behind the failure.+    failureReason :: Prelude.Maybe Prelude.Text,+    -- | The date and time (in Unix format) that the recommender was last+    -- updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | Provides a summary of the latest updates to the recommender.+    latestRecommenderUpdate :: Prelude.Maybe RecommenderUpdateSummary,+    -- | Provides evaluation metrics that help you determine the performance of a+    -- recommender. For more information, see+    -- <https://docs.aws.amazon.com/personalize/latest/dg/evaluating-recommenders.html Evaluating a recommender>.+    modelMetrics :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Double),+    -- | The name of the recommender.+    name :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the recipe (Domain dataset group use+    -- case) that the recommender was created for.+    recipeArn :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the recommender.+    recommenderArn :: Prelude.Maybe Prelude.Text,+    -- | The configuration details of the recommender.+    recommenderConfig :: Prelude.Maybe RecommenderConfig,+    -- | The status of the recommender.+    --+    -- A recommender can be in one of the following states:+    --+    -- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+    --+    -- -   STOP PENDING > STOP IN_PROGRESS > INACTIVE > START PENDING > START+    --     IN_PROGRESS > ACTIVE+    --+    -- -   DELETE PENDING > DELETE IN_PROGRESS+    status :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Recommender' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationDateTime', 'recommender_creationDateTime' - The date and time (in Unix format) that the recommender was created.+--+-- 'datasetGroupArn', 'recommender_datasetGroupArn' - The Amazon Resource Name (ARN) of the Domain dataset group that contains+-- the recommender.+--+-- 'failureReason', 'recommender_failureReason' - If a recommender fails, the reason behind the failure.+--+-- 'lastUpdatedDateTime', 'recommender_lastUpdatedDateTime' - The date and time (in Unix format) that the recommender was last+-- updated.+--+-- 'latestRecommenderUpdate', 'recommender_latestRecommenderUpdate' - Provides a summary of the latest updates to the recommender.+--+-- 'modelMetrics', 'recommender_modelMetrics' - Provides evaluation metrics that help you determine the performance of a+-- recommender. For more information, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/evaluating-recommenders.html Evaluating a recommender>.+--+-- 'name', 'recommender_name' - The name of the recommender.+--+-- 'recipeArn', 'recommender_recipeArn' - The Amazon Resource Name (ARN) of the recipe (Domain dataset group use+-- case) that the recommender was created for.+--+-- 'recommenderArn', 'recommender_recommenderArn' - The Amazon Resource Name (ARN) of the recommender.+--+-- 'recommenderConfig', 'recommender_recommenderConfig' - The configuration details of the recommender.+--+-- 'status', 'recommender_status' - The status of the recommender.+--+-- A recommender can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   STOP PENDING > STOP IN_PROGRESS > INACTIVE > START PENDING > START+--     IN_PROGRESS > ACTIVE+--+-- -   DELETE PENDING > DELETE IN_PROGRESS+newRecommender ::+  Recommender+newRecommender =+  Recommender'+    { creationDateTime = Prelude.Nothing,+      datasetGroupArn = Prelude.Nothing,+      failureReason = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      latestRecommenderUpdate = Prelude.Nothing,+      modelMetrics = Prelude.Nothing,+      name = Prelude.Nothing,+      recipeArn = Prelude.Nothing,+      recommenderArn = Prelude.Nothing,+      recommenderConfig = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The date and time (in Unix format) that the recommender was created.+recommender_creationDateTime :: Lens.Lens' Recommender (Prelude.Maybe Prelude.UTCTime)+recommender_creationDateTime = Lens.lens (\Recommender' {creationDateTime} -> creationDateTime) (\s@Recommender' {} a -> s {creationDateTime = a} :: Recommender) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the Domain dataset group that contains+-- the recommender.+recommender_datasetGroupArn :: Lens.Lens' Recommender (Prelude.Maybe Prelude.Text)+recommender_datasetGroupArn = Lens.lens (\Recommender' {datasetGroupArn} -> datasetGroupArn) (\s@Recommender' {} a -> s {datasetGroupArn = a} :: Recommender)++-- | If a recommender fails, the reason behind the failure.+recommender_failureReason :: Lens.Lens' Recommender (Prelude.Maybe Prelude.Text)+recommender_failureReason = Lens.lens (\Recommender' {failureReason} -> failureReason) (\s@Recommender' {} a -> s {failureReason = a} :: Recommender)++-- | The date and time (in Unix format) that the recommender was last+-- updated.+recommender_lastUpdatedDateTime :: Lens.Lens' Recommender (Prelude.Maybe Prelude.UTCTime)+recommender_lastUpdatedDateTime = Lens.lens (\Recommender' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@Recommender' {} a -> s {lastUpdatedDateTime = a} :: Recommender) Prelude.. Lens.mapping Data._Time++-- | Provides a summary of the latest updates to the recommender.+recommender_latestRecommenderUpdate :: Lens.Lens' Recommender (Prelude.Maybe RecommenderUpdateSummary)+recommender_latestRecommenderUpdate = Lens.lens (\Recommender' {latestRecommenderUpdate} -> latestRecommenderUpdate) (\s@Recommender' {} a -> s {latestRecommenderUpdate = a} :: Recommender)++-- | Provides evaluation metrics that help you determine the performance of a+-- recommender. For more information, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/evaluating-recommenders.html Evaluating a recommender>.+recommender_modelMetrics :: Lens.Lens' Recommender (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Double))+recommender_modelMetrics = Lens.lens (\Recommender' {modelMetrics} -> modelMetrics) (\s@Recommender' {} a -> s {modelMetrics = a} :: Recommender) Prelude.. Lens.mapping Lens.coerced++-- | The name of the recommender.+recommender_name :: Lens.Lens' Recommender (Prelude.Maybe Prelude.Text)+recommender_name = Lens.lens (\Recommender' {name} -> name) (\s@Recommender' {} a -> s {name = a} :: Recommender)++-- | The Amazon Resource Name (ARN) of the recipe (Domain dataset group use+-- case) that the recommender was created for.+recommender_recipeArn :: Lens.Lens' Recommender (Prelude.Maybe Prelude.Text)+recommender_recipeArn = Lens.lens (\Recommender' {recipeArn} -> recipeArn) (\s@Recommender' {} a -> s {recipeArn = a} :: Recommender)++-- | The Amazon Resource Name (ARN) of the recommender.+recommender_recommenderArn :: Lens.Lens' Recommender (Prelude.Maybe Prelude.Text)+recommender_recommenderArn = Lens.lens (\Recommender' {recommenderArn} -> recommenderArn) (\s@Recommender' {} a -> s {recommenderArn = a} :: Recommender)++-- | The configuration details of the recommender.+recommender_recommenderConfig :: Lens.Lens' Recommender (Prelude.Maybe RecommenderConfig)+recommender_recommenderConfig = Lens.lens (\Recommender' {recommenderConfig} -> recommenderConfig) (\s@Recommender' {} a -> s {recommenderConfig = a} :: Recommender)++-- | The status of the recommender.+--+-- A recommender can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   STOP PENDING > STOP IN_PROGRESS > INACTIVE > START PENDING > START+--     IN_PROGRESS > ACTIVE+--+-- -   DELETE PENDING > DELETE IN_PROGRESS+recommender_status :: Lens.Lens' Recommender (Prelude.Maybe Prelude.Text)+recommender_status = Lens.lens (\Recommender' {status} -> status) (\s@Recommender' {} a -> s {status = a} :: Recommender)++instance Data.FromJSON Recommender where+  parseJSON =+    Data.withObject+      "Recommender"+      ( \x ->+          Recommender'+            Prelude.<$> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "datasetGroupArn")+            Prelude.<*> (x Data..:? "failureReason")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "latestRecommenderUpdate")+            Prelude.<*> (x Data..:? "modelMetrics" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "recipeArn")+            Prelude.<*> (x Data..:? "recommenderArn")+            Prelude.<*> (x Data..:? "recommenderConfig")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable Recommender where+  hashWithSalt _salt Recommender' {..} =+    _salt+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` datasetGroupArn+      `Prelude.hashWithSalt` failureReason+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` latestRecommenderUpdate+      `Prelude.hashWithSalt` modelMetrics+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` recipeArn+      `Prelude.hashWithSalt` recommenderArn+      `Prelude.hashWithSalt` recommenderConfig+      `Prelude.hashWithSalt` status++instance Prelude.NFData Recommender where+  rnf Recommender' {..} =+    Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf datasetGroupArn+      `Prelude.seq` Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf latestRecommenderUpdate+      `Prelude.seq` Prelude.rnf modelMetrics+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf recipeArn+      `Prelude.seq` Prelude.rnf recommenderArn+      `Prelude.seq` Prelude.rnf recommenderConfig+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Personalize/Types/RecommenderConfig.hs view
@@ -0,0 +1,117 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.RecommenderConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.RecommenderConfig 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 configuration details of the recommender.+--+-- /See:/ 'newRecommenderConfig' smart constructor.+data RecommenderConfig = RecommenderConfig'+  { -- | Specifies the exploration configuration hyperparameters, including+    -- @explorationWeight@ and @explorationItemAgeCutOff@, you want to use to+    -- configure the amount of item exploration Amazon Personalize uses when+    -- recommending items. Provide @itemExplorationConfig@ data only if your+    -- recommenders generate personalized recommendations for a user (not+    -- popular items or similar items).+    itemExplorationConfig :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Specifies the requested minimum provisioned recommendation requests per+    -- second that Amazon Personalize will support.+    minRecommendationRequestsPerSecond :: Prelude.Maybe Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RecommenderConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'itemExplorationConfig', 'recommenderConfig_itemExplorationConfig' - Specifies the exploration configuration hyperparameters, including+-- @explorationWeight@ and @explorationItemAgeCutOff@, you want to use to+-- configure the amount of item exploration Amazon Personalize uses when+-- recommending items. Provide @itemExplorationConfig@ data only if your+-- recommenders generate personalized recommendations for a user (not+-- popular items or similar items).+--+-- 'minRecommendationRequestsPerSecond', 'recommenderConfig_minRecommendationRequestsPerSecond' - Specifies the requested minimum provisioned recommendation requests per+-- second that Amazon Personalize will support.+newRecommenderConfig ::+  RecommenderConfig+newRecommenderConfig =+  RecommenderConfig'+    { itemExplorationConfig =+        Prelude.Nothing,+      minRecommendationRequestsPerSecond = Prelude.Nothing+    }++-- | Specifies the exploration configuration hyperparameters, including+-- @explorationWeight@ and @explorationItemAgeCutOff@, you want to use to+-- configure the amount of item exploration Amazon Personalize uses when+-- recommending items. Provide @itemExplorationConfig@ data only if your+-- recommenders generate personalized recommendations for a user (not+-- popular items or similar items).+recommenderConfig_itemExplorationConfig :: Lens.Lens' RecommenderConfig (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+recommenderConfig_itemExplorationConfig = Lens.lens (\RecommenderConfig' {itemExplorationConfig} -> itemExplorationConfig) (\s@RecommenderConfig' {} a -> s {itemExplorationConfig = a} :: RecommenderConfig) Prelude.. Lens.mapping Lens.coerced++-- | Specifies the requested minimum provisioned recommendation requests per+-- second that Amazon Personalize will support.+recommenderConfig_minRecommendationRequestsPerSecond :: Lens.Lens' RecommenderConfig (Prelude.Maybe Prelude.Natural)+recommenderConfig_minRecommendationRequestsPerSecond = Lens.lens (\RecommenderConfig' {minRecommendationRequestsPerSecond} -> minRecommendationRequestsPerSecond) (\s@RecommenderConfig' {} a -> s {minRecommendationRequestsPerSecond = a} :: RecommenderConfig)++instance Data.FromJSON RecommenderConfig where+  parseJSON =+    Data.withObject+      "RecommenderConfig"+      ( \x ->+          RecommenderConfig'+            Prelude.<$> ( x+                            Data..:? "itemExplorationConfig"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "minRecommendationRequestsPerSecond")+      )++instance Prelude.Hashable RecommenderConfig where+  hashWithSalt _salt RecommenderConfig' {..} =+    _salt+      `Prelude.hashWithSalt` itemExplorationConfig+      `Prelude.hashWithSalt` minRecommendationRequestsPerSecond++instance Prelude.NFData RecommenderConfig where+  rnf RecommenderConfig' {..} =+    Prelude.rnf itemExplorationConfig+      `Prelude.seq` Prelude.rnf minRecommendationRequestsPerSecond++instance Data.ToJSON RecommenderConfig where+  toJSON RecommenderConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("itemExplorationConfig" Data..=)+              Prelude.<$> itemExplorationConfig,+            ("minRecommendationRequestsPerSecond" Data..=)+              Prelude.<$> minRecommendationRequestsPerSecond+          ]+      )
+ gen/Amazonka/Personalize/Types/RecommenderSummary.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.Personalize.Types.RecommenderSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.RecommenderSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types.RecommenderConfig+import qualified Amazonka.Prelude as Prelude++-- | Provides a summary of the properties of the recommender.+--+-- /See:/ 'newRecommenderSummary' smart constructor.+data RecommenderSummary = RecommenderSummary'+  { -- | The date and time (in Unix format) that the recommender was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) of the Domain dataset group that contains+    -- the recommender.+    datasetGroupArn :: Prelude.Maybe Prelude.Text,+    -- | The date and time (in Unix format) that the recommender was last+    -- updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The name of the recommender.+    name :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the recipe (Domain dataset group use+    -- case) that the recommender was created for.+    recipeArn :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the recommender.+    recommenderArn :: Prelude.Maybe Prelude.Text,+    -- | The configuration details of the recommender.+    recommenderConfig :: Prelude.Maybe RecommenderConfig,+    -- | The status of the recommender. A recommender can be in one of the+    -- following states:+    --+    -- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+    --+    -- -   STOP PENDING > STOP IN_PROGRESS > INACTIVE > START PENDING > START+    --     IN_PROGRESS > ACTIVE+    --+    -- -   DELETE PENDING > DELETE IN_PROGRESS+    status :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RecommenderSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationDateTime', 'recommenderSummary_creationDateTime' - The date and time (in Unix format) that the recommender was created.+--+-- 'datasetGroupArn', 'recommenderSummary_datasetGroupArn' - The Amazon Resource Name (ARN) of the Domain dataset group that contains+-- the recommender.+--+-- 'lastUpdatedDateTime', 'recommenderSummary_lastUpdatedDateTime' - The date and time (in Unix format) that the recommender was last+-- updated.+--+-- 'name', 'recommenderSummary_name' - The name of the recommender.+--+-- 'recipeArn', 'recommenderSummary_recipeArn' - The Amazon Resource Name (ARN) of the recipe (Domain dataset group use+-- case) that the recommender was created for.+--+-- 'recommenderArn', 'recommenderSummary_recommenderArn' - The Amazon Resource Name (ARN) of the recommender.+--+-- 'recommenderConfig', 'recommenderSummary_recommenderConfig' - The configuration details of the recommender.+--+-- 'status', 'recommenderSummary_status' - The status of the recommender. A recommender can be in one of the+-- following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   STOP PENDING > STOP IN_PROGRESS > INACTIVE > START PENDING > START+--     IN_PROGRESS > ACTIVE+--+-- -   DELETE PENDING > DELETE IN_PROGRESS+newRecommenderSummary ::+  RecommenderSummary+newRecommenderSummary =+  RecommenderSummary'+    { creationDateTime =+        Prelude.Nothing,+      datasetGroupArn = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      name = Prelude.Nothing,+      recipeArn = Prelude.Nothing,+      recommenderArn = Prelude.Nothing,+      recommenderConfig = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The date and time (in Unix format) that the recommender was created.+recommenderSummary_creationDateTime :: Lens.Lens' RecommenderSummary (Prelude.Maybe Prelude.UTCTime)+recommenderSummary_creationDateTime = Lens.lens (\RecommenderSummary' {creationDateTime} -> creationDateTime) (\s@RecommenderSummary' {} a -> s {creationDateTime = a} :: RecommenderSummary) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the Domain dataset group that contains+-- the recommender.+recommenderSummary_datasetGroupArn :: Lens.Lens' RecommenderSummary (Prelude.Maybe Prelude.Text)+recommenderSummary_datasetGroupArn = Lens.lens (\RecommenderSummary' {datasetGroupArn} -> datasetGroupArn) (\s@RecommenderSummary' {} a -> s {datasetGroupArn = a} :: RecommenderSummary)++-- | The date and time (in Unix format) that the recommender was last+-- updated.+recommenderSummary_lastUpdatedDateTime :: Lens.Lens' RecommenderSummary (Prelude.Maybe Prelude.UTCTime)+recommenderSummary_lastUpdatedDateTime = Lens.lens (\RecommenderSummary' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@RecommenderSummary' {} a -> s {lastUpdatedDateTime = a} :: RecommenderSummary) Prelude.. Lens.mapping Data._Time++-- | The name of the recommender.+recommenderSummary_name :: Lens.Lens' RecommenderSummary (Prelude.Maybe Prelude.Text)+recommenderSummary_name = Lens.lens (\RecommenderSummary' {name} -> name) (\s@RecommenderSummary' {} a -> s {name = a} :: RecommenderSummary)++-- | The Amazon Resource Name (ARN) of the recipe (Domain dataset group use+-- case) that the recommender was created for.+recommenderSummary_recipeArn :: Lens.Lens' RecommenderSummary (Prelude.Maybe Prelude.Text)+recommenderSummary_recipeArn = Lens.lens (\RecommenderSummary' {recipeArn} -> recipeArn) (\s@RecommenderSummary' {} a -> s {recipeArn = a} :: RecommenderSummary)++-- | The Amazon Resource Name (ARN) of the recommender.+recommenderSummary_recommenderArn :: Lens.Lens' RecommenderSummary (Prelude.Maybe Prelude.Text)+recommenderSummary_recommenderArn = Lens.lens (\RecommenderSummary' {recommenderArn} -> recommenderArn) (\s@RecommenderSummary' {} a -> s {recommenderArn = a} :: RecommenderSummary)++-- | The configuration details of the recommender.+recommenderSummary_recommenderConfig :: Lens.Lens' RecommenderSummary (Prelude.Maybe RecommenderConfig)+recommenderSummary_recommenderConfig = Lens.lens (\RecommenderSummary' {recommenderConfig} -> recommenderConfig) (\s@RecommenderSummary' {} a -> s {recommenderConfig = a} :: RecommenderSummary)++-- | The status of the recommender. A recommender can be in one of the+-- following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   STOP PENDING > STOP IN_PROGRESS > INACTIVE > START PENDING > START+--     IN_PROGRESS > ACTIVE+--+-- -   DELETE PENDING > DELETE IN_PROGRESS+recommenderSummary_status :: Lens.Lens' RecommenderSummary (Prelude.Maybe Prelude.Text)+recommenderSummary_status = Lens.lens (\RecommenderSummary' {status} -> status) (\s@RecommenderSummary' {} a -> s {status = a} :: RecommenderSummary)++instance Data.FromJSON RecommenderSummary where+  parseJSON =+    Data.withObject+      "RecommenderSummary"+      ( \x ->+          RecommenderSummary'+            Prelude.<$> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "datasetGroupArn")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "recipeArn")+            Prelude.<*> (x Data..:? "recommenderArn")+            Prelude.<*> (x Data..:? "recommenderConfig")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable RecommenderSummary where+  hashWithSalt _salt RecommenderSummary' {..} =+    _salt+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` datasetGroupArn+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` recipeArn+      `Prelude.hashWithSalt` recommenderArn+      `Prelude.hashWithSalt` recommenderConfig+      `Prelude.hashWithSalt` status++instance Prelude.NFData RecommenderSummary where+  rnf RecommenderSummary' {..} =+    Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf datasetGroupArn+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf recipeArn+      `Prelude.seq` Prelude.rnf recommenderArn+      `Prelude.seq` Prelude.rnf recommenderConfig+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Personalize/Types/RecommenderUpdateSummary.hs view
@@ -0,0 +1,158 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.RecommenderUpdateSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.RecommenderUpdateSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types.RecommenderConfig+import qualified Amazonka.Prelude as Prelude++-- | Provides a summary of the properties of a recommender update. For a+-- complete listing, call the+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeRecommender.html DescribeRecommender>+-- API.+--+-- /See:/ 'newRecommenderUpdateSummary' smart constructor.+data RecommenderUpdateSummary = RecommenderUpdateSummary'+  { -- | The date and time (in Unix format) that the recommender update was+    -- created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | If a recommender update fails, the reason behind the failure.+    failureReason :: Prelude.Maybe Prelude.Text,+    -- | The date and time (in Unix time) that the recommender update was last+    -- updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The configuration details of the recommender update.+    recommenderConfig :: Prelude.Maybe RecommenderConfig,+    -- | The status of the recommender update.+    --+    -- A recommender can be in one of the following states:+    --+    -- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+    --+    -- -   STOP PENDING > STOP IN_PROGRESS > INACTIVE > START PENDING > START+    --     IN_PROGRESS > ACTIVE+    --+    -- -   DELETE PENDING > DELETE IN_PROGRESS+    status :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RecommenderUpdateSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationDateTime', 'recommenderUpdateSummary_creationDateTime' - The date and time (in Unix format) that the recommender update was+-- created.+--+-- 'failureReason', 'recommenderUpdateSummary_failureReason' - If a recommender update fails, the reason behind the failure.+--+-- 'lastUpdatedDateTime', 'recommenderUpdateSummary_lastUpdatedDateTime' - The date and time (in Unix time) that the recommender update was last+-- updated.+--+-- 'recommenderConfig', 'recommenderUpdateSummary_recommenderConfig' - The configuration details of the recommender update.+--+-- 'status', 'recommenderUpdateSummary_status' - The status of the recommender update.+--+-- A recommender can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   STOP PENDING > STOP IN_PROGRESS > INACTIVE > START PENDING > START+--     IN_PROGRESS > ACTIVE+--+-- -   DELETE PENDING > DELETE IN_PROGRESS+newRecommenderUpdateSummary ::+  RecommenderUpdateSummary+newRecommenderUpdateSummary =+  RecommenderUpdateSummary'+    { creationDateTime =+        Prelude.Nothing,+      failureReason = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      recommenderConfig = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The date and time (in Unix format) that the recommender update was+-- created.+recommenderUpdateSummary_creationDateTime :: Lens.Lens' RecommenderUpdateSummary (Prelude.Maybe Prelude.UTCTime)+recommenderUpdateSummary_creationDateTime = Lens.lens (\RecommenderUpdateSummary' {creationDateTime} -> creationDateTime) (\s@RecommenderUpdateSummary' {} a -> s {creationDateTime = a} :: RecommenderUpdateSummary) Prelude.. Lens.mapping Data._Time++-- | If a recommender update fails, the reason behind the failure.+recommenderUpdateSummary_failureReason :: Lens.Lens' RecommenderUpdateSummary (Prelude.Maybe Prelude.Text)+recommenderUpdateSummary_failureReason = Lens.lens (\RecommenderUpdateSummary' {failureReason} -> failureReason) (\s@RecommenderUpdateSummary' {} a -> s {failureReason = a} :: RecommenderUpdateSummary)++-- | The date and time (in Unix time) that the recommender update was last+-- updated.+recommenderUpdateSummary_lastUpdatedDateTime :: Lens.Lens' RecommenderUpdateSummary (Prelude.Maybe Prelude.UTCTime)+recommenderUpdateSummary_lastUpdatedDateTime = Lens.lens (\RecommenderUpdateSummary' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@RecommenderUpdateSummary' {} a -> s {lastUpdatedDateTime = a} :: RecommenderUpdateSummary) Prelude.. Lens.mapping Data._Time++-- | The configuration details of the recommender update.+recommenderUpdateSummary_recommenderConfig :: Lens.Lens' RecommenderUpdateSummary (Prelude.Maybe RecommenderConfig)+recommenderUpdateSummary_recommenderConfig = Lens.lens (\RecommenderUpdateSummary' {recommenderConfig} -> recommenderConfig) (\s@RecommenderUpdateSummary' {} a -> s {recommenderConfig = a} :: RecommenderUpdateSummary)++-- | The status of the recommender update.+--+-- A recommender can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   STOP PENDING > STOP IN_PROGRESS > INACTIVE > START PENDING > START+--     IN_PROGRESS > ACTIVE+--+-- -   DELETE PENDING > DELETE IN_PROGRESS+recommenderUpdateSummary_status :: Lens.Lens' RecommenderUpdateSummary (Prelude.Maybe Prelude.Text)+recommenderUpdateSummary_status = Lens.lens (\RecommenderUpdateSummary' {status} -> status) (\s@RecommenderUpdateSummary' {} a -> s {status = a} :: RecommenderUpdateSummary)++instance Data.FromJSON RecommenderUpdateSummary where+  parseJSON =+    Data.withObject+      "RecommenderUpdateSummary"+      ( \x ->+          RecommenderUpdateSummary'+            Prelude.<$> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "failureReason")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "recommenderConfig")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable RecommenderUpdateSummary where+  hashWithSalt _salt RecommenderUpdateSummary' {..} =+    _salt+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` failureReason+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` recommenderConfig+      `Prelude.hashWithSalt` status++instance Prelude.NFData RecommenderUpdateSummary where+  rnf RecommenderUpdateSummary' {..} =+    Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf recommenderConfig+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Personalize/Types/S3DataConfig.hs view
@@ -0,0 +1,101 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.S3DataConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.S3DataConfig 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 configuration details of an Amazon S3 input or output bucket.+--+-- /See:/ 'newS3DataConfig' smart constructor.+data S3DataConfig = S3DataConfig'+  { -- | The Amazon Resource Name (ARN) of the Key Management Service (KMS) key+    -- that Amazon Personalize uses to encrypt or decrypt the input and output+    -- files.+    kmsKeyArn :: Prelude.Maybe Prelude.Text,+    -- | The file path of the Amazon S3 bucket.+    path :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3DataConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'kmsKeyArn', 's3DataConfig_kmsKeyArn' - The Amazon Resource Name (ARN) of the Key Management Service (KMS) key+-- that Amazon Personalize uses to encrypt or decrypt the input and output+-- files.+--+-- 'path', 's3DataConfig_path' - The file path of the Amazon S3 bucket.+newS3DataConfig ::+  -- | 'path'+  Prelude.Text ->+  S3DataConfig+newS3DataConfig pPath_ =+  S3DataConfig'+    { kmsKeyArn = Prelude.Nothing,+      path = pPath_+    }++-- | The Amazon Resource Name (ARN) of the Key Management Service (KMS) key+-- that Amazon Personalize uses to encrypt or decrypt the input and output+-- files.+s3DataConfig_kmsKeyArn :: Lens.Lens' S3DataConfig (Prelude.Maybe Prelude.Text)+s3DataConfig_kmsKeyArn = Lens.lens (\S3DataConfig' {kmsKeyArn} -> kmsKeyArn) (\s@S3DataConfig' {} a -> s {kmsKeyArn = a} :: S3DataConfig)++-- | The file path of the Amazon S3 bucket.+s3DataConfig_path :: Lens.Lens' S3DataConfig Prelude.Text+s3DataConfig_path = Lens.lens (\S3DataConfig' {path} -> path) (\s@S3DataConfig' {} a -> s {path = a} :: S3DataConfig)++instance Data.FromJSON S3DataConfig where+  parseJSON =+    Data.withObject+      "S3DataConfig"+      ( \x ->+          S3DataConfig'+            Prelude.<$> (x Data..:? "kmsKeyArn")+            Prelude.<*> (x Data..: "path")+      )++instance Prelude.Hashable S3DataConfig where+  hashWithSalt _salt S3DataConfig' {..} =+    _salt+      `Prelude.hashWithSalt` kmsKeyArn+      `Prelude.hashWithSalt` path++instance Prelude.NFData S3DataConfig where+  rnf S3DataConfig' {..} =+    Prelude.rnf kmsKeyArn+      `Prelude.seq` Prelude.rnf path++instance Data.ToJSON S3DataConfig where+  toJSON S3DataConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("kmsKeyArn" Data..=) Prelude.<$> kmsKeyArn,+            Prelude.Just ("path" Data..= path)+          ]+      )
+ gen/Amazonka/Personalize/Types/Solution.hs view
@@ -0,0 +1,262 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.Solution+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.Solution where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types.AutoMLResult+import Amazonka.Personalize.Types.SolutionConfig+import Amazonka.Personalize.Types.SolutionVersionSummary+import qualified Amazonka.Prelude as Prelude++-- | An object that provides information about a solution. A solution is a+-- trained model that can be deployed as a campaign.+--+-- /See:/ 'newSolution' smart constructor.+data Solution = Solution'+  { -- | When @performAutoML@ is true, specifies the best recipe found.+    autoMLResult :: Prelude.Maybe AutoMLResult,+    -- | The creation date and time (in Unix time) of the solution.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) of the dataset group that provides the+    -- training data.+    datasetGroupArn :: Prelude.Maybe Prelude.Text,+    -- | The event type (for example, \'click\' or \'like\') that is used for+    -- training the model. If no @eventType@ is provided, Amazon Personalize+    -- uses all interactions for training with equal weight regardless of type.+    eventType :: Prelude.Maybe Prelude.Text,+    -- | The date and time (in Unix time) that the solution was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | Describes the latest version of the solution, including the status and+    -- the ARN.+    latestSolutionVersion :: Prelude.Maybe SolutionVersionSummary,+    -- | The name of the solution.+    name :: Prelude.Maybe Prelude.Text,+    -- | When true, Amazon Personalize performs a search for the best+    -- USER_PERSONALIZATION recipe from the list specified in the solution+    -- configuration (@recipeArn@ must not be specified). When false (the+    -- default), Amazon Personalize uses @recipeArn@ for training.+    performAutoML :: Prelude.Maybe Prelude.Bool,+    -- | Whether to perform hyperparameter optimization (HPO) on the chosen+    -- recipe. The default is @false@.+    performHPO :: Prelude.Maybe Prelude.Bool,+    -- | The ARN of the recipe used to create the solution.+    recipeArn :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the solution.+    solutionArn :: Prelude.Maybe Prelude.Text,+    -- | Describes the configuration properties for the solution.+    solutionConfig :: Prelude.Maybe SolutionConfig,+    -- | The status of the solution.+    --+    -- A solution can be in one of the following states:+    --+    -- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+    --+    -- -   DELETE PENDING > DELETE IN_PROGRESS+    status :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Solution' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'autoMLResult', 'solution_autoMLResult' - When @performAutoML@ is true, specifies the best recipe found.+--+-- 'creationDateTime', 'solution_creationDateTime' - The creation date and time (in Unix time) of the solution.+--+-- 'datasetGroupArn', 'solution_datasetGroupArn' - The Amazon Resource Name (ARN) of the dataset group that provides the+-- training data.+--+-- 'eventType', 'solution_eventType' - The event type (for example, \'click\' or \'like\') that is used for+-- training the model. If no @eventType@ is provided, Amazon Personalize+-- uses all interactions for training with equal weight regardless of type.+--+-- 'lastUpdatedDateTime', 'solution_lastUpdatedDateTime' - The date and time (in Unix time) that the solution was last updated.+--+-- 'latestSolutionVersion', 'solution_latestSolutionVersion' - Describes the latest version of the solution, including the status and+-- the ARN.+--+-- 'name', 'solution_name' - The name of the solution.+--+-- 'performAutoML', 'solution_performAutoML' - When true, Amazon Personalize performs a search for the best+-- USER_PERSONALIZATION recipe from the list specified in the solution+-- configuration (@recipeArn@ must not be specified). When false (the+-- default), Amazon Personalize uses @recipeArn@ for training.+--+-- 'performHPO', 'solution_performHPO' - Whether to perform hyperparameter optimization (HPO) on the chosen+-- recipe. The default is @false@.+--+-- 'recipeArn', 'solution_recipeArn' - The ARN of the recipe used to create the solution.+--+-- 'solutionArn', 'solution_solutionArn' - The ARN of the solution.+--+-- 'solutionConfig', 'solution_solutionConfig' - Describes the configuration properties for the solution.+--+-- 'status', 'solution_status' - The status of the solution.+--+-- A solution can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   DELETE PENDING > DELETE IN_PROGRESS+newSolution ::+  Solution+newSolution =+  Solution'+    { autoMLResult = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      datasetGroupArn = Prelude.Nothing,+      eventType = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      latestSolutionVersion = Prelude.Nothing,+      name = Prelude.Nothing,+      performAutoML = Prelude.Nothing,+      performHPO = Prelude.Nothing,+      recipeArn = Prelude.Nothing,+      solutionArn = Prelude.Nothing,+      solutionConfig = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | When @performAutoML@ is true, specifies the best recipe found.+solution_autoMLResult :: Lens.Lens' Solution (Prelude.Maybe AutoMLResult)+solution_autoMLResult = Lens.lens (\Solution' {autoMLResult} -> autoMLResult) (\s@Solution' {} a -> s {autoMLResult = a} :: Solution)++-- | The creation date and time (in Unix time) of the solution.+solution_creationDateTime :: Lens.Lens' Solution (Prelude.Maybe Prelude.UTCTime)+solution_creationDateTime = Lens.lens (\Solution' {creationDateTime} -> creationDateTime) (\s@Solution' {} a -> s {creationDateTime = a} :: Solution) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the dataset group that provides the+-- training data.+solution_datasetGroupArn :: Lens.Lens' Solution (Prelude.Maybe Prelude.Text)+solution_datasetGroupArn = Lens.lens (\Solution' {datasetGroupArn} -> datasetGroupArn) (\s@Solution' {} a -> s {datasetGroupArn = a} :: Solution)++-- | The event type (for example, \'click\' or \'like\') that is used for+-- training the model. If no @eventType@ is provided, Amazon Personalize+-- uses all interactions for training with equal weight regardless of type.+solution_eventType :: Lens.Lens' Solution (Prelude.Maybe Prelude.Text)+solution_eventType = Lens.lens (\Solution' {eventType} -> eventType) (\s@Solution' {} a -> s {eventType = a} :: Solution)++-- | The date and time (in Unix time) that the solution was last updated.+solution_lastUpdatedDateTime :: Lens.Lens' Solution (Prelude.Maybe Prelude.UTCTime)+solution_lastUpdatedDateTime = Lens.lens (\Solution' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@Solution' {} a -> s {lastUpdatedDateTime = a} :: Solution) Prelude.. Lens.mapping Data._Time++-- | Describes the latest version of the solution, including the status and+-- the ARN.+solution_latestSolutionVersion :: Lens.Lens' Solution (Prelude.Maybe SolutionVersionSummary)+solution_latestSolutionVersion = Lens.lens (\Solution' {latestSolutionVersion} -> latestSolutionVersion) (\s@Solution' {} a -> s {latestSolutionVersion = a} :: Solution)++-- | The name of the solution.+solution_name :: Lens.Lens' Solution (Prelude.Maybe Prelude.Text)+solution_name = Lens.lens (\Solution' {name} -> name) (\s@Solution' {} a -> s {name = a} :: Solution)++-- | When true, Amazon Personalize performs a search for the best+-- USER_PERSONALIZATION recipe from the list specified in the solution+-- configuration (@recipeArn@ must not be specified). When false (the+-- default), Amazon Personalize uses @recipeArn@ for training.+solution_performAutoML :: Lens.Lens' Solution (Prelude.Maybe Prelude.Bool)+solution_performAutoML = Lens.lens (\Solution' {performAutoML} -> performAutoML) (\s@Solution' {} a -> s {performAutoML = a} :: Solution)++-- | Whether to perform hyperparameter optimization (HPO) on the chosen+-- recipe. The default is @false@.+solution_performHPO :: Lens.Lens' Solution (Prelude.Maybe Prelude.Bool)+solution_performHPO = Lens.lens (\Solution' {performHPO} -> performHPO) (\s@Solution' {} a -> s {performHPO = a} :: Solution)++-- | The ARN of the recipe used to create the solution.+solution_recipeArn :: Lens.Lens' Solution (Prelude.Maybe Prelude.Text)+solution_recipeArn = Lens.lens (\Solution' {recipeArn} -> recipeArn) (\s@Solution' {} a -> s {recipeArn = a} :: Solution)++-- | The ARN of the solution.+solution_solutionArn :: Lens.Lens' Solution (Prelude.Maybe Prelude.Text)+solution_solutionArn = Lens.lens (\Solution' {solutionArn} -> solutionArn) (\s@Solution' {} a -> s {solutionArn = a} :: Solution)++-- | Describes the configuration properties for the solution.+solution_solutionConfig :: Lens.Lens' Solution (Prelude.Maybe SolutionConfig)+solution_solutionConfig = Lens.lens (\Solution' {solutionConfig} -> solutionConfig) (\s@Solution' {} a -> s {solutionConfig = a} :: Solution)++-- | The status of the solution.+--+-- A solution can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   DELETE PENDING > DELETE IN_PROGRESS+solution_status :: Lens.Lens' Solution (Prelude.Maybe Prelude.Text)+solution_status = Lens.lens (\Solution' {status} -> status) (\s@Solution' {} a -> s {status = a} :: Solution)++instance Data.FromJSON Solution where+  parseJSON =+    Data.withObject+      "Solution"+      ( \x ->+          Solution'+            Prelude.<$> (x Data..:? "autoMLResult")+            Prelude.<*> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "datasetGroupArn")+            Prelude.<*> (x Data..:? "eventType")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "latestSolutionVersion")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "performAutoML")+            Prelude.<*> (x Data..:? "performHPO")+            Prelude.<*> (x Data..:? "recipeArn")+            Prelude.<*> (x Data..:? "solutionArn")+            Prelude.<*> (x Data..:? "solutionConfig")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable Solution where+  hashWithSalt _salt Solution' {..} =+    _salt+      `Prelude.hashWithSalt` autoMLResult+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` datasetGroupArn+      `Prelude.hashWithSalt` eventType+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` latestSolutionVersion+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` performAutoML+      `Prelude.hashWithSalt` performHPO+      `Prelude.hashWithSalt` recipeArn+      `Prelude.hashWithSalt` solutionArn+      `Prelude.hashWithSalt` solutionConfig+      `Prelude.hashWithSalt` status++instance Prelude.NFData Solution where+  rnf Solution' {..} =+    Prelude.rnf autoMLResult+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf datasetGroupArn+      `Prelude.seq` Prelude.rnf eventType+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf latestSolutionVersion+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf performAutoML+      `Prelude.seq` Prelude.rnf performHPO+      `Prelude.seq` Prelude.rnf recipeArn+      `Prelude.seq` Prelude.rnf solutionArn+      `Prelude.seq` Prelude.rnf solutionConfig+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Personalize/Types/SolutionConfig.hs view
@@ -0,0 +1,174 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.SolutionConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.SolutionConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types.AutoMLConfig+import Amazonka.Personalize.Types.HPOConfig+import Amazonka.Personalize.Types.OptimizationObjective+import qualified Amazonka.Prelude as Prelude++-- | Describes the configuration properties for the solution.+--+-- /See:/ 'newSolutionConfig' smart constructor.+data SolutionConfig = SolutionConfig'+  { -- | Lists the hyperparameter names and ranges.+    algorithmHyperParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The+    -- <https://docs.aws.amazon.com/personalize/latest/dg/API_AutoMLConfig.html AutoMLConfig>+    -- object containing a list of recipes to search when AutoML is performed.+    autoMLConfig :: Prelude.Maybe AutoMLConfig,+    -- | Only events with a value greater than or equal to this threshold are+    -- used for training a model.+    eventValueThreshold :: Prelude.Maybe Prelude.Text,+    -- | Lists the feature transformation parameters.+    featureTransformationParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Describes the properties for hyperparameter optimization (HPO).+    hpoConfig :: Prelude.Maybe HPOConfig,+    -- | Describes the additional objective for the solution, such as maximizing+    -- streaming minutes or increasing revenue. For more information see+    -- <https://docs.aws.amazon.com/personalize/latest/dg/optimizing-solution-for-objective.html Optimizing a solution>.+    optimizationObjective :: Prelude.Maybe OptimizationObjective+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SolutionConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'algorithmHyperParameters', 'solutionConfig_algorithmHyperParameters' - Lists the hyperparameter names and ranges.+--+-- 'autoMLConfig', 'solutionConfig_autoMLConfig' - The+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_AutoMLConfig.html AutoMLConfig>+-- object containing a list of recipes to search when AutoML is performed.+--+-- 'eventValueThreshold', 'solutionConfig_eventValueThreshold' - Only events with a value greater than or equal to this threshold are+-- used for training a model.+--+-- 'featureTransformationParameters', 'solutionConfig_featureTransformationParameters' - Lists the feature transformation parameters.+--+-- 'hpoConfig', 'solutionConfig_hpoConfig' - Describes the properties for hyperparameter optimization (HPO).+--+-- 'optimizationObjective', 'solutionConfig_optimizationObjective' - Describes the additional objective for the solution, such as maximizing+-- streaming minutes or increasing revenue. For more information see+-- <https://docs.aws.amazon.com/personalize/latest/dg/optimizing-solution-for-objective.html Optimizing a solution>.+newSolutionConfig ::+  SolutionConfig+newSolutionConfig =+  SolutionConfig'+    { algorithmHyperParameters =+        Prelude.Nothing,+      autoMLConfig = Prelude.Nothing,+      eventValueThreshold = Prelude.Nothing,+      featureTransformationParameters = Prelude.Nothing,+      hpoConfig = Prelude.Nothing,+      optimizationObjective = Prelude.Nothing+    }++-- | Lists the hyperparameter names and ranges.+solutionConfig_algorithmHyperParameters :: Lens.Lens' SolutionConfig (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+solutionConfig_algorithmHyperParameters = Lens.lens (\SolutionConfig' {algorithmHyperParameters} -> algorithmHyperParameters) (\s@SolutionConfig' {} a -> s {algorithmHyperParameters = a} :: SolutionConfig) Prelude.. Lens.mapping Lens.coerced++-- | The+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_AutoMLConfig.html AutoMLConfig>+-- object containing a list of recipes to search when AutoML is performed.+solutionConfig_autoMLConfig :: Lens.Lens' SolutionConfig (Prelude.Maybe AutoMLConfig)+solutionConfig_autoMLConfig = Lens.lens (\SolutionConfig' {autoMLConfig} -> autoMLConfig) (\s@SolutionConfig' {} a -> s {autoMLConfig = a} :: SolutionConfig)++-- | Only events with a value greater than or equal to this threshold are+-- used for training a model.+solutionConfig_eventValueThreshold :: Lens.Lens' SolutionConfig (Prelude.Maybe Prelude.Text)+solutionConfig_eventValueThreshold = Lens.lens (\SolutionConfig' {eventValueThreshold} -> eventValueThreshold) (\s@SolutionConfig' {} a -> s {eventValueThreshold = a} :: SolutionConfig)++-- | Lists the feature transformation parameters.+solutionConfig_featureTransformationParameters :: Lens.Lens' SolutionConfig (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+solutionConfig_featureTransformationParameters = Lens.lens (\SolutionConfig' {featureTransformationParameters} -> featureTransformationParameters) (\s@SolutionConfig' {} a -> s {featureTransformationParameters = a} :: SolutionConfig) Prelude.. Lens.mapping Lens.coerced++-- | Describes the properties for hyperparameter optimization (HPO).+solutionConfig_hpoConfig :: Lens.Lens' SolutionConfig (Prelude.Maybe HPOConfig)+solutionConfig_hpoConfig = Lens.lens (\SolutionConfig' {hpoConfig} -> hpoConfig) (\s@SolutionConfig' {} a -> s {hpoConfig = a} :: SolutionConfig)++-- | Describes the additional objective for the solution, such as maximizing+-- streaming minutes or increasing revenue. For more information see+-- <https://docs.aws.amazon.com/personalize/latest/dg/optimizing-solution-for-objective.html Optimizing a solution>.+solutionConfig_optimizationObjective :: Lens.Lens' SolutionConfig (Prelude.Maybe OptimizationObjective)+solutionConfig_optimizationObjective = Lens.lens (\SolutionConfig' {optimizationObjective} -> optimizationObjective) (\s@SolutionConfig' {} a -> s {optimizationObjective = a} :: SolutionConfig)++instance Data.FromJSON SolutionConfig where+  parseJSON =+    Data.withObject+      "SolutionConfig"+      ( \x ->+          SolutionConfig'+            Prelude.<$> ( x+                            Data..:? "algorithmHyperParameters"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "autoMLConfig")+            Prelude.<*> (x Data..:? "eventValueThreshold")+            Prelude.<*> ( x+                            Data..:? "featureTransformationParameters"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "hpoConfig")+            Prelude.<*> (x Data..:? "optimizationObjective")+      )++instance Prelude.Hashable SolutionConfig where+  hashWithSalt _salt SolutionConfig' {..} =+    _salt+      `Prelude.hashWithSalt` algorithmHyperParameters+      `Prelude.hashWithSalt` autoMLConfig+      `Prelude.hashWithSalt` eventValueThreshold+      `Prelude.hashWithSalt` featureTransformationParameters+      `Prelude.hashWithSalt` hpoConfig+      `Prelude.hashWithSalt` optimizationObjective++instance Prelude.NFData SolutionConfig where+  rnf SolutionConfig' {..} =+    Prelude.rnf algorithmHyperParameters+      `Prelude.seq` Prelude.rnf autoMLConfig+      `Prelude.seq` Prelude.rnf eventValueThreshold+      `Prelude.seq` Prelude.rnf featureTransformationParameters+      `Prelude.seq` Prelude.rnf hpoConfig+      `Prelude.seq` Prelude.rnf optimizationObjective++instance Data.ToJSON SolutionConfig where+  toJSON SolutionConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("algorithmHyperParameters" Data..=)+              Prelude.<$> algorithmHyperParameters,+            ("autoMLConfig" Data..=) Prelude.<$> autoMLConfig,+            ("eventValueThreshold" Data..=)+              Prelude.<$> eventValueThreshold,+            ("featureTransformationParameters" Data..=)+              Prelude.<$> featureTransformationParameters,+            ("hpoConfig" Data..=) Prelude.<$> hpoConfig,+            ("optimizationObjective" Data..=)+              Prelude.<$> optimizationObjective+          ]+      )
+ gen/Amazonka/Personalize/Types/SolutionSummary.hs view
@@ -0,0 +1,154 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.SolutionSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.SolutionSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides a summary of the properties of a solution. For a complete+-- listing, call the+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeSolution.html DescribeSolution>+-- API.+--+-- /See:/ 'newSolutionSummary' smart constructor.+data SolutionSummary = SolutionSummary'+  { -- | The date and time (in Unix time) that the solution was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The date and time (in Unix time) that the solution was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The name of the solution.+    name :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the recipe used by the solution.+    recipeArn :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the solution.+    solutionArn :: Prelude.Maybe Prelude.Text,+    -- | The status of the solution.+    --+    -- A solution can be in one of the following states:+    --+    -- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+    --+    -- -   DELETE PENDING > DELETE IN_PROGRESS+    status :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SolutionSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationDateTime', 'solutionSummary_creationDateTime' - The date and time (in Unix time) that the solution was created.+--+-- 'lastUpdatedDateTime', 'solutionSummary_lastUpdatedDateTime' - The date and time (in Unix time) that the solution was last updated.+--+-- 'name', 'solutionSummary_name' - The name of the solution.+--+-- 'recipeArn', 'solutionSummary_recipeArn' - The Amazon Resource Name (ARN) of the recipe used by the solution.+--+-- 'solutionArn', 'solutionSummary_solutionArn' - The Amazon Resource Name (ARN) of the solution.+--+-- 'status', 'solutionSummary_status' - The status of the solution.+--+-- A solution can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   DELETE PENDING > DELETE IN_PROGRESS+newSolutionSummary ::+  SolutionSummary+newSolutionSummary =+  SolutionSummary'+    { creationDateTime =+        Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      name = Prelude.Nothing,+      recipeArn = Prelude.Nothing,+      solutionArn = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The date and time (in Unix time) that the solution was created.+solutionSummary_creationDateTime :: Lens.Lens' SolutionSummary (Prelude.Maybe Prelude.UTCTime)+solutionSummary_creationDateTime = Lens.lens (\SolutionSummary' {creationDateTime} -> creationDateTime) (\s@SolutionSummary' {} a -> s {creationDateTime = a} :: SolutionSummary) Prelude.. Lens.mapping Data._Time++-- | The date and time (in Unix time) that the solution was last updated.+solutionSummary_lastUpdatedDateTime :: Lens.Lens' SolutionSummary (Prelude.Maybe Prelude.UTCTime)+solutionSummary_lastUpdatedDateTime = Lens.lens (\SolutionSummary' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@SolutionSummary' {} a -> s {lastUpdatedDateTime = a} :: SolutionSummary) Prelude.. Lens.mapping Data._Time++-- | The name of the solution.+solutionSummary_name :: Lens.Lens' SolutionSummary (Prelude.Maybe Prelude.Text)+solutionSummary_name = Lens.lens (\SolutionSummary' {name} -> name) (\s@SolutionSummary' {} a -> s {name = a} :: SolutionSummary)++-- | The Amazon Resource Name (ARN) of the recipe used by the solution.+solutionSummary_recipeArn :: Lens.Lens' SolutionSummary (Prelude.Maybe Prelude.Text)+solutionSummary_recipeArn = Lens.lens (\SolutionSummary' {recipeArn} -> recipeArn) (\s@SolutionSummary' {} a -> s {recipeArn = a} :: SolutionSummary)++-- | The Amazon Resource Name (ARN) of the solution.+solutionSummary_solutionArn :: Lens.Lens' SolutionSummary (Prelude.Maybe Prelude.Text)+solutionSummary_solutionArn = Lens.lens (\SolutionSummary' {solutionArn} -> solutionArn) (\s@SolutionSummary' {} a -> s {solutionArn = a} :: SolutionSummary)++-- | The status of the solution.+--+-- A solution can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+--+-- -   DELETE PENDING > DELETE IN_PROGRESS+solutionSummary_status :: Lens.Lens' SolutionSummary (Prelude.Maybe Prelude.Text)+solutionSummary_status = Lens.lens (\SolutionSummary' {status} -> status) (\s@SolutionSummary' {} a -> s {status = a} :: SolutionSummary)++instance Data.FromJSON SolutionSummary where+  parseJSON =+    Data.withObject+      "SolutionSummary"+      ( \x ->+          SolutionSummary'+            Prelude.<$> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "recipeArn")+            Prelude.<*> (x Data..:? "solutionArn")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable SolutionSummary where+  hashWithSalt _salt SolutionSummary' {..} =+    _salt+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` recipeArn+      `Prelude.hashWithSalt` solutionArn+      `Prelude.hashWithSalt` status++instance Prelude.NFData SolutionSummary where+  rnf SolutionSummary' {..} =+    Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf recipeArn+      `Prelude.seq` Prelude.rnf solutionArn+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Personalize/Types/SolutionVersion.hs view
@@ -0,0 +1,366 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.SolutionVersion+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.SolutionVersion where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types.SolutionConfig+import Amazonka.Personalize.Types.TrainingMode+import Amazonka.Personalize.Types.TunedHPOParams+import qualified Amazonka.Prelude as Prelude++-- | An object that provides information about a specific version of a+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_Solution.html Solution>+-- in a Custom dataset group.+--+-- /See:/ 'newSolutionVersion' smart constructor.+data SolutionVersion = SolutionVersion'+  { -- | The date and time (in Unix time) that this version of the solution was+    -- created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) of the dataset group providing the+    -- training data.+    datasetGroupArn :: Prelude.Maybe Prelude.Text,+    -- | The event type (for example, \'click\' or \'like\') that is used for+    -- training the model.+    eventType :: Prelude.Maybe Prelude.Text,+    -- | If training a solution version fails, the reason for the failure.+    failureReason :: Prelude.Maybe Prelude.Text,+    -- | The date and time (in Unix time) that the solution was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The name of the solution version.+    name :: Prelude.Maybe Prelude.Text,+    -- | When true, Amazon Personalize searches for the most optimal recipe+    -- according to the solution configuration. When false (the default),+    -- Amazon Personalize uses @recipeArn@.+    performAutoML :: Prelude.Maybe Prelude.Bool,+    -- | Whether to perform hyperparameter optimization (HPO) on the chosen+    -- recipe. The default is @false@.+    performHPO :: Prelude.Maybe Prelude.Bool,+    -- | The ARN of the recipe used in the solution.+    recipeArn :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the solution.+    solutionArn :: Prelude.Maybe Prelude.Text,+    -- | Describes the configuration properties for the solution.+    solutionConfig :: Prelude.Maybe SolutionConfig,+    -- | The ARN of the solution version.+    solutionVersionArn :: Prelude.Maybe Prelude.Text,+    -- | The status of the solution version.+    --+    -- A solution version can be in one of the following states:+    --+    -- -   CREATE PENDING+    --+    -- -   CREATE IN_PROGRESS+    --+    -- -   ACTIVE+    --+    -- -   CREATE FAILED+    --+    -- -   CREATE STOPPING+    --+    -- -   CREATE STOPPED+    status :: Prelude.Maybe Prelude.Text,+    -- | The time used to train the model. You are billed for the time it takes+    -- to train a model. This field is visible only after Amazon Personalize+    -- successfully trains a model.+    trainingHours :: Prelude.Maybe Prelude.Double,+    -- | The scope of training to be performed when creating the solution+    -- version. The @FULL@ option trains the solution version based on the+    -- entirety of the input solution\'s training data, while the @UPDATE@+    -- option processes only the data that has changed in comparison to the+    -- input solution. Choose @UPDATE@ when you want to incrementally update+    -- your solution version instead of creating an entirely new one.+    --+    -- The @UPDATE@ option can only be used when you already have an active+    -- solution version created from the input solution using the @FULL@ option+    -- and the input solution was trained with the+    -- <https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-new-item-USER_PERSONALIZATION.html User-Personalization>+    -- recipe or the+    -- <https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-hrnn-coldstart.html HRNN-Coldstart>+    -- recipe.+    trainingMode :: Prelude.Maybe TrainingMode,+    -- | If hyperparameter optimization was performed, contains the+    -- hyperparameter values of the best performing model.+    tunedHPOParams :: Prelude.Maybe TunedHPOParams+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SolutionVersion' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationDateTime', 'solutionVersion_creationDateTime' - The date and time (in Unix time) that this version of the solution was+-- created.+--+-- 'datasetGroupArn', 'solutionVersion_datasetGroupArn' - The Amazon Resource Name (ARN) of the dataset group providing the+-- training data.+--+-- 'eventType', 'solutionVersion_eventType' - The event type (for example, \'click\' or \'like\') that is used for+-- training the model.+--+-- 'failureReason', 'solutionVersion_failureReason' - If training a solution version fails, the reason for the failure.+--+-- 'lastUpdatedDateTime', 'solutionVersion_lastUpdatedDateTime' - The date and time (in Unix time) that the solution was last updated.+--+-- 'name', 'solutionVersion_name' - The name of the solution version.+--+-- 'performAutoML', 'solutionVersion_performAutoML' - When true, Amazon Personalize searches for the most optimal recipe+-- according to the solution configuration. When false (the default),+-- Amazon Personalize uses @recipeArn@.+--+-- 'performHPO', 'solutionVersion_performHPO' - Whether to perform hyperparameter optimization (HPO) on the chosen+-- recipe. The default is @false@.+--+-- 'recipeArn', 'solutionVersion_recipeArn' - The ARN of the recipe used in the solution.+--+-- 'solutionArn', 'solutionVersion_solutionArn' - The ARN of the solution.+--+-- 'solutionConfig', 'solutionVersion_solutionConfig' - Describes the configuration properties for the solution.+--+-- 'solutionVersionArn', 'solutionVersion_solutionVersionArn' - The ARN of the solution version.+--+-- 'status', 'solutionVersion_status' - The status of the solution version.+--+-- A solution version can be in one of the following states:+--+-- -   CREATE PENDING+--+-- -   CREATE IN_PROGRESS+--+-- -   ACTIVE+--+-- -   CREATE FAILED+--+-- -   CREATE STOPPING+--+-- -   CREATE STOPPED+--+-- 'trainingHours', 'solutionVersion_trainingHours' - The time used to train the model. You are billed for the time it takes+-- to train a model. This field is visible only after Amazon Personalize+-- successfully trains a model.+--+-- 'trainingMode', 'solutionVersion_trainingMode' - The scope of training to be performed when creating the solution+-- version. The @FULL@ option trains the solution version based on the+-- entirety of the input solution\'s training data, while the @UPDATE@+-- option processes only the data that has changed in comparison to the+-- input solution. Choose @UPDATE@ when you want to incrementally update+-- your solution version instead of creating an entirely new one.+--+-- The @UPDATE@ option can only be used when you already have an active+-- solution version created from the input solution using the @FULL@ option+-- and the input solution was trained with the+-- <https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-new-item-USER_PERSONALIZATION.html User-Personalization>+-- recipe or the+-- <https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-hrnn-coldstart.html HRNN-Coldstart>+-- recipe.+--+-- 'tunedHPOParams', 'solutionVersion_tunedHPOParams' - If hyperparameter optimization was performed, contains the+-- hyperparameter values of the best performing model.+newSolutionVersion ::+  SolutionVersion+newSolutionVersion =+  SolutionVersion'+    { creationDateTime =+        Prelude.Nothing,+      datasetGroupArn = Prelude.Nothing,+      eventType = Prelude.Nothing,+      failureReason = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      name = Prelude.Nothing,+      performAutoML = Prelude.Nothing,+      performHPO = Prelude.Nothing,+      recipeArn = Prelude.Nothing,+      solutionArn = Prelude.Nothing,+      solutionConfig = Prelude.Nothing,+      solutionVersionArn = Prelude.Nothing,+      status = Prelude.Nothing,+      trainingHours = Prelude.Nothing,+      trainingMode = Prelude.Nothing,+      tunedHPOParams = Prelude.Nothing+    }++-- | The date and time (in Unix time) that this version of the solution was+-- created.+solutionVersion_creationDateTime :: Lens.Lens' SolutionVersion (Prelude.Maybe Prelude.UTCTime)+solutionVersion_creationDateTime = Lens.lens (\SolutionVersion' {creationDateTime} -> creationDateTime) (\s@SolutionVersion' {} a -> s {creationDateTime = a} :: SolutionVersion) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the dataset group providing the+-- training data.+solutionVersion_datasetGroupArn :: Lens.Lens' SolutionVersion (Prelude.Maybe Prelude.Text)+solutionVersion_datasetGroupArn = Lens.lens (\SolutionVersion' {datasetGroupArn} -> datasetGroupArn) (\s@SolutionVersion' {} a -> s {datasetGroupArn = a} :: SolutionVersion)++-- | The event type (for example, \'click\' or \'like\') that is used for+-- training the model.+solutionVersion_eventType :: Lens.Lens' SolutionVersion (Prelude.Maybe Prelude.Text)+solutionVersion_eventType = Lens.lens (\SolutionVersion' {eventType} -> eventType) (\s@SolutionVersion' {} a -> s {eventType = a} :: SolutionVersion)++-- | If training a solution version fails, the reason for the failure.+solutionVersion_failureReason :: Lens.Lens' SolutionVersion (Prelude.Maybe Prelude.Text)+solutionVersion_failureReason = Lens.lens (\SolutionVersion' {failureReason} -> failureReason) (\s@SolutionVersion' {} a -> s {failureReason = a} :: SolutionVersion)++-- | The date and time (in Unix time) that the solution was last updated.+solutionVersion_lastUpdatedDateTime :: Lens.Lens' SolutionVersion (Prelude.Maybe Prelude.UTCTime)+solutionVersion_lastUpdatedDateTime = Lens.lens (\SolutionVersion' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@SolutionVersion' {} a -> s {lastUpdatedDateTime = a} :: SolutionVersion) Prelude.. Lens.mapping Data._Time++-- | The name of the solution version.+solutionVersion_name :: Lens.Lens' SolutionVersion (Prelude.Maybe Prelude.Text)+solutionVersion_name = Lens.lens (\SolutionVersion' {name} -> name) (\s@SolutionVersion' {} a -> s {name = a} :: SolutionVersion)++-- | When true, Amazon Personalize searches for the most optimal recipe+-- according to the solution configuration. When false (the default),+-- Amazon Personalize uses @recipeArn@.+solutionVersion_performAutoML :: Lens.Lens' SolutionVersion (Prelude.Maybe Prelude.Bool)+solutionVersion_performAutoML = Lens.lens (\SolutionVersion' {performAutoML} -> performAutoML) (\s@SolutionVersion' {} a -> s {performAutoML = a} :: SolutionVersion)++-- | Whether to perform hyperparameter optimization (HPO) on the chosen+-- recipe. The default is @false@.+solutionVersion_performHPO :: Lens.Lens' SolutionVersion (Prelude.Maybe Prelude.Bool)+solutionVersion_performHPO = Lens.lens (\SolutionVersion' {performHPO} -> performHPO) (\s@SolutionVersion' {} a -> s {performHPO = a} :: SolutionVersion)++-- | The ARN of the recipe used in the solution.+solutionVersion_recipeArn :: Lens.Lens' SolutionVersion (Prelude.Maybe Prelude.Text)+solutionVersion_recipeArn = Lens.lens (\SolutionVersion' {recipeArn} -> recipeArn) (\s@SolutionVersion' {} a -> s {recipeArn = a} :: SolutionVersion)++-- | The ARN of the solution.+solutionVersion_solutionArn :: Lens.Lens' SolutionVersion (Prelude.Maybe Prelude.Text)+solutionVersion_solutionArn = Lens.lens (\SolutionVersion' {solutionArn} -> solutionArn) (\s@SolutionVersion' {} a -> s {solutionArn = a} :: SolutionVersion)++-- | Describes the configuration properties for the solution.+solutionVersion_solutionConfig :: Lens.Lens' SolutionVersion (Prelude.Maybe SolutionConfig)+solutionVersion_solutionConfig = Lens.lens (\SolutionVersion' {solutionConfig} -> solutionConfig) (\s@SolutionVersion' {} a -> s {solutionConfig = a} :: SolutionVersion)++-- | The ARN of the solution version.+solutionVersion_solutionVersionArn :: Lens.Lens' SolutionVersion (Prelude.Maybe Prelude.Text)+solutionVersion_solutionVersionArn = Lens.lens (\SolutionVersion' {solutionVersionArn} -> solutionVersionArn) (\s@SolutionVersion' {} a -> s {solutionVersionArn = a} :: SolutionVersion)++-- | The status of the solution version.+--+-- A solution version can be in one of the following states:+--+-- -   CREATE PENDING+--+-- -   CREATE IN_PROGRESS+--+-- -   ACTIVE+--+-- -   CREATE FAILED+--+-- -   CREATE STOPPING+--+-- -   CREATE STOPPED+solutionVersion_status :: Lens.Lens' SolutionVersion (Prelude.Maybe Prelude.Text)+solutionVersion_status = Lens.lens (\SolutionVersion' {status} -> status) (\s@SolutionVersion' {} a -> s {status = a} :: SolutionVersion)++-- | The time used to train the model. You are billed for the time it takes+-- to train a model. This field is visible only after Amazon Personalize+-- successfully trains a model.+solutionVersion_trainingHours :: Lens.Lens' SolutionVersion (Prelude.Maybe Prelude.Double)+solutionVersion_trainingHours = Lens.lens (\SolutionVersion' {trainingHours} -> trainingHours) (\s@SolutionVersion' {} a -> s {trainingHours = a} :: SolutionVersion)++-- | The scope of training to be performed when creating the solution+-- version. The @FULL@ option trains the solution version based on the+-- entirety of the input solution\'s training data, while the @UPDATE@+-- option processes only the data that has changed in comparison to the+-- input solution. Choose @UPDATE@ when you want to incrementally update+-- your solution version instead of creating an entirely new one.+--+-- The @UPDATE@ option can only be used when you already have an active+-- solution version created from the input solution using the @FULL@ option+-- and the input solution was trained with the+-- <https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-new-item-USER_PERSONALIZATION.html User-Personalization>+-- recipe or the+-- <https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-hrnn-coldstart.html HRNN-Coldstart>+-- recipe.+solutionVersion_trainingMode :: Lens.Lens' SolutionVersion (Prelude.Maybe TrainingMode)+solutionVersion_trainingMode = Lens.lens (\SolutionVersion' {trainingMode} -> trainingMode) (\s@SolutionVersion' {} a -> s {trainingMode = a} :: SolutionVersion)++-- | If hyperparameter optimization was performed, contains the+-- hyperparameter values of the best performing model.+solutionVersion_tunedHPOParams :: Lens.Lens' SolutionVersion (Prelude.Maybe TunedHPOParams)+solutionVersion_tunedHPOParams = Lens.lens (\SolutionVersion' {tunedHPOParams} -> tunedHPOParams) (\s@SolutionVersion' {} a -> s {tunedHPOParams = a} :: SolutionVersion)++instance Data.FromJSON SolutionVersion where+  parseJSON =+    Data.withObject+      "SolutionVersion"+      ( \x ->+          SolutionVersion'+            Prelude.<$> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "datasetGroupArn")+            Prelude.<*> (x Data..:? "eventType")+            Prelude.<*> (x Data..:? "failureReason")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "performAutoML")+            Prelude.<*> (x Data..:? "performHPO")+            Prelude.<*> (x Data..:? "recipeArn")+            Prelude.<*> (x Data..:? "solutionArn")+            Prelude.<*> (x Data..:? "solutionConfig")+            Prelude.<*> (x Data..:? "solutionVersionArn")+            Prelude.<*> (x Data..:? "status")+            Prelude.<*> (x Data..:? "trainingHours")+            Prelude.<*> (x Data..:? "trainingMode")+            Prelude.<*> (x Data..:? "tunedHPOParams")+      )++instance Prelude.Hashable SolutionVersion where+  hashWithSalt _salt SolutionVersion' {..} =+    _salt+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` datasetGroupArn+      `Prelude.hashWithSalt` eventType+      `Prelude.hashWithSalt` failureReason+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` performAutoML+      `Prelude.hashWithSalt` performHPO+      `Prelude.hashWithSalt` recipeArn+      `Prelude.hashWithSalt` solutionArn+      `Prelude.hashWithSalt` solutionConfig+      `Prelude.hashWithSalt` solutionVersionArn+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` trainingHours+      `Prelude.hashWithSalt` trainingMode+      `Prelude.hashWithSalt` tunedHPOParams++instance Prelude.NFData SolutionVersion where+  rnf SolutionVersion' {..} =+    Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf datasetGroupArn+      `Prelude.seq` Prelude.rnf eventType+      `Prelude.seq` Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf performAutoML+      `Prelude.seq` Prelude.rnf performHPO+      `Prelude.seq` Prelude.rnf recipeArn+      `Prelude.seq` Prelude.rnf solutionArn+      `Prelude.seq` Prelude.rnf solutionConfig+      `Prelude.seq` Prelude.rnf solutionVersionArn+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf trainingHours+      `Prelude.seq` Prelude.rnf trainingMode+      `Prelude.seq` Prelude.rnf tunedHPOParams
+ gen/Amazonka/Personalize/Types/SolutionVersionSummary.hs view
@@ -0,0 +1,142 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.SolutionVersionSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.SolutionVersionSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides a summary of the properties of a solution version. For a+-- complete listing, call the+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeSolutionVersion.html DescribeSolutionVersion>+-- API.+--+-- /See:/ 'newSolutionVersionSummary' smart constructor.+data SolutionVersionSummary = SolutionVersionSummary'+  { -- | The date and time (in Unix time) that this version of a solution was+    -- created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | If a solution version fails, the reason behind the failure.+    failureReason :: Prelude.Maybe Prelude.Text,+    -- | The date and time (in Unix time) that the solution version was last+    -- updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) of the solution version.+    solutionVersionArn :: Prelude.Maybe Prelude.Text,+    -- | The status of the solution version.+    --+    -- A solution version can be in one of the following states:+    --+    -- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+    status :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SolutionVersionSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationDateTime', 'solutionVersionSummary_creationDateTime' - The date and time (in Unix time) that this version of a solution was+-- created.+--+-- 'failureReason', 'solutionVersionSummary_failureReason' - If a solution version fails, the reason behind the failure.+--+-- 'lastUpdatedDateTime', 'solutionVersionSummary_lastUpdatedDateTime' - The date and time (in Unix time) that the solution version was last+-- updated.+--+-- 'solutionVersionArn', 'solutionVersionSummary_solutionVersionArn' - The Amazon Resource Name (ARN) of the solution version.+--+-- 'status', 'solutionVersionSummary_status' - The status of the solution version.+--+-- A solution version can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+newSolutionVersionSummary ::+  SolutionVersionSummary+newSolutionVersionSummary =+  SolutionVersionSummary'+    { creationDateTime =+        Prelude.Nothing,+      failureReason = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      solutionVersionArn = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The date and time (in Unix time) that this version of a solution was+-- created.+solutionVersionSummary_creationDateTime :: Lens.Lens' SolutionVersionSummary (Prelude.Maybe Prelude.UTCTime)+solutionVersionSummary_creationDateTime = Lens.lens (\SolutionVersionSummary' {creationDateTime} -> creationDateTime) (\s@SolutionVersionSummary' {} a -> s {creationDateTime = a} :: SolutionVersionSummary) Prelude.. Lens.mapping Data._Time++-- | If a solution version fails, the reason behind the failure.+solutionVersionSummary_failureReason :: Lens.Lens' SolutionVersionSummary (Prelude.Maybe Prelude.Text)+solutionVersionSummary_failureReason = Lens.lens (\SolutionVersionSummary' {failureReason} -> failureReason) (\s@SolutionVersionSummary' {} a -> s {failureReason = a} :: SolutionVersionSummary)++-- | The date and time (in Unix time) that the solution version was last+-- updated.+solutionVersionSummary_lastUpdatedDateTime :: Lens.Lens' SolutionVersionSummary (Prelude.Maybe Prelude.UTCTime)+solutionVersionSummary_lastUpdatedDateTime = Lens.lens (\SolutionVersionSummary' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@SolutionVersionSummary' {} a -> s {lastUpdatedDateTime = a} :: SolutionVersionSummary) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the solution version.+solutionVersionSummary_solutionVersionArn :: Lens.Lens' SolutionVersionSummary (Prelude.Maybe Prelude.Text)+solutionVersionSummary_solutionVersionArn = Lens.lens (\SolutionVersionSummary' {solutionVersionArn} -> solutionVersionArn) (\s@SolutionVersionSummary' {} a -> s {solutionVersionArn = a} :: SolutionVersionSummary)++-- | The status of the solution version.+--+-- A solution version can be in one of the following states:+--+-- -   CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED+solutionVersionSummary_status :: Lens.Lens' SolutionVersionSummary (Prelude.Maybe Prelude.Text)+solutionVersionSummary_status = Lens.lens (\SolutionVersionSummary' {status} -> status) (\s@SolutionVersionSummary' {} a -> s {status = a} :: SolutionVersionSummary)++instance Data.FromJSON SolutionVersionSummary where+  parseJSON =+    Data.withObject+      "SolutionVersionSummary"+      ( \x ->+          SolutionVersionSummary'+            Prelude.<$> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "failureReason")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "solutionVersionArn")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable SolutionVersionSummary where+  hashWithSalt _salt SolutionVersionSummary' {..} =+    _salt+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` failureReason+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` solutionVersionArn+      `Prelude.hashWithSalt` status++instance Prelude.NFData SolutionVersionSummary where+  rnf SolutionVersionSummary' {..} =+    Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf solutionVersionArn+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Personalize/Types/Tag.hs view
@@ -0,0 +1,103 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.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.Personalize.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++-- | The optional metadata that you apply to resources to help you categorize+-- and organize them. Each tag consists of a key and an optional value,+-- both of which you define. For more information see+-- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html Tagging Personalize resources>.+--+-- /See:/ 'newTag' smart constructor.+data Tag = Tag'+  { -- | One part of a key-value pair that makes up a tag. A key is a general+    -- label that acts like a category for more specific tag values.+    tagKey :: Prelude.Text,+    -- | The optional part of a key-value pair that makes up a tag. A value acts+    -- as a descriptor within a tag category (key).+    tagValue :: 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:+--+-- 'tagKey', 'tag_tagKey' - One part of a key-value pair that makes up a tag. A key is a general+-- label that acts like a category for more specific tag values.+--+-- 'tagValue', 'tag_tagValue' - The optional part of a key-value pair that makes up a tag. A value acts+-- as a descriptor within a tag category (key).+newTag ::+  -- | 'tagKey'+  Prelude.Text ->+  -- | 'tagValue'+  Prelude.Text ->+  Tag+newTag pTagKey_ pTagValue_ =+  Tag' {tagKey = pTagKey_, tagValue = pTagValue_}++-- | One part of a key-value pair that makes up a tag. A key is a general+-- label that acts like a category for more specific tag values.+tag_tagKey :: Lens.Lens' Tag Prelude.Text+tag_tagKey = Lens.lens (\Tag' {tagKey} -> tagKey) (\s@Tag' {} a -> s {tagKey = a} :: Tag)++-- | The optional part of a key-value pair that makes up a tag. A value acts+-- as a descriptor within a tag category (key).+tag_tagValue :: Lens.Lens' Tag Prelude.Text+tag_tagValue = Lens.lens (\Tag' {tagValue} -> tagValue) (\s@Tag' {} a -> s {tagValue = a} :: Tag)++instance Data.FromJSON Tag where+  parseJSON =+    Data.withObject+      "Tag"+      ( \x ->+          Tag'+            Prelude.<$> (x Data..: "tagKey")+            Prelude.<*> (x Data..: "tagValue")+      )++instance Prelude.Hashable Tag where+  hashWithSalt _salt Tag' {..} =+    _salt+      `Prelude.hashWithSalt` tagKey+      `Prelude.hashWithSalt` tagValue++instance Prelude.NFData Tag where+  rnf Tag' {..} =+    Prelude.rnf tagKey+      `Prelude.seq` Prelude.rnf tagValue++instance Data.ToJSON Tag where+  toJSON Tag' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("tagKey" Data..= tagKey),+            Prelude.Just ("tagValue" Data..= tagValue)+          ]+      )
+ gen/Amazonka/Personalize/Types/TrainingMode.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.Personalize.Types.TrainingMode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.TrainingMode+  ( TrainingMode+      ( ..,+        TrainingMode_FULL,+        TrainingMode_UPDATE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype TrainingMode = TrainingMode'+  { fromTrainingMode ::+      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 TrainingMode_FULL :: TrainingMode+pattern TrainingMode_FULL = TrainingMode' "FULL"++pattern TrainingMode_UPDATE :: TrainingMode+pattern TrainingMode_UPDATE = TrainingMode' "UPDATE"++{-# COMPLETE+  TrainingMode_FULL,+  TrainingMode_UPDATE,+  TrainingMode'+  #-}
+ gen/Amazonka/Personalize/Types/TunedHPOParams.hs view
@@ -0,0 +1,77 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.Types.TunedHPOParams+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Personalize.Types.TunedHPOParams 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++-- | If hyperparameter optimization (HPO) was performed, contains the+-- hyperparameter values of the best performing model.+--+-- /See:/ 'newTunedHPOParams' smart constructor.+data TunedHPOParams = TunedHPOParams'+  { -- | A list of the hyperparameter values of the best performing model.+    algorithmHyperParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TunedHPOParams' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'algorithmHyperParameters', 'tunedHPOParams_algorithmHyperParameters' - A list of the hyperparameter values of the best performing model.+newTunedHPOParams ::+  TunedHPOParams+newTunedHPOParams =+  TunedHPOParams'+    { algorithmHyperParameters =+        Prelude.Nothing+    }++-- | A list of the hyperparameter values of the best performing model.+tunedHPOParams_algorithmHyperParameters :: Lens.Lens' TunedHPOParams (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+tunedHPOParams_algorithmHyperParameters = Lens.lens (\TunedHPOParams' {algorithmHyperParameters} -> algorithmHyperParameters) (\s@TunedHPOParams' {} a -> s {algorithmHyperParameters = a} :: TunedHPOParams) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON TunedHPOParams where+  parseJSON =+    Data.withObject+      "TunedHPOParams"+      ( \x ->+          TunedHPOParams'+            Prelude.<$> ( x+                            Data..:? "algorithmHyperParameters"+                            Data..!= Prelude.mempty+                        )+      )++instance Prelude.Hashable TunedHPOParams where+  hashWithSalt _salt TunedHPOParams' {..} =+    _salt+      `Prelude.hashWithSalt` algorithmHyperParameters++instance Prelude.NFData TunedHPOParams where+  rnf TunedHPOParams' {..} =+    Prelude.rnf algorithmHyperParameters
+ gen/Amazonka/Personalize/UntagResource.hs view
@@ -0,0 +1,173 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.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)+--+-- Remove+-- <https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html tags>+-- that are attached to a resource.+module Amazonka.Personalize.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.Personalize.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 resource\'s Amazon Resource Name (ARN).+    resourceArn :: Prelude.Text,+    -- | Keys to remove from the resource\'s tags.+    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 resource\'s Amazon Resource Name (ARN).+--+-- 'tagKeys', 'untagResource_tagKeys' - Keys to remove from the resource\'s tags.+newUntagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  UntagResource+newUntagResource pResourceArn_ =+  UntagResource'+    { resourceArn = pResourceArn_,+      tagKeys = Prelude.mempty+    }++-- | The resource\'s Amazon Resource Name (ARN).+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | Keys to remove from the resource\'s tags.+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.=# ( "AmazonPersonalize.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/Personalize/UpdateCampaign.hs view
@@ -0,0 +1,232 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.UpdateCampaign+-- 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 campaign by either deploying a new solution or changing the+-- value of the campaign\'s @minProvisionedTPS@ parameter.+--+-- To update a campaign, the campaign status must be ACTIVE or CREATE+-- FAILED. Check the campaign status using the+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeCampaign.html DescribeCampaign>+-- operation.+--+-- You can still get recommendations from a campaign while an update is in+-- progress. The campaign will use the previous solution version and+-- campaign configuration to generate recommendations until the latest+-- campaign update status is @Active@.+--+-- For more information on campaigns, see+-- <https://docs.aws.amazon.com/personalize/latest/dg/API_CreateCampaign.html CreateCampaign>.+module Amazonka.Personalize.UpdateCampaign+  ( -- * Creating a Request+    UpdateCampaign (..),+    newUpdateCampaign,++    -- * Request Lenses+    updateCampaign_campaignConfig,+    updateCampaign_minProvisionedTPS,+    updateCampaign_solutionVersionArn,+    updateCampaign_campaignArn,++    -- * Destructuring the Response+    UpdateCampaignResponse (..),+    newUpdateCampaignResponse,++    -- * Response Lenses+    updateCampaignResponse_campaignArn,+    updateCampaignResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateCampaign' smart constructor.+data UpdateCampaign = UpdateCampaign'+  { -- | The configuration details of a campaign.+    campaignConfig :: Prelude.Maybe CampaignConfig,+    -- | Specifies the requested minimum provisioned transactions+    -- (recommendations) per second that Amazon Personalize will support.+    minProvisionedTPS :: Prelude.Maybe Prelude.Natural,+    -- | The ARN of a new solution version to deploy.+    solutionVersionArn :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the campaign.+    campaignArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateCampaign' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'campaignConfig', 'updateCampaign_campaignConfig' - The configuration details of a campaign.+--+-- 'minProvisionedTPS', 'updateCampaign_minProvisionedTPS' - Specifies the requested minimum provisioned transactions+-- (recommendations) per second that Amazon Personalize will support.+--+-- 'solutionVersionArn', 'updateCampaign_solutionVersionArn' - The ARN of a new solution version to deploy.+--+-- 'campaignArn', 'updateCampaign_campaignArn' - The Amazon Resource Name (ARN) of the campaign.+newUpdateCampaign ::+  -- | 'campaignArn'+  Prelude.Text ->+  UpdateCampaign+newUpdateCampaign pCampaignArn_ =+  UpdateCampaign'+    { campaignConfig = Prelude.Nothing,+      minProvisionedTPS = Prelude.Nothing,+      solutionVersionArn = Prelude.Nothing,+      campaignArn = pCampaignArn_+    }++-- | The configuration details of a campaign.+updateCampaign_campaignConfig :: Lens.Lens' UpdateCampaign (Prelude.Maybe CampaignConfig)+updateCampaign_campaignConfig = Lens.lens (\UpdateCampaign' {campaignConfig} -> campaignConfig) (\s@UpdateCampaign' {} a -> s {campaignConfig = a} :: UpdateCampaign)++-- | Specifies the requested minimum provisioned transactions+-- (recommendations) per second that Amazon Personalize will support.+updateCampaign_minProvisionedTPS :: Lens.Lens' UpdateCampaign (Prelude.Maybe Prelude.Natural)+updateCampaign_minProvisionedTPS = Lens.lens (\UpdateCampaign' {minProvisionedTPS} -> minProvisionedTPS) (\s@UpdateCampaign' {} a -> s {minProvisionedTPS = a} :: UpdateCampaign)++-- | The ARN of a new solution version to deploy.+updateCampaign_solutionVersionArn :: Lens.Lens' UpdateCampaign (Prelude.Maybe Prelude.Text)+updateCampaign_solutionVersionArn = Lens.lens (\UpdateCampaign' {solutionVersionArn} -> solutionVersionArn) (\s@UpdateCampaign' {} a -> s {solutionVersionArn = a} :: UpdateCampaign)++-- | The Amazon Resource Name (ARN) of the campaign.+updateCampaign_campaignArn :: Lens.Lens' UpdateCampaign Prelude.Text+updateCampaign_campaignArn = Lens.lens (\UpdateCampaign' {campaignArn} -> campaignArn) (\s@UpdateCampaign' {} a -> s {campaignArn = a} :: UpdateCampaign)++instance Core.AWSRequest UpdateCampaign where+  type+    AWSResponse UpdateCampaign =+      UpdateCampaignResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateCampaignResponse'+            Prelude.<$> (x Data..?> "campaignArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateCampaign where+  hashWithSalt _salt UpdateCampaign' {..} =+    _salt+      `Prelude.hashWithSalt` campaignConfig+      `Prelude.hashWithSalt` minProvisionedTPS+      `Prelude.hashWithSalt` solutionVersionArn+      `Prelude.hashWithSalt` campaignArn++instance Prelude.NFData UpdateCampaign where+  rnf UpdateCampaign' {..} =+    Prelude.rnf campaignConfig+      `Prelude.seq` Prelude.rnf minProvisionedTPS+      `Prelude.seq` Prelude.rnf solutionVersionArn+      `Prelude.seq` Prelude.rnf campaignArn++instance Data.ToHeaders UpdateCampaign where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.UpdateCampaign" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateCampaign where+  toJSON UpdateCampaign' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("campaignConfig" Data..=)+              Prelude.<$> campaignConfig,+            ("minProvisionedTPS" Data..=)+              Prelude.<$> minProvisionedTPS,+            ("solutionVersionArn" Data..=)+              Prelude.<$> solutionVersionArn,+            Prelude.Just ("campaignArn" Data..= campaignArn)+          ]+      )++instance Data.ToPath UpdateCampaign where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateCampaign where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateCampaignResponse' smart constructor.+data UpdateCampaignResponse = UpdateCampaignResponse'+  { -- | The same campaign ARN as given in the request.+    campaignArn :: 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 'UpdateCampaignResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'campaignArn', 'updateCampaignResponse_campaignArn' - The same campaign ARN as given in the request.+--+-- 'httpStatus', 'updateCampaignResponse_httpStatus' - The response's http status code.+newUpdateCampaignResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateCampaignResponse+newUpdateCampaignResponse pHttpStatus_ =+  UpdateCampaignResponse'+    { campaignArn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The same campaign ARN as given in the request.+updateCampaignResponse_campaignArn :: Lens.Lens' UpdateCampaignResponse (Prelude.Maybe Prelude.Text)+updateCampaignResponse_campaignArn = Lens.lens (\UpdateCampaignResponse' {campaignArn} -> campaignArn) (\s@UpdateCampaignResponse' {} a -> s {campaignArn = a} :: UpdateCampaignResponse)++-- | The response's http status code.+updateCampaignResponse_httpStatus :: Lens.Lens' UpdateCampaignResponse Prelude.Int+updateCampaignResponse_httpStatus = Lens.lens (\UpdateCampaignResponse' {httpStatus} -> httpStatus) (\s@UpdateCampaignResponse' {} a -> s {httpStatus = a} :: UpdateCampaignResponse)++instance Prelude.NFData UpdateCampaignResponse where+  rnf UpdateCampaignResponse' {..} =+    Prelude.rnf campaignArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/UpdateMetricAttribution.hs view
@@ -0,0 +1,219 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.UpdateMetricAttribution+-- 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 metric attribution.+module Amazonka.Personalize.UpdateMetricAttribution+  ( -- * Creating a Request+    UpdateMetricAttribution (..),+    newUpdateMetricAttribution,++    -- * Request Lenses+    updateMetricAttribution_addMetrics,+    updateMetricAttribution_metricAttributionArn,+    updateMetricAttribution_metricsOutputConfig,+    updateMetricAttribution_removeMetrics,++    -- * Destructuring the Response+    UpdateMetricAttributionResponse (..),+    newUpdateMetricAttributionResponse,++    -- * Response Lenses+    updateMetricAttributionResponse_metricAttributionArn,+    updateMetricAttributionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateMetricAttribution' smart constructor.+data UpdateMetricAttribution = UpdateMetricAttribution'+  { -- | Add new metric attributes to the metric attribution.+    addMetrics :: Prelude.Maybe [MetricAttribute],+    -- | The Amazon Resource Name (ARN) for the metric attribution to update.+    metricAttributionArn :: Prelude.Maybe Prelude.Text,+    -- | An output config for the metric attribution.+    metricsOutputConfig :: Prelude.Maybe MetricAttributionOutput,+    -- | Remove metric attributes from the metric attribution.+    removeMetrics :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateMetricAttribution' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'addMetrics', 'updateMetricAttribution_addMetrics' - Add new metric attributes to the metric attribution.+--+-- 'metricAttributionArn', 'updateMetricAttribution_metricAttributionArn' - The Amazon Resource Name (ARN) for the metric attribution to update.+--+-- 'metricsOutputConfig', 'updateMetricAttribution_metricsOutputConfig' - An output config for the metric attribution.+--+-- 'removeMetrics', 'updateMetricAttribution_removeMetrics' - Remove metric attributes from the metric attribution.+newUpdateMetricAttribution ::+  UpdateMetricAttribution+newUpdateMetricAttribution =+  UpdateMetricAttribution'+    { addMetrics =+        Prelude.Nothing,+      metricAttributionArn = Prelude.Nothing,+      metricsOutputConfig = Prelude.Nothing,+      removeMetrics = Prelude.Nothing+    }++-- | Add new metric attributes to the metric attribution.+updateMetricAttribution_addMetrics :: Lens.Lens' UpdateMetricAttribution (Prelude.Maybe [MetricAttribute])+updateMetricAttribution_addMetrics = Lens.lens (\UpdateMetricAttribution' {addMetrics} -> addMetrics) (\s@UpdateMetricAttribution' {} a -> s {addMetrics = a} :: UpdateMetricAttribution) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) for the metric attribution to update.+updateMetricAttribution_metricAttributionArn :: Lens.Lens' UpdateMetricAttribution (Prelude.Maybe Prelude.Text)+updateMetricAttribution_metricAttributionArn = Lens.lens (\UpdateMetricAttribution' {metricAttributionArn} -> metricAttributionArn) (\s@UpdateMetricAttribution' {} a -> s {metricAttributionArn = a} :: UpdateMetricAttribution)++-- | An output config for the metric attribution.+updateMetricAttribution_metricsOutputConfig :: Lens.Lens' UpdateMetricAttribution (Prelude.Maybe MetricAttributionOutput)+updateMetricAttribution_metricsOutputConfig = Lens.lens (\UpdateMetricAttribution' {metricsOutputConfig} -> metricsOutputConfig) (\s@UpdateMetricAttribution' {} a -> s {metricsOutputConfig = a} :: UpdateMetricAttribution)++-- | Remove metric attributes from the metric attribution.+updateMetricAttribution_removeMetrics :: Lens.Lens' UpdateMetricAttribution (Prelude.Maybe [Prelude.Text])+updateMetricAttribution_removeMetrics = Lens.lens (\UpdateMetricAttribution' {removeMetrics} -> removeMetrics) (\s@UpdateMetricAttribution' {} a -> s {removeMetrics = a} :: UpdateMetricAttribution) Prelude.. Lens.mapping Lens.coerced++instance Core.AWSRequest UpdateMetricAttribution where+  type+    AWSResponse UpdateMetricAttribution =+      UpdateMetricAttributionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateMetricAttributionResponse'+            Prelude.<$> (x Data..?> "metricAttributionArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateMetricAttribution where+  hashWithSalt _salt UpdateMetricAttribution' {..} =+    _salt+      `Prelude.hashWithSalt` addMetrics+      `Prelude.hashWithSalt` metricAttributionArn+      `Prelude.hashWithSalt` metricsOutputConfig+      `Prelude.hashWithSalt` removeMetrics++instance Prelude.NFData UpdateMetricAttribution where+  rnf UpdateMetricAttribution' {..} =+    Prelude.rnf addMetrics+      `Prelude.seq` Prelude.rnf metricAttributionArn+      `Prelude.seq` Prelude.rnf metricsOutputConfig+      `Prelude.seq` Prelude.rnf removeMetrics++instance Data.ToHeaders UpdateMetricAttribution where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.UpdateMetricAttribution" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateMetricAttribution where+  toJSON UpdateMetricAttribution' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("addMetrics" Data..=) Prelude.<$> addMetrics,+            ("metricAttributionArn" Data..=)+              Prelude.<$> metricAttributionArn,+            ("metricsOutputConfig" Data..=)+              Prelude.<$> metricsOutputConfig,+            ("removeMetrics" Data..=) Prelude.<$> removeMetrics+          ]+      )++instance Data.ToPath UpdateMetricAttribution where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateMetricAttribution where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateMetricAttributionResponse' smart constructor.+data UpdateMetricAttributionResponse = UpdateMetricAttributionResponse'+  { -- | The Amazon Resource Name (ARN) for the metric attribution that you+    -- updated.+    metricAttributionArn :: 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 'UpdateMetricAttributionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'metricAttributionArn', 'updateMetricAttributionResponse_metricAttributionArn' - The Amazon Resource Name (ARN) for the metric attribution that you+-- updated.+--+-- 'httpStatus', 'updateMetricAttributionResponse_httpStatus' - The response's http status code.+newUpdateMetricAttributionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateMetricAttributionResponse+newUpdateMetricAttributionResponse pHttpStatus_ =+  UpdateMetricAttributionResponse'+    { metricAttributionArn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) for the metric attribution that you+-- updated.+updateMetricAttributionResponse_metricAttributionArn :: Lens.Lens' UpdateMetricAttributionResponse (Prelude.Maybe Prelude.Text)+updateMetricAttributionResponse_metricAttributionArn = Lens.lens (\UpdateMetricAttributionResponse' {metricAttributionArn} -> metricAttributionArn) (\s@UpdateMetricAttributionResponse' {} a -> s {metricAttributionArn = a} :: UpdateMetricAttributionResponse)++-- | The response's http status code.+updateMetricAttributionResponse_httpStatus :: Lens.Lens' UpdateMetricAttributionResponse Prelude.Int+updateMetricAttributionResponse_httpStatus = Lens.lens (\UpdateMetricAttributionResponse' {httpStatus} -> httpStatus) (\s@UpdateMetricAttributionResponse' {} a -> s {httpStatus = a} :: UpdateMetricAttributionResponse)++instance+  Prelude.NFData+    UpdateMetricAttributionResponse+  where+  rnf UpdateMetricAttributionResponse' {..} =+    Prelude.rnf metricAttributionArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/UpdateRecommender.hs view
@@ -0,0 +1,193 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Personalize.UpdateRecommender+-- 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 recommender to modify the recommender configuration.+module Amazonka.Personalize.UpdateRecommender+  ( -- * Creating a Request+    UpdateRecommender (..),+    newUpdateRecommender,++    -- * Request Lenses+    updateRecommender_recommenderArn,+    updateRecommender_recommenderConfig,++    -- * Destructuring the Response+    UpdateRecommenderResponse (..),+    newUpdateRecommenderResponse,++    -- * Response Lenses+    updateRecommenderResponse_recommenderArn,+    updateRecommenderResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateRecommender' smart constructor.+data UpdateRecommender = UpdateRecommender'+  { -- | The Amazon Resource Name (ARN) of the recommender to modify.+    recommenderArn :: Prelude.Text,+    -- | The configuration details of the recommender.+    recommenderConfig :: RecommenderConfig+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateRecommender' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'recommenderArn', 'updateRecommender_recommenderArn' - The Amazon Resource Name (ARN) of the recommender to modify.+--+-- 'recommenderConfig', 'updateRecommender_recommenderConfig' - The configuration details of the recommender.+newUpdateRecommender ::+  -- | 'recommenderArn'+  Prelude.Text ->+  -- | 'recommenderConfig'+  RecommenderConfig ->+  UpdateRecommender+newUpdateRecommender+  pRecommenderArn_+  pRecommenderConfig_ =+    UpdateRecommender'+      { recommenderArn =+          pRecommenderArn_,+        recommenderConfig = pRecommenderConfig_+      }++-- | The Amazon Resource Name (ARN) of the recommender to modify.+updateRecommender_recommenderArn :: Lens.Lens' UpdateRecommender Prelude.Text+updateRecommender_recommenderArn = Lens.lens (\UpdateRecommender' {recommenderArn} -> recommenderArn) (\s@UpdateRecommender' {} a -> s {recommenderArn = a} :: UpdateRecommender)++-- | The configuration details of the recommender.+updateRecommender_recommenderConfig :: Lens.Lens' UpdateRecommender RecommenderConfig+updateRecommender_recommenderConfig = Lens.lens (\UpdateRecommender' {recommenderConfig} -> recommenderConfig) (\s@UpdateRecommender' {} a -> s {recommenderConfig = a} :: UpdateRecommender)++instance Core.AWSRequest UpdateRecommender where+  type+    AWSResponse UpdateRecommender =+      UpdateRecommenderResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateRecommenderResponse'+            Prelude.<$> (x Data..?> "recommenderArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateRecommender where+  hashWithSalt _salt UpdateRecommender' {..} =+    _salt+      `Prelude.hashWithSalt` recommenderArn+      `Prelude.hashWithSalt` recommenderConfig++instance Prelude.NFData UpdateRecommender where+  rnf UpdateRecommender' {..} =+    Prelude.rnf recommenderArn+      `Prelude.seq` Prelude.rnf recommenderConfig++instance Data.ToHeaders UpdateRecommender where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AmazonPersonalize.UpdateRecommender" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateRecommender where+  toJSON UpdateRecommender' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("recommenderArn" Data..= recommenderArn),+            Prelude.Just+              ("recommenderConfig" Data..= recommenderConfig)+          ]+      )++instance Data.ToPath UpdateRecommender where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateRecommender where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateRecommenderResponse' smart constructor.+data UpdateRecommenderResponse = UpdateRecommenderResponse'+  { -- | The same recommender Amazon Resource Name (ARN) as given in the request.+    recommenderArn :: 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 'UpdateRecommenderResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'recommenderArn', 'updateRecommenderResponse_recommenderArn' - The same recommender Amazon Resource Name (ARN) as given in the request.+--+-- 'httpStatus', 'updateRecommenderResponse_httpStatus' - The response's http status code.+newUpdateRecommenderResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateRecommenderResponse+newUpdateRecommenderResponse pHttpStatus_ =+  UpdateRecommenderResponse'+    { recommenderArn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The same recommender Amazon Resource Name (ARN) as given in the request.+updateRecommenderResponse_recommenderArn :: Lens.Lens' UpdateRecommenderResponse (Prelude.Maybe Prelude.Text)+updateRecommenderResponse_recommenderArn = Lens.lens (\UpdateRecommenderResponse' {recommenderArn} -> recommenderArn) (\s@UpdateRecommenderResponse' {} a -> s {recommenderArn = a} :: UpdateRecommenderResponse)++-- | The response's http status code.+updateRecommenderResponse_httpStatus :: Lens.Lens' UpdateRecommenderResponse Prelude.Int+updateRecommenderResponse_httpStatus = Lens.lens (\UpdateRecommenderResponse' {httpStatus} -> httpStatus) (\s@UpdateRecommenderResponse' {} a -> s {httpStatus = a} :: UpdateRecommenderResponse)++instance Prelude.NFData UpdateRecommenderResponse where+  rnf UpdateRecommenderResponse' {..} =+    Prelude.rnf recommenderArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Personalize/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.Personalize.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.Personalize.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Personalize.Lens+import Amazonka.Personalize.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.Personalize+import Test.Amazonka.Personalize.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "Personalize"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/Gen/Personalize.hs view
@@ -0,0 +1,1358 @@+{-# 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.Personalize+-- Copyright   : (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.Personalize where++import Amazonka.Personalize+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.Personalize.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"+--         [ requestCreateBatchInferenceJob $+--             newCreateBatchInferenceJob+--+--         , requestCreateBatchSegmentJob $+--             newCreateBatchSegmentJob+--+--         , requestCreateCampaign $+--             newCreateCampaign+--+--         , requestCreateDataset $+--             newCreateDataset+--+--         , requestCreateDatasetExportJob $+--             newCreateDatasetExportJob+--+--         , requestCreateDatasetGroup $+--             newCreateDatasetGroup+--+--         , requestCreateDatasetImportJob $+--             newCreateDatasetImportJob+--+--         , requestCreateEventTracker $+--             newCreateEventTracker+--+--         , requestCreateFilter $+--             newCreateFilter+--+--         , requestCreateMetricAttribution $+--             newCreateMetricAttribution+--+--         , requestCreateRecommender $+--             newCreateRecommender+--+--         , requestCreateSchema $+--             newCreateSchema+--+--         , requestCreateSolution $+--             newCreateSolution+--+--         , requestCreateSolutionVersion $+--             newCreateSolutionVersion+--+--         , requestDeleteCampaign $+--             newDeleteCampaign+--+--         , requestDeleteDataset $+--             newDeleteDataset+--+--         , requestDeleteDatasetGroup $+--             newDeleteDatasetGroup+--+--         , requestDeleteEventTracker $+--             newDeleteEventTracker+--+--         , requestDeleteFilter $+--             newDeleteFilter+--+--         , requestDeleteMetricAttribution $+--             newDeleteMetricAttribution+--+--         , requestDeleteRecommender $+--             newDeleteRecommender+--+--         , requestDeleteSchema $+--             newDeleteSchema+--+--         , requestDeleteSolution $+--             newDeleteSolution+--+--         , requestDescribeAlgorithm $+--             newDescribeAlgorithm+--+--         , requestDescribeBatchInferenceJob $+--             newDescribeBatchInferenceJob+--+--         , requestDescribeBatchSegmentJob $+--             newDescribeBatchSegmentJob+--+--         , requestDescribeCampaign $+--             newDescribeCampaign+--+--         , requestDescribeDataset $+--             newDescribeDataset+--+--         , requestDescribeDatasetExportJob $+--             newDescribeDatasetExportJob+--+--         , requestDescribeDatasetGroup $+--             newDescribeDatasetGroup+--+--         , requestDescribeDatasetImportJob $+--             newDescribeDatasetImportJob+--+--         , requestDescribeEventTracker $+--             newDescribeEventTracker+--+--         , requestDescribeFeatureTransformation $+--             newDescribeFeatureTransformation+--+--         , requestDescribeFilter $+--             newDescribeFilter+--+--         , requestDescribeMetricAttribution $+--             newDescribeMetricAttribution+--+--         , requestDescribeRecipe $+--             newDescribeRecipe+--+--         , requestDescribeRecommender $+--             newDescribeRecommender+--+--         , requestDescribeSchema $+--             newDescribeSchema+--+--         , requestDescribeSolution $+--             newDescribeSolution+--+--         , requestDescribeSolutionVersion $+--             newDescribeSolutionVersion+--+--         , requestGetSolutionMetrics $+--             newGetSolutionMetrics+--+--         , requestListBatchInferenceJobs $+--             newListBatchInferenceJobs+--+--         , requestListBatchSegmentJobs $+--             newListBatchSegmentJobs+--+--         , requestListCampaigns $+--             newListCampaigns+--+--         , requestListDatasetExportJobs $+--             newListDatasetExportJobs+--+--         , requestListDatasetGroups $+--             newListDatasetGroups+--+--         , requestListDatasetImportJobs $+--             newListDatasetImportJobs+--+--         , requestListDatasets $+--             newListDatasets+--+--         , requestListEventTrackers $+--             newListEventTrackers+--+--         , requestListFilters $+--             newListFilters+--+--         , requestListMetricAttributionMetrics $+--             newListMetricAttributionMetrics+--+--         , requestListMetricAttributions $+--             newListMetricAttributions+--+--         , requestListRecipes $+--             newListRecipes+--+--         , requestListRecommenders $+--             newListRecommenders+--+--         , requestListSchemas $+--             newListSchemas+--+--         , requestListSolutionVersions $+--             newListSolutionVersions+--+--         , requestListSolutions $+--             newListSolutions+--+--         , requestListTagsForResource $+--             newListTagsForResource+--+--         , requestStartRecommender $+--             newStartRecommender+--+--         , requestStopRecommender $+--             newStopRecommender+--+--         , requestStopSolutionVersionCreation $+--             newStopSolutionVersionCreation+--+--         , requestTagResource $+--             newTagResource+--+--         , requestUntagResource $+--             newUntagResource+--+--         , requestUpdateCampaign $+--             newUpdateCampaign+--+--         , requestUpdateMetricAttribution $+--             newUpdateMetricAttribution+--+--         , requestUpdateRecommender $+--             newUpdateRecommender+--+--           ]++--     , testGroup "response"+--         [ responseCreateBatchInferenceJob $+--             newCreateBatchInferenceJobResponse+--+--         , responseCreateBatchSegmentJob $+--             newCreateBatchSegmentJobResponse+--+--         , responseCreateCampaign $+--             newCreateCampaignResponse+--+--         , responseCreateDataset $+--             newCreateDatasetResponse+--+--         , responseCreateDatasetExportJob $+--             newCreateDatasetExportJobResponse+--+--         , responseCreateDatasetGroup $+--             newCreateDatasetGroupResponse+--+--         , responseCreateDatasetImportJob $+--             newCreateDatasetImportJobResponse+--+--         , responseCreateEventTracker $+--             newCreateEventTrackerResponse+--+--         , responseCreateFilter $+--             newCreateFilterResponse+--+--         , responseCreateMetricAttribution $+--             newCreateMetricAttributionResponse+--+--         , responseCreateRecommender $+--             newCreateRecommenderResponse+--+--         , responseCreateSchema $+--             newCreateSchemaResponse+--+--         , responseCreateSolution $+--             newCreateSolutionResponse+--+--         , responseCreateSolutionVersion $+--             newCreateSolutionVersionResponse+--+--         , responseDeleteCampaign $+--             newDeleteCampaignResponse+--+--         , responseDeleteDataset $+--             newDeleteDatasetResponse+--+--         , responseDeleteDatasetGroup $+--             newDeleteDatasetGroupResponse+--+--         , responseDeleteEventTracker $+--             newDeleteEventTrackerResponse+--+--         , responseDeleteFilter $+--             newDeleteFilterResponse+--+--         , responseDeleteMetricAttribution $+--             newDeleteMetricAttributionResponse+--+--         , responseDeleteRecommender $+--             newDeleteRecommenderResponse+--+--         , responseDeleteSchema $+--             newDeleteSchemaResponse+--+--         , responseDeleteSolution $+--             newDeleteSolutionResponse+--+--         , responseDescribeAlgorithm $+--             newDescribeAlgorithmResponse+--+--         , responseDescribeBatchInferenceJob $+--             newDescribeBatchInferenceJobResponse+--+--         , responseDescribeBatchSegmentJob $+--             newDescribeBatchSegmentJobResponse+--+--         , responseDescribeCampaign $+--             newDescribeCampaignResponse+--+--         , responseDescribeDataset $+--             newDescribeDatasetResponse+--+--         , responseDescribeDatasetExportJob $+--             newDescribeDatasetExportJobResponse+--+--         , responseDescribeDatasetGroup $+--             newDescribeDatasetGroupResponse+--+--         , responseDescribeDatasetImportJob $+--             newDescribeDatasetImportJobResponse+--+--         , responseDescribeEventTracker $+--             newDescribeEventTrackerResponse+--+--         , responseDescribeFeatureTransformation $+--             newDescribeFeatureTransformationResponse+--+--         , responseDescribeFilter $+--             newDescribeFilterResponse+--+--         , responseDescribeMetricAttribution $+--             newDescribeMetricAttributionResponse+--+--         , responseDescribeRecipe $+--             newDescribeRecipeResponse+--+--         , responseDescribeRecommender $+--             newDescribeRecommenderResponse+--+--         , responseDescribeSchema $+--             newDescribeSchemaResponse+--+--         , responseDescribeSolution $+--             newDescribeSolutionResponse+--+--         , responseDescribeSolutionVersion $+--             newDescribeSolutionVersionResponse+--+--         , responseGetSolutionMetrics $+--             newGetSolutionMetricsResponse+--+--         , responseListBatchInferenceJobs $+--             newListBatchInferenceJobsResponse+--+--         , responseListBatchSegmentJobs $+--             newListBatchSegmentJobsResponse+--+--         , responseListCampaigns $+--             newListCampaignsResponse+--+--         , responseListDatasetExportJobs $+--             newListDatasetExportJobsResponse+--+--         , responseListDatasetGroups $+--             newListDatasetGroupsResponse+--+--         , responseListDatasetImportJobs $+--             newListDatasetImportJobsResponse+--+--         , responseListDatasets $+--             newListDatasetsResponse+--+--         , responseListEventTrackers $+--             newListEventTrackersResponse+--+--         , responseListFilters $+--             newListFiltersResponse+--+--         , responseListMetricAttributionMetrics $+--             newListMetricAttributionMetricsResponse+--+--         , responseListMetricAttributions $+--             newListMetricAttributionsResponse+--+--         , responseListRecipes $+--             newListRecipesResponse+--+--         , responseListRecommenders $+--             newListRecommendersResponse+--+--         , responseListSchemas $+--             newListSchemasResponse+--+--         , responseListSolutionVersions $+--             newListSolutionVersionsResponse+--+--         , responseListSolutions $+--             newListSolutionsResponse+--+--         , responseListTagsForResource $+--             newListTagsForResourceResponse+--+--         , responseStartRecommender $+--             newStartRecommenderResponse+--+--         , responseStopRecommender $+--             newStopRecommenderResponse+--+--         , responseStopSolutionVersionCreation $+--             newStopSolutionVersionCreationResponse+--+--         , responseTagResource $+--             newTagResourceResponse+--+--         , responseUntagResource $+--             newUntagResourceResponse+--+--         , responseUpdateCampaign $+--             newUpdateCampaignResponse+--+--         , responseUpdateMetricAttribution $+--             newUpdateMetricAttributionResponse+--+--         , responseUpdateRecommender $+--             newUpdateRecommenderResponse+--+--           ]+--     ]++-- Requests++requestCreateBatchInferenceJob :: CreateBatchInferenceJob -> TestTree+requestCreateBatchInferenceJob =+  req+    "CreateBatchInferenceJob"+    "fixture/CreateBatchInferenceJob.yaml"++requestCreateBatchSegmentJob :: CreateBatchSegmentJob -> TestTree+requestCreateBatchSegmentJob =+  req+    "CreateBatchSegmentJob"+    "fixture/CreateBatchSegmentJob.yaml"++requestCreateCampaign :: CreateCampaign -> TestTree+requestCreateCampaign =+  req+    "CreateCampaign"+    "fixture/CreateCampaign.yaml"++requestCreateDataset :: CreateDataset -> TestTree+requestCreateDataset =+  req+    "CreateDataset"+    "fixture/CreateDataset.yaml"++requestCreateDatasetExportJob :: CreateDatasetExportJob -> TestTree+requestCreateDatasetExportJob =+  req+    "CreateDatasetExportJob"+    "fixture/CreateDatasetExportJob.yaml"++requestCreateDatasetGroup :: CreateDatasetGroup -> TestTree+requestCreateDatasetGroup =+  req+    "CreateDatasetGroup"+    "fixture/CreateDatasetGroup.yaml"++requestCreateDatasetImportJob :: CreateDatasetImportJob -> TestTree+requestCreateDatasetImportJob =+  req+    "CreateDatasetImportJob"+    "fixture/CreateDatasetImportJob.yaml"++requestCreateEventTracker :: CreateEventTracker -> TestTree+requestCreateEventTracker =+  req+    "CreateEventTracker"+    "fixture/CreateEventTracker.yaml"++requestCreateFilter :: CreateFilter -> TestTree+requestCreateFilter =+  req+    "CreateFilter"+    "fixture/CreateFilter.yaml"++requestCreateMetricAttribution :: CreateMetricAttribution -> TestTree+requestCreateMetricAttribution =+  req+    "CreateMetricAttribution"+    "fixture/CreateMetricAttribution.yaml"++requestCreateRecommender :: CreateRecommender -> TestTree+requestCreateRecommender =+  req+    "CreateRecommender"+    "fixture/CreateRecommender.yaml"++requestCreateSchema :: CreateSchema -> TestTree+requestCreateSchema =+  req+    "CreateSchema"+    "fixture/CreateSchema.yaml"++requestCreateSolution :: CreateSolution -> TestTree+requestCreateSolution =+  req+    "CreateSolution"+    "fixture/CreateSolution.yaml"++requestCreateSolutionVersion :: CreateSolutionVersion -> TestTree+requestCreateSolutionVersion =+  req+    "CreateSolutionVersion"+    "fixture/CreateSolutionVersion.yaml"++requestDeleteCampaign :: DeleteCampaign -> TestTree+requestDeleteCampaign =+  req+    "DeleteCampaign"+    "fixture/DeleteCampaign.yaml"++requestDeleteDataset :: DeleteDataset -> TestTree+requestDeleteDataset =+  req+    "DeleteDataset"+    "fixture/DeleteDataset.yaml"++requestDeleteDatasetGroup :: DeleteDatasetGroup -> TestTree+requestDeleteDatasetGroup =+  req+    "DeleteDatasetGroup"+    "fixture/DeleteDatasetGroup.yaml"++requestDeleteEventTracker :: DeleteEventTracker -> TestTree+requestDeleteEventTracker =+  req+    "DeleteEventTracker"+    "fixture/DeleteEventTracker.yaml"++requestDeleteFilter :: DeleteFilter -> TestTree+requestDeleteFilter =+  req+    "DeleteFilter"+    "fixture/DeleteFilter.yaml"++requestDeleteMetricAttribution :: DeleteMetricAttribution -> TestTree+requestDeleteMetricAttribution =+  req+    "DeleteMetricAttribution"+    "fixture/DeleteMetricAttribution.yaml"++requestDeleteRecommender :: DeleteRecommender -> TestTree+requestDeleteRecommender =+  req+    "DeleteRecommender"+    "fixture/DeleteRecommender.yaml"++requestDeleteSchema :: DeleteSchema -> TestTree+requestDeleteSchema =+  req+    "DeleteSchema"+    "fixture/DeleteSchema.yaml"++requestDeleteSolution :: DeleteSolution -> TestTree+requestDeleteSolution =+  req+    "DeleteSolution"+    "fixture/DeleteSolution.yaml"++requestDescribeAlgorithm :: DescribeAlgorithm -> TestTree+requestDescribeAlgorithm =+  req+    "DescribeAlgorithm"+    "fixture/DescribeAlgorithm.yaml"++requestDescribeBatchInferenceJob :: DescribeBatchInferenceJob -> TestTree+requestDescribeBatchInferenceJob =+  req+    "DescribeBatchInferenceJob"+    "fixture/DescribeBatchInferenceJob.yaml"++requestDescribeBatchSegmentJob :: DescribeBatchSegmentJob -> TestTree+requestDescribeBatchSegmentJob =+  req+    "DescribeBatchSegmentJob"+    "fixture/DescribeBatchSegmentJob.yaml"++requestDescribeCampaign :: DescribeCampaign -> TestTree+requestDescribeCampaign =+  req+    "DescribeCampaign"+    "fixture/DescribeCampaign.yaml"++requestDescribeDataset :: DescribeDataset -> TestTree+requestDescribeDataset =+  req+    "DescribeDataset"+    "fixture/DescribeDataset.yaml"++requestDescribeDatasetExportJob :: DescribeDatasetExportJob -> TestTree+requestDescribeDatasetExportJob =+  req+    "DescribeDatasetExportJob"+    "fixture/DescribeDatasetExportJob.yaml"++requestDescribeDatasetGroup :: DescribeDatasetGroup -> TestTree+requestDescribeDatasetGroup =+  req+    "DescribeDatasetGroup"+    "fixture/DescribeDatasetGroup.yaml"++requestDescribeDatasetImportJob :: DescribeDatasetImportJob -> TestTree+requestDescribeDatasetImportJob =+  req+    "DescribeDatasetImportJob"+    "fixture/DescribeDatasetImportJob.yaml"++requestDescribeEventTracker :: DescribeEventTracker -> TestTree+requestDescribeEventTracker =+  req+    "DescribeEventTracker"+    "fixture/DescribeEventTracker.yaml"++requestDescribeFeatureTransformation :: DescribeFeatureTransformation -> TestTree+requestDescribeFeatureTransformation =+  req+    "DescribeFeatureTransformation"+    "fixture/DescribeFeatureTransformation.yaml"++requestDescribeFilter :: DescribeFilter -> TestTree+requestDescribeFilter =+  req+    "DescribeFilter"+    "fixture/DescribeFilter.yaml"++requestDescribeMetricAttribution :: DescribeMetricAttribution -> TestTree+requestDescribeMetricAttribution =+  req+    "DescribeMetricAttribution"+    "fixture/DescribeMetricAttribution.yaml"++requestDescribeRecipe :: DescribeRecipe -> TestTree+requestDescribeRecipe =+  req+    "DescribeRecipe"+    "fixture/DescribeRecipe.yaml"++requestDescribeRecommender :: DescribeRecommender -> TestTree+requestDescribeRecommender =+  req+    "DescribeRecommender"+    "fixture/DescribeRecommender.yaml"++requestDescribeSchema :: DescribeSchema -> TestTree+requestDescribeSchema =+  req+    "DescribeSchema"+    "fixture/DescribeSchema.yaml"++requestDescribeSolution :: DescribeSolution -> TestTree+requestDescribeSolution =+  req+    "DescribeSolution"+    "fixture/DescribeSolution.yaml"++requestDescribeSolutionVersion :: DescribeSolutionVersion -> TestTree+requestDescribeSolutionVersion =+  req+    "DescribeSolutionVersion"+    "fixture/DescribeSolutionVersion.yaml"++requestGetSolutionMetrics :: GetSolutionMetrics -> TestTree+requestGetSolutionMetrics =+  req+    "GetSolutionMetrics"+    "fixture/GetSolutionMetrics.yaml"++requestListBatchInferenceJobs :: ListBatchInferenceJobs -> TestTree+requestListBatchInferenceJobs =+  req+    "ListBatchInferenceJobs"+    "fixture/ListBatchInferenceJobs.yaml"++requestListBatchSegmentJobs :: ListBatchSegmentJobs -> TestTree+requestListBatchSegmentJobs =+  req+    "ListBatchSegmentJobs"+    "fixture/ListBatchSegmentJobs.yaml"++requestListCampaigns :: ListCampaigns -> TestTree+requestListCampaigns =+  req+    "ListCampaigns"+    "fixture/ListCampaigns.yaml"++requestListDatasetExportJobs :: ListDatasetExportJobs -> TestTree+requestListDatasetExportJobs =+  req+    "ListDatasetExportJobs"+    "fixture/ListDatasetExportJobs.yaml"++requestListDatasetGroups :: ListDatasetGroups -> TestTree+requestListDatasetGroups =+  req+    "ListDatasetGroups"+    "fixture/ListDatasetGroups.yaml"++requestListDatasetImportJobs :: ListDatasetImportJobs -> TestTree+requestListDatasetImportJobs =+  req+    "ListDatasetImportJobs"+    "fixture/ListDatasetImportJobs.yaml"++requestListDatasets :: ListDatasets -> TestTree+requestListDatasets =+  req+    "ListDatasets"+    "fixture/ListDatasets.yaml"++requestListEventTrackers :: ListEventTrackers -> TestTree+requestListEventTrackers =+  req+    "ListEventTrackers"+    "fixture/ListEventTrackers.yaml"++requestListFilters :: ListFilters -> TestTree+requestListFilters =+  req+    "ListFilters"+    "fixture/ListFilters.yaml"++requestListMetricAttributionMetrics :: ListMetricAttributionMetrics -> TestTree+requestListMetricAttributionMetrics =+  req+    "ListMetricAttributionMetrics"+    "fixture/ListMetricAttributionMetrics.yaml"++requestListMetricAttributions :: ListMetricAttributions -> TestTree+requestListMetricAttributions =+  req+    "ListMetricAttributions"+    "fixture/ListMetricAttributions.yaml"++requestListRecipes :: ListRecipes -> TestTree+requestListRecipes =+  req+    "ListRecipes"+    "fixture/ListRecipes.yaml"++requestListRecommenders :: ListRecommenders -> TestTree+requestListRecommenders =+  req+    "ListRecommenders"+    "fixture/ListRecommenders.yaml"++requestListSchemas :: ListSchemas -> TestTree+requestListSchemas =+  req+    "ListSchemas"+    "fixture/ListSchemas.yaml"++requestListSolutionVersions :: ListSolutionVersions -> TestTree+requestListSolutionVersions =+  req+    "ListSolutionVersions"+    "fixture/ListSolutionVersions.yaml"++requestListSolutions :: ListSolutions -> TestTree+requestListSolutions =+  req+    "ListSolutions"+    "fixture/ListSolutions.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+  req+    "ListTagsForResource"+    "fixture/ListTagsForResource.yaml"++requestStartRecommender :: StartRecommender -> TestTree+requestStartRecommender =+  req+    "StartRecommender"+    "fixture/StartRecommender.yaml"++requestStopRecommender :: StopRecommender -> TestTree+requestStopRecommender =+  req+    "StopRecommender"+    "fixture/StopRecommender.yaml"++requestStopSolutionVersionCreation :: StopSolutionVersionCreation -> TestTree+requestStopSolutionVersionCreation =+  req+    "StopSolutionVersionCreation"+    "fixture/StopSolutionVersionCreation.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+  req+    "TagResource"+    "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+  req+    "UntagResource"+    "fixture/UntagResource.yaml"++requestUpdateCampaign :: UpdateCampaign -> TestTree+requestUpdateCampaign =+  req+    "UpdateCampaign"+    "fixture/UpdateCampaign.yaml"++requestUpdateMetricAttribution :: UpdateMetricAttribution -> TestTree+requestUpdateMetricAttribution =+  req+    "UpdateMetricAttribution"+    "fixture/UpdateMetricAttribution.yaml"++requestUpdateRecommender :: UpdateRecommender -> TestTree+requestUpdateRecommender =+  req+    "UpdateRecommender"+    "fixture/UpdateRecommender.yaml"++-- Responses++responseCreateBatchInferenceJob :: CreateBatchInferenceJobResponse -> TestTree+responseCreateBatchInferenceJob =+  res+    "CreateBatchInferenceJobResponse"+    "fixture/CreateBatchInferenceJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateBatchInferenceJob)++responseCreateBatchSegmentJob :: CreateBatchSegmentJobResponse -> TestTree+responseCreateBatchSegmentJob =+  res+    "CreateBatchSegmentJobResponse"+    "fixture/CreateBatchSegmentJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateBatchSegmentJob)++responseCreateCampaign :: CreateCampaignResponse -> TestTree+responseCreateCampaign =+  res+    "CreateCampaignResponse"+    "fixture/CreateCampaignResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateCampaign)++responseCreateDataset :: CreateDatasetResponse -> TestTree+responseCreateDataset =+  res+    "CreateDatasetResponse"+    "fixture/CreateDatasetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateDataset)++responseCreateDatasetExportJob :: CreateDatasetExportJobResponse -> TestTree+responseCreateDatasetExportJob =+  res+    "CreateDatasetExportJobResponse"+    "fixture/CreateDatasetExportJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateDatasetExportJob)++responseCreateDatasetGroup :: CreateDatasetGroupResponse -> TestTree+responseCreateDatasetGroup =+  res+    "CreateDatasetGroupResponse"+    "fixture/CreateDatasetGroupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateDatasetGroup)++responseCreateDatasetImportJob :: CreateDatasetImportJobResponse -> TestTree+responseCreateDatasetImportJob =+  res+    "CreateDatasetImportJobResponse"+    "fixture/CreateDatasetImportJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateDatasetImportJob)++responseCreateEventTracker :: CreateEventTrackerResponse -> TestTree+responseCreateEventTracker =+  res+    "CreateEventTrackerResponse"+    "fixture/CreateEventTrackerResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateEventTracker)++responseCreateFilter :: CreateFilterResponse -> TestTree+responseCreateFilter =+  res+    "CreateFilterResponse"+    "fixture/CreateFilterResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateFilter)++responseCreateMetricAttribution :: CreateMetricAttributionResponse -> TestTree+responseCreateMetricAttribution =+  res+    "CreateMetricAttributionResponse"+    "fixture/CreateMetricAttributionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateMetricAttribution)++responseCreateRecommender :: CreateRecommenderResponse -> TestTree+responseCreateRecommender =+  res+    "CreateRecommenderResponse"+    "fixture/CreateRecommenderResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateRecommender)++responseCreateSchema :: CreateSchemaResponse -> TestTree+responseCreateSchema =+  res+    "CreateSchemaResponse"+    "fixture/CreateSchemaResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateSchema)++responseCreateSolution :: CreateSolutionResponse -> TestTree+responseCreateSolution =+  res+    "CreateSolutionResponse"+    "fixture/CreateSolutionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateSolution)++responseCreateSolutionVersion :: CreateSolutionVersionResponse -> TestTree+responseCreateSolutionVersion =+  res+    "CreateSolutionVersionResponse"+    "fixture/CreateSolutionVersionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateSolutionVersion)++responseDeleteCampaign :: DeleteCampaignResponse -> TestTree+responseDeleteCampaign =+  res+    "DeleteCampaignResponse"+    "fixture/DeleteCampaignResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteCampaign)++responseDeleteDataset :: DeleteDatasetResponse -> TestTree+responseDeleteDataset =+  res+    "DeleteDatasetResponse"+    "fixture/DeleteDatasetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteDataset)++responseDeleteDatasetGroup :: DeleteDatasetGroupResponse -> TestTree+responseDeleteDatasetGroup =+  res+    "DeleteDatasetGroupResponse"+    "fixture/DeleteDatasetGroupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteDatasetGroup)++responseDeleteEventTracker :: DeleteEventTrackerResponse -> TestTree+responseDeleteEventTracker =+  res+    "DeleteEventTrackerResponse"+    "fixture/DeleteEventTrackerResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteEventTracker)++responseDeleteFilter :: DeleteFilterResponse -> TestTree+responseDeleteFilter =+  res+    "DeleteFilterResponse"+    "fixture/DeleteFilterResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteFilter)++responseDeleteMetricAttribution :: DeleteMetricAttributionResponse -> TestTree+responseDeleteMetricAttribution =+  res+    "DeleteMetricAttributionResponse"+    "fixture/DeleteMetricAttributionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteMetricAttribution)++responseDeleteRecommender :: DeleteRecommenderResponse -> TestTree+responseDeleteRecommender =+  res+    "DeleteRecommenderResponse"+    "fixture/DeleteRecommenderResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteRecommender)++responseDeleteSchema :: DeleteSchemaResponse -> TestTree+responseDeleteSchema =+  res+    "DeleteSchemaResponse"+    "fixture/DeleteSchemaResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteSchema)++responseDeleteSolution :: DeleteSolutionResponse -> TestTree+responseDeleteSolution =+  res+    "DeleteSolutionResponse"+    "fixture/DeleteSolutionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteSolution)++responseDescribeAlgorithm :: DescribeAlgorithmResponse -> TestTree+responseDescribeAlgorithm =+  res+    "DescribeAlgorithmResponse"+    "fixture/DescribeAlgorithmResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeAlgorithm)++responseDescribeBatchInferenceJob :: DescribeBatchInferenceJobResponse -> TestTree+responseDescribeBatchInferenceJob =+  res+    "DescribeBatchInferenceJobResponse"+    "fixture/DescribeBatchInferenceJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeBatchInferenceJob)++responseDescribeBatchSegmentJob :: DescribeBatchSegmentJobResponse -> TestTree+responseDescribeBatchSegmentJob =+  res+    "DescribeBatchSegmentJobResponse"+    "fixture/DescribeBatchSegmentJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeBatchSegmentJob)++responseDescribeCampaign :: DescribeCampaignResponse -> TestTree+responseDescribeCampaign =+  res+    "DescribeCampaignResponse"+    "fixture/DescribeCampaignResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeCampaign)++responseDescribeDataset :: DescribeDatasetResponse -> TestTree+responseDescribeDataset =+  res+    "DescribeDatasetResponse"+    "fixture/DescribeDatasetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeDataset)++responseDescribeDatasetExportJob :: DescribeDatasetExportJobResponse -> TestTree+responseDescribeDatasetExportJob =+  res+    "DescribeDatasetExportJobResponse"+    "fixture/DescribeDatasetExportJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeDatasetExportJob)++responseDescribeDatasetGroup :: DescribeDatasetGroupResponse -> TestTree+responseDescribeDatasetGroup =+  res+    "DescribeDatasetGroupResponse"+    "fixture/DescribeDatasetGroupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeDatasetGroup)++responseDescribeDatasetImportJob :: DescribeDatasetImportJobResponse -> TestTree+responseDescribeDatasetImportJob =+  res+    "DescribeDatasetImportJobResponse"+    "fixture/DescribeDatasetImportJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeDatasetImportJob)++responseDescribeEventTracker :: DescribeEventTrackerResponse -> TestTree+responseDescribeEventTracker =+  res+    "DescribeEventTrackerResponse"+    "fixture/DescribeEventTrackerResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeEventTracker)++responseDescribeFeatureTransformation :: DescribeFeatureTransformationResponse -> TestTree+responseDescribeFeatureTransformation =+  res+    "DescribeFeatureTransformationResponse"+    "fixture/DescribeFeatureTransformationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeFeatureTransformation)++responseDescribeFilter :: DescribeFilterResponse -> TestTree+responseDescribeFilter =+  res+    "DescribeFilterResponse"+    "fixture/DescribeFilterResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeFilter)++responseDescribeMetricAttribution :: DescribeMetricAttributionResponse -> TestTree+responseDescribeMetricAttribution =+  res+    "DescribeMetricAttributionResponse"+    "fixture/DescribeMetricAttributionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeMetricAttribution)++responseDescribeRecipe :: DescribeRecipeResponse -> TestTree+responseDescribeRecipe =+  res+    "DescribeRecipeResponse"+    "fixture/DescribeRecipeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeRecipe)++responseDescribeRecommender :: DescribeRecommenderResponse -> TestTree+responseDescribeRecommender =+  res+    "DescribeRecommenderResponse"+    "fixture/DescribeRecommenderResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeRecommender)++responseDescribeSchema :: DescribeSchemaResponse -> TestTree+responseDescribeSchema =+  res+    "DescribeSchemaResponse"+    "fixture/DescribeSchemaResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeSchema)++responseDescribeSolution :: DescribeSolutionResponse -> TestTree+responseDescribeSolution =+  res+    "DescribeSolutionResponse"+    "fixture/DescribeSolutionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeSolution)++responseDescribeSolutionVersion :: DescribeSolutionVersionResponse -> TestTree+responseDescribeSolutionVersion =+  res+    "DescribeSolutionVersionResponse"+    "fixture/DescribeSolutionVersionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeSolutionVersion)++responseGetSolutionMetrics :: GetSolutionMetricsResponse -> TestTree+responseGetSolutionMetrics =+  res+    "GetSolutionMetricsResponse"+    "fixture/GetSolutionMetricsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetSolutionMetrics)++responseListBatchInferenceJobs :: ListBatchInferenceJobsResponse -> TestTree+responseListBatchInferenceJobs =+  res+    "ListBatchInferenceJobsResponse"+    "fixture/ListBatchInferenceJobsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListBatchInferenceJobs)++responseListBatchSegmentJobs :: ListBatchSegmentJobsResponse -> TestTree+responseListBatchSegmentJobs =+  res+    "ListBatchSegmentJobsResponse"+    "fixture/ListBatchSegmentJobsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListBatchSegmentJobs)++responseListCampaigns :: ListCampaignsResponse -> TestTree+responseListCampaigns =+  res+    "ListCampaignsResponse"+    "fixture/ListCampaignsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListCampaigns)++responseListDatasetExportJobs :: ListDatasetExportJobsResponse -> TestTree+responseListDatasetExportJobs =+  res+    "ListDatasetExportJobsResponse"+    "fixture/ListDatasetExportJobsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListDatasetExportJobs)++responseListDatasetGroups :: ListDatasetGroupsResponse -> TestTree+responseListDatasetGroups =+  res+    "ListDatasetGroupsResponse"+    "fixture/ListDatasetGroupsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListDatasetGroups)++responseListDatasetImportJobs :: ListDatasetImportJobsResponse -> TestTree+responseListDatasetImportJobs =+  res+    "ListDatasetImportJobsResponse"+    "fixture/ListDatasetImportJobsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListDatasetImportJobs)++responseListDatasets :: ListDatasetsResponse -> TestTree+responseListDatasets =+  res+    "ListDatasetsResponse"+    "fixture/ListDatasetsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListDatasets)++responseListEventTrackers :: ListEventTrackersResponse -> TestTree+responseListEventTrackers =+  res+    "ListEventTrackersResponse"+    "fixture/ListEventTrackersResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListEventTrackers)++responseListFilters :: ListFiltersResponse -> TestTree+responseListFilters =+  res+    "ListFiltersResponse"+    "fixture/ListFiltersResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListFilters)++responseListMetricAttributionMetrics :: ListMetricAttributionMetricsResponse -> TestTree+responseListMetricAttributionMetrics =+  res+    "ListMetricAttributionMetricsResponse"+    "fixture/ListMetricAttributionMetricsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListMetricAttributionMetrics)++responseListMetricAttributions :: ListMetricAttributionsResponse -> TestTree+responseListMetricAttributions =+  res+    "ListMetricAttributionsResponse"+    "fixture/ListMetricAttributionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListMetricAttributions)++responseListRecipes :: ListRecipesResponse -> TestTree+responseListRecipes =+  res+    "ListRecipesResponse"+    "fixture/ListRecipesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListRecipes)++responseListRecommenders :: ListRecommendersResponse -> TestTree+responseListRecommenders =+  res+    "ListRecommendersResponse"+    "fixture/ListRecommendersResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListRecommenders)++responseListSchemas :: ListSchemasResponse -> TestTree+responseListSchemas =+  res+    "ListSchemasResponse"+    "fixture/ListSchemasResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListSchemas)++responseListSolutionVersions :: ListSolutionVersionsResponse -> TestTree+responseListSolutionVersions =+  res+    "ListSolutionVersionsResponse"+    "fixture/ListSolutionVersionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListSolutionVersions)++responseListSolutions :: ListSolutionsResponse -> TestTree+responseListSolutions =+  res+    "ListSolutionsResponse"+    "fixture/ListSolutionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListSolutions)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+  res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responseStartRecommender :: StartRecommenderResponse -> TestTree+responseStartRecommender =+  res+    "StartRecommenderResponse"+    "fixture/StartRecommenderResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StartRecommender)++responseStopRecommender :: StopRecommenderResponse -> TestTree+responseStopRecommender =+  res+    "StopRecommenderResponse"+    "fixture/StopRecommenderResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StopRecommender)++responseStopSolutionVersionCreation :: StopSolutionVersionCreationResponse -> TestTree+responseStopSolutionVersionCreation =+  res+    "StopSolutionVersionCreationResponse"+    "fixture/StopSolutionVersionCreationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StopSolutionVersionCreation)++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)++responseUpdateCampaign :: UpdateCampaignResponse -> TestTree+responseUpdateCampaign =+  res+    "UpdateCampaignResponse"+    "fixture/UpdateCampaignResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateCampaign)++responseUpdateMetricAttribution :: UpdateMetricAttributionResponse -> TestTree+responseUpdateMetricAttribution =+  res+    "UpdateMetricAttributionResponse"+    "fixture/UpdateMetricAttributionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateMetricAttribution)++responseUpdateRecommender :: UpdateRecommenderResponse -> TestTree+responseUpdateRecommender =+  res+    "UpdateRecommenderResponse"+    "fixture/UpdateRecommenderResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateRecommender)
+ test/Test/Amazonka/Personalize.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.Personalize+-- Copyright   : (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.Personalize+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/Personalize/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.Personalize.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.Personalize.Internal where