packages feed

amazonka-lookoutvision (empty) → 2.0

raw patch · 112 files changed

+11609/−0 lines, 112 filesdep +amazonka-coredep +amazonka-lookoutvisiondep +amazonka-test

Dependencies added: amazonka-core, amazonka-lookoutvision, 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 Lookout for Vision SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2020-11-20@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-lookoutvision)+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.LookoutVision](http://hackage.haskell.org/package/amazonka-lookoutvision/docs/Amazonka-LookoutVision.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-lookoutvision` 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-lookoutvision.cabal view
@@ -0,0 +1,139 @@+cabal-version:      2.2+name:               amazonka-lookoutvision+version:            2.0+synopsis:           Amazon Lookout for Vision SDK.+homepage:           https://github.com/brendanhay/amazonka+bug-reports:        https://github.com/brendanhay/amazonka/issues+license:            MPL-2.0+license-file:       LICENSE+author:             Brendan Hay+maintainer:+  Brendan Hay <brendan.g.hay+amazonka@gmail.com>, Jack Kelly <jack@jackkelly.name>++copyright:          Copyright (c) 2013-2023 Brendan Hay+category:           AWS+build-type:         Simple+extra-source-files:+  fixture/*.proto+  fixture/*.yaml+  README.md+  src/.gitkeep++description:+  Derived from API version @2020-11-20@ 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.LookoutVision.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.LookoutVision" 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-lookoutvision++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.LookoutVision+    Amazonka.LookoutVision.CreateDataset+    Amazonka.LookoutVision.CreateModel+    Amazonka.LookoutVision.CreateProject+    Amazonka.LookoutVision.DeleteDataset+    Amazonka.LookoutVision.DeleteModel+    Amazonka.LookoutVision.DeleteProject+    Amazonka.LookoutVision.DescribeDataset+    Amazonka.LookoutVision.DescribeModel+    Amazonka.LookoutVision.DescribeModelPackagingJob+    Amazonka.LookoutVision.DescribeProject+    Amazonka.LookoutVision.DetectAnomalies+    Amazonka.LookoutVision.Lens+    Amazonka.LookoutVision.ListDatasetEntries+    Amazonka.LookoutVision.ListModelPackagingJobs+    Amazonka.LookoutVision.ListModels+    Amazonka.LookoutVision.ListProjects+    Amazonka.LookoutVision.ListTagsForResource+    Amazonka.LookoutVision.StartModel+    Amazonka.LookoutVision.StartModelPackagingJob+    Amazonka.LookoutVision.StopModel+    Amazonka.LookoutVision.TagResource+    Amazonka.LookoutVision.Types+    Amazonka.LookoutVision.Types.Anomaly+    Amazonka.LookoutVision.Types.DatasetDescription+    Amazonka.LookoutVision.Types.DatasetGroundTruthManifest+    Amazonka.LookoutVision.Types.DatasetImageStats+    Amazonka.LookoutVision.Types.DatasetMetadata+    Amazonka.LookoutVision.Types.DatasetSource+    Amazonka.LookoutVision.Types.DatasetStatus+    Amazonka.LookoutVision.Types.DetectAnomalyResult+    Amazonka.LookoutVision.Types.GreengrassConfiguration+    Amazonka.LookoutVision.Types.GreengrassOutputDetails+    Amazonka.LookoutVision.Types.ImageSource+    Amazonka.LookoutVision.Types.InputS3Object+    Amazonka.LookoutVision.Types.ModelDescription+    Amazonka.LookoutVision.Types.ModelHostingStatus+    Amazonka.LookoutVision.Types.ModelMetadata+    Amazonka.LookoutVision.Types.ModelPackagingConfiguration+    Amazonka.LookoutVision.Types.ModelPackagingDescription+    Amazonka.LookoutVision.Types.ModelPackagingJobMetadata+    Amazonka.LookoutVision.Types.ModelPackagingJobStatus+    Amazonka.LookoutVision.Types.ModelPackagingOutputDetails+    Amazonka.LookoutVision.Types.ModelPerformance+    Amazonka.LookoutVision.Types.ModelStatus+    Amazonka.LookoutVision.Types.OutputConfig+    Amazonka.LookoutVision.Types.OutputS3Object+    Amazonka.LookoutVision.Types.PixelAnomaly+    Amazonka.LookoutVision.Types.ProjectDescription+    Amazonka.LookoutVision.Types.ProjectMetadata+    Amazonka.LookoutVision.Types.S3Location+    Amazonka.LookoutVision.Types.Tag+    Amazonka.LookoutVision.Types.TargetDevice+    Amazonka.LookoutVision.Types.TargetPlatform+    Amazonka.LookoutVision.Types.TargetPlatformAccelerator+    Amazonka.LookoutVision.Types.TargetPlatformArch+    Amazonka.LookoutVision.Types.TargetPlatformOs+    Amazonka.LookoutVision.UntagResource+    Amazonka.LookoutVision.UpdateDatasetEntries+    Amazonka.LookoutVision.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-lookoutvision-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.LookoutVision+    Test.Amazonka.LookoutVision+    Test.Amazonka.LookoutVision.Internal++  build-depends:+    , amazonka-core           >=2.0 && <2.1+    , amazonka-lookoutvision+    , amazonka-test           >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/CreateDataset.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutvision/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutvision.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateDatasetResponse.proto view
+ fixture/CreateModel.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutvision/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutvision.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateModelResponse.proto view
+ fixture/CreateProject.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutvision/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutvision.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateProjectResponse.proto view
+ fixture/DeleteDataset.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutvision/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutvision.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteDatasetResponse.proto view
+ fixture/DeleteModel.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutvision/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutvision.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteModelResponse.proto view
+ fixture/DeleteProject.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutvision/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutvision.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteProjectResponse.proto view
+ fixture/DescribeDataset.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutvision/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutvision.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeDatasetResponse.proto view
+ fixture/DescribeModel.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutvision/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutvision.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeModelPackagingJob.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutvision/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutvision.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeModelPackagingJobResponse.proto view
+ fixture/DescribeModelResponse.proto view
+ fixture/DescribeProject.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutvision/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutvision.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeProjectResponse.proto view
+ fixture/DetectAnomalies.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutvision/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutvision.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DetectAnomaliesResponse.proto view
+ fixture/ListDatasetEntries.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutvision/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutvision.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListDatasetEntriesResponse.proto view
+ fixture/ListModelPackagingJobs.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutvision/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutvision.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListModelPackagingJobsResponse.proto view
+ fixture/ListModels.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutvision/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutvision.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListModelsResponse.proto view
+ fixture/ListProjects.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutvision/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutvision.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListProjectsResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutvision/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutvision.us-east-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/StartModel.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutvision/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutvision.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/StartModelPackagingJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutvision/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutvision.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/StartModelPackagingJobResponse.proto view
+ fixture/StartModelResponse.proto view
+ fixture/StopModel.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutvision/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutvision.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/StopModelResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutvision/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutvision.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/TagResourceResponse.proto view
+ fixture/UntagResource.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutvision/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutvision.us-east-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/UpdateDatasetEntries.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lookoutvision/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  lookoutvision.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateDatasetEntriesResponse.proto view
+ gen/Amazonka/LookoutVision.hs view
@@ -0,0 +1,373 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.LookoutVision+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Derived from API version @2020-11-20@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- This is the Amazon Lookout for Vision API Reference. It provides+-- descriptions of actions, data types, common parameters, and common+-- errors.+--+-- Amazon Lookout for Vision enables you to find visual defects in+-- industrial products, accurately and at scale. It uses computer vision to+-- identify missing components in an industrial product, damage to vehicles+-- or structures, irregularities in production lines, and even minuscule+-- defects in silicon wafers — or any other physical item where quality is+-- important such as a missing capacitor on printed circuit boards.+module Amazonka.LookoutVision+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** AccessDeniedException+    _AccessDeniedException,++    -- ** ConflictException+    _ConflictException,++    -- ** InternalServerException+    _InternalServerException,++    -- ** ResourceNotFoundException+    _ResourceNotFoundException,++    -- ** ServiceQuotaExceededException+    _ServiceQuotaExceededException,++    -- ** ThrottlingException+    _ThrottlingException,++    -- ** ValidationException+    _ValidationException,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** CreateDataset+    CreateDataset (CreateDataset'),+    newCreateDataset,+    CreateDatasetResponse (CreateDatasetResponse'),+    newCreateDatasetResponse,++    -- ** CreateModel+    CreateModel (CreateModel'),+    newCreateModel,+    CreateModelResponse (CreateModelResponse'),+    newCreateModelResponse,++    -- ** CreateProject+    CreateProject (CreateProject'),+    newCreateProject,+    CreateProjectResponse (CreateProjectResponse'),+    newCreateProjectResponse,++    -- ** DeleteDataset+    DeleteDataset (DeleteDataset'),+    newDeleteDataset,+    DeleteDatasetResponse (DeleteDatasetResponse'),+    newDeleteDatasetResponse,++    -- ** DeleteModel+    DeleteModel (DeleteModel'),+    newDeleteModel,+    DeleteModelResponse (DeleteModelResponse'),+    newDeleteModelResponse,++    -- ** DeleteProject+    DeleteProject (DeleteProject'),+    newDeleteProject,+    DeleteProjectResponse (DeleteProjectResponse'),+    newDeleteProjectResponse,++    -- ** DescribeDataset+    DescribeDataset (DescribeDataset'),+    newDescribeDataset,+    DescribeDatasetResponse (DescribeDatasetResponse'),+    newDescribeDatasetResponse,++    -- ** DescribeModel+    DescribeModel (DescribeModel'),+    newDescribeModel,+    DescribeModelResponse (DescribeModelResponse'),+    newDescribeModelResponse,++    -- ** DescribeModelPackagingJob+    DescribeModelPackagingJob (DescribeModelPackagingJob'),+    newDescribeModelPackagingJob,+    DescribeModelPackagingJobResponse (DescribeModelPackagingJobResponse'),+    newDescribeModelPackagingJobResponse,++    -- ** DescribeProject+    DescribeProject (DescribeProject'),+    newDescribeProject,+    DescribeProjectResponse (DescribeProjectResponse'),+    newDescribeProjectResponse,++    -- ** DetectAnomalies+    DetectAnomalies (DetectAnomalies'),+    newDetectAnomalies,+    DetectAnomaliesResponse (DetectAnomaliesResponse'),+    newDetectAnomaliesResponse,++    -- ** ListDatasetEntries (Paginated)+    ListDatasetEntries (ListDatasetEntries'),+    newListDatasetEntries,+    ListDatasetEntriesResponse (ListDatasetEntriesResponse'),+    newListDatasetEntriesResponse,++    -- ** ListModelPackagingJobs (Paginated)+    ListModelPackagingJobs (ListModelPackagingJobs'),+    newListModelPackagingJobs,+    ListModelPackagingJobsResponse (ListModelPackagingJobsResponse'),+    newListModelPackagingJobsResponse,++    -- ** ListModels (Paginated)+    ListModels (ListModels'),+    newListModels,+    ListModelsResponse (ListModelsResponse'),+    newListModelsResponse,++    -- ** ListProjects (Paginated)+    ListProjects (ListProjects'),+    newListProjects,+    ListProjectsResponse (ListProjectsResponse'),+    newListProjectsResponse,++    -- ** ListTagsForResource+    ListTagsForResource (ListTagsForResource'),+    newListTagsForResource,+    ListTagsForResourceResponse (ListTagsForResourceResponse'),+    newListTagsForResourceResponse,++    -- ** StartModel+    StartModel (StartModel'),+    newStartModel,+    StartModelResponse (StartModelResponse'),+    newStartModelResponse,++    -- ** StartModelPackagingJob+    StartModelPackagingJob (StartModelPackagingJob'),+    newStartModelPackagingJob,+    StartModelPackagingJobResponse (StartModelPackagingJobResponse'),+    newStartModelPackagingJobResponse,++    -- ** StopModel+    StopModel (StopModel'),+    newStopModel,+    StopModelResponse (StopModelResponse'),+    newStopModelResponse,++    -- ** TagResource+    TagResource (TagResource'),+    newTagResource,+    TagResourceResponse (TagResourceResponse'),+    newTagResourceResponse,++    -- ** UntagResource+    UntagResource (UntagResource'),+    newUntagResource,+    UntagResourceResponse (UntagResourceResponse'),+    newUntagResourceResponse,++    -- ** UpdateDatasetEntries+    UpdateDatasetEntries (UpdateDatasetEntries'),+    newUpdateDatasetEntries,+    UpdateDatasetEntriesResponse (UpdateDatasetEntriesResponse'),+    newUpdateDatasetEntriesResponse,++    -- * Types++    -- ** DatasetStatus+    DatasetStatus (..),++    -- ** ModelHostingStatus+    ModelHostingStatus (..),++    -- ** ModelPackagingJobStatus+    ModelPackagingJobStatus (..),++    -- ** ModelStatus+    ModelStatus (..),++    -- ** TargetDevice+    TargetDevice (..),++    -- ** TargetPlatformAccelerator+    TargetPlatformAccelerator (..),++    -- ** TargetPlatformArch+    TargetPlatformArch (..),++    -- ** TargetPlatformOs+    TargetPlatformOs (..),++    -- ** Anomaly+    Anomaly (Anomaly'),+    newAnomaly,++    -- ** DatasetDescription+    DatasetDescription (DatasetDescription'),+    newDatasetDescription,++    -- ** DatasetGroundTruthManifest+    DatasetGroundTruthManifest (DatasetGroundTruthManifest'),+    newDatasetGroundTruthManifest,++    -- ** DatasetImageStats+    DatasetImageStats (DatasetImageStats'),+    newDatasetImageStats,++    -- ** DatasetMetadata+    DatasetMetadata (DatasetMetadata'),+    newDatasetMetadata,++    -- ** DatasetSource+    DatasetSource (DatasetSource'),+    newDatasetSource,++    -- ** DetectAnomalyResult+    DetectAnomalyResult (DetectAnomalyResult'),+    newDetectAnomalyResult,++    -- ** GreengrassConfiguration+    GreengrassConfiguration (GreengrassConfiguration'),+    newGreengrassConfiguration,++    -- ** GreengrassOutputDetails+    GreengrassOutputDetails (GreengrassOutputDetails'),+    newGreengrassOutputDetails,++    -- ** ImageSource+    ImageSource (ImageSource'),+    newImageSource,++    -- ** InputS3Object+    InputS3Object (InputS3Object'),+    newInputS3Object,++    -- ** ModelDescription+    ModelDescription (ModelDescription'),+    newModelDescription,++    -- ** ModelMetadata+    ModelMetadata (ModelMetadata'),+    newModelMetadata,++    -- ** ModelPackagingConfiguration+    ModelPackagingConfiguration (ModelPackagingConfiguration'),+    newModelPackagingConfiguration,++    -- ** ModelPackagingDescription+    ModelPackagingDescription (ModelPackagingDescription'),+    newModelPackagingDescription,++    -- ** ModelPackagingJobMetadata+    ModelPackagingJobMetadata (ModelPackagingJobMetadata'),+    newModelPackagingJobMetadata,++    -- ** ModelPackagingOutputDetails+    ModelPackagingOutputDetails (ModelPackagingOutputDetails'),+    newModelPackagingOutputDetails,++    -- ** ModelPerformance+    ModelPerformance (ModelPerformance'),+    newModelPerformance,++    -- ** OutputConfig+    OutputConfig (OutputConfig'),+    newOutputConfig,++    -- ** OutputS3Object+    OutputS3Object (OutputS3Object'),+    newOutputS3Object,++    -- ** PixelAnomaly+    PixelAnomaly (PixelAnomaly'),+    newPixelAnomaly,++    -- ** ProjectDescription+    ProjectDescription (ProjectDescription'),+    newProjectDescription,++    -- ** ProjectMetadata+    ProjectMetadata (ProjectMetadata'),+    newProjectMetadata,++    -- ** S3Location+    S3Location (S3Location'),+    newS3Location,++    -- ** Tag+    Tag (Tag'),+    newTag,++    -- ** TargetPlatform+    TargetPlatform (TargetPlatform'),+    newTargetPlatform,+  )+where++import Amazonka.LookoutVision.CreateDataset+import Amazonka.LookoutVision.CreateModel+import Amazonka.LookoutVision.CreateProject+import Amazonka.LookoutVision.DeleteDataset+import Amazonka.LookoutVision.DeleteModel+import Amazonka.LookoutVision.DeleteProject+import Amazonka.LookoutVision.DescribeDataset+import Amazonka.LookoutVision.DescribeModel+import Amazonka.LookoutVision.DescribeModelPackagingJob+import Amazonka.LookoutVision.DescribeProject+import Amazonka.LookoutVision.DetectAnomalies+import Amazonka.LookoutVision.Lens+import Amazonka.LookoutVision.ListDatasetEntries+import Amazonka.LookoutVision.ListModelPackagingJobs+import Amazonka.LookoutVision.ListModels+import Amazonka.LookoutVision.ListProjects+import Amazonka.LookoutVision.ListTagsForResource+import Amazonka.LookoutVision.StartModel+import Amazonka.LookoutVision.StartModelPackagingJob+import Amazonka.LookoutVision.StopModel+import Amazonka.LookoutVision.TagResource+import Amazonka.LookoutVision.Types+import Amazonka.LookoutVision.UntagResource+import Amazonka.LookoutVision.UpdateDatasetEntries+import Amazonka.LookoutVision.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 'LookoutVision'.++-- $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/LookoutVision/CreateDataset.hs view
@@ -0,0 +1,298 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.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 a new dataset in an Amazon Lookout for Vision project.+-- @CreateDataset@ can create a training or a test dataset from a valid+-- dataset source (@DatasetSource@).+--+-- If you want a single dataset project, specify @train@ for the value of+-- @DatasetType@.+--+-- To have a project with separate training and test datasets, call+-- @CreateDataset@ twice. On the first call, specify @train@ for the value+-- of @DatasetType@. On the second call, specify @test@ for the value of+-- @DatasetType@.+--+-- This operation requires permissions to perform the+-- @lookoutvision:CreateDataset@ operation.+module Amazonka.LookoutVision.CreateDataset+  ( -- * Creating a Request+    CreateDataset (..),+    newCreateDataset,++    -- * Request Lenses+    createDataset_clientToken,+    createDataset_datasetSource,+    createDataset_projectName,+    createDataset_datasetType,++    -- * Destructuring the Response+    CreateDatasetResponse (..),+    newCreateDatasetResponse,++    -- * Response Lenses+    createDatasetResponse_datasetMetadata,+    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.LookoutVision.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'+  { -- | ClientToken is an idempotency token that ensures a call to+    -- @CreateDataset@ completes only once. You choose the value to pass. For+    -- example, An issue might prevent you from getting a response from+    -- @CreateDataset@. In this case, safely retry your call to @CreateDataset@+    -- by using the same @ClientToken@ parameter value.+    --+    -- If you don\'t supply a value for @ClientToken@, the AWS SDK you are+    -- using inserts a value for you. This prevents retries after a network+    -- error from making multiple dataset creation requests. You\'ll need to+    -- provide your own value for other use cases.+    --+    -- An error occurs if the other input parameters are not the same as in the+    -- first request. Using a different value for @ClientToken@ is considered a+    -- new call to @CreateDataset@. An idempotency token is active for 8 hours.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The location of the manifest file that Amazon Lookout for Vision uses to+    -- create the dataset.+    --+    -- If you don\'t specify @DatasetSource@, an empty dataset is created and+    -- the operation synchronously returns. Later, you can add JSON Lines by+    -- calling UpdateDatasetEntries.+    --+    -- If you specify a value for @DataSource@, the manifest at the S3 location+    -- is validated and used to create the dataset. The call to @CreateDataset@+    -- is asynchronous and might take a while to complete. To find out the+    -- current status, Check the value of @Status@ returned in a call to+    -- DescribeDataset.+    datasetSource :: Prelude.Maybe DatasetSource,+    -- | The name of the project in which you want to create a dataset.+    projectName :: Prelude.Text,+    -- | The type of the dataset. Specify @train@ for a training dataset. Specify+    -- @test@ for a test dataset.+    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:+--+-- 'clientToken', 'createDataset_clientToken' - ClientToken is an idempotency token that ensures a call to+-- @CreateDataset@ completes only once. You choose the value to pass. For+-- example, An issue might prevent you from getting a response from+-- @CreateDataset@. In this case, safely retry your call to @CreateDataset@+-- by using the same @ClientToken@ parameter value.+--+-- If you don\'t supply a value for @ClientToken@, the AWS SDK you are+-- using inserts a value for you. This prevents retries after a network+-- error from making multiple dataset creation requests. You\'ll need to+-- provide your own value for other use cases.+--+-- An error occurs if the other input parameters are not the same as in the+-- first request. Using a different value for @ClientToken@ is considered a+-- new call to @CreateDataset@. An idempotency token is active for 8 hours.+--+-- 'datasetSource', 'createDataset_datasetSource' - The location of the manifest file that Amazon Lookout for Vision uses to+-- create the dataset.+--+-- If you don\'t specify @DatasetSource@, an empty dataset is created and+-- the operation synchronously returns. Later, you can add JSON Lines by+-- calling UpdateDatasetEntries.+--+-- If you specify a value for @DataSource@, the manifest at the S3 location+-- is validated and used to create the dataset. The call to @CreateDataset@+-- is asynchronous and might take a while to complete. To find out the+-- current status, Check the value of @Status@ returned in a call to+-- DescribeDataset.+--+-- 'projectName', 'createDataset_projectName' - The name of the project in which you want to create a dataset.+--+-- 'datasetType', 'createDataset_datasetType' - The type of the dataset. Specify @train@ for a training dataset. Specify+-- @test@ for a test dataset.+newCreateDataset ::+  -- | 'projectName'+  Prelude.Text ->+  -- | 'datasetType'+  Prelude.Text ->+  CreateDataset+newCreateDataset pProjectName_ pDatasetType_ =+  CreateDataset'+    { clientToken = Prelude.Nothing,+      datasetSource = Prelude.Nothing,+      projectName = pProjectName_,+      datasetType = pDatasetType_+    }++-- | ClientToken is an idempotency token that ensures a call to+-- @CreateDataset@ completes only once. You choose the value to pass. For+-- example, An issue might prevent you from getting a response from+-- @CreateDataset@. In this case, safely retry your call to @CreateDataset@+-- by using the same @ClientToken@ parameter value.+--+-- If you don\'t supply a value for @ClientToken@, the AWS SDK you are+-- using inserts a value for you. This prevents retries after a network+-- error from making multiple dataset creation requests. You\'ll need to+-- provide your own value for other use cases.+--+-- An error occurs if the other input parameters are not the same as in the+-- first request. Using a different value for @ClientToken@ is considered a+-- new call to @CreateDataset@. An idempotency token is active for 8 hours.+createDataset_clientToken :: Lens.Lens' CreateDataset (Prelude.Maybe Prelude.Text)+createDataset_clientToken = Lens.lens (\CreateDataset' {clientToken} -> clientToken) (\s@CreateDataset' {} a -> s {clientToken = a} :: CreateDataset)++-- | The location of the manifest file that Amazon Lookout for Vision uses to+-- create the dataset.+--+-- If you don\'t specify @DatasetSource@, an empty dataset is created and+-- the operation synchronously returns. Later, you can add JSON Lines by+-- calling UpdateDatasetEntries.+--+-- If you specify a value for @DataSource@, the manifest at the S3 location+-- is validated and used to create the dataset. The call to @CreateDataset@+-- is asynchronous and might take a while to complete. To find out the+-- current status, Check the value of @Status@ returned in a call to+-- DescribeDataset.+createDataset_datasetSource :: Lens.Lens' CreateDataset (Prelude.Maybe DatasetSource)+createDataset_datasetSource = Lens.lens (\CreateDataset' {datasetSource} -> datasetSource) (\s@CreateDataset' {} a -> s {datasetSource = a} :: CreateDataset)++-- | The name of the project in which you want to create a dataset.+createDataset_projectName :: Lens.Lens' CreateDataset Prelude.Text+createDataset_projectName = Lens.lens (\CreateDataset' {projectName} -> projectName) (\s@CreateDataset' {} a -> s {projectName = a} :: CreateDataset)++-- | The type of the dataset. Specify @train@ for a training dataset. Specify+-- @test@ for a test dataset.+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..?> "DatasetMetadata")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateDataset where+  hashWithSalt _salt CreateDataset' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` datasetSource+      `Prelude.hashWithSalt` projectName+      `Prelude.hashWithSalt` datasetType++instance Prelude.NFData CreateDataset where+  rnf CreateDataset' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf datasetSource+      `Prelude.seq` Prelude.rnf projectName+      `Prelude.seq` Prelude.rnf datasetType++instance Data.ToHeaders CreateDataset where+  toHeaders CreateDataset' {..} =+    Prelude.mconcat+      [ "X-Amzn-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToJSON CreateDataset where+  toJSON CreateDataset' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DatasetSource" Data..=) Prelude.<$> datasetSource,+            Prelude.Just ("DatasetType" Data..= datasetType)+          ]+      )++instance Data.ToPath CreateDataset where+  toPath CreateDataset' {..} =+    Prelude.mconcat+      [ "/2020-11-20/projects/",+        Data.toBS projectName,+        "/datasets"+      ]++instance Data.ToQuery CreateDataset where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateDatasetResponse' smart constructor.+data CreateDatasetResponse = CreateDatasetResponse'+  { -- | Information about the dataset.+    datasetMetadata :: Prelude.Maybe DatasetMetadata,+    -- | 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:+--+-- 'datasetMetadata', 'createDatasetResponse_datasetMetadata' - Information about the dataset.+--+-- 'httpStatus', 'createDatasetResponse_httpStatus' - The response's http status code.+newCreateDatasetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateDatasetResponse+newCreateDatasetResponse pHttpStatus_ =+  CreateDatasetResponse'+    { datasetMetadata =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Information about the dataset.+createDatasetResponse_datasetMetadata :: Lens.Lens' CreateDatasetResponse (Prelude.Maybe DatasetMetadata)+createDatasetResponse_datasetMetadata = Lens.lens (\CreateDatasetResponse' {datasetMetadata} -> datasetMetadata) (\s@CreateDatasetResponse' {} a -> s {datasetMetadata = 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 datasetMetadata+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutVision/CreateModel.hs view
@@ -0,0 +1,301 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.CreateModel+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new version of a model within an an Amazon Lookout for Vision+-- project. @CreateModel@ is an asynchronous operation in which Amazon+-- Lookout for Vision trains, tests, and evaluates a new version of a+-- model.+--+-- To get the current status, check the @Status@ field returned in the+-- response from DescribeModel.+--+-- If the project has a single dataset, Amazon Lookout for Vision+-- internally splits the dataset to create a training and a test dataset.+-- If the project has a training and a test dataset, Lookout for Vision+-- uses the respective datasets to train and test the model.+--+-- After training completes, the evaluation metrics are stored at the+-- location specified in @OutputConfig@.+--+-- This operation requires permissions to perform the+-- @lookoutvision:CreateModel@ operation. If you want to tag your model,+-- you also require permission to the @lookoutvision:TagResource@+-- operation.+module Amazonka.LookoutVision.CreateModel+  ( -- * Creating a Request+    CreateModel (..),+    newCreateModel,++    -- * Request Lenses+    createModel_clientToken,+    createModel_description,+    createModel_kmsKeyId,+    createModel_tags,+    createModel_projectName,+    createModel_outputConfig,++    -- * Destructuring the Response+    CreateModelResponse (..),+    newCreateModelResponse,++    -- * Response Lenses+    createModelResponse_modelMetadata,+    createModelResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutVision.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateModel' smart constructor.+data CreateModel = CreateModel'+  { -- | ClientToken is an idempotency token that ensures a call to @CreateModel@+    -- completes only once. You choose the value to pass. For example, An issue+    -- might prevent you from getting a response from @CreateModel@. In this+    -- case, safely retry your call to @CreateModel@ by using the same+    -- @ClientToken@ parameter value.+    --+    -- If you don\'t supply a value for @ClientToken@, the AWS SDK you are+    -- using inserts a value for you. This prevents retries after a network+    -- error from starting multiple training jobs. You\'ll need to provide your+    -- own value for other use cases.+    --+    -- An error occurs if the other input parameters are not the same as in the+    -- first request. Using a different value for @ClientToken@ is considered a+    -- new call to @CreateModel@. An idempotency token is active for 8 hours.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | A description for the version of the model.+    description :: Prelude.Maybe Prelude.Text,+    -- | The identifier for your AWS KMS key. The key is used to encrypt training+    -- and test images copied into the service for model training. Your source+    -- images are unaffected. If this parameter is not specified, the copied+    -- images are encrypted by a key that AWS owns and manages.+    kmsKeyId :: Prelude.Maybe Prelude.Text,+    -- | A set of tags (key-value pairs) that you want to attach to the model.+    tags :: Prelude.Maybe [Tag],+    -- | The name of the project in which you want to create a model version.+    projectName :: Prelude.Text,+    -- | The location where Amazon Lookout for Vision saves the training results.+    outputConfig :: OutputConfig+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateModel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createModel_clientToken' - ClientToken is an idempotency token that ensures a call to @CreateModel@+-- completes only once. You choose the value to pass. For example, An issue+-- might prevent you from getting a response from @CreateModel@. In this+-- case, safely retry your call to @CreateModel@ by using the same+-- @ClientToken@ parameter value.+--+-- If you don\'t supply a value for @ClientToken@, the AWS SDK you are+-- using inserts a value for you. This prevents retries after a network+-- error from starting multiple training jobs. You\'ll need to provide your+-- own value for other use cases.+--+-- An error occurs if the other input parameters are not the same as in the+-- first request. Using a different value for @ClientToken@ is considered a+-- new call to @CreateModel@. An idempotency token is active for 8 hours.+--+-- 'description', 'createModel_description' - A description for the version of the model.+--+-- 'kmsKeyId', 'createModel_kmsKeyId' - The identifier for your AWS KMS key. The key is used to encrypt training+-- and test images copied into the service for model training. Your source+-- images are unaffected. If this parameter is not specified, the copied+-- images are encrypted by a key that AWS owns and manages.+--+-- 'tags', 'createModel_tags' - A set of tags (key-value pairs) that you want to attach to the model.+--+-- 'projectName', 'createModel_projectName' - The name of the project in which you want to create a model version.+--+-- 'outputConfig', 'createModel_outputConfig' - The location where Amazon Lookout for Vision saves the training results.+newCreateModel ::+  -- | 'projectName'+  Prelude.Text ->+  -- | 'outputConfig'+  OutputConfig ->+  CreateModel+newCreateModel pProjectName_ pOutputConfig_ =+  CreateModel'+    { clientToken = Prelude.Nothing,+      description = Prelude.Nothing,+      kmsKeyId = Prelude.Nothing,+      tags = Prelude.Nothing,+      projectName = pProjectName_,+      outputConfig = pOutputConfig_+    }++-- | ClientToken is an idempotency token that ensures a call to @CreateModel@+-- completes only once. You choose the value to pass. For example, An issue+-- might prevent you from getting a response from @CreateModel@. In this+-- case, safely retry your call to @CreateModel@ by using the same+-- @ClientToken@ parameter value.+--+-- If you don\'t supply a value for @ClientToken@, the AWS SDK you are+-- using inserts a value for you. This prevents retries after a network+-- error from starting multiple training jobs. You\'ll need to provide your+-- own value for other use cases.+--+-- An error occurs if the other input parameters are not the same as in the+-- first request. Using a different value for @ClientToken@ is considered a+-- new call to @CreateModel@. An idempotency token is active for 8 hours.+createModel_clientToken :: Lens.Lens' CreateModel (Prelude.Maybe Prelude.Text)+createModel_clientToken = Lens.lens (\CreateModel' {clientToken} -> clientToken) (\s@CreateModel' {} a -> s {clientToken = a} :: CreateModel)++-- | A description for the version of the model.+createModel_description :: Lens.Lens' CreateModel (Prelude.Maybe Prelude.Text)+createModel_description = Lens.lens (\CreateModel' {description} -> description) (\s@CreateModel' {} a -> s {description = a} :: CreateModel)++-- | The identifier for your AWS KMS key. The key is used to encrypt training+-- and test images copied into the service for model training. Your source+-- images are unaffected. If this parameter is not specified, the copied+-- images are encrypted by a key that AWS owns and manages.+createModel_kmsKeyId :: Lens.Lens' CreateModel (Prelude.Maybe Prelude.Text)+createModel_kmsKeyId = Lens.lens (\CreateModel' {kmsKeyId} -> kmsKeyId) (\s@CreateModel' {} a -> s {kmsKeyId = a} :: CreateModel)++-- | A set of tags (key-value pairs) that you want to attach to the model.+createModel_tags :: Lens.Lens' CreateModel (Prelude.Maybe [Tag])+createModel_tags = Lens.lens (\CreateModel' {tags} -> tags) (\s@CreateModel' {} a -> s {tags = a} :: CreateModel) Prelude.. Lens.mapping Lens.coerced++-- | The name of the project in which you want to create a model version.+createModel_projectName :: Lens.Lens' CreateModel Prelude.Text+createModel_projectName = Lens.lens (\CreateModel' {projectName} -> projectName) (\s@CreateModel' {} a -> s {projectName = a} :: CreateModel)++-- | The location where Amazon Lookout for Vision saves the training results.+createModel_outputConfig :: Lens.Lens' CreateModel OutputConfig+createModel_outputConfig = Lens.lens (\CreateModel' {outputConfig} -> outputConfig) (\s@CreateModel' {} a -> s {outputConfig = a} :: CreateModel)++instance Core.AWSRequest CreateModel where+  type AWSResponse CreateModel = CreateModelResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateModelResponse'+            Prelude.<$> (x Data..?> "ModelMetadata")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateModel where+  hashWithSalt _salt CreateModel' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` kmsKeyId+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` projectName+      `Prelude.hashWithSalt` outputConfig++instance Prelude.NFData CreateModel where+  rnf CreateModel' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf kmsKeyId+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf projectName+      `Prelude.seq` Prelude.rnf outputConfig++instance Data.ToHeaders CreateModel where+  toHeaders CreateModel' {..} =+    Prelude.mconcat+      [ "X-Amzn-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToJSON CreateModel where+  toJSON CreateModel' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Description" Data..=) Prelude.<$> description,+            ("KmsKeyId" Data..=) Prelude.<$> kmsKeyId,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("OutputConfig" Data..= outputConfig)+          ]+      )++instance Data.ToPath CreateModel where+  toPath CreateModel' {..} =+    Prelude.mconcat+      [ "/2020-11-20/projects/",+        Data.toBS projectName,+        "/models"+      ]++instance Data.ToQuery CreateModel where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateModelResponse' smart constructor.+data CreateModelResponse = CreateModelResponse'+  { -- | The response from a call to @CreateModel@.+    modelMetadata :: Prelude.Maybe ModelMetadata,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateModelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'modelMetadata', 'createModelResponse_modelMetadata' - The response from a call to @CreateModel@.+--+-- 'httpStatus', 'createModelResponse_httpStatus' - The response's http status code.+newCreateModelResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateModelResponse+newCreateModelResponse pHttpStatus_ =+  CreateModelResponse'+    { modelMetadata =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The response from a call to @CreateModel@.+createModelResponse_modelMetadata :: Lens.Lens' CreateModelResponse (Prelude.Maybe ModelMetadata)+createModelResponse_modelMetadata = Lens.lens (\CreateModelResponse' {modelMetadata} -> modelMetadata) (\s@CreateModelResponse' {} a -> s {modelMetadata = a} :: CreateModelResponse)++-- | The response's http status code.+createModelResponse_httpStatus :: Lens.Lens' CreateModelResponse Prelude.Int+createModelResponse_httpStatus = Lens.lens (\CreateModelResponse' {httpStatus} -> httpStatus) (\s@CreateModelResponse' {} a -> s {httpStatus = a} :: CreateModelResponse)++instance Prelude.NFData CreateModelResponse where+  rnf CreateModelResponse' {..} =+    Prelude.rnf modelMetadata+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutVision/CreateProject.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.LookoutVision.CreateProject+-- 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 Amazon Lookout for Vision project. After you create the+-- project, add a dataset by calling CreateDataset.+--+-- This operation requires permissions to perform the+-- @lookoutvision:CreateProject@ operation.+module Amazonka.LookoutVision.CreateProject+  ( -- * Creating a Request+    CreateProject (..),+    newCreateProject,++    -- * Request Lenses+    createProject_clientToken,+    createProject_projectName,++    -- * Destructuring the Response+    CreateProjectResponse (..),+    newCreateProjectResponse,++    -- * Response Lenses+    createProjectResponse_projectMetadata,+    createProjectResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutVision.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateProject' smart constructor.+data CreateProject = CreateProject'+  { -- | ClientToken is an idempotency token that ensures a call to+    -- @CreateProject@ completes only once. You choose the value to pass. For+    -- example, An issue might prevent you from getting a response from+    -- @CreateProject@. In this case, safely retry your call to @CreateProject@+    -- by using the same @ClientToken@ parameter value.+    --+    -- If you don\'t supply a value for @ClientToken@, the AWS SDK you are+    -- using inserts a value for you. This prevents retries after a network+    -- error from making multiple project creation requests. You\'ll need to+    -- provide your own value for other use cases.+    --+    -- An error occurs if the other input parameters are not the same as in the+    -- first request. Using a different value for @ClientToken@ is considered a+    -- new call to @CreateProject@. An idempotency token is active for 8 hours.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The name for the project.+    projectName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateProject' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createProject_clientToken' - ClientToken is an idempotency token that ensures a call to+-- @CreateProject@ completes only once. You choose the value to pass. For+-- example, An issue might prevent you from getting a response from+-- @CreateProject@. In this case, safely retry your call to @CreateProject@+-- by using the same @ClientToken@ parameter value.+--+-- If you don\'t supply a value for @ClientToken@, the AWS SDK you are+-- using inserts a value for you. This prevents retries after a network+-- error from making multiple project creation requests. You\'ll need to+-- provide your own value for other use cases.+--+-- An error occurs if the other input parameters are not the same as in the+-- first request. Using a different value for @ClientToken@ is considered a+-- new call to @CreateProject@. An idempotency token is active for 8 hours.+--+-- 'projectName', 'createProject_projectName' - The name for the project.+newCreateProject ::+  -- | 'projectName'+  Prelude.Text ->+  CreateProject+newCreateProject pProjectName_ =+  CreateProject'+    { clientToken = Prelude.Nothing,+      projectName = pProjectName_+    }++-- | ClientToken is an idempotency token that ensures a call to+-- @CreateProject@ completes only once. You choose the value to pass. For+-- example, An issue might prevent you from getting a response from+-- @CreateProject@. In this case, safely retry your call to @CreateProject@+-- by using the same @ClientToken@ parameter value.+--+-- If you don\'t supply a value for @ClientToken@, the AWS SDK you are+-- using inserts a value for you. This prevents retries after a network+-- error from making multiple project creation requests. You\'ll need to+-- provide your own value for other use cases.+--+-- An error occurs if the other input parameters are not the same as in the+-- first request. Using a different value for @ClientToken@ is considered a+-- new call to @CreateProject@. An idempotency token is active for 8 hours.+createProject_clientToken :: Lens.Lens' CreateProject (Prelude.Maybe Prelude.Text)+createProject_clientToken = Lens.lens (\CreateProject' {clientToken} -> clientToken) (\s@CreateProject' {} a -> s {clientToken = a} :: CreateProject)++-- | The name for the project.+createProject_projectName :: Lens.Lens' CreateProject Prelude.Text+createProject_projectName = Lens.lens (\CreateProject' {projectName} -> projectName) (\s@CreateProject' {} a -> s {projectName = a} :: CreateProject)++instance Core.AWSRequest CreateProject where+  type+    AWSResponse CreateProject =+      CreateProjectResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateProjectResponse'+            Prelude.<$> (x Data..?> "ProjectMetadata")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateProject where+  hashWithSalt _salt CreateProject' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` projectName++instance Prelude.NFData CreateProject where+  rnf CreateProject' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf projectName++instance Data.ToHeaders CreateProject where+  toHeaders CreateProject' {..} =+    Prelude.mconcat+      [ "X-Amzn-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToJSON CreateProject where+  toJSON CreateProject' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("ProjectName" Data..= projectName)]+      )++instance Data.ToPath CreateProject where+  toPath = Prelude.const "/2020-11-20/projects"++instance Data.ToQuery CreateProject where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateProjectResponse' smart constructor.+data CreateProjectResponse = CreateProjectResponse'+  { -- | Information about the project.+    projectMetadata :: Prelude.Maybe ProjectMetadata,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateProjectResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'projectMetadata', 'createProjectResponse_projectMetadata' - Information about the project.+--+-- 'httpStatus', 'createProjectResponse_httpStatus' - The response's http status code.+newCreateProjectResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateProjectResponse+newCreateProjectResponse pHttpStatus_ =+  CreateProjectResponse'+    { projectMetadata =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Information about the project.+createProjectResponse_projectMetadata :: Lens.Lens' CreateProjectResponse (Prelude.Maybe ProjectMetadata)+createProjectResponse_projectMetadata = Lens.lens (\CreateProjectResponse' {projectMetadata} -> projectMetadata) (\s@CreateProjectResponse' {} a -> s {projectMetadata = a} :: CreateProjectResponse)++-- | The response's http status code.+createProjectResponse_httpStatus :: Lens.Lens' CreateProjectResponse Prelude.Int+createProjectResponse_httpStatus = Lens.lens (\CreateProjectResponse' {httpStatus} -> httpStatus) (\s@CreateProjectResponse' {} a -> s {httpStatus = a} :: CreateProjectResponse)++instance Prelude.NFData CreateProjectResponse where+  rnf CreateProjectResponse' {..} =+    Prelude.rnf projectMetadata+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutVision/DeleteDataset.hs view
@@ -0,0 +1,240 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.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 an existing Amazon Lookout for Vision @dataset@.+--+-- If your the project has a single dataset, you must create a new dataset+-- before you can create a model.+--+-- If you project has a training dataset and a test dataset consider the+-- following.+--+-- -   If you delete the test dataset, your project reverts to a single+--     dataset project. If you then train the model, Amazon Lookout for+--     Vision internally splits the remaining dataset into a training and+--     test dataset.+--+-- -   If you delete the training dataset, you must create a training+--     dataset before you can create a model.+--+-- This operation requires permissions to perform the+-- @lookoutvision:DeleteDataset@ operation.+module Amazonka.LookoutVision.DeleteDataset+  ( -- * Creating a Request+    DeleteDataset (..),+    newDeleteDataset,++    -- * Request Lenses+    deleteDataset_clientToken,+    deleteDataset_projectName,+    deleteDataset_datasetType,++    -- * Destructuring the Response+    DeleteDatasetResponse (..),+    newDeleteDatasetResponse,++    -- * Response Lenses+    deleteDatasetResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutVision.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'+  { -- | ClientToken is an idempotency token that ensures a call to+    -- @DeleteDataset@ completes only once. You choose the value to pass. For+    -- example, An issue might prevent you from getting a response from+    -- @DeleteDataset@. In this case, safely retry your call to @DeleteDataset@+    -- by using the same @ClientToken@ parameter value.+    --+    -- If you don\'t supply a value for @ClientToken@, the AWS SDK you are+    -- using inserts a value for you. This prevents retries after a network+    -- error from making multiple deletetion requests. You\'ll need to provide+    -- your own value for other use cases.+    --+    -- An error occurs if the other input parameters are not the same as in the+    -- first request. Using a different value for @ClientToken@ is considered a+    -- new call to @DeleteDataset@. An idempotency token is active for 8 hours.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The name of the project that contains the dataset that you want to+    -- delete.+    projectName :: Prelude.Text,+    -- | The type of the dataset to delete. Specify @train@ to delete the+    -- training dataset. Specify @test@ to delete the test dataset. To delete+    -- the dataset in a single dataset project, specify @train@.+    datasetType :: 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:+--+-- 'clientToken', 'deleteDataset_clientToken' - ClientToken is an idempotency token that ensures a call to+-- @DeleteDataset@ completes only once. You choose the value to pass. For+-- example, An issue might prevent you from getting a response from+-- @DeleteDataset@. In this case, safely retry your call to @DeleteDataset@+-- by using the same @ClientToken@ parameter value.+--+-- If you don\'t supply a value for @ClientToken@, the AWS SDK you are+-- using inserts a value for you. This prevents retries after a network+-- error from making multiple deletetion requests. You\'ll need to provide+-- your own value for other use cases.+--+-- An error occurs if the other input parameters are not the same as in the+-- first request. Using a different value for @ClientToken@ is considered a+-- new call to @DeleteDataset@. An idempotency token is active for 8 hours.+--+-- 'projectName', 'deleteDataset_projectName' - The name of the project that contains the dataset that you want to+-- delete.+--+-- 'datasetType', 'deleteDataset_datasetType' - The type of the dataset to delete. Specify @train@ to delete the+-- training dataset. Specify @test@ to delete the test dataset. To delete+-- the dataset in a single dataset project, specify @train@.+newDeleteDataset ::+  -- | 'projectName'+  Prelude.Text ->+  -- | 'datasetType'+  Prelude.Text ->+  DeleteDataset+newDeleteDataset pProjectName_ pDatasetType_ =+  DeleteDataset'+    { clientToken = Prelude.Nothing,+      projectName = pProjectName_,+      datasetType = pDatasetType_+    }++-- | ClientToken is an idempotency token that ensures a call to+-- @DeleteDataset@ completes only once. You choose the value to pass. For+-- example, An issue might prevent you from getting a response from+-- @DeleteDataset@. In this case, safely retry your call to @DeleteDataset@+-- by using the same @ClientToken@ parameter value.+--+-- If you don\'t supply a value for @ClientToken@, the AWS SDK you are+-- using inserts a value for you. This prevents retries after a network+-- error from making multiple deletetion requests. You\'ll need to provide+-- your own value for other use cases.+--+-- An error occurs if the other input parameters are not the same as in the+-- first request. Using a different value for @ClientToken@ is considered a+-- new call to @DeleteDataset@. An idempotency token is active for 8 hours.+deleteDataset_clientToken :: Lens.Lens' DeleteDataset (Prelude.Maybe Prelude.Text)+deleteDataset_clientToken = Lens.lens (\DeleteDataset' {clientToken} -> clientToken) (\s@DeleteDataset' {} a -> s {clientToken = a} :: DeleteDataset)++-- | The name of the project that contains the dataset that you want to+-- delete.+deleteDataset_projectName :: Lens.Lens' DeleteDataset Prelude.Text+deleteDataset_projectName = Lens.lens (\DeleteDataset' {projectName} -> projectName) (\s@DeleteDataset' {} a -> s {projectName = a} :: DeleteDataset)++-- | The type of the dataset to delete. Specify @train@ to delete the+-- training dataset. Specify @test@ to delete the test dataset. To delete+-- the dataset in a single dataset project, specify @train@.+deleteDataset_datasetType :: Lens.Lens' DeleteDataset Prelude.Text+deleteDataset_datasetType = Lens.lens (\DeleteDataset' {datasetType} -> datasetType) (\s@DeleteDataset' {} a -> s {datasetType = a} :: DeleteDataset)++instance Core.AWSRequest DeleteDataset where+  type+    AWSResponse DeleteDataset =+      DeleteDatasetResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteDatasetResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteDataset where+  hashWithSalt _salt DeleteDataset' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` projectName+      `Prelude.hashWithSalt` datasetType++instance Prelude.NFData DeleteDataset where+  rnf DeleteDataset' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf projectName+      `Prelude.seq` Prelude.rnf datasetType++instance Data.ToHeaders DeleteDataset where+  toHeaders DeleteDataset' {..} =+    Prelude.mconcat+      [ "X-Amzn-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToPath DeleteDataset where+  toPath DeleteDataset' {..} =+    Prelude.mconcat+      [ "/2020-11-20/projects/",+        Data.toBS projectName,+        "/datasets/",+        Data.toBS datasetType+      ]++instance Data.ToQuery DeleteDataset where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteDatasetResponse' smart constructor.+data DeleteDatasetResponse = DeleteDatasetResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  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.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'deleteDatasetResponse_httpStatus' - The response's http status code.+newDeleteDatasetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteDatasetResponse+newDeleteDatasetResponse pHttpStatus_ =+  DeleteDatasetResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+deleteDatasetResponse_httpStatus :: Lens.Lens' DeleteDatasetResponse Prelude.Int+deleteDatasetResponse_httpStatus = Lens.lens (\DeleteDatasetResponse' {httpStatus} -> httpStatus) (\s@DeleteDatasetResponse' {} a -> s {httpStatus = a} :: DeleteDatasetResponse)++instance Prelude.NFData DeleteDatasetResponse where+  rnf DeleteDatasetResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/LookoutVision/DeleteModel.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.LookoutVision.DeleteModel+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an Amazon Lookout for Vision model. You can\'t delete a running+-- model. To stop a running model, use the StopModel operation.+--+-- It might take a few seconds to delete a model. To determine if a model+-- has been deleted, call ListModels and check if the version of the model+-- (@ModelVersion@) is in the @Models@ array.+--+-- This operation requires permissions to perform the+-- @lookoutvision:DeleteModel@ operation.+module Amazonka.LookoutVision.DeleteModel+  ( -- * Creating a Request+    DeleteModel (..),+    newDeleteModel,++    -- * Request Lenses+    deleteModel_clientToken,+    deleteModel_projectName,+    deleteModel_modelVersion,++    -- * Destructuring the Response+    DeleteModelResponse (..),+    newDeleteModelResponse,++    -- * Response Lenses+    deleteModelResponse_modelArn,+    deleteModelResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutVision.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteModel' smart constructor.+data DeleteModel = DeleteModel'+  { -- | ClientToken is an idempotency token that ensures a call to @DeleteModel@+    -- completes only once. You choose the value to pass. For example, an issue+    -- might prevent you from getting a response from @DeleteModel@. In this+    -- case, safely retry your call to @DeleteModel@ by using the same+    -- @ClientToken@ parameter value.+    --+    -- If you don\'t supply a value for ClientToken, the AWS SDK you are using+    -- inserts a value for you. This prevents retries after a network error+    -- from making multiple model deletion requests. You\'ll need to provide+    -- your own value for other use cases.+    --+    -- An error occurs if the other input parameters are not the same as in the+    -- first request. Using a different value for @ClientToken@ is considered a+    -- new call to @DeleteModel@. An idempotency token is active for 8 hours.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The name of the project that contains the model that you want to delete.+    projectName :: Prelude.Text,+    -- | The version of the model that you want to delete.+    modelVersion :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteModel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'deleteModel_clientToken' - ClientToken is an idempotency token that ensures a call to @DeleteModel@+-- completes only once. You choose the value to pass. For example, an issue+-- might prevent you from getting a response from @DeleteModel@. In this+-- case, safely retry your call to @DeleteModel@ by using the same+-- @ClientToken@ parameter value.+--+-- If you don\'t supply a value for ClientToken, the AWS SDK you are using+-- inserts a value for you. This prevents retries after a network error+-- from making multiple model deletion requests. You\'ll need to provide+-- your own value for other use cases.+--+-- An error occurs if the other input parameters are not the same as in the+-- first request. Using a different value for @ClientToken@ is considered a+-- new call to @DeleteModel@. An idempotency token is active for 8 hours.+--+-- 'projectName', 'deleteModel_projectName' - The name of the project that contains the model that you want to delete.+--+-- 'modelVersion', 'deleteModel_modelVersion' - The version of the model that you want to delete.+newDeleteModel ::+  -- | 'projectName'+  Prelude.Text ->+  -- | 'modelVersion'+  Prelude.Text ->+  DeleteModel+newDeleteModel pProjectName_ pModelVersion_ =+  DeleteModel'+    { clientToken = Prelude.Nothing,+      projectName = pProjectName_,+      modelVersion = pModelVersion_+    }++-- | ClientToken is an idempotency token that ensures a call to @DeleteModel@+-- completes only once. You choose the value to pass. For example, an issue+-- might prevent you from getting a response from @DeleteModel@. In this+-- case, safely retry your call to @DeleteModel@ by using the same+-- @ClientToken@ parameter value.+--+-- If you don\'t supply a value for ClientToken, the AWS SDK you are using+-- inserts a value for you. This prevents retries after a network error+-- from making multiple model deletion requests. You\'ll need to provide+-- your own value for other use cases.+--+-- An error occurs if the other input parameters are not the same as in the+-- first request. Using a different value for @ClientToken@ is considered a+-- new call to @DeleteModel@. An idempotency token is active for 8 hours.+deleteModel_clientToken :: Lens.Lens' DeleteModel (Prelude.Maybe Prelude.Text)+deleteModel_clientToken = Lens.lens (\DeleteModel' {clientToken} -> clientToken) (\s@DeleteModel' {} a -> s {clientToken = a} :: DeleteModel)++-- | The name of the project that contains the model that you want to delete.+deleteModel_projectName :: Lens.Lens' DeleteModel Prelude.Text+deleteModel_projectName = Lens.lens (\DeleteModel' {projectName} -> projectName) (\s@DeleteModel' {} a -> s {projectName = a} :: DeleteModel)++-- | The version of the model that you want to delete.+deleteModel_modelVersion :: Lens.Lens' DeleteModel Prelude.Text+deleteModel_modelVersion = Lens.lens (\DeleteModel' {modelVersion} -> modelVersion) (\s@DeleteModel' {} a -> s {modelVersion = a} :: DeleteModel)++instance Core.AWSRequest DeleteModel where+  type AWSResponse DeleteModel = DeleteModelResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteModelResponse'+            Prelude.<$> (x Data..?> "ModelArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteModel where+  hashWithSalt _salt DeleteModel' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` projectName+      `Prelude.hashWithSalt` modelVersion++instance Prelude.NFData DeleteModel where+  rnf DeleteModel' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf projectName+      `Prelude.seq` Prelude.rnf modelVersion++instance Data.ToHeaders DeleteModel where+  toHeaders DeleteModel' {..} =+    Prelude.mconcat+      [ "X-Amzn-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToPath DeleteModel where+  toPath DeleteModel' {..} =+    Prelude.mconcat+      [ "/2020-11-20/projects/",+        Data.toBS projectName,+        "/models/",+        Data.toBS modelVersion+      ]++instance Data.ToQuery DeleteModel where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteModelResponse' smart constructor.+data DeleteModelResponse = DeleteModelResponse'+  { -- | The Amazon Resource Name (ARN) of the model that was deleted.+    modelArn :: 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 'DeleteModelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'modelArn', 'deleteModelResponse_modelArn' - The Amazon Resource Name (ARN) of the model that was deleted.+--+-- 'httpStatus', 'deleteModelResponse_httpStatus' - The response's http status code.+newDeleteModelResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteModelResponse+newDeleteModelResponse pHttpStatus_ =+  DeleteModelResponse'+    { modelArn = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the model that was deleted.+deleteModelResponse_modelArn :: Lens.Lens' DeleteModelResponse (Prelude.Maybe Prelude.Text)+deleteModelResponse_modelArn = Lens.lens (\DeleteModelResponse' {modelArn} -> modelArn) (\s@DeleteModelResponse' {} a -> s {modelArn = a} :: DeleteModelResponse)++-- | The response's http status code.+deleteModelResponse_httpStatus :: Lens.Lens' DeleteModelResponse Prelude.Int+deleteModelResponse_httpStatus = Lens.lens (\DeleteModelResponse' {httpStatus} -> httpStatus) (\s@DeleteModelResponse' {} a -> s {httpStatus = a} :: DeleteModelResponse)++instance Prelude.NFData DeleteModelResponse where+  rnf DeleteModelResponse' {..} =+    Prelude.rnf modelArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutVision/DeleteProject.hs view
@@ -0,0 +1,222 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.DeleteProject+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an Amazon Lookout for Vision project.+--+-- To delete a project, you must first delete each version of the model+-- associated with the project. To delete a model use the DeleteModel+-- operation.+--+-- You also have to delete the dataset(s) associated with the model. For+-- more information, see DeleteDataset. The images referenced by the+-- training and test datasets aren\'t deleted.+--+-- This operation requires permissions to perform the+-- @lookoutvision:DeleteProject@ operation.+module Amazonka.LookoutVision.DeleteProject+  ( -- * Creating a Request+    DeleteProject (..),+    newDeleteProject,++    -- * Request Lenses+    deleteProject_clientToken,+    deleteProject_projectName,++    -- * Destructuring the Response+    DeleteProjectResponse (..),+    newDeleteProjectResponse,++    -- * Response Lenses+    deleteProjectResponse_projectArn,+    deleteProjectResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutVision.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteProject' smart constructor.+data DeleteProject = DeleteProject'+  { -- | ClientToken is an idempotency token that ensures a call to+    -- @DeleteProject@ completes only once. You choose the value to pass. For+    -- example, An issue might prevent you from getting a response from+    -- @DeleteProject@. In this case, safely retry your call to @DeleteProject@+    -- by using the same @ClientToken@ parameter value.+    --+    -- If you don\'t supply a value for @ClientToken@, the AWS SDK you are+    -- using inserts a value for you. This prevents retries after a network+    -- error from making multiple project deletion requests. You\'ll need to+    -- provide your own value for other use cases.+    --+    -- An error occurs if the other input parameters are not the same as in the+    -- first request. Using a different value for @ClientToken@ is considered a+    -- new call to @DeleteProject@. An idempotency token is active for 8 hours.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The name of the project to delete.+    projectName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteProject' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'deleteProject_clientToken' - ClientToken is an idempotency token that ensures a call to+-- @DeleteProject@ completes only once. You choose the value to pass. For+-- example, An issue might prevent you from getting a response from+-- @DeleteProject@. In this case, safely retry your call to @DeleteProject@+-- by using the same @ClientToken@ parameter value.+--+-- If you don\'t supply a value for @ClientToken@, the AWS SDK you are+-- using inserts a value for you. This prevents retries after a network+-- error from making multiple project deletion requests. You\'ll need to+-- provide your own value for other use cases.+--+-- An error occurs if the other input parameters are not the same as in the+-- first request. Using a different value for @ClientToken@ is considered a+-- new call to @DeleteProject@. An idempotency token is active for 8 hours.+--+-- 'projectName', 'deleteProject_projectName' - The name of the project to delete.+newDeleteProject ::+  -- | 'projectName'+  Prelude.Text ->+  DeleteProject+newDeleteProject pProjectName_ =+  DeleteProject'+    { clientToken = Prelude.Nothing,+      projectName = pProjectName_+    }++-- | ClientToken is an idempotency token that ensures a call to+-- @DeleteProject@ completes only once. You choose the value to pass. For+-- example, An issue might prevent you from getting a response from+-- @DeleteProject@. In this case, safely retry your call to @DeleteProject@+-- by using the same @ClientToken@ parameter value.+--+-- If you don\'t supply a value for @ClientToken@, the AWS SDK you are+-- using inserts a value for you. This prevents retries after a network+-- error from making multiple project deletion requests. You\'ll need to+-- provide your own value for other use cases.+--+-- An error occurs if the other input parameters are not the same as in the+-- first request. Using a different value for @ClientToken@ is considered a+-- new call to @DeleteProject@. An idempotency token is active for 8 hours.+deleteProject_clientToken :: Lens.Lens' DeleteProject (Prelude.Maybe Prelude.Text)+deleteProject_clientToken = Lens.lens (\DeleteProject' {clientToken} -> clientToken) (\s@DeleteProject' {} a -> s {clientToken = a} :: DeleteProject)++-- | The name of the project to delete.+deleteProject_projectName :: Lens.Lens' DeleteProject Prelude.Text+deleteProject_projectName = Lens.lens (\DeleteProject' {projectName} -> projectName) (\s@DeleteProject' {} a -> s {projectName = a} :: DeleteProject)++instance Core.AWSRequest DeleteProject where+  type+    AWSResponse DeleteProject =+      DeleteProjectResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteProjectResponse'+            Prelude.<$> (x Data..?> "ProjectArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteProject where+  hashWithSalt _salt DeleteProject' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` projectName++instance Prelude.NFData DeleteProject where+  rnf DeleteProject' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf projectName++instance Data.ToHeaders DeleteProject where+  toHeaders DeleteProject' {..} =+    Prelude.mconcat+      [ "X-Amzn-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToPath DeleteProject where+  toPath DeleteProject' {..} =+    Prelude.mconcat+      ["/2020-11-20/projects/", Data.toBS projectName]++instance Data.ToQuery DeleteProject where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteProjectResponse' smart constructor.+data DeleteProjectResponse = DeleteProjectResponse'+  { -- | The Amazon Resource Name (ARN) of the project that was deleted.+    projectArn :: 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 'DeleteProjectResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'projectArn', 'deleteProjectResponse_projectArn' - The Amazon Resource Name (ARN) of the project that was deleted.+--+-- 'httpStatus', 'deleteProjectResponse_httpStatus' - The response's http status code.+newDeleteProjectResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteProjectResponse+newDeleteProjectResponse pHttpStatus_ =+  DeleteProjectResponse'+    { projectArn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the project that was deleted.+deleteProjectResponse_projectArn :: Lens.Lens' DeleteProjectResponse (Prelude.Maybe Prelude.Text)+deleteProjectResponse_projectArn = Lens.lens (\DeleteProjectResponse' {projectArn} -> projectArn) (\s@DeleteProjectResponse' {} a -> s {projectArn = a} :: DeleteProjectResponse)++-- | The response's http status code.+deleteProjectResponse_httpStatus :: Lens.Lens' DeleteProjectResponse Prelude.Int+deleteProjectResponse_httpStatus = Lens.lens (\DeleteProjectResponse' {httpStatus} -> httpStatus) (\s@DeleteProjectResponse' {} a -> s {httpStatus = a} :: DeleteProjectResponse)++instance Prelude.NFData DeleteProjectResponse where+  rnf DeleteProjectResponse' {..} =+    Prelude.rnf projectArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutVision/DescribeDataset.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.LookoutVision.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)+--+-- Describe an Amazon Lookout for Vision dataset.+--+-- This operation requires permissions to perform the+-- @lookoutvision:DescribeDataset@ operation.+module Amazonka.LookoutVision.DescribeDataset+  ( -- * Creating a Request+    DescribeDataset (..),+    newDescribeDataset,++    -- * Request Lenses+    describeDataset_projectName,+    describeDataset_datasetType,++    -- * Destructuring the Response+    DescribeDatasetResponse (..),+    newDescribeDatasetResponse,++    -- * Response Lenses+    describeDatasetResponse_datasetDescription,+    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.LookoutVision.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 name of the project that contains the dataset that you want to+    -- describe.+    projectName :: Prelude.Text,+    -- | The type of the dataset to describe. Specify @train@ to describe the+    -- training dataset. Specify @test@ to describe the test dataset. If you+    -- have a single dataset project, specify @train@+    datasetType :: 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:+--+-- 'projectName', 'describeDataset_projectName' - The name of the project that contains the dataset that you want to+-- describe.+--+-- 'datasetType', 'describeDataset_datasetType' - The type of the dataset to describe. Specify @train@ to describe the+-- training dataset. Specify @test@ to describe the test dataset. If you+-- have a single dataset project, specify @train@+newDescribeDataset ::+  -- | 'projectName'+  Prelude.Text ->+  -- | 'datasetType'+  Prelude.Text ->+  DescribeDataset+newDescribeDataset pProjectName_ pDatasetType_ =+  DescribeDataset'+    { projectName = pProjectName_,+      datasetType = pDatasetType_+    }++-- | The name of the project that contains the dataset that you want to+-- describe.+describeDataset_projectName :: Lens.Lens' DescribeDataset Prelude.Text+describeDataset_projectName = Lens.lens (\DescribeDataset' {projectName} -> projectName) (\s@DescribeDataset' {} a -> s {projectName = a} :: DescribeDataset)++-- | The type of the dataset to describe. Specify @train@ to describe the+-- training dataset. Specify @test@ to describe the test dataset. If you+-- have a single dataset project, specify @train@+describeDataset_datasetType :: Lens.Lens' DescribeDataset Prelude.Text+describeDataset_datasetType = Lens.lens (\DescribeDataset' {datasetType} -> datasetType) (\s@DescribeDataset' {} a -> s {datasetType = a} :: DescribeDataset)++instance Core.AWSRequest DescribeDataset where+  type+    AWSResponse DescribeDataset =+      DescribeDatasetResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeDatasetResponse'+            Prelude.<$> (x Data..?> "DatasetDescription")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeDataset where+  hashWithSalt _salt DescribeDataset' {..} =+    _salt+      `Prelude.hashWithSalt` projectName+      `Prelude.hashWithSalt` datasetType++instance Prelude.NFData DescribeDataset where+  rnf DescribeDataset' {..} =+    Prelude.rnf projectName+      `Prelude.seq` Prelude.rnf datasetType++instance Data.ToHeaders DescribeDataset where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeDataset where+  toPath DescribeDataset' {..} =+    Prelude.mconcat+      [ "/2020-11-20/projects/",+        Data.toBS projectName,+        "/datasets/",+        Data.toBS datasetType+      ]++instance Data.ToQuery DescribeDataset where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeDatasetResponse' smart constructor.+data DescribeDatasetResponse = DescribeDatasetResponse'+  { -- | The description of the requested dataset.+    datasetDescription :: Prelude.Maybe DatasetDescription,+    -- | 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:+--+-- 'datasetDescription', 'describeDatasetResponse_datasetDescription' - The description of the requested dataset.+--+-- 'httpStatus', 'describeDatasetResponse_httpStatus' - The response's http status code.+newDescribeDatasetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeDatasetResponse+newDescribeDatasetResponse pHttpStatus_ =+  DescribeDatasetResponse'+    { datasetDescription =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The description of the requested dataset.+describeDatasetResponse_datasetDescription :: Lens.Lens' DescribeDatasetResponse (Prelude.Maybe DatasetDescription)+describeDatasetResponse_datasetDescription = Lens.lens (\DescribeDatasetResponse' {datasetDescription} -> datasetDescription) (\s@DescribeDatasetResponse' {} a -> s {datasetDescription = 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 datasetDescription+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutVision/DescribeModel.hs view
@@ -0,0 +1,187 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.DescribeModel+-- 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 version of an Amazon Lookout for Vision model.+--+-- This operation requires permissions to perform the+-- @lookoutvision:DescribeModel@ operation.+module Amazonka.LookoutVision.DescribeModel+  ( -- * Creating a Request+    DescribeModel (..),+    newDescribeModel,++    -- * Request Lenses+    describeModel_projectName,+    describeModel_modelVersion,++    -- * Destructuring the Response+    DescribeModelResponse (..),+    newDescribeModelResponse,++    -- * Response Lenses+    describeModelResponse_modelDescription,+    describeModelResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutVision.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeModel' smart constructor.+data DescribeModel = DescribeModel'+  { -- | The project that contains the version of a model that you want to+    -- describe.+    projectName :: Prelude.Text,+    -- | The version of the model that you want to describe.+    modelVersion :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeModel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'projectName', 'describeModel_projectName' - The project that contains the version of a model that you want to+-- describe.+--+-- 'modelVersion', 'describeModel_modelVersion' - The version of the model that you want to describe.+newDescribeModel ::+  -- | 'projectName'+  Prelude.Text ->+  -- | 'modelVersion'+  Prelude.Text ->+  DescribeModel+newDescribeModel pProjectName_ pModelVersion_ =+  DescribeModel'+    { projectName = pProjectName_,+      modelVersion = pModelVersion_+    }++-- | The project that contains the version of a model that you want to+-- describe.+describeModel_projectName :: Lens.Lens' DescribeModel Prelude.Text+describeModel_projectName = Lens.lens (\DescribeModel' {projectName} -> projectName) (\s@DescribeModel' {} a -> s {projectName = a} :: DescribeModel)++-- | The version of the model that you want to describe.+describeModel_modelVersion :: Lens.Lens' DescribeModel Prelude.Text+describeModel_modelVersion = Lens.lens (\DescribeModel' {modelVersion} -> modelVersion) (\s@DescribeModel' {} a -> s {modelVersion = a} :: DescribeModel)++instance Core.AWSRequest DescribeModel where+  type+    AWSResponse DescribeModel =+      DescribeModelResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeModelResponse'+            Prelude.<$> (x Data..?> "ModelDescription")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeModel where+  hashWithSalt _salt DescribeModel' {..} =+    _salt+      `Prelude.hashWithSalt` projectName+      `Prelude.hashWithSalt` modelVersion++instance Prelude.NFData DescribeModel where+  rnf DescribeModel' {..} =+    Prelude.rnf projectName+      `Prelude.seq` Prelude.rnf modelVersion++instance Data.ToHeaders DescribeModel where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeModel where+  toPath DescribeModel' {..} =+    Prelude.mconcat+      [ "/2020-11-20/projects/",+        Data.toBS projectName,+        "/models/",+        Data.toBS modelVersion+      ]++instance Data.ToQuery DescribeModel where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeModelResponse' smart constructor.+data DescribeModelResponse = DescribeModelResponse'+  { -- | Contains the description of the model.+    modelDescription :: Prelude.Maybe ModelDescription,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeModelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'modelDescription', 'describeModelResponse_modelDescription' - Contains the description of the model.+--+-- 'httpStatus', 'describeModelResponse_httpStatus' - The response's http status code.+newDescribeModelResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeModelResponse+newDescribeModelResponse pHttpStatus_ =+  DescribeModelResponse'+    { modelDescription =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Contains the description of the model.+describeModelResponse_modelDescription :: Lens.Lens' DescribeModelResponse (Prelude.Maybe ModelDescription)+describeModelResponse_modelDescription = Lens.lens (\DescribeModelResponse' {modelDescription} -> modelDescription) (\s@DescribeModelResponse' {} a -> s {modelDescription = a} :: DescribeModelResponse)++-- | The response's http status code.+describeModelResponse_httpStatus :: Lens.Lens' DescribeModelResponse Prelude.Int+describeModelResponse_httpStatus = Lens.lens (\DescribeModelResponse' {httpStatus} -> httpStatus) (\s@DescribeModelResponse' {} a -> s {httpStatus = a} :: DescribeModelResponse)++instance Prelude.NFData DescribeModelResponse where+  rnf DescribeModelResponse' {..} =+    Prelude.rnf modelDescription+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutVision/DescribeModelPackagingJob.hs view
@@ -0,0 +1,194 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.DescribeModelPackagingJob+-- 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 Amazon Lookout for Vision model packaging job.+--+-- This operation requires permissions to perform the+-- @lookoutvision:DescribeModelPackagingJob@ operation.+--+-- For more information, see /Using your Amazon Lookout for Vision model on+-- an edge device/ in the Amazon Lookout for Vision Developer Guide.+module Amazonka.LookoutVision.DescribeModelPackagingJob+  ( -- * Creating a Request+    DescribeModelPackagingJob (..),+    newDescribeModelPackagingJob,++    -- * Request Lenses+    describeModelPackagingJob_projectName,+    describeModelPackagingJob_jobName,++    -- * Destructuring the Response+    DescribeModelPackagingJobResponse (..),+    newDescribeModelPackagingJobResponse,++    -- * Response Lenses+    describeModelPackagingJobResponse_modelPackagingDescription,+    describeModelPackagingJobResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutVision.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeModelPackagingJob' smart constructor.+data DescribeModelPackagingJob = DescribeModelPackagingJob'+  { -- | The name of the project that contains the model packaging job that you+    -- want to describe.+    projectName :: Prelude.Text,+    -- | The job name for the model packaging job.+    jobName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeModelPackagingJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'projectName', 'describeModelPackagingJob_projectName' - The name of the project that contains the model packaging job that you+-- want to describe.+--+-- 'jobName', 'describeModelPackagingJob_jobName' - The job name for the model packaging job.+newDescribeModelPackagingJob ::+  -- | 'projectName'+  Prelude.Text ->+  -- | 'jobName'+  Prelude.Text ->+  DescribeModelPackagingJob+newDescribeModelPackagingJob pProjectName_ pJobName_ =+  DescribeModelPackagingJob'+    { projectName =+        pProjectName_,+      jobName = pJobName_+    }++-- | The name of the project that contains the model packaging job that you+-- want to describe.+describeModelPackagingJob_projectName :: Lens.Lens' DescribeModelPackagingJob Prelude.Text+describeModelPackagingJob_projectName = Lens.lens (\DescribeModelPackagingJob' {projectName} -> projectName) (\s@DescribeModelPackagingJob' {} a -> s {projectName = a} :: DescribeModelPackagingJob)++-- | The job name for the model packaging job.+describeModelPackagingJob_jobName :: Lens.Lens' DescribeModelPackagingJob Prelude.Text+describeModelPackagingJob_jobName = Lens.lens (\DescribeModelPackagingJob' {jobName} -> jobName) (\s@DescribeModelPackagingJob' {} a -> s {jobName = a} :: DescribeModelPackagingJob)++instance Core.AWSRequest DescribeModelPackagingJob where+  type+    AWSResponse DescribeModelPackagingJob =+      DescribeModelPackagingJobResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeModelPackagingJobResponse'+            Prelude.<$> (x Data..?> "ModelPackagingDescription")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeModelPackagingJob where+  hashWithSalt _salt DescribeModelPackagingJob' {..} =+    _salt+      `Prelude.hashWithSalt` projectName+      `Prelude.hashWithSalt` jobName++instance Prelude.NFData DescribeModelPackagingJob where+  rnf DescribeModelPackagingJob' {..} =+    Prelude.rnf projectName+      `Prelude.seq` Prelude.rnf jobName++instance Data.ToHeaders DescribeModelPackagingJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeModelPackagingJob where+  toPath DescribeModelPackagingJob' {..} =+    Prelude.mconcat+      [ "/2020-11-20/projects/",+        Data.toBS projectName,+        "/modelpackagingjobs/",+        Data.toBS jobName+      ]++instance Data.ToQuery DescribeModelPackagingJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeModelPackagingJobResponse' smart constructor.+data DescribeModelPackagingJobResponse = DescribeModelPackagingJobResponse'+  { -- | The description of the model packaging job.+    modelPackagingDescription :: Prelude.Maybe ModelPackagingDescription,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeModelPackagingJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'modelPackagingDescription', 'describeModelPackagingJobResponse_modelPackagingDescription' - The description of the model packaging job.+--+-- 'httpStatus', 'describeModelPackagingJobResponse_httpStatus' - The response's http status code.+newDescribeModelPackagingJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeModelPackagingJobResponse+newDescribeModelPackagingJobResponse pHttpStatus_ =+  DescribeModelPackagingJobResponse'+    { modelPackagingDescription =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The description of the model packaging job.+describeModelPackagingJobResponse_modelPackagingDescription :: Lens.Lens' DescribeModelPackagingJobResponse (Prelude.Maybe ModelPackagingDescription)+describeModelPackagingJobResponse_modelPackagingDescription = Lens.lens (\DescribeModelPackagingJobResponse' {modelPackagingDescription} -> modelPackagingDescription) (\s@DescribeModelPackagingJobResponse' {} a -> s {modelPackagingDescription = a} :: DescribeModelPackagingJobResponse)++-- | The response's http status code.+describeModelPackagingJobResponse_httpStatus :: Lens.Lens' DescribeModelPackagingJobResponse Prelude.Int+describeModelPackagingJobResponse_httpStatus = Lens.lens (\DescribeModelPackagingJobResponse' {httpStatus} -> httpStatus) (\s@DescribeModelPackagingJobResponse' {} a -> s {httpStatus = a} :: DescribeModelPackagingJobResponse)++instance+  Prelude.NFData+    DescribeModelPackagingJobResponse+  where+  rnf DescribeModelPackagingJobResponse' {..} =+    Prelude.rnf modelPackagingDescription+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutVision/DescribeProject.hs view
@@ -0,0 +1,162 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.DescribeProject+-- 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 Amazon Lookout for Vision project.+--+-- This operation requires permissions to perform the+-- @lookoutvision:DescribeProject@ operation.+module Amazonka.LookoutVision.DescribeProject+  ( -- * Creating a Request+    DescribeProject (..),+    newDescribeProject,++    -- * Request Lenses+    describeProject_projectName,++    -- * Destructuring the Response+    DescribeProjectResponse (..),+    newDescribeProjectResponse,++    -- * Response Lenses+    describeProjectResponse_projectDescription,+    describeProjectResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutVision.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeProject' smart constructor.+data DescribeProject = DescribeProject'+  { -- | The name of the project that you want to describe.+    projectName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeProject' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'projectName', 'describeProject_projectName' - The name of the project that you want to describe.+newDescribeProject ::+  -- | 'projectName'+  Prelude.Text ->+  DescribeProject+newDescribeProject pProjectName_ =+  DescribeProject' {projectName = pProjectName_}++-- | The name of the project that you want to describe.+describeProject_projectName :: Lens.Lens' DescribeProject Prelude.Text+describeProject_projectName = Lens.lens (\DescribeProject' {projectName} -> projectName) (\s@DescribeProject' {} a -> s {projectName = a} :: DescribeProject)++instance Core.AWSRequest DescribeProject where+  type+    AWSResponse DescribeProject =+      DescribeProjectResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeProjectResponse'+            Prelude.<$> (x Data..?> "ProjectDescription")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeProject where+  hashWithSalt _salt DescribeProject' {..} =+    _salt `Prelude.hashWithSalt` projectName++instance Prelude.NFData DescribeProject where+  rnf DescribeProject' {..} = Prelude.rnf projectName++instance Data.ToHeaders DescribeProject where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeProject where+  toPath DescribeProject' {..} =+    Prelude.mconcat+      ["/2020-11-20/projects/", Data.toBS projectName]++instance Data.ToQuery DescribeProject where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeProjectResponse' smart constructor.+data DescribeProjectResponse = DescribeProjectResponse'+  { -- | The description of the project.+    projectDescription :: Prelude.Maybe ProjectDescription,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeProjectResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'projectDescription', 'describeProjectResponse_projectDescription' - The description of the project.+--+-- 'httpStatus', 'describeProjectResponse_httpStatus' - The response's http status code.+newDescribeProjectResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeProjectResponse+newDescribeProjectResponse pHttpStatus_ =+  DescribeProjectResponse'+    { projectDescription =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The description of the project.+describeProjectResponse_projectDescription :: Lens.Lens' DescribeProjectResponse (Prelude.Maybe ProjectDescription)+describeProjectResponse_projectDescription = Lens.lens (\DescribeProjectResponse' {projectDescription} -> projectDescription) (\s@DescribeProjectResponse' {} a -> s {projectDescription = a} :: DescribeProjectResponse)++-- | The response's http status code.+describeProjectResponse_httpStatus :: Lens.Lens' DescribeProjectResponse Prelude.Int+describeProjectResponse_httpStatus = Lens.lens (\DescribeProjectResponse' {httpStatus} -> httpStatus) (\s@DescribeProjectResponse' {} a -> s {httpStatus = a} :: DescribeProjectResponse)++instance Prelude.NFData DescribeProjectResponse where+  rnf DescribeProjectResponse' {..} =+    Prelude.rnf projectDescription+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutVision/DetectAnomalies.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.LookoutVision.DetectAnomalies+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Detects anomalies in an image that you supply.+--+-- The response from @DetectAnomalies@ includes a boolean prediction that+-- the image contains one or more anomalies and a confidence value for the+-- prediction. If the model is an image segmentation model, the response+-- also includes segmentation information for each type of anomaly found in+-- the image.+--+-- Before calling @DetectAnomalies@, you must first start your model with+-- the StartModel operation. You are charged for the amount of time, in+-- minutes, that a model runs and for the number of anomaly detection units+-- that your model uses. If you are not using a model, use the StopModel+-- operation to stop your model.+--+-- For more information, see /Detecting anomalies in an image/ in the+-- Amazon Lookout for Vision developer guide.+--+-- This operation requires permissions to perform the+-- @lookoutvision:DetectAnomalies@ operation.+module Amazonka.LookoutVision.DetectAnomalies+  ( -- * Creating a Request+    DetectAnomalies (..),+    newDetectAnomalies,++    -- * Request Lenses+    detectAnomalies_projectName,+    detectAnomalies_modelVersion,+    detectAnomalies_contentType,+    detectAnomalies_body,++    -- * Destructuring the Response+    DetectAnomaliesResponse (..),+    newDetectAnomaliesResponse,++    -- * Response Lenses+    detectAnomaliesResponse_detectAnomalyResult,+    detectAnomaliesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutVision.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDetectAnomalies' smart constructor.+data DetectAnomalies = DetectAnomalies'+  { -- | The name of the project that contains the model version that you want to+    -- use.+    projectName :: Prelude.Text,+    -- | The version of the model that you want to use.+    modelVersion :: Prelude.Text,+    -- | The type of the image passed in @Body@. Valid values are @image\/png@+    -- (PNG format images) and @image\/jpeg@ (JPG format images).+    contentType :: Prelude.Text,+    -- | The unencrypted image bytes that you want to analyze.+    body :: Data.HashedBody+  }+  deriving (Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DetectAnomalies' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'projectName', 'detectAnomalies_projectName' - The name of the project that contains the model version that you want to+-- use.+--+-- 'modelVersion', 'detectAnomalies_modelVersion' - The version of the model that you want to use.+--+-- 'contentType', 'detectAnomalies_contentType' - The type of the image passed in @Body@. Valid values are @image\/png@+-- (PNG format images) and @image\/jpeg@ (JPG format images).+--+-- 'body', 'detectAnomalies_body' - The unencrypted image bytes that you want to analyze.+newDetectAnomalies ::+  -- | 'projectName'+  Prelude.Text ->+  -- | 'modelVersion'+  Prelude.Text ->+  -- | 'contentType'+  Prelude.Text ->+  -- | 'body'+  Data.HashedBody ->+  DetectAnomalies+newDetectAnomalies+  pProjectName_+  pModelVersion_+  pContentType_+  pBody_ =+    DetectAnomalies'+      { projectName = pProjectName_,+        modelVersion = pModelVersion_,+        contentType = pContentType_,+        body = pBody_+      }++-- | The name of the project that contains the model version that you want to+-- use.+detectAnomalies_projectName :: Lens.Lens' DetectAnomalies Prelude.Text+detectAnomalies_projectName = Lens.lens (\DetectAnomalies' {projectName} -> projectName) (\s@DetectAnomalies' {} a -> s {projectName = a} :: DetectAnomalies)++-- | The version of the model that you want to use.+detectAnomalies_modelVersion :: Lens.Lens' DetectAnomalies Prelude.Text+detectAnomalies_modelVersion = Lens.lens (\DetectAnomalies' {modelVersion} -> modelVersion) (\s@DetectAnomalies' {} a -> s {modelVersion = a} :: DetectAnomalies)++-- | The type of the image passed in @Body@. Valid values are @image\/png@+-- (PNG format images) and @image\/jpeg@ (JPG format images).+detectAnomalies_contentType :: Lens.Lens' DetectAnomalies Prelude.Text+detectAnomalies_contentType = Lens.lens (\DetectAnomalies' {contentType} -> contentType) (\s@DetectAnomalies' {} a -> s {contentType = a} :: DetectAnomalies)++-- | The unencrypted image bytes that you want to analyze.+detectAnomalies_body :: Lens.Lens' DetectAnomalies Data.HashedBody+detectAnomalies_body = Lens.lens (\DetectAnomalies' {body} -> body) (\s@DetectAnomalies' {} a -> s {body = a} :: DetectAnomalies)++instance Core.AWSRequest DetectAnomalies where+  type+    AWSResponse DetectAnomalies =+      DetectAnomaliesResponse+  request overrides =+    Request.postBody (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DetectAnomaliesResponse'+            Prelude.<$> (x Data..?> "DetectAnomalyResult")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Data.ToBody DetectAnomalies where+  toBody DetectAnomalies' {..} = Data.toBody body++instance Data.ToHeaders DetectAnomalies where+  toHeaders DetectAnomalies' {..} =+    Prelude.mconcat+      ["Content-Type" Data.=# contentType]++instance Data.ToPath DetectAnomalies where+  toPath DetectAnomalies' {..} =+    Prelude.mconcat+      [ "/2020-11-20/projects/",+        Data.toBS projectName,+        "/models/",+        Data.toBS modelVersion,+        "/detect"+      ]++instance Data.ToQuery DetectAnomalies where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDetectAnomaliesResponse' smart constructor.+data DetectAnomaliesResponse = DetectAnomaliesResponse'+  { -- | The results of the @DetectAnomalies@ operation.+    detectAnomalyResult :: Prelude.Maybe DetectAnomalyResult,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DetectAnomaliesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'detectAnomalyResult', 'detectAnomaliesResponse_detectAnomalyResult' - The results of the @DetectAnomalies@ operation.+--+-- 'httpStatus', 'detectAnomaliesResponse_httpStatus' - The response's http status code.+newDetectAnomaliesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DetectAnomaliesResponse+newDetectAnomaliesResponse pHttpStatus_ =+  DetectAnomaliesResponse'+    { detectAnomalyResult =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The results of the @DetectAnomalies@ operation.+detectAnomaliesResponse_detectAnomalyResult :: Lens.Lens' DetectAnomaliesResponse (Prelude.Maybe DetectAnomalyResult)+detectAnomaliesResponse_detectAnomalyResult = Lens.lens (\DetectAnomaliesResponse' {detectAnomalyResult} -> detectAnomalyResult) (\s@DetectAnomaliesResponse' {} a -> s {detectAnomalyResult = a} :: DetectAnomaliesResponse)++-- | The response's http status code.+detectAnomaliesResponse_httpStatus :: Lens.Lens' DetectAnomaliesResponse Prelude.Int+detectAnomaliesResponse_httpStatus = Lens.lens (\DetectAnomaliesResponse' {httpStatus} -> httpStatus) (\s@DetectAnomaliesResponse' {} a -> s {httpStatus = a} :: DetectAnomaliesResponse)++instance Prelude.NFData DetectAnomaliesResponse where+  rnf DetectAnomaliesResponse' {..} =+    Prelude.rnf detectAnomalyResult+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutVision/Lens.hs view
@@ -0,0 +1,384 @@+{-# 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.LookoutVision.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.LookoutVision.Lens+  ( -- * Operations++    -- ** CreateDataset+    createDataset_clientToken,+    createDataset_datasetSource,+    createDataset_projectName,+    createDataset_datasetType,+    createDatasetResponse_datasetMetadata,+    createDatasetResponse_httpStatus,++    -- ** CreateModel+    createModel_clientToken,+    createModel_description,+    createModel_kmsKeyId,+    createModel_tags,+    createModel_projectName,+    createModel_outputConfig,+    createModelResponse_modelMetadata,+    createModelResponse_httpStatus,++    -- ** CreateProject+    createProject_clientToken,+    createProject_projectName,+    createProjectResponse_projectMetadata,+    createProjectResponse_httpStatus,++    -- ** DeleteDataset+    deleteDataset_clientToken,+    deleteDataset_projectName,+    deleteDataset_datasetType,+    deleteDatasetResponse_httpStatus,++    -- ** DeleteModel+    deleteModel_clientToken,+    deleteModel_projectName,+    deleteModel_modelVersion,+    deleteModelResponse_modelArn,+    deleteModelResponse_httpStatus,++    -- ** DeleteProject+    deleteProject_clientToken,+    deleteProject_projectName,+    deleteProjectResponse_projectArn,+    deleteProjectResponse_httpStatus,++    -- ** DescribeDataset+    describeDataset_projectName,+    describeDataset_datasetType,+    describeDatasetResponse_datasetDescription,+    describeDatasetResponse_httpStatus,++    -- ** DescribeModel+    describeModel_projectName,+    describeModel_modelVersion,+    describeModelResponse_modelDescription,+    describeModelResponse_httpStatus,++    -- ** DescribeModelPackagingJob+    describeModelPackagingJob_projectName,+    describeModelPackagingJob_jobName,+    describeModelPackagingJobResponse_modelPackagingDescription,+    describeModelPackagingJobResponse_httpStatus,++    -- ** DescribeProject+    describeProject_projectName,+    describeProjectResponse_projectDescription,+    describeProjectResponse_httpStatus,++    -- ** DetectAnomalies+    detectAnomalies_projectName,+    detectAnomalies_modelVersion,+    detectAnomalies_contentType,+    detectAnomalies_body,+    detectAnomaliesResponse_detectAnomalyResult,+    detectAnomaliesResponse_httpStatus,++    -- ** ListDatasetEntries+    listDatasetEntries_afterCreationDate,+    listDatasetEntries_anomalyClass,+    listDatasetEntries_beforeCreationDate,+    listDatasetEntries_labeled,+    listDatasetEntries_maxResults,+    listDatasetEntries_nextToken,+    listDatasetEntries_sourceRefContains,+    listDatasetEntries_projectName,+    listDatasetEntries_datasetType,+    listDatasetEntriesResponse_datasetEntries,+    listDatasetEntriesResponse_nextToken,+    listDatasetEntriesResponse_httpStatus,++    -- ** ListModelPackagingJobs+    listModelPackagingJobs_maxResults,+    listModelPackagingJobs_nextToken,+    listModelPackagingJobs_projectName,+    listModelPackagingJobsResponse_modelPackagingJobs,+    listModelPackagingJobsResponse_nextToken,+    listModelPackagingJobsResponse_httpStatus,++    -- ** ListModels+    listModels_maxResults,+    listModels_nextToken,+    listModels_projectName,+    listModelsResponse_models,+    listModelsResponse_nextToken,+    listModelsResponse_httpStatus,++    -- ** ListProjects+    listProjects_maxResults,+    listProjects_nextToken,+    listProjectsResponse_nextToken,+    listProjectsResponse_projects,+    listProjectsResponse_httpStatus,++    -- ** ListTagsForResource+    listTagsForResource_resourceArn,+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,++    -- ** StartModel+    startModel_clientToken,+    startModel_maxInferenceUnits,+    startModel_projectName,+    startModel_modelVersion,+    startModel_minInferenceUnits,+    startModelResponse_status,+    startModelResponse_httpStatus,++    -- ** StartModelPackagingJob+    startModelPackagingJob_clientToken,+    startModelPackagingJob_description,+    startModelPackagingJob_jobName,+    startModelPackagingJob_projectName,+    startModelPackagingJob_modelVersion,+    startModelPackagingJob_configuration,+    startModelPackagingJobResponse_jobName,+    startModelPackagingJobResponse_httpStatus,++    -- ** StopModel+    stopModel_clientToken,+    stopModel_projectName,+    stopModel_modelVersion,+    stopModelResponse_status,+    stopModelResponse_httpStatus,++    -- ** TagResource+    tagResource_resourceArn,+    tagResource_tags,+    tagResourceResponse_httpStatus,++    -- ** UntagResource+    untagResource_resourceArn,+    untagResource_tagKeys,+    untagResourceResponse_httpStatus,++    -- ** UpdateDatasetEntries+    updateDatasetEntries_clientToken,+    updateDatasetEntries_projectName,+    updateDatasetEntries_datasetType,+    updateDatasetEntries_changes,+    updateDatasetEntriesResponse_status,+    updateDatasetEntriesResponse_httpStatus,++    -- * Types++    -- ** Anomaly+    anomaly_name,+    anomaly_pixelAnomaly,++    -- ** DatasetDescription+    datasetDescription_creationTimestamp,+    datasetDescription_datasetType,+    datasetDescription_imageStats,+    datasetDescription_lastUpdatedTimestamp,+    datasetDescription_projectName,+    datasetDescription_status,+    datasetDescription_statusMessage,++    -- ** DatasetGroundTruthManifest+    datasetGroundTruthManifest_s3Object,++    -- ** DatasetImageStats+    datasetImageStats_anomaly,+    datasetImageStats_labeled,+    datasetImageStats_normal,+    datasetImageStats_total,++    -- ** DatasetMetadata+    datasetMetadata_creationTimestamp,+    datasetMetadata_datasetType,+    datasetMetadata_status,+    datasetMetadata_statusMessage,++    -- ** DatasetSource+    datasetSource_groundTruthManifest,++    -- ** DetectAnomalyResult+    detectAnomalyResult_anomalies,+    detectAnomalyResult_anomalyMask,+    detectAnomalyResult_confidence,+    detectAnomalyResult_isAnomalous,+    detectAnomalyResult_source,++    -- ** GreengrassConfiguration+    greengrassConfiguration_compilerOptions,+    greengrassConfiguration_componentDescription,+    greengrassConfiguration_componentVersion,+    greengrassConfiguration_tags,+    greengrassConfiguration_targetDevice,+    greengrassConfiguration_targetPlatform,+    greengrassConfiguration_s3OutputLocation,+    greengrassConfiguration_componentName,++    -- ** GreengrassOutputDetails+    greengrassOutputDetails_componentName,+    greengrassOutputDetails_componentVersion,+    greengrassOutputDetails_componentVersionArn,++    -- ** ImageSource+    imageSource_type,++    -- ** InputS3Object+    inputS3Object_versionId,+    inputS3Object_bucket,+    inputS3Object_key,++    -- ** ModelDescription+    modelDescription_creationTimestamp,+    modelDescription_description,+    modelDescription_evaluationEndTimestamp,+    modelDescription_evaluationManifest,+    modelDescription_evaluationResult,+    modelDescription_kmsKeyId,+    modelDescription_maxInferenceUnits,+    modelDescription_minInferenceUnits,+    modelDescription_modelArn,+    modelDescription_modelVersion,+    modelDescription_outputConfig,+    modelDescription_performance,+    modelDescription_status,+    modelDescription_statusMessage,++    -- ** ModelMetadata+    modelMetadata_creationTimestamp,+    modelMetadata_description,+    modelMetadata_modelArn,+    modelMetadata_modelVersion,+    modelMetadata_performance,+    modelMetadata_status,+    modelMetadata_statusMessage,++    -- ** ModelPackagingConfiguration+    modelPackagingConfiguration_greengrass,++    -- ** ModelPackagingDescription+    modelPackagingDescription_creationTimestamp,+    modelPackagingDescription_jobName,+    modelPackagingDescription_lastUpdatedTimestamp,+    modelPackagingDescription_modelPackagingConfiguration,+    modelPackagingDescription_modelPackagingJobDescription,+    modelPackagingDescription_modelPackagingMethod,+    modelPackagingDescription_modelPackagingOutputDetails,+    modelPackagingDescription_modelVersion,+    modelPackagingDescription_projectName,+    modelPackagingDescription_status,+    modelPackagingDescription_statusMessage,++    -- ** ModelPackagingJobMetadata+    modelPackagingJobMetadata_creationTimestamp,+    modelPackagingJobMetadata_jobName,+    modelPackagingJobMetadata_lastUpdatedTimestamp,+    modelPackagingJobMetadata_modelPackagingJobDescription,+    modelPackagingJobMetadata_modelPackagingMethod,+    modelPackagingJobMetadata_modelVersion,+    modelPackagingJobMetadata_projectName,+    modelPackagingJobMetadata_status,+    modelPackagingJobMetadata_statusMessage,++    -- ** ModelPackagingOutputDetails+    modelPackagingOutputDetails_greengrass,++    -- ** ModelPerformance+    modelPerformance_f1Score,+    modelPerformance_precision,+    modelPerformance_recall,++    -- ** OutputConfig+    outputConfig_s3Location,++    -- ** OutputS3Object+    outputS3Object_bucket,+    outputS3Object_key,++    -- ** PixelAnomaly+    pixelAnomaly_color,+    pixelAnomaly_totalPercentageArea,++    -- ** ProjectDescription+    projectDescription_creationTimestamp,+    projectDescription_datasets,+    projectDescription_projectArn,+    projectDescription_projectName,++    -- ** ProjectMetadata+    projectMetadata_creationTimestamp,+    projectMetadata_projectArn,+    projectMetadata_projectName,++    -- ** S3Location+    s3Location_prefix,+    s3Location_bucket,++    -- ** Tag+    tag_key,+    tag_value,++    -- ** TargetPlatform+    targetPlatform_accelerator,+    targetPlatform_os,+    targetPlatform_arch,+  )+where++import Amazonka.LookoutVision.CreateDataset+import Amazonka.LookoutVision.CreateModel+import Amazonka.LookoutVision.CreateProject+import Amazonka.LookoutVision.DeleteDataset+import Amazonka.LookoutVision.DeleteModel+import Amazonka.LookoutVision.DeleteProject+import Amazonka.LookoutVision.DescribeDataset+import Amazonka.LookoutVision.DescribeModel+import Amazonka.LookoutVision.DescribeModelPackagingJob+import Amazonka.LookoutVision.DescribeProject+import Amazonka.LookoutVision.DetectAnomalies+import Amazonka.LookoutVision.ListDatasetEntries+import Amazonka.LookoutVision.ListModelPackagingJobs+import Amazonka.LookoutVision.ListModels+import Amazonka.LookoutVision.ListProjects+import Amazonka.LookoutVision.ListTagsForResource+import Amazonka.LookoutVision.StartModel+import Amazonka.LookoutVision.StartModelPackagingJob+import Amazonka.LookoutVision.StopModel+import Amazonka.LookoutVision.TagResource+import Amazonka.LookoutVision.Types.Anomaly+import Amazonka.LookoutVision.Types.DatasetDescription+import Amazonka.LookoutVision.Types.DatasetGroundTruthManifest+import Amazonka.LookoutVision.Types.DatasetImageStats+import Amazonka.LookoutVision.Types.DatasetMetadata+import Amazonka.LookoutVision.Types.DatasetSource+import Amazonka.LookoutVision.Types.DetectAnomalyResult+import Amazonka.LookoutVision.Types.GreengrassConfiguration+import Amazonka.LookoutVision.Types.GreengrassOutputDetails+import Amazonka.LookoutVision.Types.ImageSource+import Amazonka.LookoutVision.Types.InputS3Object+import Amazonka.LookoutVision.Types.ModelDescription+import Amazonka.LookoutVision.Types.ModelMetadata+import Amazonka.LookoutVision.Types.ModelPackagingConfiguration+import Amazonka.LookoutVision.Types.ModelPackagingDescription+import Amazonka.LookoutVision.Types.ModelPackagingJobMetadata+import Amazonka.LookoutVision.Types.ModelPackagingOutputDetails+import Amazonka.LookoutVision.Types.ModelPerformance+import Amazonka.LookoutVision.Types.OutputConfig+import Amazonka.LookoutVision.Types.OutputS3Object+import Amazonka.LookoutVision.Types.PixelAnomaly+import Amazonka.LookoutVision.Types.ProjectDescription+import Amazonka.LookoutVision.Types.ProjectMetadata+import Amazonka.LookoutVision.Types.S3Location+import Amazonka.LookoutVision.Types.Tag+import Amazonka.LookoutVision.Types.TargetPlatform+import Amazonka.LookoutVision.UntagResource+import Amazonka.LookoutVision.UpdateDatasetEntries
+ gen/Amazonka/LookoutVision/ListDatasetEntries.hs view
@@ -0,0 +1,365 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.ListDatasetEntries+-- 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 JSON Lines within a dataset. An Amazon Lookout for Vision JSON+-- Line contains the anomaly information for a single image, including the+-- image location and the assigned label.+--+-- This operation requires permissions to perform the+-- @lookoutvision:ListDatasetEntries@ operation.+--+-- This operation returns paginated results.+module Amazonka.LookoutVision.ListDatasetEntries+  ( -- * Creating a Request+    ListDatasetEntries (..),+    newListDatasetEntries,++    -- * Request Lenses+    listDatasetEntries_afterCreationDate,+    listDatasetEntries_anomalyClass,+    listDatasetEntries_beforeCreationDate,+    listDatasetEntries_labeled,+    listDatasetEntries_maxResults,+    listDatasetEntries_nextToken,+    listDatasetEntries_sourceRefContains,+    listDatasetEntries_projectName,+    listDatasetEntries_datasetType,++    -- * Destructuring the Response+    ListDatasetEntriesResponse (..),+    newListDatasetEntriesResponse,++    -- * Response Lenses+    listDatasetEntriesResponse_datasetEntries,+    listDatasetEntriesResponse_nextToken,+    listDatasetEntriesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutVision.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListDatasetEntries' smart constructor.+data ListDatasetEntries = ListDatasetEntries'+  { -- | Only includes entries after the specified date in the response. For+    -- example, @2020-06-23T00:00:00@.+    afterCreationDate :: Prelude.Maybe Data.POSIX,+    -- | Specify @normal@ to include only normal images. Specify @anomaly@ to+    -- only include anomalous entries. If you don\'t specify a value, Amazon+    -- Lookout for Vision returns normal and anomalous images.+    anomalyClass :: Prelude.Maybe Prelude.Text,+    -- | Only includes entries before the specified date in the response. For+    -- example, @2020-06-23T00:00:00@.+    beforeCreationDate :: Prelude.Maybe Data.POSIX,+    -- | Specify @true@ to include labeled entries, otherwise specify @false@. If+    -- you don\'t specify a value, Lookout for Vision returns all entries.+    labeled :: Prelude.Maybe Prelude.Bool,+    -- | The maximum number of results to return per paginated call. The largest+    -- value you can specify is 100. If you specify a value greater than 100, a+    -- ValidationException error occurs. The default value is 100.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If the previous response was incomplete (because there is more data to+    -- retrieve), Amazon Lookout for Vision returns a pagination token in the+    -- response. You can use this pagination token to retrieve the next set of+    -- dataset entries.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Perform a \"contains\" search on the values of the @source-ref@ key+    -- within the dataset. For example a value of \"IMG_17\" returns all JSON+    -- Lines where the @source-ref@ key value matches /*IMG_17*/.+    sourceRefContains :: Prelude.Maybe Prelude.Text,+    -- | The name of the project that contains the dataset that you want to list.+    projectName :: Prelude.Text,+    -- | The type of the dataset that you want to list. Specify @train@ to list+    -- the training dataset. Specify @test@ to list the test dataset. If you+    -- have a single dataset project, specify @train@.+    datasetType :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDatasetEntries' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'afterCreationDate', 'listDatasetEntries_afterCreationDate' - Only includes entries after the specified date in the response. For+-- example, @2020-06-23T00:00:00@.+--+-- 'anomalyClass', 'listDatasetEntries_anomalyClass' - Specify @normal@ to include only normal images. Specify @anomaly@ to+-- only include anomalous entries. If you don\'t specify a value, Amazon+-- Lookout for Vision returns normal and anomalous images.+--+-- 'beforeCreationDate', 'listDatasetEntries_beforeCreationDate' - Only includes entries before the specified date in the response. For+-- example, @2020-06-23T00:00:00@.+--+-- 'labeled', 'listDatasetEntries_labeled' - Specify @true@ to include labeled entries, otherwise specify @false@. If+-- you don\'t specify a value, Lookout for Vision returns all entries.+--+-- 'maxResults', 'listDatasetEntries_maxResults' - The maximum number of results to return per paginated call. The largest+-- value you can specify is 100. If you specify a value greater than 100, a+-- ValidationException error occurs. The default value is 100.+--+-- 'nextToken', 'listDatasetEntries_nextToken' - If the previous response was incomplete (because there is more data to+-- retrieve), Amazon Lookout for Vision returns a pagination token in the+-- response. You can use this pagination token to retrieve the next set of+-- dataset entries.+--+-- 'sourceRefContains', 'listDatasetEntries_sourceRefContains' - Perform a \"contains\" search on the values of the @source-ref@ key+-- within the dataset. For example a value of \"IMG_17\" returns all JSON+-- Lines where the @source-ref@ key value matches /*IMG_17*/.+--+-- 'projectName', 'listDatasetEntries_projectName' - The name of the project that contains the dataset that you want to list.+--+-- 'datasetType', 'listDatasetEntries_datasetType' - The type of the dataset that you want to list. Specify @train@ to list+-- the training dataset. Specify @test@ to list the test dataset. If you+-- have a single dataset project, specify @train@.+newListDatasetEntries ::+  -- | 'projectName'+  Prelude.Text ->+  -- | 'datasetType'+  Prelude.Text ->+  ListDatasetEntries+newListDatasetEntries pProjectName_ pDatasetType_ =+  ListDatasetEntries'+    { afterCreationDate =+        Prelude.Nothing,+      anomalyClass = Prelude.Nothing,+      beforeCreationDate = Prelude.Nothing,+      labeled = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      sourceRefContains = Prelude.Nothing,+      projectName = pProjectName_,+      datasetType = pDatasetType_+    }++-- | Only includes entries after the specified date in the response. For+-- example, @2020-06-23T00:00:00@.+listDatasetEntries_afterCreationDate :: Lens.Lens' ListDatasetEntries (Prelude.Maybe Prelude.UTCTime)+listDatasetEntries_afterCreationDate = Lens.lens (\ListDatasetEntries' {afterCreationDate} -> afterCreationDate) (\s@ListDatasetEntries' {} a -> s {afterCreationDate = a} :: ListDatasetEntries) Prelude.. Lens.mapping Data._Time++-- | Specify @normal@ to include only normal images. Specify @anomaly@ to+-- only include anomalous entries. If you don\'t specify a value, Amazon+-- Lookout for Vision returns normal and anomalous images.+listDatasetEntries_anomalyClass :: Lens.Lens' ListDatasetEntries (Prelude.Maybe Prelude.Text)+listDatasetEntries_anomalyClass = Lens.lens (\ListDatasetEntries' {anomalyClass} -> anomalyClass) (\s@ListDatasetEntries' {} a -> s {anomalyClass = a} :: ListDatasetEntries)++-- | Only includes entries before the specified date in the response. For+-- example, @2020-06-23T00:00:00@.+listDatasetEntries_beforeCreationDate :: Lens.Lens' ListDatasetEntries (Prelude.Maybe Prelude.UTCTime)+listDatasetEntries_beforeCreationDate = Lens.lens (\ListDatasetEntries' {beforeCreationDate} -> beforeCreationDate) (\s@ListDatasetEntries' {} a -> s {beforeCreationDate = a} :: ListDatasetEntries) Prelude.. Lens.mapping Data._Time++-- | Specify @true@ to include labeled entries, otherwise specify @false@. If+-- you don\'t specify a value, Lookout for Vision returns all entries.+listDatasetEntries_labeled :: Lens.Lens' ListDatasetEntries (Prelude.Maybe Prelude.Bool)+listDatasetEntries_labeled = Lens.lens (\ListDatasetEntries' {labeled} -> labeled) (\s@ListDatasetEntries' {} a -> s {labeled = a} :: ListDatasetEntries)++-- | The maximum number of results to return per paginated call. The largest+-- value you can specify is 100. If you specify a value greater than 100, a+-- ValidationException error occurs. The default value is 100.+listDatasetEntries_maxResults :: Lens.Lens' ListDatasetEntries (Prelude.Maybe Prelude.Natural)+listDatasetEntries_maxResults = Lens.lens (\ListDatasetEntries' {maxResults} -> maxResults) (\s@ListDatasetEntries' {} a -> s {maxResults = a} :: ListDatasetEntries)++-- | If the previous response was incomplete (because there is more data to+-- retrieve), Amazon Lookout for Vision returns a pagination token in the+-- response. You can use this pagination token to retrieve the next set of+-- dataset entries.+listDatasetEntries_nextToken :: Lens.Lens' ListDatasetEntries (Prelude.Maybe Prelude.Text)+listDatasetEntries_nextToken = Lens.lens (\ListDatasetEntries' {nextToken} -> nextToken) (\s@ListDatasetEntries' {} a -> s {nextToken = a} :: ListDatasetEntries)++-- | Perform a \"contains\" search on the values of the @source-ref@ key+-- within the dataset. For example a value of \"IMG_17\" returns all JSON+-- Lines where the @source-ref@ key value matches /*IMG_17*/.+listDatasetEntries_sourceRefContains :: Lens.Lens' ListDatasetEntries (Prelude.Maybe Prelude.Text)+listDatasetEntries_sourceRefContains = Lens.lens (\ListDatasetEntries' {sourceRefContains} -> sourceRefContains) (\s@ListDatasetEntries' {} a -> s {sourceRefContains = a} :: ListDatasetEntries)++-- | The name of the project that contains the dataset that you want to list.+listDatasetEntries_projectName :: Lens.Lens' ListDatasetEntries Prelude.Text+listDatasetEntries_projectName = Lens.lens (\ListDatasetEntries' {projectName} -> projectName) (\s@ListDatasetEntries' {} a -> s {projectName = a} :: ListDatasetEntries)++-- | The type of the dataset that you want to list. Specify @train@ to list+-- the training dataset. Specify @test@ to list the test dataset. If you+-- have a single dataset project, specify @train@.+listDatasetEntries_datasetType :: Lens.Lens' ListDatasetEntries Prelude.Text+listDatasetEntries_datasetType = Lens.lens (\ListDatasetEntries' {datasetType} -> datasetType) (\s@ListDatasetEntries' {} a -> s {datasetType = a} :: ListDatasetEntries)++instance Core.AWSPager ListDatasetEntries where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listDatasetEntriesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listDatasetEntriesResponse_datasetEntries+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listDatasetEntries_nextToken+          Lens..~ rs+          Lens.^? listDatasetEntriesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListDatasetEntries where+  type+    AWSResponse ListDatasetEntries =+      ListDatasetEntriesResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListDatasetEntriesResponse'+            Prelude.<$> (x Data..?> "DatasetEntries" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListDatasetEntries where+  hashWithSalt _salt ListDatasetEntries' {..} =+    _salt+      `Prelude.hashWithSalt` afterCreationDate+      `Prelude.hashWithSalt` anomalyClass+      `Prelude.hashWithSalt` beforeCreationDate+      `Prelude.hashWithSalt` labeled+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` sourceRefContains+      `Prelude.hashWithSalt` projectName+      `Prelude.hashWithSalt` datasetType++instance Prelude.NFData ListDatasetEntries where+  rnf ListDatasetEntries' {..} =+    Prelude.rnf afterCreationDate+      `Prelude.seq` Prelude.rnf anomalyClass+      `Prelude.seq` Prelude.rnf beforeCreationDate+      `Prelude.seq` Prelude.rnf labeled+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf sourceRefContains+      `Prelude.seq` Prelude.rnf projectName+      `Prelude.seq` Prelude.rnf datasetType++instance Data.ToHeaders ListDatasetEntries where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListDatasetEntries where+  toPath ListDatasetEntries' {..} =+    Prelude.mconcat+      [ "/2020-11-20/projects/",+        Data.toBS projectName,+        "/datasets/",+        Data.toBS datasetType,+        "/entries"+      ]++instance Data.ToQuery ListDatasetEntries where+  toQuery ListDatasetEntries' {..} =+    Prelude.mconcat+      [ "createdAfter" Data.=: afterCreationDate,+        "anomalyClass" Data.=: anomalyClass,+        "createdBefore" Data.=: beforeCreationDate,+        "labeled" Data.=: labeled,+        "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken,+        "sourceRefContains" Data.=: sourceRefContains+      ]++-- | /See:/ 'newListDatasetEntriesResponse' smart constructor.+data ListDatasetEntriesResponse = ListDatasetEntriesResponse'+  { -- | A list of the entries (JSON Lines) within the dataset.+    datasetEntries :: Prelude.Maybe [Prelude.Text],+    -- | If the response is truncated, Amazon Lookout for Vision returns this+    -- token that you can use in the subsequent request to retrieve the next+    -- set ofdataset entries.+    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 'ListDatasetEntriesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'datasetEntries', 'listDatasetEntriesResponse_datasetEntries' - A list of the entries (JSON Lines) within the dataset.+--+-- 'nextToken', 'listDatasetEntriesResponse_nextToken' - If the response is truncated, Amazon Lookout for Vision returns this+-- token that you can use in the subsequent request to retrieve the next+-- set ofdataset entries.+--+-- 'httpStatus', 'listDatasetEntriesResponse_httpStatus' - The response's http status code.+newListDatasetEntriesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListDatasetEntriesResponse+newListDatasetEntriesResponse pHttpStatus_ =+  ListDatasetEntriesResponse'+    { datasetEntries =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of the entries (JSON Lines) within the dataset.+listDatasetEntriesResponse_datasetEntries :: Lens.Lens' ListDatasetEntriesResponse (Prelude.Maybe [Prelude.Text])+listDatasetEntriesResponse_datasetEntries = Lens.lens (\ListDatasetEntriesResponse' {datasetEntries} -> datasetEntries) (\s@ListDatasetEntriesResponse' {} a -> s {datasetEntries = a} :: ListDatasetEntriesResponse) Prelude.. Lens.mapping Lens.coerced++-- | If the response is truncated, Amazon Lookout for Vision returns this+-- token that you can use in the subsequent request to retrieve the next+-- set ofdataset entries.+listDatasetEntriesResponse_nextToken :: Lens.Lens' ListDatasetEntriesResponse (Prelude.Maybe Prelude.Text)+listDatasetEntriesResponse_nextToken = Lens.lens (\ListDatasetEntriesResponse' {nextToken} -> nextToken) (\s@ListDatasetEntriesResponse' {} a -> s {nextToken = a} :: ListDatasetEntriesResponse)++-- | The response's http status code.+listDatasetEntriesResponse_httpStatus :: Lens.Lens' ListDatasetEntriesResponse Prelude.Int+listDatasetEntriesResponse_httpStatus = Lens.lens (\ListDatasetEntriesResponse' {httpStatus} -> httpStatus) (\s@ListDatasetEntriesResponse' {} a -> s {httpStatus = a} :: ListDatasetEntriesResponse)++instance Prelude.NFData ListDatasetEntriesResponse where+  rnf ListDatasetEntriesResponse' {..} =+    Prelude.rnf datasetEntries+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutVision/ListModelPackagingJobs.hs view
@@ -0,0 +1,274 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.ListModelPackagingJobs+-- 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 model packaging jobs created for an Amazon Lookout for Vision+-- project.+--+-- This operation requires permissions to perform the+-- @lookoutvision:ListModelPackagingJobs@ operation.+--+-- For more information, see /Using your Amazon Lookout for Vision model on+-- an edge device/ in the Amazon Lookout for Vision Developer Guide.+--+-- This operation returns paginated results.+module Amazonka.LookoutVision.ListModelPackagingJobs+  ( -- * Creating a Request+    ListModelPackagingJobs (..),+    newListModelPackagingJobs,++    -- * Request Lenses+    listModelPackagingJobs_maxResults,+    listModelPackagingJobs_nextToken,+    listModelPackagingJobs_projectName,++    -- * Destructuring the Response+    ListModelPackagingJobsResponse (..),+    newListModelPackagingJobsResponse,++    -- * Response Lenses+    listModelPackagingJobsResponse_modelPackagingJobs,+    listModelPackagingJobsResponse_nextToken,+    listModelPackagingJobsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutVision.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListModelPackagingJobs' smart constructor.+data ListModelPackagingJobs = ListModelPackagingJobs'+  { -- | The maximum number of results to return per paginated call. The largest+    -- value you can specify is 100. If you specify a value greater than 100, a+    -- ValidationException error occurs. The default value is 100.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If the previous response was incomplete (because there is more results+    -- to retrieve), Amazon Lookout for Vision returns a pagination token in+    -- the response. You can use this pagination token to retrieve the next set+    -- of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The name of the project for which you want to list the model packaging+    -- jobs.+    projectName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListModelPackagingJobs' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listModelPackagingJobs_maxResults' - The maximum number of results to return per paginated call. The largest+-- value you can specify is 100. If you specify a value greater than 100, a+-- ValidationException error occurs. The default value is 100.+--+-- 'nextToken', 'listModelPackagingJobs_nextToken' - If the previous response was incomplete (because there is more results+-- to retrieve), Amazon Lookout for Vision returns a pagination token in+-- the response. You can use this pagination token to retrieve the next set+-- of results.+--+-- 'projectName', 'listModelPackagingJobs_projectName' - The name of the project for which you want to list the model packaging+-- jobs.+newListModelPackagingJobs ::+  -- | 'projectName'+  Prelude.Text ->+  ListModelPackagingJobs+newListModelPackagingJobs pProjectName_ =+  ListModelPackagingJobs'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      projectName = pProjectName_+    }++-- | The maximum number of results to return per paginated call. The largest+-- value you can specify is 100. If you specify a value greater than 100, a+-- ValidationException error occurs. The default value is 100.+listModelPackagingJobs_maxResults :: Lens.Lens' ListModelPackagingJobs (Prelude.Maybe Prelude.Natural)+listModelPackagingJobs_maxResults = Lens.lens (\ListModelPackagingJobs' {maxResults} -> maxResults) (\s@ListModelPackagingJobs' {} a -> s {maxResults = a} :: ListModelPackagingJobs)++-- | If the previous response was incomplete (because there is more results+-- to retrieve), Amazon Lookout for Vision returns a pagination token in+-- the response. You can use this pagination token to retrieve the next set+-- of results.+listModelPackagingJobs_nextToken :: Lens.Lens' ListModelPackagingJobs (Prelude.Maybe Prelude.Text)+listModelPackagingJobs_nextToken = Lens.lens (\ListModelPackagingJobs' {nextToken} -> nextToken) (\s@ListModelPackagingJobs' {} a -> s {nextToken = a} :: ListModelPackagingJobs)++-- | The name of the project for which you want to list the model packaging+-- jobs.+listModelPackagingJobs_projectName :: Lens.Lens' ListModelPackagingJobs Prelude.Text+listModelPackagingJobs_projectName = Lens.lens (\ListModelPackagingJobs' {projectName} -> projectName) (\s@ListModelPackagingJobs' {} a -> s {projectName = a} :: ListModelPackagingJobs)++instance Core.AWSPager ListModelPackagingJobs where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listModelPackagingJobsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listModelPackagingJobsResponse_modelPackagingJobs+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listModelPackagingJobs_nextToken+          Lens..~ rs+          Lens.^? listModelPackagingJobsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListModelPackagingJobs where+  type+    AWSResponse ListModelPackagingJobs =+      ListModelPackagingJobsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListModelPackagingJobsResponse'+            Prelude.<$> ( x+                            Data..?> "ModelPackagingJobs"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListModelPackagingJobs where+  hashWithSalt _salt ListModelPackagingJobs' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` projectName++instance Prelude.NFData ListModelPackagingJobs where+  rnf ListModelPackagingJobs' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf projectName++instance Data.ToHeaders ListModelPackagingJobs where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListModelPackagingJobs where+  toPath ListModelPackagingJobs' {..} =+    Prelude.mconcat+      [ "/2020-11-20/projects/",+        Data.toBS projectName,+        "/modelpackagingjobs"+      ]++instance Data.ToQuery ListModelPackagingJobs where+  toQuery ListModelPackagingJobs' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListModelPackagingJobsResponse' smart constructor.+data ListModelPackagingJobsResponse = ListModelPackagingJobsResponse'+  { -- | A list of the model packaging jobs created for the specified Amazon+    -- Lookout for Vision project.+    modelPackagingJobs :: Prelude.Maybe [ModelPackagingJobMetadata],+    -- | If the previous response was incomplete (because there is more results+    -- to retrieve), Amazon Lookout for Vision returns a pagination token in+    -- the response. You can use this pagination token to retrieve the next set+    -- of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListModelPackagingJobsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'modelPackagingJobs', 'listModelPackagingJobsResponse_modelPackagingJobs' - A list of the model packaging jobs created for the specified Amazon+-- Lookout for Vision project.+--+-- 'nextToken', 'listModelPackagingJobsResponse_nextToken' - If the previous response was incomplete (because there is more results+-- to retrieve), Amazon Lookout for Vision returns a pagination token in+-- the response. You can use this pagination token to retrieve the next set+-- of results.+--+-- 'httpStatus', 'listModelPackagingJobsResponse_httpStatus' - The response's http status code.+newListModelPackagingJobsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListModelPackagingJobsResponse+newListModelPackagingJobsResponse pHttpStatus_ =+  ListModelPackagingJobsResponse'+    { modelPackagingJobs =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of the model packaging jobs created for the specified Amazon+-- Lookout for Vision project.+listModelPackagingJobsResponse_modelPackagingJobs :: Lens.Lens' ListModelPackagingJobsResponse (Prelude.Maybe [ModelPackagingJobMetadata])+listModelPackagingJobsResponse_modelPackagingJobs = Lens.lens (\ListModelPackagingJobsResponse' {modelPackagingJobs} -> modelPackagingJobs) (\s@ListModelPackagingJobsResponse' {} a -> s {modelPackagingJobs = a} :: ListModelPackagingJobsResponse) Prelude.. Lens.mapping Lens.coerced++-- | If the previous response was incomplete (because there is more results+-- to retrieve), Amazon Lookout for Vision returns a pagination token in+-- the response. You can use this pagination token to retrieve the next set+-- of results.+listModelPackagingJobsResponse_nextToken :: Lens.Lens' ListModelPackagingJobsResponse (Prelude.Maybe Prelude.Text)+listModelPackagingJobsResponse_nextToken = Lens.lens (\ListModelPackagingJobsResponse' {nextToken} -> nextToken) (\s@ListModelPackagingJobsResponse' {} a -> s {nextToken = a} :: ListModelPackagingJobsResponse)++-- | The response's http status code.+listModelPackagingJobsResponse_httpStatus :: Lens.Lens' ListModelPackagingJobsResponse Prelude.Int+listModelPackagingJobsResponse_httpStatus = Lens.lens (\ListModelPackagingJobsResponse' {httpStatus} -> httpStatus) (\s@ListModelPackagingJobsResponse' {} a -> s {httpStatus = a} :: ListModelPackagingJobsResponse)++instance+  Prelude.NFData+    ListModelPackagingJobsResponse+  where+  rnf ListModelPackagingJobsResponse' {..} =+    Prelude.rnf modelPackagingJobs+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutVision/ListModels.hs view
@@ -0,0 +1,258 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.ListModels+-- 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 versions of a model in an Amazon Lookout for Vision project.+--+-- The @ListModels@ operation is eventually consistent. Recent calls to+-- @CreateModel@ might take a while to appear in the response from+-- @ListProjects@.+--+-- This operation requires permissions to perform the+-- @lookoutvision:ListModels@ operation.+--+-- This operation returns paginated results.+module Amazonka.LookoutVision.ListModels+  ( -- * Creating a Request+    ListModels (..),+    newListModels,++    -- * Request Lenses+    listModels_maxResults,+    listModels_nextToken,+    listModels_projectName,++    -- * Destructuring the Response+    ListModelsResponse (..),+    newListModelsResponse,++    -- * Response Lenses+    listModelsResponse_models,+    listModelsResponse_nextToken,+    listModelsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutVision.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListModels' smart constructor.+data ListModels = ListModels'+  { -- | The maximum number of results to return per paginated call. The largest+    -- value you can specify is 100. If you specify a value greater than 100, a+    -- ValidationException error occurs. The default value is 100.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If the previous response was incomplete (because there is more data to+    -- retrieve), Amazon Lookout for Vision returns a pagination token in the+    -- response. You can use this pagination token to retrieve the next set of+    -- models.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The name of the project that contains the model versions that you want+    -- to list.+    projectName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListModels' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listModels_maxResults' - The maximum number of results to return per paginated call. The largest+-- value you can specify is 100. If you specify a value greater than 100, a+-- ValidationException error occurs. The default value is 100.+--+-- 'nextToken', 'listModels_nextToken' - If the previous response was incomplete (because there is more data to+-- retrieve), Amazon Lookout for Vision returns a pagination token in the+-- response. You can use this pagination token to retrieve the next set of+-- models.+--+-- 'projectName', 'listModels_projectName' - The name of the project that contains the model versions that you want+-- to list.+newListModels ::+  -- | 'projectName'+  Prelude.Text ->+  ListModels+newListModels pProjectName_ =+  ListModels'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      projectName = pProjectName_+    }++-- | The maximum number of results to return per paginated call. The largest+-- value you can specify is 100. If you specify a value greater than 100, a+-- ValidationException error occurs. The default value is 100.+listModels_maxResults :: Lens.Lens' ListModels (Prelude.Maybe Prelude.Natural)+listModels_maxResults = Lens.lens (\ListModels' {maxResults} -> maxResults) (\s@ListModels' {} a -> s {maxResults = a} :: ListModels)++-- | If the previous response was incomplete (because there is more data to+-- retrieve), Amazon Lookout for Vision returns a pagination token in the+-- response. You can use this pagination token to retrieve the next set of+-- models.+listModels_nextToken :: Lens.Lens' ListModels (Prelude.Maybe Prelude.Text)+listModels_nextToken = Lens.lens (\ListModels' {nextToken} -> nextToken) (\s@ListModels' {} a -> s {nextToken = a} :: ListModels)++-- | The name of the project that contains the model versions that you want+-- to list.+listModels_projectName :: Lens.Lens' ListModels Prelude.Text+listModels_projectName = Lens.lens (\ListModels' {projectName} -> projectName) (\s@ListModels' {} a -> s {projectName = a} :: ListModels)++instance Core.AWSPager ListModels where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listModelsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listModelsResponse_models+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listModels_nextToken+          Lens..~ rs+          Lens.^? listModelsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListModels where+  type AWSResponse ListModels = ListModelsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListModelsResponse'+            Prelude.<$> (x Data..?> "Models" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListModels where+  hashWithSalt _salt ListModels' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` projectName++instance Prelude.NFData ListModels where+  rnf ListModels' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf projectName++instance Data.ToHeaders ListModels where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListModels where+  toPath ListModels' {..} =+    Prelude.mconcat+      [ "/2020-11-20/projects/",+        Data.toBS projectName,+        "/models"+      ]++instance Data.ToQuery ListModels where+  toQuery ListModels' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListModelsResponse' smart constructor.+data ListModelsResponse = ListModelsResponse'+  { -- | A list of model versions in the specified project.+    models :: Prelude.Maybe [ModelMetadata],+    -- | If the response is truncated, Amazon Lookout for Vision returns this+    -- token that you can use in the subsequent request to retrieve the next+    -- set of models.+    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 'ListModelsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'models', 'listModelsResponse_models' - A list of model versions in the specified project.+--+-- 'nextToken', 'listModelsResponse_nextToken' - If the response is truncated, Amazon Lookout for Vision returns this+-- token that you can use in the subsequent request to retrieve the next+-- set of models.+--+-- 'httpStatus', 'listModelsResponse_httpStatus' - The response's http status code.+newListModelsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListModelsResponse+newListModelsResponse pHttpStatus_ =+  ListModelsResponse'+    { models = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of model versions in the specified project.+listModelsResponse_models :: Lens.Lens' ListModelsResponse (Prelude.Maybe [ModelMetadata])+listModelsResponse_models = Lens.lens (\ListModelsResponse' {models} -> models) (\s@ListModelsResponse' {} a -> s {models = a} :: ListModelsResponse) Prelude.. Lens.mapping Lens.coerced++-- | If the response is truncated, Amazon Lookout for Vision returns this+-- token that you can use in the subsequent request to retrieve the next+-- set of models.+listModelsResponse_nextToken :: Lens.Lens' ListModelsResponse (Prelude.Maybe Prelude.Text)+listModelsResponse_nextToken = Lens.lens (\ListModelsResponse' {nextToken} -> nextToken) (\s@ListModelsResponse' {} a -> s {nextToken = a} :: ListModelsResponse)++-- | The response's http status code.+listModelsResponse_httpStatus :: Lens.Lens' ListModelsResponse Prelude.Int+listModelsResponse_httpStatus = Lens.lens (\ListModelsResponse' {httpStatus} -> httpStatus) (\s@ListModelsResponse' {} a -> s {httpStatus = a} :: ListModelsResponse)++instance Prelude.NFData ListModelsResponse where+  rnf ListModelsResponse' {..} =+    Prelude.rnf models+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutVision/ListProjects.hs view
@@ -0,0 +1,237 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.ListProjects+-- 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 Amazon Lookout for Vision projects in your AWS account that+-- are in the AWS Region in which you call @ListProjects@.+--+-- The @ListProjects@ operation is eventually consistent. Recent calls to+-- @CreateProject@ and @DeleteProject@ might take a while to appear in the+-- response from @ListProjects@.+--+-- This operation requires permissions to perform the+-- @lookoutvision:ListProjects@ operation.+--+-- This operation returns paginated results.+module Amazonka.LookoutVision.ListProjects+  ( -- * Creating a Request+    ListProjects (..),+    newListProjects,++    -- * Request Lenses+    listProjects_maxResults,+    listProjects_nextToken,++    -- * Destructuring the Response+    ListProjectsResponse (..),+    newListProjectsResponse,++    -- * Response Lenses+    listProjectsResponse_nextToken,+    listProjectsResponse_projects,+    listProjectsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutVision.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListProjects' smart constructor.+data ListProjects = ListProjects'+  { -- | The maximum number of results to return per paginated call. The largest+    -- value you can specify is 100. If you specify a value greater than 100, a+    -- ValidationException error occurs. The default value is 100.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If the previous response was incomplete (because there is more data to+    -- retrieve), Amazon Lookout for Vision returns a pagination token in the+    -- response. You can use this pagination token to retrieve the next set of+    -- projects.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListProjects' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listProjects_maxResults' - The maximum number of results to return per paginated call. The largest+-- value you can specify is 100. If you specify a value greater than 100, a+-- ValidationException error occurs. The default value is 100.+--+-- 'nextToken', 'listProjects_nextToken' - If the previous response was incomplete (because there is more data to+-- retrieve), Amazon Lookout for Vision returns a pagination token in the+-- response. You can use this pagination token to retrieve the next set of+-- projects.+newListProjects ::+  ListProjects+newListProjects =+  ListProjects'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of results to return per paginated call. The largest+-- value you can specify is 100. If you specify a value greater than 100, a+-- ValidationException error occurs. The default value is 100.+listProjects_maxResults :: Lens.Lens' ListProjects (Prelude.Maybe Prelude.Natural)+listProjects_maxResults = Lens.lens (\ListProjects' {maxResults} -> maxResults) (\s@ListProjects' {} a -> s {maxResults = a} :: ListProjects)++-- | If the previous response was incomplete (because there is more data to+-- retrieve), Amazon Lookout for Vision returns a pagination token in the+-- response. You can use this pagination token to retrieve the next set of+-- projects.+listProjects_nextToken :: Lens.Lens' ListProjects (Prelude.Maybe Prelude.Text)+listProjects_nextToken = Lens.lens (\ListProjects' {nextToken} -> nextToken) (\s@ListProjects' {} a -> s {nextToken = a} :: ListProjects)++instance Core.AWSPager ListProjects where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listProjectsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listProjectsResponse_projects+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listProjects_nextToken+          Lens..~ rs+          Lens.^? listProjectsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListProjects where+  type AWSResponse ListProjects = ListProjectsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListProjectsResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (x Data..?> "Projects" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListProjects where+  hashWithSalt _salt ListProjects' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListProjects where+  rnf ListProjects' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListProjects where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListProjects where+  toPath = Prelude.const "/2020-11-20/projects"++instance Data.ToQuery ListProjects where+  toQuery ListProjects' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListProjectsResponse' smart constructor.+data ListProjectsResponse = ListProjectsResponse'+  { -- | If the response is truncated, Amazon Lookout for Vision returns this+    -- token that you can use in the subsequent request to retrieve the next+    -- set of projects.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A list of projects in your AWS account.+    projects :: Prelude.Maybe [ProjectMetadata],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListProjectsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listProjectsResponse_nextToken' - If the response is truncated, Amazon Lookout for Vision returns this+-- token that you can use in the subsequent request to retrieve the next+-- set of projects.+--+-- 'projects', 'listProjectsResponse_projects' - A list of projects in your AWS account.+--+-- 'httpStatus', 'listProjectsResponse_httpStatus' - The response's http status code.+newListProjectsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListProjectsResponse+newListProjectsResponse pHttpStatus_ =+  ListProjectsResponse'+    { nextToken = Prelude.Nothing,+      projects = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | If the response is truncated, Amazon Lookout for Vision returns this+-- token that you can use in the subsequent request to retrieve the next+-- set of projects.+listProjectsResponse_nextToken :: Lens.Lens' ListProjectsResponse (Prelude.Maybe Prelude.Text)+listProjectsResponse_nextToken = Lens.lens (\ListProjectsResponse' {nextToken} -> nextToken) (\s@ListProjectsResponse' {} a -> s {nextToken = a} :: ListProjectsResponse)++-- | A list of projects in your AWS account.+listProjectsResponse_projects :: Lens.Lens' ListProjectsResponse (Prelude.Maybe [ProjectMetadata])+listProjectsResponse_projects = Lens.lens (\ListProjectsResponse' {projects} -> projects) (\s@ListProjectsResponse' {} a -> s {projects = a} :: ListProjectsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listProjectsResponse_httpStatus :: Lens.Lens' ListProjectsResponse Prelude.Int+listProjectsResponse_httpStatus = Lens.lens (\ListProjectsResponse' {httpStatus} -> httpStatus) (\s@ListProjectsResponse' {} a -> s {httpStatus = a} :: ListProjectsResponse)++instance Prelude.NFData ListProjectsResponse where+  rnf ListProjectsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf projects+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutVision/ListTagsForResource.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.LookoutVision.ListTagsForResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of tags attached to the specified Amazon Lookout for+-- Vision model.+--+-- This operation requires permissions to perform the+-- @lookoutvision:ListTagsForResource@ operation.+module Amazonka.LookoutVision.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.LookoutVision.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListTagsForResource' smart constructor.+data ListTagsForResource = ListTagsForResource'+  { -- | The Amazon Resource Name (ARN) of the model for which you want to list+    -- tags.+    resourceArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'listTagsForResource_resourceArn' - The Amazon Resource Name (ARN) of the model for which you want to list+-- tags.+newListTagsForResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  ListTagsForResource+newListTagsForResource pResourceArn_ =+  ListTagsForResource' {resourceArn = pResourceArn_}++-- | The Amazon Resource Name (ARN) of the model for which you want to list+-- tags.+listTagsForResource_resourceArn :: Lens.Lens' ListTagsForResource Prelude.Text+listTagsForResource_resourceArn = Lens.lens (\ListTagsForResource' {resourceArn} -> resourceArn) (\s@ListTagsForResource' {} a -> s {resourceArn = a} :: ListTagsForResource)++instance Core.AWSRequest ListTagsForResource where+  type+    AWSResponse ListTagsForResource =+      ListTagsForResourceResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListTagsForResourceResponse'+            Prelude.<$> (x Data..?> "Tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListTagsForResource where+  hashWithSalt _salt ListTagsForResource' {..} =+    _salt `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData ListTagsForResource where+  rnf ListTagsForResource' {..} =+    Prelude.rnf resourceArn++instance Data.ToHeaders ListTagsForResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListTagsForResource where+  toPath ListTagsForResource' {..} =+    Prelude.mconcat+      ["/2020-11-20/tags/", Data.toBS resourceArn]++instance Data.ToQuery ListTagsForResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListTagsForResourceResponse' smart constructor.+data ListTagsForResourceResponse = ListTagsForResourceResponse'+  { -- | A map of tag keys and values attached to the specified model.+    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' - A map of tag keys and values attached to the specified model.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+  ListTagsForResourceResponse'+    { tags =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A map of tag keys and values attached to the specified model.+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/LookoutVision/StartModel.hs view
@@ -0,0 +1,295 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.StartModel+-- 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 the running of the version of an Amazon Lookout for Vision model.+-- Starting a model takes a while to complete. To check the current state+-- of the model, use DescribeModel.+--+-- A model is ready to use when its status is @HOSTED@.+--+-- Once the model is running, you can detect custom labels in new images by+-- calling DetectAnomalies.+--+-- You are charged for the amount of time that the model is running. To+-- stop a running model, call StopModel.+--+-- This operation requires permissions to perform the+-- @lookoutvision:StartModel@ operation.+module Amazonka.LookoutVision.StartModel+  ( -- * Creating a Request+    StartModel (..),+    newStartModel,++    -- * Request Lenses+    startModel_clientToken,+    startModel_maxInferenceUnits,+    startModel_projectName,+    startModel_modelVersion,+    startModel_minInferenceUnits,++    -- * Destructuring the Response+    StartModelResponse (..),+    newStartModelResponse,++    -- * Response Lenses+    startModelResponse_status,+    startModelResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutVision.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStartModel' smart constructor.+data StartModel = StartModel'+  { -- | ClientToken is an idempotency token that ensures a call to @StartModel@+    -- completes only once. You choose the value to pass. For example, An issue+    -- might prevent you from getting a response from @StartModel@. In this+    -- case, safely retry your call to @StartModel@ by using the same+    -- @ClientToken@ parameter value.+    --+    -- If you don\'t supply a value for @ClientToken@, the AWS SDK you are+    -- using inserts a value for you. This prevents retries after a network+    -- error from making multiple start requests. You\'ll need to provide your+    -- own value for other use cases.+    --+    -- An error occurs if the other input parameters are not the same as in the+    -- first request. Using a different value for @ClientToken@ is considered a+    -- new call to @StartModel@. An idempotency token is active for 8 hours.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of inference units to use for auto-scaling the model.+    -- If you don\'t specify a value, Amazon Lookout for Vision doesn\'t+    -- auto-scale the model.+    maxInferenceUnits :: Prelude.Maybe Prelude.Natural,+    -- | The name of the project that contains the model that you want to start.+    projectName :: Prelude.Text,+    -- | The version of the model that you want to start.+    modelVersion :: Prelude.Text,+    -- | The minimum number of inference units to use. A single inference unit+    -- represents 1 hour of processing. Use a higher number to increase the TPS+    -- throughput of your model. You are charged for the number of inference+    -- units that you use.+    minInferenceUnits :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartModel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'startModel_clientToken' - ClientToken is an idempotency token that ensures a call to @StartModel@+-- completes only once. You choose the value to pass. For example, An issue+-- might prevent you from getting a response from @StartModel@. In this+-- case, safely retry your call to @StartModel@ by using the same+-- @ClientToken@ parameter value.+--+-- If you don\'t supply a value for @ClientToken@, the AWS SDK you are+-- using inserts a value for you. This prevents retries after a network+-- error from making multiple start requests. You\'ll need to provide your+-- own value for other use cases.+--+-- An error occurs if the other input parameters are not the same as in the+-- first request. Using a different value for @ClientToken@ is considered a+-- new call to @StartModel@. An idempotency token is active for 8 hours.+--+-- 'maxInferenceUnits', 'startModel_maxInferenceUnits' - The maximum number of inference units to use for auto-scaling the model.+-- If you don\'t specify a value, Amazon Lookout for Vision doesn\'t+-- auto-scale the model.+--+-- 'projectName', 'startModel_projectName' - The name of the project that contains the model that you want to start.+--+-- 'modelVersion', 'startModel_modelVersion' - The version of the model that you want to start.+--+-- 'minInferenceUnits', 'startModel_minInferenceUnits' - The minimum number of inference units to use. A single inference unit+-- represents 1 hour of processing. Use a higher number to increase the TPS+-- throughput of your model. You are charged for the number of inference+-- units that you use.+newStartModel ::+  -- | 'projectName'+  Prelude.Text ->+  -- | 'modelVersion'+  Prelude.Text ->+  -- | 'minInferenceUnits'+  Prelude.Natural ->+  StartModel+newStartModel+  pProjectName_+  pModelVersion_+  pMinInferenceUnits_ =+    StartModel'+      { clientToken = Prelude.Nothing,+        maxInferenceUnits = Prelude.Nothing,+        projectName = pProjectName_,+        modelVersion = pModelVersion_,+        minInferenceUnits = pMinInferenceUnits_+      }++-- | ClientToken is an idempotency token that ensures a call to @StartModel@+-- completes only once. You choose the value to pass. For example, An issue+-- might prevent you from getting a response from @StartModel@. In this+-- case, safely retry your call to @StartModel@ by using the same+-- @ClientToken@ parameter value.+--+-- If you don\'t supply a value for @ClientToken@, the AWS SDK you are+-- using inserts a value for you. This prevents retries after a network+-- error from making multiple start requests. You\'ll need to provide your+-- own value for other use cases.+--+-- An error occurs if the other input parameters are not the same as in the+-- first request. Using a different value for @ClientToken@ is considered a+-- new call to @StartModel@. An idempotency token is active for 8 hours.+startModel_clientToken :: Lens.Lens' StartModel (Prelude.Maybe Prelude.Text)+startModel_clientToken = Lens.lens (\StartModel' {clientToken} -> clientToken) (\s@StartModel' {} a -> s {clientToken = a} :: StartModel)++-- | The maximum number of inference units to use for auto-scaling the model.+-- If you don\'t specify a value, Amazon Lookout for Vision doesn\'t+-- auto-scale the model.+startModel_maxInferenceUnits :: Lens.Lens' StartModel (Prelude.Maybe Prelude.Natural)+startModel_maxInferenceUnits = Lens.lens (\StartModel' {maxInferenceUnits} -> maxInferenceUnits) (\s@StartModel' {} a -> s {maxInferenceUnits = a} :: StartModel)++-- | The name of the project that contains the model that you want to start.+startModel_projectName :: Lens.Lens' StartModel Prelude.Text+startModel_projectName = Lens.lens (\StartModel' {projectName} -> projectName) (\s@StartModel' {} a -> s {projectName = a} :: StartModel)++-- | The version of the model that you want to start.+startModel_modelVersion :: Lens.Lens' StartModel Prelude.Text+startModel_modelVersion = Lens.lens (\StartModel' {modelVersion} -> modelVersion) (\s@StartModel' {} a -> s {modelVersion = a} :: StartModel)++-- | The minimum number of inference units to use. A single inference unit+-- represents 1 hour of processing. Use a higher number to increase the TPS+-- throughput of your model. You are charged for the number of inference+-- units that you use.+startModel_minInferenceUnits :: Lens.Lens' StartModel Prelude.Natural+startModel_minInferenceUnits = Lens.lens (\StartModel' {minInferenceUnits} -> minInferenceUnits) (\s@StartModel' {} a -> s {minInferenceUnits = a} :: StartModel)++instance Core.AWSRequest StartModel where+  type AWSResponse StartModel = StartModelResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          StartModelResponse'+            Prelude.<$> (x Data..?> "Status")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable StartModel where+  hashWithSalt _salt StartModel' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` maxInferenceUnits+      `Prelude.hashWithSalt` projectName+      `Prelude.hashWithSalt` modelVersion+      `Prelude.hashWithSalt` minInferenceUnits++instance Prelude.NFData StartModel where+  rnf StartModel' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf maxInferenceUnits+      `Prelude.seq` Prelude.rnf projectName+      `Prelude.seq` Prelude.rnf modelVersion+      `Prelude.seq` Prelude.rnf minInferenceUnits++instance Data.ToHeaders StartModel where+  toHeaders StartModel' {..} =+    Prelude.mconcat+      [ "X-Amzn-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToJSON StartModel where+  toJSON StartModel' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MaxInferenceUnits" Data..=)+              Prelude.<$> maxInferenceUnits,+            Prelude.Just+              ("MinInferenceUnits" Data..= minInferenceUnits)+          ]+      )++instance Data.ToPath StartModel where+  toPath StartModel' {..} =+    Prelude.mconcat+      [ "/2020-11-20/projects/",+        Data.toBS projectName,+        "/models/",+        Data.toBS modelVersion,+        "/start"+      ]++instance Data.ToQuery StartModel where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStartModelResponse' smart constructor.+data StartModelResponse = StartModelResponse'+  { -- | The current running status of the model.+    status :: Prelude.Maybe ModelHostingStatus,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartModelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'status', 'startModelResponse_status' - The current running status of the model.+--+-- 'httpStatus', 'startModelResponse_httpStatus' - The response's http status code.+newStartModelResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  StartModelResponse+newStartModelResponse pHttpStatus_ =+  StartModelResponse'+    { status = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The current running status of the model.+startModelResponse_status :: Lens.Lens' StartModelResponse (Prelude.Maybe ModelHostingStatus)+startModelResponse_status = Lens.lens (\StartModelResponse' {status} -> status) (\s@StartModelResponse' {} a -> s {status = a} :: StartModelResponse)++-- | The response's http status code.+startModelResponse_httpStatus :: Lens.Lens' StartModelResponse Prelude.Int+startModelResponse_httpStatus = Lens.lens (\StartModelResponse' {httpStatus} -> httpStatus) (\s@StartModelResponse' {} a -> s {httpStatus = a} :: StartModelResponse)++instance Prelude.NFData StartModelResponse where+  rnf StartModelResponse' {..} =+    Prelude.rnf status+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutVision/StartModelPackagingJob.hs view
@@ -0,0 +1,335 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.StartModelPackagingJob+-- 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 an Amazon Lookout for Vision model packaging job. A model+-- packaging job creates an AWS IoT Greengrass component for a Lookout for+-- Vision model. You can use the component to deploy your model to an edge+-- device managed by Greengrass.+--+-- Use the DescribeModelPackagingJob API to determine the current status of+-- the job. The model packaging job is complete if the value of @Status@ is+-- @SUCCEEDED@.+--+-- To deploy the component to the target device, use the component name and+-- component version with the AWS IoT Greengrass+-- <https://docs.aws.amazon.com/greengrass/v2/APIReference/API_CreateDeployment.html CreateDeployment>+-- API.+--+-- This operation requires the following permissions:+--+-- -   @lookoutvision:StartModelPackagingJob@+--+-- -   @s3:PutObject@+--+-- -   @s3:GetBucketLocation@+--+-- -   @kms:GenerateDataKey@+--+-- -   @greengrass:CreateComponentVersion@+--+-- -   @greengrass:DescribeComponent@+--+-- -   (Optional) @greengrass:TagResource@. Only required if you want to+--     tag the component.+--+-- For more information, see /Using your Amazon Lookout for Vision model on+-- an edge device/ in the Amazon Lookout for Vision Developer Guide.+module Amazonka.LookoutVision.StartModelPackagingJob+  ( -- * Creating a Request+    StartModelPackagingJob (..),+    newStartModelPackagingJob,++    -- * Request Lenses+    startModelPackagingJob_clientToken,+    startModelPackagingJob_description,+    startModelPackagingJob_jobName,+    startModelPackagingJob_projectName,+    startModelPackagingJob_modelVersion,+    startModelPackagingJob_configuration,++    -- * Destructuring the Response+    StartModelPackagingJobResponse (..),+    newStartModelPackagingJobResponse,++    -- * Response Lenses+    startModelPackagingJobResponse_jobName,+    startModelPackagingJobResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutVision.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStartModelPackagingJob' smart constructor.+data StartModelPackagingJob = StartModelPackagingJob'+  { -- | ClientToken is an idempotency token that ensures a call to+    -- @StartModelPackagingJob@ completes only once. You choose the value to+    -- pass. For example, An issue might prevent you from getting a response+    -- from @StartModelPackagingJob@. In this case, safely retry your call to+    -- @StartModelPackagingJob@ by using the same @ClientToken@ parameter+    -- value.+    --+    -- If you don\'t supply a value for @ClientToken@, the AWS SDK you are+    -- using inserts a value for you. This prevents retries after a network+    -- error from making multiple dataset creation requests. You\'ll need to+    -- provide your own value for other use cases.+    --+    -- An error occurs if the other input parameters are not the same as in the+    -- first request. Using a different value for @ClientToken@ is considered a+    -- new call to @StartModelPackagingJob@. An idempotency token is active for+    -- 8 hours.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | A description for the model packaging job.+    description :: Prelude.Maybe Prelude.Text,+    -- | A name for the model packaging job. If you don\'t supply a value, the+    -- service creates a job name for you.+    jobName :: Prelude.Maybe Prelude.Text,+    -- | The name of the project which contains the version of the model that you+    -- want to package.+    projectName :: Prelude.Text,+    -- | The version of the model within the project that you want to package.+    modelVersion :: Prelude.Text,+    -- | The configuration for the model packaging job.+    configuration :: ModelPackagingConfiguration+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartModelPackagingJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'startModelPackagingJob_clientToken' - ClientToken is an idempotency token that ensures a call to+-- @StartModelPackagingJob@ completes only once. You choose the value to+-- pass. For example, An issue might prevent you from getting a response+-- from @StartModelPackagingJob@. In this case, safely retry your call to+-- @StartModelPackagingJob@ by using the same @ClientToken@ parameter+-- value.+--+-- If you don\'t supply a value for @ClientToken@, the AWS SDK you are+-- using inserts a value for you. This prevents retries after a network+-- error from making multiple dataset creation requests. You\'ll need to+-- provide your own value for other use cases.+--+-- An error occurs if the other input parameters are not the same as in the+-- first request. Using a different value for @ClientToken@ is considered a+-- new call to @StartModelPackagingJob@. An idempotency token is active for+-- 8 hours.+--+-- 'description', 'startModelPackagingJob_description' - A description for the model packaging job.+--+-- 'jobName', 'startModelPackagingJob_jobName' - A name for the model packaging job. If you don\'t supply a value, the+-- service creates a job name for you.+--+-- 'projectName', 'startModelPackagingJob_projectName' - The name of the project which contains the version of the model that you+-- want to package.+--+-- 'modelVersion', 'startModelPackagingJob_modelVersion' - The version of the model within the project that you want to package.+--+-- 'configuration', 'startModelPackagingJob_configuration' - The configuration for the model packaging job.+newStartModelPackagingJob ::+  -- | 'projectName'+  Prelude.Text ->+  -- | 'modelVersion'+  Prelude.Text ->+  -- | 'configuration'+  ModelPackagingConfiguration ->+  StartModelPackagingJob+newStartModelPackagingJob+  pProjectName_+  pModelVersion_+  pConfiguration_ =+    StartModelPackagingJob'+      { clientToken =+          Prelude.Nothing,+        description = Prelude.Nothing,+        jobName = Prelude.Nothing,+        projectName = pProjectName_,+        modelVersion = pModelVersion_,+        configuration = pConfiguration_+      }++-- | ClientToken is an idempotency token that ensures a call to+-- @StartModelPackagingJob@ completes only once. You choose the value to+-- pass. For example, An issue might prevent you from getting a response+-- from @StartModelPackagingJob@. In this case, safely retry your call to+-- @StartModelPackagingJob@ by using the same @ClientToken@ parameter+-- value.+--+-- If you don\'t supply a value for @ClientToken@, the AWS SDK you are+-- using inserts a value for you. This prevents retries after a network+-- error from making multiple dataset creation requests. You\'ll need to+-- provide your own value for other use cases.+--+-- An error occurs if the other input parameters are not the same as in the+-- first request. Using a different value for @ClientToken@ is considered a+-- new call to @StartModelPackagingJob@. An idempotency token is active for+-- 8 hours.+startModelPackagingJob_clientToken :: Lens.Lens' StartModelPackagingJob (Prelude.Maybe Prelude.Text)+startModelPackagingJob_clientToken = Lens.lens (\StartModelPackagingJob' {clientToken} -> clientToken) (\s@StartModelPackagingJob' {} a -> s {clientToken = a} :: StartModelPackagingJob)++-- | A description for the model packaging job.+startModelPackagingJob_description :: Lens.Lens' StartModelPackagingJob (Prelude.Maybe Prelude.Text)+startModelPackagingJob_description = Lens.lens (\StartModelPackagingJob' {description} -> description) (\s@StartModelPackagingJob' {} a -> s {description = a} :: StartModelPackagingJob)++-- | A name for the model packaging job. If you don\'t supply a value, the+-- service creates a job name for you.+startModelPackagingJob_jobName :: Lens.Lens' StartModelPackagingJob (Prelude.Maybe Prelude.Text)+startModelPackagingJob_jobName = Lens.lens (\StartModelPackagingJob' {jobName} -> jobName) (\s@StartModelPackagingJob' {} a -> s {jobName = a} :: StartModelPackagingJob)++-- | The name of the project which contains the version of the model that you+-- want to package.+startModelPackagingJob_projectName :: Lens.Lens' StartModelPackagingJob Prelude.Text+startModelPackagingJob_projectName = Lens.lens (\StartModelPackagingJob' {projectName} -> projectName) (\s@StartModelPackagingJob' {} a -> s {projectName = a} :: StartModelPackagingJob)++-- | The version of the model within the project that you want to package.+startModelPackagingJob_modelVersion :: Lens.Lens' StartModelPackagingJob Prelude.Text+startModelPackagingJob_modelVersion = Lens.lens (\StartModelPackagingJob' {modelVersion} -> modelVersion) (\s@StartModelPackagingJob' {} a -> s {modelVersion = a} :: StartModelPackagingJob)++-- | The configuration for the model packaging job.+startModelPackagingJob_configuration :: Lens.Lens' StartModelPackagingJob ModelPackagingConfiguration+startModelPackagingJob_configuration = Lens.lens (\StartModelPackagingJob' {configuration} -> configuration) (\s@StartModelPackagingJob' {} a -> s {configuration = a} :: StartModelPackagingJob)++instance Core.AWSRequest StartModelPackagingJob where+  type+    AWSResponse StartModelPackagingJob =+      StartModelPackagingJobResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          StartModelPackagingJobResponse'+            Prelude.<$> (x Data..?> "JobName")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable StartModelPackagingJob where+  hashWithSalt _salt StartModelPackagingJob' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` jobName+      `Prelude.hashWithSalt` projectName+      `Prelude.hashWithSalt` modelVersion+      `Prelude.hashWithSalt` configuration++instance Prelude.NFData StartModelPackagingJob where+  rnf StartModelPackagingJob' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf jobName+      `Prelude.seq` Prelude.rnf projectName+      `Prelude.seq` Prelude.rnf modelVersion+      `Prelude.seq` Prelude.rnf configuration++instance Data.ToHeaders StartModelPackagingJob where+  toHeaders StartModelPackagingJob' {..} =+    Prelude.mconcat+      [ "X-Amzn-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToJSON StartModelPackagingJob where+  toJSON StartModelPackagingJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Description" Data..=) Prelude.<$> description,+            ("JobName" Data..=) Prelude.<$> jobName,+            Prelude.Just ("ModelVersion" Data..= modelVersion),+            Prelude.Just+              ("Configuration" Data..= configuration)+          ]+      )++instance Data.ToPath StartModelPackagingJob where+  toPath StartModelPackagingJob' {..} =+    Prelude.mconcat+      [ "/2020-11-20/projects/",+        Data.toBS projectName,+        "/modelpackagingjobs"+      ]++instance Data.ToQuery StartModelPackagingJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStartModelPackagingJobResponse' smart constructor.+data StartModelPackagingJobResponse = StartModelPackagingJobResponse'+  { -- | The job name for the model packaging job. If you don\'t supply a job+    -- name in the @JobName@ input parameter, the service creates a job name+    -- for you.+    jobName :: 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 'StartModelPackagingJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'jobName', 'startModelPackagingJobResponse_jobName' - The job name for the model packaging job. If you don\'t supply a job+-- name in the @JobName@ input parameter, the service creates a job name+-- for you.+--+-- 'httpStatus', 'startModelPackagingJobResponse_httpStatus' - The response's http status code.+newStartModelPackagingJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  StartModelPackagingJobResponse+newStartModelPackagingJobResponse pHttpStatus_ =+  StartModelPackagingJobResponse'+    { jobName =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The job name for the model packaging job. If you don\'t supply a job+-- name in the @JobName@ input parameter, the service creates a job name+-- for you.+startModelPackagingJobResponse_jobName :: Lens.Lens' StartModelPackagingJobResponse (Prelude.Maybe Prelude.Text)+startModelPackagingJobResponse_jobName = Lens.lens (\StartModelPackagingJobResponse' {jobName} -> jobName) (\s@StartModelPackagingJobResponse' {} a -> s {jobName = a} :: StartModelPackagingJobResponse)++-- | The response's http status code.+startModelPackagingJobResponse_httpStatus :: Lens.Lens' StartModelPackagingJobResponse Prelude.Int+startModelPackagingJobResponse_httpStatus = Lens.lens (\StartModelPackagingJobResponse' {httpStatus} -> httpStatus) (\s@StartModelPackagingJobResponse' {} a -> s {httpStatus = a} :: StartModelPackagingJobResponse)++instance+  Prelude.NFData+    StartModelPackagingJobResponse+  where+  rnf StartModelPackagingJobResponse' {..} =+    Prelude.rnf jobName+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutVision/StopModel.hs view
@@ -0,0 +1,236 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.StopModel+-- 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 the hosting of a running model. The operation might take a while+-- to complete. To check the current status, call DescribeModel.+--+-- After the model hosting stops, the @Status@ of the model is @TRAINED@.+--+-- This operation requires permissions to perform the+-- @lookoutvision:StopModel@ operation.+module Amazonka.LookoutVision.StopModel+  ( -- * Creating a Request+    StopModel (..),+    newStopModel,++    -- * Request Lenses+    stopModel_clientToken,+    stopModel_projectName,+    stopModel_modelVersion,++    -- * Destructuring the Response+    StopModelResponse (..),+    newStopModelResponse,++    -- * Response Lenses+    stopModelResponse_status,+    stopModelResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutVision.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStopModel' smart constructor.+data StopModel = StopModel'+  { -- | ClientToken is an idempotency token that ensures a call to @StopModel@+    -- completes only once. You choose the value to pass. For example, An issue+    -- might prevent you from getting a response from @StopModel@. In this+    -- case, safely retry your call to @StopModel@ by using the same+    -- @ClientToken@ parameter value.+    --+    -- If you don\'t supply a value for @ClientToken@, the AWS SDK you are+    -- using inserts a value for you. This prevents retries after a network+    -- error from making multiple stop requests. You\'ll need to provide your+    -- own value for other use cases.+    --+    -- An error occurs if the other input parameters are not the same as in the+    -- first request. Using a different value for @ClientToken@ is considered a+    -- new call to @StopModel@. An idempotency token is active for 8 hours.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The name of the project that contains the model that you want to stop.+    projectName :: Prelude.Text,+    -- | The version of the model that you want to stop.+    modelVersion :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StopModel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'stopModel_clientToken' - ClientToken is an idempotency token that ensures a call to @StopModel@+-- completes only once. You choose the value to pass. For example, An issue+-- might prevent you from getting a response from @StopModel@. In this+-- case, safely retry your call to @StopModel@ by using the same+-- @ClientToken@ parameter value.+--+-- If you don\'t supply a value for @ClientToken@, the AWS SDK you are+-- using inserts a value for you. This prevents retries after a network+-- error from making multiple stop requests. You\'ll need to provide your+-- own value for other use cases.+--+-- An error occurs if the other input parameters are not the same as in the+-- first request. Using a different value for @ClientToken@ is considered a+-- new call to @StopModel@. An idempotency token is active for 8 hours.+--+-- 'projectName', 'stopModel_projectName' - The name of the project that contains the model that you want to stop.+--+-- 'modelVersion', 'stopModel_modelVersion' - The version of the model that you want to stop.+newStopModel ::+  -- | 'projectName'+  Prelude.Text ->+  -- | 'modelVersion'+  Prelude.Text ->+  StopModel+newStopModel pProjectName_ pModelVersion_ =+  StopModel'+    { clientToken = Prelude.Nothing,+      projectName = pProjectName_,+      modelVersion = pModelVersion_+    }++-- | ClientToken is an idempotency token that ensures a call to @StopModel@+-- completes only once. You choose the value to pass. For example, An issue+-- might prevent you from getting a response from @StopModel@. In this+-- case, safely retry your call to @StopModel@ by using the same+-- @ClientToken@ parameter value.+--+-- If you don\'t supply a value for @ClientToken@, the AWS SDK you are+-- using inserts a value for you. This prevents retries after a network+-- error from making multiple stop requests. You\'ll need to provide your+-- own value for other use cases.+--+-- An error occurs if the other input parameters are not the same as in the+-- first request. Using a different value for @ClientToken@ is considered a+-- new call to @StopModel@. An idempotency token is active for 8 hours.+stopModel_clientToken :: Lens.Lens' StopModel (Prelude.Maybe Prelude.Text)+stopModel_clientToken = Lens.lens (\StopModel' {clientToken} -> clientToken) (\s@StopModel' {} a -> s {clientToken = a} :: StopModel)++-- | The name of the project that contains the model that you want to stop.+stopModel_projectName :: Lens.Lens' StopModel Prelude.Text+stopModel_projectName = Lens.lens (\StopModel' {projectName} -> projectName) (\s@StopModel' {} a -> s {projectName = a} :: StopModel)++-- | The version of the model that you want to stop.+stopModel_modelVersion :: Lens.Lens' StopModel Prelude.Text+stopModel_modelVersion = Lens.lens (\StopModel' {modelVersion} -> modelVersion) (\s@StopModel' {} a -> s {modelVersion = a} :: StopModel)++instance Core.AWSRequest StopModel where+  type AWSResponse StopModel = StopModelResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          StopModelResponse'+            Prelude.<$> (x Data..?> "Status")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable StopModel where+  hashWithSalt _salt StopModel' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` projectName+      `Prelude.hashWithSalt` modelVersion++instance Prelude.NFData StopModel where+  rnf StopModel' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf projectName+      `Prelude.seq` Prelude.rnf modelVersion++instance Data.ToHeaders StopModel where+  toHeaders StopModel' {..} =+    Prelude.mconcat+      [ "X-Amzn-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToJSON StopModel where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath StopModel where+  toPath StopModel' {..} =+    Prelude.mconcat+      [ "/2020-11-20/projects/",+        Data.toBS projectName,+        "/models/",+        Data.toBS modelVersion,+        "/stop"+      ]++instance Data.ToQuery StopModel where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStopModelResponse' smart constructor.+data StopModelResponse = StopModelResponse'+  { -- | The status of the model.+    status :: Prelude.Maybe ModelHostingStatus,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StopModelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'status', 'stopModelResponse_status' - The status of the model.+--+-- 'httpStatus', 'stopModelResponse_httpStatus' - The response's http status code.+newStopModelResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  StopModelResponse+newStopModelResponse pHttpStatus_ =+  StopModelResponse'+    { status = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The status of the model.+stopModelResponse_status :: Lens.Lens' StopModelResponse (Prelude.Maybe ModelHostingStatus)+stopModelResponse_status = Lens.lens (\StopModelResponse' {status} -> status) (\s@StopModelResponse' {} a -> s {status = a} :: StopModelResponse)++-- | The response's http status code.+stopModelResponse_httpStatus :: Lens.Lens' StopModelResponse Prelude.Int+stopModelResponse_httpStatus = Lens.lens (\StopModelResponse' {httpStatus} -> httpStatus) (\s@StopModelResponse' {} a -> s {httpStatus = a} :: StopModelResponse)++instance Prelude.NFData StopModelResponse where+  rnf StopModelResponse' {..} =+    Prelude.rnf status+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutVision/TagResource.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.LookoutVision.TagResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds one or more key-value tags to an Amazon Lookout for Vision model.+-- For more information, see /Tagging a model/ in the /Amazon Lookout for+-- Vision Developer Guide/.+--+-- This operation requires permissions to perform the+-- @lookoutvision:TagResource@ operation.+module Amazonka.LookoutVision.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.LookoutVision.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newTagResource' smart constructor.+data TagResource = TagResource'+  { -- | The Amazon Resource Name (ARN) of the model to assign the tags.+    resourceArn :: Prelude.Text,+    -- | The key-value tags to assign to the model.+    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 Amazon Resource Name (ARN) of the model to assign the tags.+--+-- 'tags', 'tagResource_tags' - The key-value tags to assign to the model.+newTagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  TagResource+newTagResource pResourceArn_ =+  TagResource'+    { resourceArn = pResourceArn_,+      tags = Prelude.mempty+    }++-- | The Amazon Resource Name (ARN) of the model to assign the tags.+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++-- | The key-value tags to assign to the model.+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+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON TagResource where+  toJSON TagResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("Tags" Data..= tags)]+      )++instance Data.ToPath TagResource where+  toPath TagResource' {..} =+    Prelude.mconcat+      ["/2020-11-20/tags/", Data.toBS resourceArn]++instance Data.ToQuery TagResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newTagResourceResponse' smart constructor.+data TagResourceResponse = TagResourceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'tagResourceResponse_httpStatus' - The response's http status code.+newTagResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  TagResourceResponse+newTagResourceResponse pHttpStatus_ =+  TagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+tagResourceResponse_httpStatus :: Lens.Lens' TagResourceResponse Prelude.Int+tagResourceResponse_httpStatus = Lens.lens (\TagResourceResponse' {httpStatus} -> httpStatus) (\s@TagResourceResponse' {} a -> s {httpStatus = a} :: TagResourceResponse)++instance Prelude.NFData TagResourceResponse where+  rnf TagResourceResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/LookoutVision/Types.hs view
@@ -0,0 +1,431 @@+{-# 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.LookoutVision.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.LookoutVision.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _AccessDeniedException,+    _ConflictException,+    _InternalServerException,+    _ResourceNotFoundException,+    _ServiceQuotaExceededException,+    _ThrottlingException,+    _ValidationException,++    -- * DatasetStatus+    DatasetStatus (..),++    -- * ModelHostingStatus+    ModelHostingStatus (..),++    -- * ModelPackagingJobStatus+    ModelPackagingJobStatus (..),++    -- * ModelStatus+    ModelStatus (..),++    -- * TargetDevice+    TargetDevice (..),++    -- * TargetPlatformAccelerator+    TargetPlatformAccelerator (..),++    -- * TargetPlatformArch+    TargetPlatformArch (..),++    -- * TargetPlatformOs+    TargetPlatformOs (..),++    -- * Anomaly+    Anomaly (..),+    newAnomaly,+    anomaly_name,+    anomaly_pixelAnomaly,++    -- * DatasetDescription+    DatasetDescription (..),+    newDatasetDescription,+    datasetDescription_creationTimestamp,+    datasetDescription_datasetType,+    datasetDescription_imageStats,+    datasetDescription_lastUpdatedTimestamp,+    datasetDescription_projectName,+    datasetDescription_status,+    datasetDescription_statusMessage,++    -- * DatasetGroundTruthManifest+    DatasetGroundTruthManifest (..),+    newDatasetGroundTruthManifest,+    datasetGroundTruthManifest_s3Object,++    -- * DatasetImageStats+    DatasetImageStats (..),+    newDatasetImageStats,+    datasetImageStats_anomaly,+    datasetImageStats_labeled,+    datasetImageStats_normal,+    datasetImageStats_total,++    -- * DatasetMetadata+    DatasetMetadata (..),+    newDatasetMetadata,+    datasetMetadata_creationTimestamp,+    datasetMetadata_datasetType,+    datasetMetadata_status,+    datasetMetadata_statusMessage,++    -- * DatasetSource+    DatasetSource (..),+    newDatasetSource,+    datasetSource_groundTruthManifest,++    -- * DetectAnomalyResult+    DetectAnomalyResult (..),+    newDetectAnomalyResult,+    detectAnomalyResult_anomalies,+    detectAnomalyResult_anomalyMask,+    detectAnomalyResult_confidence,+    detectAnomalyResult_isAnomalous,+    detectAnomalyResult_source,++    -- * GreengrassConfiguration+    GreengrassConfiguration (..),+    newGreengrassConfiguration,+    greengrassConfiguration_compilerOptions,+    greengrassConfiguration_componentDescription,+    greengrassConfiguration_componentVersion,+    greengrassConfiguration_tags,+    greengrassConfiguration_targetDevice,+    greengrassConfiguration_targetPlatform,+    greengrassConfiguration_s3OutputLocation,+    greengrassConfiguration_componentName,++    -- * GreengrassOutputDetails+    GreengrassOutputDetails (..),+    newGreengrassOutputDetails,+    greengrassOutputDetails_componentName,+    greengrassOutputDetails_componentVersion,+    greengrassOutputDetails_componentVersionArn,++    -- * ImageSource+    ImageSource (..),+    newImageSource,+    imageSource_type,++    -- * InputS3Object+    InputS3Object (..),+    newInputS3Object,+    inputS3Object_versionId,+    inputS3Object_bucket,+    inputS3Object_key,++    -- * ModelDescription+    ModelDescription (..),+    newModelDescription,+    modelDescription_creationTimestamp,+    modelDescription_description,+    modelDescription_evaluationEndTimestamp,+    modelDescription_evaluationManifest,+    modelDescription_evaluationResult,+    modelDescription_kmsKeyId,+    modelDescription_maxInferenceUnits,+    modelDescription_minInferenceUnits,+    modelDescription_modelArn,+    modelDescription_modelVersion,+    modelDescription_outputConfig,+    modelDescription_performance,+    modelDescription_status,+    modelDescription_statusMessage,++    -- * ModelMetadata+    ModelMetadata (..),+    newModelMetadata,+    modelMetadata_creationTimestamp,+    modelMetadata_description,+    modelMetadata_modelArn,+    modelMetadata_modelVersion,+    modelMetadata_performance,+    modelMetadata_status,+    modelMetadata_statusMessage,++    -- * ModelPackagingConfiguration+    ModelPackagingConfiguration (..),+    newModelPackagingConfiguration,+    modelPackagingConfiguration_greengrass,++    -- * ModelPackagingDescription+    ModelPackagingDescription (..),+    newModelPackagingDescription,+    modelPackagingDescription_creationTimestamp,+    modelPackagingDescription_jobName,+    modelPackagingDescription_lastUpdatedTimestamp,+    modelPackagingDescription_modelPackagingConfiguration,+    modelPackagingDescription_modelPackagingJobDescription,+    modelPackagingDescription_modelPackagingMethod,+    modelPackagingDescription_modelPackagingOutputDetails,+    modelPackagingDescription_modelVersion,+    modelPackagingDescription_projectName,+    modelPackagingDescription_status,+    modelPackagingDescription_statusMessage,++    -- * ModelPackagingJobMetadata+    ModelPackagingJobMetadata (..),+    newModelPackagingJobMetadata,+    modelPackagingJobMetadata_creationTimestamp,+    modelPackagingJobMetadata_jobName,+    modelPackagingJobMetadata_lastUpdatedTimestamp,+    modelPackagingJobMetadata_modelPackagingJobDescription,+    modelPackagingJobMetadata_modelPackagingMethod,+    modelPackagingJobMetadata_modelVersion,+    modelPackagingJobMetadata_projectName,+    modelPackagingJobMetadata_status,+    modelPackagingJobMetadata_statusMessage,++    -- * ModelPackagingOutputDetails+    ModelPackagingOutputDetails (..),+    newModelPackagingOutputDetails,+    modelPackagingOutputDetails_greengrass,++    -- * ModelPerformance+    ModelPerformance (..),+    newModelPerformance,+    modelPerformance_f1Score,+    modelPerformance_precision,+    modelPerformance_recall,++    -- * OutputConfig+    OutputConfig (..),+    newOutputConfig,+    outputConfig_s3Location,++    -- * OutputS3Object+    OutputS3Object (..),+    newOutputS3Object,+    outputS3Object_bucket,+    outputS3Object_key,++    -- * PixelAnomaly+    PixelAnomaly (..),+    newPixelAnomaly,+    pixelAnomaly_color,+    pixelAnomaly_totalPercentageArea,++    -- * ProjectDescription+    ProjectDescription (..),+    newProjectDescription,+    projectDescription_creationTimestamp,+    projectDescription_datasets,+    projectDescription_projectArn,+    projectDescription_projectName,++    -- * ProjectMetadata+    ProjectMetadata (..),+    newProjectMetadata,+    projectMetadata_creationTimestamp,+    projectMetadata_projectArn,+    projectMetadata_projectName,++    -- * S3Location+    S3Location (..),+    newS3Location,+    s3Location_prefix,+    s3Location_bucket,++    -- * Tag+    Tag (..),+    newTag,+    tag_key,+    tag_value,++    -- * TargetPlatform+    TargetPlatform (..),+    newTargetPlatform,+    targetPlatform_accelerator,+    targetPlatform_os,+    targetPlatform_arch,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.LookoutVision.Types.Anomaly+import Amazonka.LookoutVision.Types.DatasetDescription+import Amazonka.LookoutVision.Types.DatasetGroundTruthManifest+import Amazonka.LookoutVision.Types.DatasetImageStats+import Amazonka.LookoutVision.Types.DatasetMetadata+import Amazonka.LookoutVision.Types.DatasetSource+import Amazonka.LookoutVision.Types.DatasetStatus+import Amazonka.LookoutVision.Types.DetectAnomalyResult+import Amazonka.LookoutVision.Types.GreengrassConfiguration+import Amazonka.LookoutVision.Types.GreengrassOutputDetails+import Amazonka.LookoutVision.Types.ImageSource+import Amazonka.LookoutVision.Types.InputS3Object+import Amazonka.LookoutVision.Types.ModelDescription+import Amazonka.LookoutVision.Types.ModelHostingStatus+import Amazonka.LookoutVision.Types.ModelMetadata+import Amazonka.LookoutVision.Types.ModelPackagingConfiguration+import Amazonka.LookoutVision.Types.ModelPackagingDescription+import Amazonka.LookoutVision.Types.ModelPackagingJobMetadata+import Amazonka.LookoutVision.Types.ModelPackagingJobStatus+import Amazonka.LookoutVision.Types.ModelPackagingOutputDetails+import Amazonka.LookoutVision.Types.ModelPerformance+import Amazonka.LookoutVision.Types.ModelStatus+import Amazonka.LookoutVision.Types.OutputConfig+import Amazonka.LookoutVision.Types.OutputS3Object+import Amazonka.LookoutVision.Types.PixelAnomaly+import Amazonka.LookoutVision.Types.ProjectDescription+import Amazonka.LookoutVision.Types.ProjectMetadata+import Amazonka.LookoutVision.Types.S3Location+import Amazonka.LookoutVision.Types.Tag+import Amazonka.LookoutVision.Types.TargetDevice+import Amazonka.LookoutVision.Types.TargetPlatform+import Amazonka.LookoutVision.Types.TargetPlatformAccelerator+import Amazonka.LookoutVision.Types.TargetPlatformArch+import Amazonka.LookoutVision.Types.TargetPlatformOs+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2020-11-20@ of the Amazon Lookout for Vision SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "LookoutVision",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "lookoutvision",+      Core.signingName = "lookoutvision",+      Core.version = "2020-11-20",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "LookoutVision",+      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++-- | You are not authorized to perform the action.+_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AccessDeniedException =+  Core._MatchServiceError+    defaultService+    "AccessDeniedException"+    Prelude.. Core.hasStatus 403++-- | The update or deletion of a resource caused an inconsistent state.+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+  Core._MatchServiceError+    defaultService+    "ConflictException"+    Prelude.. Core.hasStatus 409++-- | Amazon Lookout for Vision experienced a service issue. Try your call+-- again.+_InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerException =+  Core._MatchServiceError+    defaultService+    "InternalServerException"+    Prelude.. Core.hasStatus 500++-- | The resource could not be found.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+  Core._MatchServiceError+    defaultService+    "ResourceNotFoundException"+    Prelude.. Core.hasStatus 404++-- | A service quota was exceeded the allowed limit. For more information,+-- see Limits in Amazon Lookout for Vision in the Amazon Lookout for Vision+-- Developer Guide.+_ServiceQuotaExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceQuotaExceededException =+  Core._MatchServiceError+    defaultService+    "ServiceQuotaExceededException"+    Prelude.. Core.hasStatus 402++-- | Amazon Lookout for Vision is temporarily unable to process the request.+-- Try your call again.+_ThrottlingException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ThrottlingException =+  Core._MatchServiceError+    defaultService+    "ThrottlingException"+    Prelude.. Core.hasStatus 429++-- | An input validation error occured. For example, invalid characters in a+-- project name, or if a pagination token is invalid.+_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ValidationException =+  Core._MatchServiceError+    defaultService+    "ValidationException"+    Prelude.. Core.hasStatus 400
+ gen/Amazonka/LookoutVision/Types/Anomaly.hs view
@@ -0,0 +1,95 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.Types.Anomaly+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutVision.Types.Anomaly where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutVision.Types.PixelAnomaly+import qualified Amazonka.Prelude as Prelude++-- | Information about an anomaly type found on an image by an image+-- segmentation model. For more information, see DetectAnomalies.+--+-- /See:/ 'newAnomaly' smart constructor.+data Anomaly = Anomaly'+  { -- | The name of an anomaly type found in an image. @Name@ maps to an anomaly+    -- type in the training dataset, apart from the anomaly type @background@.+    -- The service automatically inserts the @background@ anomaly type into the+    -- response from @DetectAnomalies@.+    name :: Prelude.Maybe Prelude.Text,+    -- | Information about the pixel mask that covers an anomaly type.+    pixelAnomaly :: Prelude.Maybe PixelAnomaly+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Anomaly' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'anomaly_name' - The name of an anomaly type found in an image. @Name@ maps to an anomaly+-- type in the training dataset, apart from the anomaly type @background@.+-- The service automatically inserts the @background@ anomaly type into the+-- response from @DetectAnomalies@.+--+-- 'pixelAnomaly', 'anomaly_pixelAnomaly' - Information about the pixel mask that covers an anomaly type.+newAnomaly ::+  Anomaly+newAnomaly =+  Anomaly'+    { name = Prelude.Nothing,+      pixelAnomaly = Prelude.Nothing+    }++-- | The name of an anomaly type found in an image. @Name@ maps to an anomaly+-- type in the training dataset, apart from the anomaly type @background@.+-- The service automatically inserts the @background@ anomaly type into the+-- response from @DetectAnomalies@.+anomaly_name :: Lens.Lens' Anomaly (Prelude.Maybe Prelude.Text)+anomaly_name = Lens.lens (\Anomaly' {name} -> name) (\s@Anomaly' {} a -> s {name = a} :: Anomaly)++-- | Information about the pixel mask that covers an anomaly type.+anomaly_pixelAnomaly :: Lens.Lens' Anomaly (Prelude.Maybe PixelAnomaly)+anomaly_pixelAnomaly = Lens.lens (\Anomaly' {pixelAnomaly} -> pixelAnomaly) (\s@Anomaly' {} a -> s {pixelAnomaly = a} :: Anomaly)++instance Data.FromJSON Anomaly where+  parseJSON =+    Data.withObject+      "Anomaly"+      ( \x ->+          Anomaly'+            Prelude.<$> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "PixelAnomaly")+      )++instance Prelude.Hashable Anomaly where+  hashWithSalt _salt Anomaly' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` pixelAnomaly++instance Prelude.NFData Anomaly where+  rnf Anomaly' {..} =+    Prelude.rnf name+      `Prelude.seq` Prelude.rnf pixelAnomaly
+ gen/Amazonka/LookoutVision/Types/DatasetDescription.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.LookoutVision.Types.DatasetDescription+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutVision.Types.DatasetDescription where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutVision.Types.DatasetImageStats+import Amazonka.LookoutVision.Types.DatasetStatus+import qualified Amazonka.Prelude as Prelude++-- | The description for a dataset. For more information, see+-- DescribeDataset.+--+-- /See:/ 'newDatasetDescription' smart constructor.+data DatasetDescription = DatasetDescription'+  { -- | The Unix timestamp for the time and date that the dataset was created.+    creationTimestamp :: Prelude.Maybe Data.POSIX,+    -- | The type of the dataset. The value @train@ represents a training dataset+    -- or single dataset project. The value @test@ represents a test dataset.+    datasetType :: Prelude.Maybe Prelude.Text,+    -- | Statistics about the images in a dataset.+    imageStats :: Prelude.Maybe DatasetImageStats,+    -- | The Unix timestamp for the date and time that the dataset was last+    -- updated.+    lastUpdatedTimestamp :: Prelude.Maybe Data.POSIX,+    -- | The name of the project that contains the dataset.+    projectName :: Prelude.Maybe Prelude.Text,+    -- | The status of the dataset.+    status :: Prelude.Maybe DatasetStatus,+    -- | The status message for the dataset.+    statusMessage :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DatasetDescription' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationTimestamp', 'datasetDescription_creationTimestamp' - The Unix timestamp for the time and date that the dataset was created.+--+-- 'datasetType', 'datasetDescription_datasetType' - The type of the dataset. The value @train@ represents a training dataset+-- or single dataset project. The value @test@ represents a test dataset.+--+-- 'imageStats', 'datasetDescription_imageStats' - Statistics about the images in a dataset.+--+-- 'lastUpdatedTimestamp', 'datasetDescription_lastUpdatedTimestamp' - The Unix timestamp for the date and time that the dataset was last+-- updated.+--+-- 'projectName', 'datasetDescription_projectName' - The name of the project that contains the dataset.+--+-- 'status', 'datasetDescription_status' - The status of the dataset.+--+-- 'statusMessage', 'datasetDescription_statusMessage' - The status message for the dataset.+newDatasetDescription ::+  DatasetDescription+newDatasetDescription =+  DatasetDescription'+    { creationTimestamp =+        Prelude.Nothing,+      datasetType = Prelude.Nothing,+      imageStats = Prelude.Nothing,+      lastUpdatedTimestamp = Prelude.Nothing,+      projectName = Prelude.Nothing,+      status = Prelude.Nothing,+      statusMessage = Prelude.Nothing+    }++-- | The Unix timestamp for the time and date that the dataset was created.+datasetDescription_creationTimestamp :: Lens.Lens' DatasetDescription (Prelude.Maybe Prelude.UTCTime)+datasetDescription_creationTimestamp = Lens.lens (\DatasetDescription' {creationTimestamp} -> creationTimestamp) (\s@DatasetDescription' {} a -> s {creationTimestamp = a} :: DatasetDescription) Prelude.. Lens.mapping Data._Time++-- | The type of the dataset. The value @train@ represents a training dataset+-- or single dataset project. The value @test@ represents a test dataset.+datasetDescription_datasetType :: Lens.Lens' DatasetDescription (Prelude.Maybe Prelude.Text)+datasetDescription_datasetType = Lens.lens (\DatasetDescription' {datasetType} -> datasetType) (\s@DatasetDescription' {} a -> s {datasetType = a} :: DatasetDescription)++-- | Statistics about the images in a dataset.+datasetDescription_imageStats :: Lens.Lens' DatasetDescription (Prelude.Maybe DatasetImageStats)+datasetDescription_imageStats = Lens.lens (\DatasetDescription' {imageStats} -> imageStats) (\s@DatasetDescription' {} a -> s {imageStats = a} :: DatasetDescription)++-- | The Unix timestamp for the date and time that the dataset was last+-- updated.+datasetDescription_lastUpdatedTimestamp :: Lens.Lens' DatasetDescription (Prelude.Maybe Prelude.UTCTime)+datasetDescription_lastUpdatedTimestamp = Lens.lens (\DatasetDescription' {lastUpdatedTimestamp} -> lastUpdatedTimestamp) (\s@DatasetDescription' {} a -> s {lastUpdatedTimestamp = a} :: DatasetDescription) Prelude.. Lens.mapping Data._Time++-- | The name of the project that contains the dataset.+datasetDescription_projectName :: Lens.Lens' DatasetDescription (Prelude.Maybe Prelude.Text)+datasetDescription_projectName = Lens.lens (\DatasetDescription' {projectName} -> projectName) (\s@DatasetDescription' {} a -> s {projectName = a} :: DatasetDescription)++-- | The status of the dataset.+datasetDescription_status :: Lens.Lens' DatasetDescription (Prelude.Maybe DatasetStatus)+datasetDescription_status = Lens.lens (\DatasetDescription' {status} -> status) (\s@DatasetDescription' {} a -> s {status = a} :: DatasetDescription)++-- | The status message for the dataset.+datasetDescription_statusMessage :: Lens.Lens' DatasetDescription (Prelude.Maybe Prelude.Text)+datasetDescription_statusMessage = Lens.lens (\DatasetDescription' {statusMessage} -> statusMessage) (\s@DatasetDescription' {} a -> s {statusMessage = a} :: DatasetDescription)++instance Data.FromJSON DatasetDescription where+  parseJSON =+    Data.withObject+      "DatasetDescription"+      ( \x ->+          DatasetDescription'+            Prelude.<$> (x Data..:? "CreationTimestamp")+            Prelude.<*> (x Data..:? "DatasetType")+            Prelude.<*> (x Data..:? "ImageStats")+            Prelude.<*> (x Data..:? "LastUpdatedTimestamp")+            Prelude.<*> (x Data..:? "ProjectName")+            Prelude.<*> (x Data..:? "Status")+            Prelude.<*> (x Data..:? "StatusMessage")+      )++instance Prelude.Hashable DatasetDescription where+  hashWithSalt _salt DatasetDescription' {..} =+    _salt+      `Prelude.hashWithSalt` creationTimestamp+      `Prelude.hashWithSalt` datasetType+      `Prelude.hashWithSalt` imageStats+      `Prelude.hashWithSalt` lastUpdatedTimestamp+      `Prelude.hashWithSalt` projectName+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` statusMessage++instance Prelude.NFData DatasetDescription where+  rnf DatasetDescription' {..} =+    Prelude.rnf creationTimestamp+      `Prelude.seq` Prelude.rnf datasetType+      `Prelude.seq` Prelude.rnf imageStats+      `Prelude.seq` Prelude.rnf lastUpdatedTimestamp+      `Prelude.seq` Prelude.rnf projectName+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf statusMessage
+ gen/Amazonka/LookoutVision/Types/DatasetGroundTruthManifest.hs view
@@ -0,0 +1,72 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.Types.DatasetGroundTruthManifest+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutVision.Types.DatasetGroundTruthManifest where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutVision.Types.InputS3Object+import qualified Amazonka.Prelude as Prelude++-- | Location information about a manifest file. You can use a manifest file+-- to create a dataset.+--+-- /See:/ 'newDatasetGroundTruthManifest' smart constructor.+data DatasetGroundTruthManifest = DatasetGroundTruthManifest'+  { -- | The S3 bucket location for the manifest file.+    s3Object :: Prelude.Maybe InputS3Object+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DatasetGroundTruthManifest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 's3Object', 'datasetGroundTruthManifest_s3Object' - The S3 bucket location for the manifest file.+newDatasetGroundTruthManifest ::+  DatasetGroundTruthManifest+newDatasetGroundTruthManifest =+  DatasetGroundTruthManifest'+    { s3Object =+        Prelude.Nothing+    }++-- | The S3 bucket location for the manifest file.+datasetGroundTruthManifest_s3Object :: Lens.Lens' DatasetGroundTruthManifest (Prelude.Maybe InputS3Object)+datasetGroundTruthManifest_s3Object = Lens.lens (\DatasetGroundTruthManifest' {s3Object} -> s3Object) (\s@DatasetGroundTruthManifest' {} a -> s {s3Object = a} :: DatasetGroundTruthManifest)++instance Prelude.Hashable DatasetGroundTruthManifest where+  hashWithSalt _salt DatasetGroundTruthManifest' {..} =+    _salt `Prelude.hashWithSalt` s3Object++instance Prelude.NFData DatasetGroundTruthManifest where+  rnf DatasetGroundTruthManifest' {..} =+    Prelude.rnf s3Object++instance Data.ToJSON DatasetGroundTruthManifest where+  toJSON DatasetGroundTruthManifest' {..} =+    Data.object+      ( Prelude.catMaybes+          [("S3Object" Data..=) Prelude.<$> s3Object]+      )
+ gen/Amazonka/LookoutVision/Types/DatasetImageStats.hs view
@@ -0,0 +1,108 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.Types.DatasetImageStats+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutVision.Types.DatasetImageStats 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++-- | Statistics about the images in a dataset.+--+-- /See:/ 'newDatasetImageStats' smart constructor.+data DatasetImageStats = DatasetImageStats'+  { -- | the total number of images labeled as an anomaly.+    anomaly :: Prelude.Maybe Prelude.Int,+    -- | The total number of labeled images.+    labeled :: Prelude.Maybe Prelude.Int,+    -- | The total number of images labeled as normal.+    normal :: Prelude.Maybe Prelude.Int,+    -- | The total number of images in the dataset.+    total :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DatasetImageStats' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomaly', 'datasetImageStats_anomaly' - the total number of images labeled as an anomaly.+--+-- 'labeled', 'datasetImageStats_labeled' - The total number of labeled images.+--+-- 'normal', 'datasetImageStats_normal' - The total number of images labeled as normal.+--+-- 'total', 'datasetImageStats_total' - The total number of images in the dataset.+newDatasetImageStats ::+  DatasetImageStats+newDatasetImageStats =+  DatasetImageStats'+    { anomaly = Prelude.Nothing,+      labeled = Prelude.Nothing,+      normal = Prelude.Nothing,+      total = Prelude.Nothing+    }++-- | the total number of images labeled as an anomaly.+datasetImageStats_anomaly :: Lens.Lens' DatasetImageStats (Prelude.Maybe Prelude.Int)+datasetImageStats_anomaly = Lens.lens (\DatasetImageStats' {anomaly} -> anomaly) (\s@DatasetImageStats' {} a -> s {anomaly = a} :: DatasetImageStats)++-- | The total number of labeled images.+datasetImageStats_labeled :: Lens.Lens' DatasetImageStats (Prelude.Maybe Prelude.Int)+datasetImageStats_labeled = Lens.lens (\DatasetImageStats' {labeled} -> labeled) (\s@DatasetImageStats' {} a -> s {labeled = a} :: DatasetImageStats)++-- | The total number of images labeled as normal.+datasetImageStats_normal :: Lens.Lens' DatasetImageStats (Prelude.Maybe Prelude.Int)+datasetImageStats_normal = Lens.lens (\DatasetImageStats' {normal} -> normal) (\s@DatasetImageStats' {} a -> s {normal = a} :: DatasetImageStats)++-- | The total number of images in the dataset.+datasetImageStats_total :: Lens.Lens' DatasetImageStats (Prelude.Maybe Prelude.Int)+datasetImageStats_total = Lens.lens (\DatasetImageStats' {total} -> total) (\s@DatasetImageStats' {} a -> s {total = a} :: DatasetImageStats)++instance Data.FromJSON DatasetImageStats where+  parseJSON =+    Data.withObject+      "DatasetImageStats"+      ( \x ->+          DatasetImageStats'+            Prelude.<$> (x Data..:? "Anomaly")+            Prelude.<*> (x Data..:? "Labeled")+            Prelude.<*> (x Data..:? "Normal")+            Prelude.<*> (x Data..:? "Total")+      )++instance Prelude.Hashable DatasetImageStats where+  hashWithSalt _salt DatasetImageStats' {..} =+    _salt+      `Prelude.hashWithSalt` anomaly+      `Prelude.hashWithSalt` labeled+      `Prelude.hashWithSalt` normal+      `Prelude.hashWithSalt` total++instance Prelude.NFData DatasetImageStats where+  rnf DatasetImageStats' {..} =+    Prelude.rnf anomaly+      `Prelude.seq` Prelude.rnf labeled+      `Prelude.seq` Prelude.rnf normal+      `Prelude.seq` Prelude.rnf total
+ gen/Amazonka/LookoutVision/Types/DatasetMetadata.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.LookoutVision.Types.DatasetMetadata+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutVision.Types.DatasetMetadata where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutVision.Types.DatasetStatus+import qualified Amazonka.Prelude as Prelude++-- | Summary information for an Amazon Lookout for Vision dataset. For more+-- information, see DescribeDataset and ProjectDescription.+--+-- /See:/ 'newDatasetMetadata' smart constructor.+data DatasetMetadata = DatasetMetadata'+  { -- | The Unix timestamp for the date and time that the dataset was created.+    creationTimestamp :: Prelude.Maybe Data.POSIX,+    -- | The type of the dataset.+    datasetType :: Prelude.Maybe Prelude.Text,+    -- | The status for the dataset.+    status :: Prelude.Maybe DatasetStatus,+    -- | The status message for the dataset.+    statusMessage :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DatasetMetadata' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationTimestamp', 'datasetMetadata_creationTimestamp' - The Unix timestamp for the date and time that the dataset was created.+--+-- 'datasetType', 'datasetMetadata_datasetType' - The type of the dataset.+--+-- 'status', 'datasetMetadata_status' - The status for the dataset.+--+-- 'statusMessage', 'datasetMetadata_statusMessage' - The status message for the dataset.+newDatasetMetadata ::+  DatasetMetadata+newDatasetMetadata =+  DatasetMetadata'+    { creationTimestamp =+        Prelude.Nothing,+      datasetType = Prelude.Nothing,+      status = Prelude.Nothing,+      statusMessage = Prelude.Nothing+    }++-- | The Unix timestamp for the date and time that the dataset was created.+datasetMetadata_creationTimestamp :: Lens.Lens' DatasetMetadata (Prelude.Maybe Prelude.UTCTime)+datasetMetadata_creationTimestamp = Lens.lens (\DatasetMetadata' {creationTimestamp} -> creationTimestamp) (\s@DatasetMetadata' {} a -> s {creationTimestamp = a} :: DatasetMetadata) Prelude.. Lens.mapping Data._Time++-- | The type of the dataset.+datasetMetadata_datasetType :: Lens.Lens' DatasetMetadata (Prelude.Maybe Prelude.Text)+datasetMetadata_datasetType = Lens.lens (\DatasetMetadata' {datasetType} -> datasetType) (\s@DatasetMetadata' {} a -> s {datasetType = a} :: DatasetMetadata)++-- | The status for the dataset.+datasetMetadata_status :: Lens.Lens' DatasetMetadata (Prelude.Maybe DatasetStatus)+datasetMetadata_status = Lens.lens (\DatasetMetadata' {status} -> status) (\s@DatasetMetadata' {} a -> s {status = a} :: DatasetMetadata)++-- | The status message for the dataset.+datasetMetadata_statusMessage :: Lens.Lens' DatasetMetadata (Prelude.Maybe Prelude.Text)+datasetMetadata_statusMessage = Lens.lens (\DatasetMetadata' {statusMessage} -> statusMessage) (\s@DatasetMetadata' {} a -> s {statusMessage = a} :: DatasetMetadata)++instance Data.FromJSON DatasetMetadata where+  parseJSON =+    Data.withObject+      "DatasetMetadata"+      ( \x ->+          DatasetMetadata'+            Prelude.<$> (x Data..:? "CreationTimestamp")+            Prelude.<*> (x Data..:? "DatasetType")+            Prelude.<*> (x Data..:? "Status")+            Prelude.<*> (x Data..:? "StatusMessage")+      )++instance Prelude.Hashable DatasetMetadata where+  hashWithSalt _salt DatasetMetadata' {..} =+    _salt+      `Prelude.hashWithSalt` creationTimestamp+      `Prelude.hashWithSalt` datasetType+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` statusMessage++instance Prelude.NFData DatasetMetadata where+  rnf DatasetMetadata' {..} =+    Prelude.rnf creationTimestamp+      `Prelude.seq` Prelude.rnf datasetType+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf statusMessage
+ gen/Amazonka/LookoutVision/Types/DatasetSource.hs view
@@ -0,0 +1,74 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.Types.DatasetSource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutVision.Types.DatasetSource where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutVision.Types.DatasetGroundTruthManifest+import qualified Amazonka.Prelude as Prelude++-- | Information about the location of a manifest file that Amazon Lookout+-- for Vision uses to to create a dataset.+--+-- /See:/ 'newDatasetSource' smart constructor.+data DatasetSource = DatasetSource'+  { -- | Location information for the manifest file.+    groundTruthManifest :: Prelude.Maybe DatasetGroundTruthManifest+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DatasetSource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'groundTruthManifest', 'datasetSource_groundTruthManifest' - Location information for the manifest file.+newDatasetSource ::+  DatasetSource+newDatasetSource =+  DatasetSource'+    { groundTruthManifest =+        Prelude.Nothing+    }++-- | Location information for the manifest file.+datasetSource_groundTruthManifest :: Lens.Lens' DatasetSource (Prelude.Maybe DatasetGroundTruthManifest)+datasetSource_groundTruthManifest = Lens.lens (\DatasetSource' {groundTruthManifest} -> groundTruthManifest) (\s@DatasetSource' {} a -> s {groundTruthManifest = a} :: DatasetSource)++instance Prelude.Hashable DatasetSource where+  hashWithSalt _salt DatasetSource' {..} =+    _salt `Prelude.hashWithSalt` groundTruthManifest++instance Prelude.NFData DatasetSource where+  rnf DatasetSource' {..} =+    Prelude.rnf groundTruthManifest++instance Data.ToJSON DatasetSource where+  toJSON DatasetSource' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("GroundTruthManifest" Data..=)+              Prelude.<$> groundTruthManifest+          ]+      )
+ gen/Amazonka/LookoutVision/Types/DatasetStatus.hs view
@@ -0,0 +1,111 @@+{-# 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.LookoutVision.Types.DatasetStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutVision.Types.DatasetStatus+  ( DatasetStatus+      ( ..,+        DatasetStatus_CREATE_COMPLETE,+        DatasetStatus_CREATE_FAILED,+        DatasetStatus_CREATE_IN_PROGRESS,+        DatasetStatus_DELETE_COMPLETE,+        DatasetStatus_DELETE_FAILED,+        DatasetStatus_DELETE_IN_PROGRESS,+        DatasetStatus_UPDATE_COMPLETE,+        DatasetStatus_UPDATE_FAILED_ROLLBACK_COMPLETE,+        DatasetStatus_UPDATE_FAILED_ROLLBACK_IN_PROGRESS,+        DatasetStatus_UPDATE_IN_PROGRESS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DatasetStatus = DatasetStatus'+  { fromDatasetStatus ::+      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 DatasetStatus_CREATE_COMPLETE :: DatasetStatus+pattern DatasetStatus_CREATE_COMPLETE = DatasetStatus' "CREATE_COMPLETE"++pattern DatasetStatus_CREATE_FAILED :: DatasetStatus+pattern DatasetStatus_CREATE_FAILED = DatasetStatus' "CREATE_FAILED"++pattern DatasetStatus_CREATE_IN_PROGRESS :: DatasetStatus+pattern DatasetStatus_CREATE_IN_PROGRESS = DatasetStatus' "CREATE_IN_PROGRESS"++pattern DatasetStatus_DELETE_COMPLETE :: DatasetStatus+pattern DatasetStatus_DELETE_COMPLETE = DatasetStatus' "DELETE_COMPLETE"++pattern DatasetStatus_DELETE_FAILED :: DatasetStatus+pattern DatasetStatus_DELETE_FAILED = DatasetStatus' "DELETE_FAILED"++pattern DatasetStatus_DELETE_IN_PROGRESS :: DatasetStatus+pattern DatasetStatus_DELETE_IN_PROGRESS = DatasetStatus' "DELETE_IN_PROGRESS"++pattern DatasetStatus_UPDATE_COMPLETE :: DatasetStatus+pattern DatasetStatus_UPDATE_COMPLETE = DatasetStatus' "UPDATE_COMPLETE"++pattern DatasetStatus_UPDATE_FAILED_ROLLBACK_COMPLETE :: DatasetStatus+pattern DatasetStatus_UPDATE_FAILED_ROLLBACK_COMPLETE = DatasetStatus' "UPDATE_FAILED_ROLLBACK_COMPLETE"++pattern DatasetStatus_UPDATE_FAILED_ROLLBACK_IN_PROGRESS :: DatasetStatus+pattern DatasetStatus_UPDATE_FAILED_ROLLBACK_IN_PROGRESS = DatasetStatus' "UPDATE_FAILED_ROLLBACK_IN_PROGRESS"++pattern DatasetStatus_UPDATE_IN_PROGRESS :: DatasetStatus+pattern DatasetStatus_UPDATE_IN_PROGRESS = DatasetStatus' "UPDATE_IN_PROGRESS"++{-# COMPLETE+  DatasetStatus_CREATE_COMPLETE,+  DatasetStatus_CREATE_FAILED,+  DatasetStatus_CREATE_IN_PROGRESS,+  DatasetStatus_DELETE_COMPLETE,+  DatasetStatus_DELETE_FAILED,+  DatasetStatus_DELETE_IN_PROGRESS,+  DatasetStatus_UPDATE_COMPLETE,+  DatasetStatus_UPDATE_FAILED_ROLLBACK_COMPLETE,+  DatasetStatus_UPDATE_FAILED_ROLLBACK_IN_PROGRESS,+  DatasetStatus_UPDATE_IN_PROGRESS,+  DatasetStatus'+  #-}
+ gen/Amazonka/LookoutVision/Types/DetectAnomalyResult.hs view
@@ -0,0 +1,199 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.Types.DetectAnomalyResult+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutVision.Types.DetectAnomalyResult where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutVision.Types.Anomaly+import Amazonka.LookoutVision.Types.ImageSource+import qualified Amazonka.Prelude as Prelude++-- | The prediction results from a call to DetectAnomalies.+-- @DetectAnomalyResult@ includes classification information for the+-- prediction (@IsAnomalous@ and @Confidence@). If the model you use is an+-- image segementation model, @DetectAnomalyResult@ also includes+-- segmentation information (@Anomalies@ and @AnomalyMask@). Classification+-- information is calculated separately from segmentation information and+-- you shouldn\'t assume a relationship between them.+--+-- /See:/ 'newDetectAnomalyResult' smart constructor.+data DetectAnomalyResult = DetectAnomalyResult'+  { -- | If the model is an image segmentation model, @Anomalies@ contains a list+    -- of anomaly types found in the image. There is one entry for each type of+    -- anomaly found (even if multiple instances of an anomaly type exist on+    -- the image). The first element in the list is always an anomaly type+    -- representing the image background (\'background\') and shouldn\'t be+    -- considered an anomaly. Amazon Lookout for Vision automatically add the+    -- background anomaly type to the response, and you don\'t need to declare+    -- a background anomaly type in your dataset.+    --+    -- If the list has one entry (\'background\'), no anomalies were found on+    -- the image.+    --+    -- An image classification model doesn\'t return an @Anomalies@ list.+    anomalies :: Prelude.Maybe [Anomaly],+    -- | If the model is an image segmentation model, @AnomalyMask@ contains+    -- pixel masks that covers all anomaly types found on the image. Each+    -- anomaly type has a different mask color. To map a color to an anomaly+    -- type, see the @color@ field of the PixelAnomaly object.+    --+    -- An image classification model doesn\'t return an @Anomalies@ list.+    anomalyMask :: Prelude.Maybe Data.Base64,+    -- | The confidence that Lookout for Vision has in the accuracy of the+    -- classification in @IsAnomalous@.+    confidence :: Prelude.Maybe Prelude.Double,+    -- | True if Amazon Lookout for Vision classifies the image as containing an+    -- anomaly, otherwise false.+    isAnomalous :: Prelude.Maybe Prelude.Bool,+    -- | The source of the image that was analyzed. @direct@ means that the+    -- images was supplied from the local computer. No other values are+    -- supported.+    source :: Prelude.Maybe ImageSource+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DetectAnomalyResult' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalies', 'detectAnomalyResult_anomalies' - If the model is an image segmentation model, @Anomalies@ contains a list+-- of anomaly types found in the image. There is one entry for each type of+-- anomaly found (even if multiple instances of an anomaly type exist on+-- the image). The first element in the list is always an anomaly type+-- representing the image background (\'background\') and shouldn\'t be+-- considered an anomaly. Amazon Lookout for Vision automatically add the+-- background anomaly type to the response, and you don\'t need to declare+-- a background anomaly type in your dataset.+--+-- If the list has one entry (\'background\'), no anomalies were found on+-- the image.+--+-- An image classification model doesn\'t return an @Anomalies@ list.+--+-- 'anomalyMask', 'detectAnomalyResult_anomalyMask' - If the model is an image segmentation model, @AnomalyMask@ contains+-- pixel masks that covers all anomaly types found on the image. Each+-- anomaly type has a different mask color. To map a color to an anomaly+-- type, see the @color@ field of the PixelAnomaly object.+--+-- An image classification model doesn\'t return an @Anomalies@ list.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+--+-- 'confidence', 'detectAnomalyResult_confidence' - The confidence that Lookout for Vision has in the accuracy of the+-- classification in @IsAnomalous@.+--+-- 'isAnomalous', 'detectAnomalyResult_isAnomalous' - True if Amazon Lookout for Vision classifies the image as containing an+-- anomaly, otherwise false.+--+-- 'source', 'detectAnomalyResult_source' - The source of the image that was analyzed. @direct@ means that the+-- images was supplied from the local computer. No other values are+-- supported.+newDetectAnomalyResult ::+  DetectAnomalyResult+newDetectAnomalyResult =+  DetectAnomalyResult'+    { anomalies = Prelude.Nothing,+      anomalyMask = Prelude.Nothing,+      confidence = Prelude.Nothing,+      isAnomalous = Prelude.Nothing,+      source = Prelude.Nothing+    }++-- | If the model is an image segmentation model, @Anomalies@ contains a list+-- of anomaly types found in the image. There is one entry for each type of+-- anomaly found (even if multiple instances of an anomaly type exist on+-- the image). The first element in the list is always an anomaly type+-- representing the image background (\'background\') and shouldn\'t be+-- considered an anomaly. Amazon Lookout for Vision automatically add the+-- background anomaly type to the response, and you don\'t need to declare+-- a background anomaly type in your dataset.+--+-- If the list has one entry (\'background\'), no anomalies were found on+-- the image.+--+-- An image classification model doesn\'t return an @Anomalies@ list.+detectAnomalyResult_anomalies :: Lens.Lens' DetectAnomalyResult (Prelude.Maybe [Anomaly])+detectAnomalyResult_anomalies = Lens.lens (\DetectAnomalyResult' {anomalies} -> anomalies) (\s@DetectAnomalyResult' {} a -> s {anomalies = a} :: DetectAnomalyResult) Prelude.. Lens.mapping Lens.coerced++-- | If the model is an image segmentation model, @AnomalyMask@ contains+-- pixel masks that covers all anomaly types found on the image. Each+-- anomaly type has a different mask color. To map a color to an anomaly+-- type, see the @color@ field of the PixelAnomaly object.+--+-- An image classification model doesn\'t return an @Anomalies@ list.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+detectAnomalyResult_anomalyMask :: Lens.Lens' DetectAnomalyResult (Prelude.Maybe Prelude.ByteString)+detectAnomalyResult_anomalyMask = Lens.lens (\DetectAnomalyResult' {anomalyMask} -> anomalyMask) (\s@DetectAnomalyResult' {} a -> s {anomalyMask = a} :: DetectAnomalyResult) Prelude.. Lens.mapping Data._Base64++-- | The confidence that Lookout for Vision has in the accuracy of the+-- classification in @IsAnomalous@.+detectAnomalyResult_confidence :: Lens.Lens' DetectAnomalyResult (Prelude.Maybe Prelude.Double)+detectAnomalyResult_confidence = Lens.lens (\DetectAnomalyResult' {confidence} -> confidence) (\s@DetectAnomalyResult' {} a -> s {confidence = a} :: DetectAnomalyResult)++-- | True if Amazon Lookout for Vision classifies the image as containing an+-- anomaly, otherwise false.+detectAnomalyResult_isAnomalous :: Lens.Lens' DetectAnomalyResult (Prelude.Maybe Prelude.Bool)+detectAnomalyResult_isAnomalous = Lens.lens (\DetectAnomalyResult' {isAnomalous} -> isAnomalous) (\s@DetectAnomalyResult' {} a -> s {isAnomalous = a} :: DetectAnomalyResult)++-- | The source of the image that was analyzed. @direct@ means that the+-- images was supplied from the local computer. No other values are+-- supported.+detectAnomalyResult_source :: Lens.Lens' DetectAnomalyResult (Prelude.Maybe ImageSource)+detectAnomalyResult_source = Lens.lens (\DetectAnomalyResult' {source} -> source) (\s@DetectAnomalyResult' {} a -> s {source = a} :: DetectAnomalyResult)++instance Data.FromJSON DetectAnomalyResult where+  parseJSON =+    Data.withObject+      "DetectAnomalyResult"+      ( \x ->+          DetectAnomalyResult'+            Prelude.<$> (x Data..:? "Anomalies" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "AnomalyMask")+            Prelude.<*> (x Data..:? "Confidence")+            Prelude.<*> (x Data..:? "IsAnomalous")+            Prelude.<*> (x Data..:? "Source")+      )++instance Prelude.Hashable DetectAnomalyResult where+  hashWithSalt _salt DetectAnomalyResult' {..} =+    _salt+      `Prelude.hashWithSalt` anomalies+      `Prelude.hashWithSalt` anomalyMask+      `Prelude.hashWithSalt` confidence+      `Prelude.hashWithSalt` isAnomalous+      `Prelude.hashWithSalt` source++instance Prelude.NFData DetectAnomalyResult where+  rnf DetectAnomalyResult' {..} =+    Prelude.rnf anomalies+      `Prelude.seq` Prelude.rnf anomalyMask+      `Prelude.seq` Prelude.rnf confidence+      `Prelude.seq` Prelude.rnf isAnomalous+      `Prelude.seq` Prelude.rnf source
+ gen/Amazonka/LookoutVision/Types/GreengrassConfiguration.hs view
@@ -0,0 +1,230 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.Types.GreengrassConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutVision.Types.GreengrassConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutVision.Types.S3Location+import Amazonka.LookoutVision.Types.Tag+import Amazonka.LookoutVision.Types.TargetDevice+import Amazonka.LookoutVision.Types.TargetPlatform+import qualified Amazonka.Prelude as Prelude++-- | Configuration information for the AWS IoT Greengrass component created+-- in a model packaging job. For more information, see+-- StartModelPackagingJob.+--+-- You can\'t specify a component with the same @ComponentName@ and+-- @Componentversion@ as an existing component with the same component name+-- and component version.+--+-- /See:/ 'newGreengrassConfiguration' smart constructor.+data GreengrassConfiguration = GreengrassConfiguration'+  { -- | Additional compiler options for the Greengrass component. Currently,+    -- only NVIDIA Graphics Processing Units (GPU) and CPU accelerators are+    -- supported. If you specify @TargetDevice@, don\'t specify+    -- @CompilerOptions@.+    --+    -- For more information, see /Compiler options/ in the Amazon Lookout for+    -- Vision Developer Guide.+    compilerOptions :: Prelude.Maybe Prelude.Text,+    -- | A description for the AWS IoT Greengrass component.+    componentDescription :: Prelude.Maybe Prelude.Text,+    -- | A Version for the AWS IoT Greengrass component. If you don\'t provide a+    -- value, a default value of @ @/@Model Version@/@.0.0@ is used.+    componentVersion :: Prelude.Maybe Prelude.Text,+    -- | A set of tags (key-value pairs) that you want to attach to the AWS IoT+    -- Greengrass component.+    tags :: Prelude.Maybe [Tag],+    -- | The target device for the model. Currently the only supported value is+    -- @jetson_xavier@. If you specify @TargetDevice@, you can\'t specify+    -- @TargetPlatform@.+    targetDevice :: Prelude.Maybe TargetDevice,+    -- | The target platform for the model. If you specify @TargetPlatform@, you+    -- can\'t specify @TargetDevice@.+    targetPlatform :: Prelude.Maybe TargetPlatform,+    -- | An S3 location in which Lookout for Vision stores the component+    -- artifacts.+    s3OutputLocation :: S3Location,+    -- | A name for the AWS IoT Greengrass component.+    componentName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GreengrassConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'compilerOptions', 'greengrassConfiguration_compilerOptions' - Additional compiler options for the Greengrass component. Currently,+-- only NVIDIA Graphics Processing Units (GPU) and CPU accelerators are+-- supported. If you specify @TargetDevice@, don\'t specify+-- @CompilerOptions@.+--+-- For more information, see /Compiler options/ in the Amazon Lookout for+-- Vision Developer Guide.+--+-- 'componentDescription', 'greengrassConfiguration_componentDescription' - A description for the AWS IoT Greengrass component.+--+-- 'componentVersion', 'greengrassConfiguration_componentVersion' - A Version for the AWS IoT Greengrass component. If you don\'t provide a+-- value, a default value of @ @/@Model Version@/@.0.0@ is used.+--+-- 'tags', 'greengrassConfiguration_tags' - A set of tags (key-value pairs) that you want to attach to the AWS IoT+-- Greengrass component.+--+-- 'targetDevice', 'greengrassConfiguration_targetDevice' - The target device for the model. Currently the only supported value is+-- @jetson_xavier@. If you specify @TargetDevice@, you can\'t specify+-- @TargetPlatform@.+--+-- 'targetPlatform', 'greengrassConfiguration_targetPlatform' - The target platform for the model. If you specify @TargetPlatform@, you+-- can\'t specify @TargetDevice@.+--+-- 's3OutputLocation', 'greengrassConfiguration_s3OutputLocation' - An S3 location in which Lookout for Vision stores the component+-- artifacts.+--+-- 'componentName', 'greengrassConfiguration_componentName' - A name for the AWS IoT Greengrass component.+newGreengrassConfiguration ::+  -- | 's3OutputLocation'+  S3Location ->+  -- | 'componentName'+  Prelude.Text ->+  GreengrassConfiguration+newGreengrassConfiguration+  pS3OutputLocation_+  pComponentName_ =+    GreengrassConfiguration'+      { compilerOptions =+          Prelude.Nothing,+        componentDescription = Prelude.Nothing,+        componentVersion = Prelude.Nothing,+        tags = Prelude.Nothing,+        targetDevice = Prelude.Nothing,+        targetPlatform = Prelude.Nothing,+        s3OutputLocation = pS3OutputLocation_,+        componentName = pComponentName_+      }++-- | Additional compiler options for the Greengrass component. Currently,+-- only NVIDIA Graphics Processing Units (GPU) and CPU accelerators are+-- supported. If you specify @TargetDevice@, don\'t specify+-- @CompilerOptions@.+--+-- For more information, see /Compiler options/ in the Amazon Lookout for+-- Vision Developer Guide.+greengrassConfiguration_compilerOptions :: Lens.Lens' GreengrassConfiguration (Prelude.Maybe Prelude.Text)+greengrassConfiguration_compilerOptions = Lens.lens (\GreengrassConfiguration' {compilerOptions} -> compilerOptions) (\s@GreengrassConfiguration' {} a -> s {compilerOptions = a} :: GreengrassConfiguration)++-- | A description for the AWS IoT Greengrass component.+greengrassConfiguration_componentDescription :: Lens.Lens' GreengrassConfiguration (Prelude.Maybe Prelude.Text)+greengrassConfiguration_componentDescription = Lens.lens (\GreengrassConfiguration' {componentDescription} -> componentDescription) (\s@GreengrassConfiguration' {} a -> s {componentDescription = a} :: GreengrassConfiguration)++-- | A Version for the AWS IoT Greengrass component. If you don\'t provide a+-- value, a default value of @ @/@Model Version@/@.0.0@ is used.+greengrassConfiguration_componentVersion :: Lens.Lens' GreengrassConfiguration (Prelude.Maybe Prelude.Text)+greengrassConfiguration_componentVersion = Lens.lens (\GreengrassConfiguration' {componentVersion} -> componentVersion) (\s@GreengrassConfiguration' {} a -> s {componentVersion = a} :: GreengrassConfiguration)++-- | A set of tags (key-value pairs) that you want to attach to the AWS IoT+-- Greengrass component.+greengrassConfiguration_tags :: Lens.Lens' GreengrassConfiguration (Prelude.Maybe [Tag])+greengrassConfiguration_tags = Lens.lens (\GreengrassConfiguration' {tags} -> tags) (\s@GreengrassConfiguration' {} a -> s {tags = a} :: GreengrassConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The target device for the model. Currently the only supported value is+-- @jetson_xavier@. If you specify @TargetDevice@, you can\'t specify+-- @TargetPlatform@.+greengrassConfiguration_targetDevice :: Lens.Lens' GreengrassConfiguration (Prelude.Maybe TargetDevice)+greengrassConfiguration_targetDevice = Lens.lens (\GreengrassConfiguration' {targetDevice} -> targetDevice) (\s@GreengrassConfiguration' {} a -> s {targetDevice = a} :: GreengrassConfiguration)++-- | The target platform for the model. If you specify @TargetPlatform@, you+-- can\'t specify @TargetDevice@.+greengrassConfiguration_targetPlatform :: Lens.Lens' GreengrassConfiguration (Prelude.Maybe TargetPlatform)+greengrassConfiguration_targetPlatform = Lens.lens (\GreengrassConfiguration' {targetPlatform} -> targetPlatform) (\s@GreengrassConfiguration' {} a -> s {targetPlatform = a} :: GreengrassConfiguration)++-- | An S3 location in which Lookout for Vision stores the component+-- artifacts.+greengrassConfiguration_s3OutputLocation :: Lens.Lens' GreengrassConfiguration S3Location+greengrassConfiguration_s3OutputLocation = Lens.lens (\GreengrassConfiguration' {s3OutputLocation} -> s3OutputLocation) (\s@GreengrassConfiguration' {} a -> s {s3OutputLocation = a} :: GreengrassConfiguration)++-- | A name for the AWS IoT Greengrass component.+greengrassConfiguration_componentName :: Lens.Lens' GreengrassConfiguration Prelude.Text+greengrassConfiguration_componentName = Lens.lens (\GreengrassConfiguration' {componentName} -> componentName) (\s@GreengrassConfiguration' {} a -> s {componentName = a} :: GreengrassConfiguration)++instance Data.FromJSON GreengrassConfiguration where+  parseJSON =+    Data.withObject+      "GreengrassConfiguration"+      ( \x ->+          GreengrassConfiguration'+            Prelude.<$> (x Data..:? "CompilerOptions")+            Prelude.<*> (x Data..:? "ComponentDescription")+            Prelude.<*> (x Data..:? "ComponentVersion")+            Prelude.<*> (x Data..:? "Tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "TargetDevice")+            Prelude.<*> (x Data..:? "TargetPlatform")+            Prelude.<*> (x Data..: "S3OutputLocation")+            Prelude.<*> (x Data..: "ComponentName")+      )++instance Prelude.Hashable GreengrassConfiguration where+  hashWithSalt _salt GreengrassConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` compilerOptions+      `Prelude.hashWithSalt` componentDescription+      `Prelude.hashWithSalt` componentVersion+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` targetDevice+      `Prelude.hashWithSalt` targetPlatform+      `Prelude.hashWithSalt` s3OutputLocation+      `Prelude.hashWithSalt` componentName++instance Prelude.NFData GreengrassConfiguration where+  rnf GreengrassConfiguration' {..} =+    Prelude.rnf compilerOptions+      `Prelude.seq` Prelude.rnf componentDescription+      `Prelude.seq` Prelude.rnf componentVersion+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf targetDevice+      `Prelude.seq` Prelude.rnf targetPlatform+      `Prelude.seq` Prelude.rnf s3OutputLocation+      `Prelude.seq` Prelude.rnf componentName++instance Data.ToJSON GreengrassConfiguration where+  toJSON GreengrassConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("CompilerOptions" Data..=)+              Prelude.<$> compilerOptions,+            ("ComponentDescription" Data..=)+              Prelude.<$> componentDescription,+            ("ComponentVersion" Data..=)+              Prelude.<$> componentVersion,+            ("Tags" Data..=) Prelude.<$> tags,+            ("TargetDevice" Data..=) Prelude.<$> targetDevice,+            ("TargetPlatform" Data..=)+              Prelude.<$> targetPlatform,+            Prelude.Just+              ("S3OutputLocation" Data..= s3OutputLocation),+            Prelude.Just+              ("ComponentName" Data..= componentName)+          ]+      )
+ gen/Amazonka/LookoutVision/Types/GreengrassOutputDetails.hs view
@@ -0,0 +1,98 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.Types.GreengrassOutputDetails+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutVision.Types.GreengrassOutputDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about the AWS IoT Greengrass component created by a model+-- packaging job.+--+-- /See:/ 'newGreengrassOutputDetails' smart constructor.+data GreengrassOutputDetails = GreengrassOutputDetails'+  { -- | The name of the component.+    componentName :: Prelude.Maybe Prelude.Text,+    -- | The version of the component.+    componentVersion :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the component.+    componentVersionArn :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GreengrassOutputDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'componentName', 'greengrassOutputDetails_componentName' - The name of the component.+--+-- 'componentVersion', 'greengrassOutputDetails_componentVersion' - The version of the component.+--+-- 'componentVersionArn', 'greengrassOutputDetails_componentVersionArn' - The Amazon Resource Name (ARN) of the component.+newGreengrassOutputDetails ::+  GreengrassOutputDetails+newGreengrassOutputDetails =+  GreengrassOutputDetails'+    { componentName =+        Prelude.Nothing,+      componentVersion = Prelude.Nothing,+      componentVersionArn = Prelude.Nothing+    }++-- | The name of the component.+greengrassOutputDetails_componentName :: Lens.Lens' GreengrassOutputDetails (Prelude.Maybe Prelude.Text)+greengrassOutputDetails_componentName = Lens.lens (\GreengrassOutputDetails' {componentName} -> componentName) (\s@GreengrassOutputDetails' {} a -> s {componentName = a} :: GreengrassOutputDetails)++-- | The version of the component.+greengrassOutputDetails_componentVersion :: Lens.Lens' GreengrassOutputDetails (Prelude.Maybe Prelude.Text)+greengrassOutputDetails_componentVersion = Lens.lens (\GreengrassOutputDetails' {componentVersion} -> componentVersion) (\s@GreengrassOutputDetails' {} a -> s {componentVersion = a} :: GreengrassOutputDetails)++-- | The Amazon Resource Name (ARN) of the component.+greengrassOutputDetails_componentVersionArn :: Lens.Lens' GreengrassOutputDetails (Prelude.Maybe Prelude.Text)+greengrassOutputDetails_componentVersionArn = Lens.lens (\GreengrassOutputDetails' {componentVersionArn} -> componentVersionArn) (\s@GreengrassOutputDetails' {} a -> s {componentVersionArn = a} :: GreengrassOutputDetails)++instance Data.FromJSON GreengrassOutputDetails where+  parseJSON =+    Data.withObject+      "GreengrassOutputDetails"+      ( \x ->+          GreengrassOutputDetails'+            Prelude.<$> (x Data..:? "ComponentName")+            Prelude.<*> (x Data..:? "ComponentVersion")+            Prelude.<*> (x Data..:? "ComponentVersionArn")+      )++instance Prelude.Hashable GreengrassOutputDetails where+  hashWithSalt _salt GreengrassOutputDetails' {..} =+    _salt+      `Prelude.hashWithSalt` componentName+      `Prelude.hashWithSalt` componentVersion+      `Prelude.hashWithSalt` componentVersionArn++instance Prelude.NFData GreengrassOutputDetails where+  rnf GreengrassOutputDetails' {..} =+    Prelude.rnf componentName+      `Prelude.seq` Prelude.rnf componentVersion+      `Prelude.seq` Prelude.rnf componentVersionArn
+ gen/Amazonka/LookoutVision/Types/ImageSource.hs view
@@ -0,0 +1,65 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.Types.ImageSource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutVision.Types.ImageSource 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 source for an image.+--+-- /See:/ 'newImageSource' smart constructor.+data ImageSource = ImageSource'+  { -- | The type of the image.+    type' :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImageSource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'type'', 'imageSource_type' - The type of the image.+newImageSource ::+  ImageSource+newImageSource =+  ImageSource' {type' = Prelude.Nothing}++-- | The type of the image.+imageSource_type :: Lens.Lens' ImageSource (Prelude.Maybe Prelude.Text)+imageSource_type = Lens.lens (\ImageSource' {type'} -> type') (\s@ImageSource' {} a -> s {type' = a} :: ImageSource)++instance Data.FromJSON ImageSource where+  parseJSON =+    Data.withObject+      "ImageSource"+      (\x -> ImageSource' Prelude.<$> (x Data..:? "Type"))++instance Prelude.Hashable ImageSource where+  hashWithSalt _salt ImageSource' {..} =+    _salt `Prelude.hashWithSalt` type'++instance Prelude.NFData ImageSource where+  rnf ImageSource' {..} = Prelude.rnf type'
+ gen/Amazonka/LookoutVision/Types/InputS3Object.hs view
@@ -0,0 +1,99 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.Types.InputS3Object+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutVision.Types.InputS3Object 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++-- | Amazon S3 Location information for an input manifest file.+--+-- /See:/ 'newInputS3Object' smart constructor.+data InputS3Object = InputS3Object'+  { -- | The version ID of the bucket.+    versionId :: Prelude.Maybe Prelude.Text,+    -- | The Amazon S3 bucket that contains the manifest.+    bucket :: Prelude.Text,+    -- | The name and location of the manifest file withiin the bucket.+    key :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InputS3Object' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'versionId', 'inputS3Object_versionId' - The version ID of the bucket.+--+-- 'bucket', 'inputS3Object_bucket' - The Amazon S3 bucket that contains the manifest.+--+-- 'key', 'inputS3Object_key' - The name and location of the manifest file withiin the bucket.+newInputS3Object ::+  -- | 'bucket'+  Prelude.Text ->+  -- | 'key'+  Prelude.Text ->+  InputS3Object+newInputS3Object pBucket_ pKey_ =+  InputS3Object'+    { versionId = Prelude.Nothing,+      bucket = pBucket_,+      key = pKey_+    }++-- | The version ID of the bucket.+inputS3Object_versionId :: Lens.Lens' InputS3Object (Prelude.Maybe Prelude.Text)+inputS3Object_versionId = Lens.lens (\InputS3Object' {versionId} -> versionId) (\s@InputS3Object' {} a -> s {versionId = a} :: InputS3Object)++-- | The Amazon S3 bucket that contains the manifest.+inputS3Object_bucket :: Lens.Lens' InputS3Object Prelude.Text+inputS3Object_bucket = Lens.lens (\InputS3Object' {bucket} -> bucket) (\s@InputS3Object' {} a -> s {bucket = a} :: InputS3Object)++-- | The name and location of the manifest file withiin the bucket.+inputS3Object_key :: Lens.Lens' InputS3Object Prelude.Text+inputS3Object_key = Lens.lens (\InputS3Object' {key} -> key) (\s@InputS3Object' {} a -> s {key = a} :: InputS3Object)++instance Prelude.Hashable InputS3Object where+  hashWithSalt _salt InputS3Object' {..} =+    _salt+      `Prelude.hashWithSalt` versionId+      `Prelude.hashWithSalt` bucket+      `Prelude.hashWithSalt` key++instance Prelude.NFData InputS3Object where+  rnf InputS3Object' {..} =+    Prelude.rnf versionId+      `Prelude.seq` Prelude.rnf bucket+      `Prelude.seq` Prelude.rnf key++instance Data.ToJSON InputS3Object where+  toJSON InputS3Object' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("VersionId" Data..=) Prelude.<$> versionId,+            Prelude.Just ("Bucket" Data..= bucket),+            Prelude.Just ("Key" Data..= key)+          ]+      )
+ gen/Amazonka/LookoutVision/Types/ModelDescription.hs view
@@ -0,0 +1,254 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.Types.ModelDescription+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutVision.Types.ModelDescription where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutVision.Types.ModelPerformance+import Amazonka.LookoutVision.Types.ModelStatus+import Amazonka.LookoutVision.Types.OutputConfig+import Amazonka.LookoutVision.Types.OutputS3Object+import qualified Amazonka.Prelude as Prelude++-- | Describes an Amazon Lookout for Vision model.+--+-- /See:/ 'newModelDescription' smart constructor.+data ModelDescription = ModelDescription'+  { -- | The unix timestamp for the date and time that the model was created.+    creationTimestamp :: Prelude.Maybe Data.POSIX,+    -- | The description for the model.+    description :: Prelude.Maybe Prelude.Text,+    -- | The unix timestamp for the date and time that the evaluation ended.+    evaluationEndTimestamp :: Prelude.Maybe Data.POSIX,+    -- | The S3 location where Amazon Lookout for Vision saves the manifest file+    -- that was used to test the trained model and generate the performance+    -- scores.+    evaluationManifest :: Prelude.Maybe OutputS3Object,+    -- | The S3 location where Amazon Lookout for Vision saves the performance+    -- metrics.+    evaluationResult :: Prelude.Maybe OutputS3Object,+    -- | The identifer for the AWS Key Management Service (AWS KMS) key that was+    -- used to encrypt the model during training.+    kmsKeyId :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of inference units Amazon Lookout for Vision uses to+    -- auto-scale the model. For more information, see StartModel.+    maxInferenceUnits :: Prelude.Maybe Prelude.Natural,+    -- | The minimum number of inference units used by the model. For more+    -- information, see StartModel+    minInferenceUnits :: Prelude.Maybe Prelude.Natural,+    -- | The Amazon Resource Name (ARN) of the model.+    modelArn :: Prelude.Maybe Prelude.Text,+    -- | The version of the model+    modelVersion :: Prelude.Maybe Prelude.Text,+    -- | The S3 location where Amazon Lookout for Vision saves model training+    -- files.+    outputConfig :: Prelude.Maybe OutputConfig,+    -- | Performance metrics for the model. Created during training.+    performance :: Prelude.Maybe ModelPerformance,+    -- | The status of the model.+    status :: Prelude.Maybe ModelStatus,+    -- | The status message for the model.+    statusMessage :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ModelDescription' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationTimestamp', 'modelDescription_creationTimestamp' - The unix timestamp for the date and time that the model was created.+--+-- 'description', 'modelDescription_description' - The description for the model.+--+-- 'evaluationEndTimestamp', 'modelDescription_evaluationEndTimestamp' - The unix timestamp for the date and time that the evaluation ended.+--+-- 'evaluationManifest', 'modelDescription_evaluationManifest' - The S3 location where Amazon Lookout for Vision saves the manifest file+-- that was used to test the trained model and generate the performance+-- scores.+--+-- 'evaluationResult', 'modelDescription_evaluationResult' - The S3 location where Amazon Lookout for Vision saves the performance+-- metrics.+--+-- 'kmsKeyId', 'modelDescription_kmsKeyId' - The identifer for the AWS Key Management Service (AWS KMS) key that was+-- used to encrypt the model during training.+--+-- 'maxInferenceUnits', 'modelDescription_maxInferenceUnits' - The maximum number of inference units Amazon Lookout for Vision uses to+-- auto-scale the model. For more information, see StartModel.+--+-- 'minInferenceUnits', 'modelDescription_minInferenceUnits' - The minimum number of inference units used by the model. For more+-- information, see StartModel+--+-- 'modelArn', 'modelDescription_modelArn' - The Amazon Resource Name (ARN) of the model.+--+-- 'modelVersion', 'modelDescription_modelVersion' - The version of the model+--+-- 'outputConfig', 'modelDescription_outputConfig' - The S3 location where Amazon Lookout for Vision saves model training+-- files.+--+-- 'performance', 'modelDescription_performance' - Performance metrics for the model. Created during training.+--+-- 'status', 'modelDescription_status' - The status of the model.+--+-- 'statusMessage', 'modelDescription_statusMessage' - The status message for the model.+newModelDescription ::+  ModelDescription+newModelDescription =+  ModelDescription'+    { creationTimestamp =+        Prelude.Nothing,+      description = Prelude.Nothing,+      evaluationEndTimestamp = Prelude.Nothing,+      evaluationManifest = Prelude.Nothing,+      evaluationResult = Prelude.Nothing,+      kmsKeyId = Prelude.Nothing,+      maxInferenceUnits = Prelude.Nothing,+      minInferenceUnits = Prelude.Nothing,+      modelArn = Prelude.Nothing,+      modelVersion = Prelude.Nothing,+      outputConfig = Prelude.Nothing,+      performance = Prelude.Nothing,+      status = Prelude.Nothing,+      statusMessage = Prelude.Nothing+    }++-- | The unix timestamp for the date and time that the model was created.+modelDescription_creationTimestamp :: Lens.Lens' ModelDescription (Prelude.Maybe Prelude.UTCTime)+modelDescription_creationTimestamp = Lens.lens (\ModelDescription' {creationTimestamp} -> creationTimestamp) (\s@ModelDescription' {} a -> s {creationTimestamp = a} :: ModelDescription) Prelude.. Lens.mapping Data._Time++-- | The description for the model.+modelDescription_description :: Lens.Lens' ModelDescription (Prelude.Maybe Prelude.Text)+modelDescription_description = Lens.lens (\ModelDescription' {description} -> description) (\s@ModelDescription' {} a -> s {description = a} :: ModelDescription)++-- | The unix timestamp for the date and time that the evaluation ended.+modelDescription_evaluationEndTimestamp :: Lens.Lens' ModelDescription (Prelude.Maybe Prelude.UTCTime)+modelDescription_evaluationEndTimestamp = Lens.lens (\ModelDescription' {evaluationEndTimestamp} -> evaluationEndTimestamp) (\s@ModelDescription' {} a -> s {evaluationEndTimestamp = a} :: ModelDescription) Prelude.. Lens.mapping Data._Time++-- | The S3 location where Amazon Lookout for Vision saves the manifest file+-- that was used to test the trained model and generate the performance+-- scores.+modelDescription_evaluationManifest :: Lens.Lens' ModelDescription (Prelude.Maybe OutputS3Object)+modelDescription_evaluationManifest = Lens.lens (\ModelDescription' {evaluationManifest} -> evaluationManifest) (\s@ModelDescription' {} a -> s {evaluationManifest = a} :: ModelDescription)++-- | The S3 location where Amazon Lookout for Vision saves the performance+-- metrics.+modelDescription_evaluationResult :: Lens.Lens' ModelDescription (Prelude.Maybe OutputS3Object)+modelDescription_evaluationResult = Lens.lens (\ModelDescription' {evaluationResult} -> evaluationResult) (\s@ModelDescription' {} a -> s {evaluationResult = a} :: ModelDescription)++-- | The identifer for the AWS Key Management Service (AWS KMS) key that was+-- used to encrypt the model during training.+modelDescription_kmsKeyId :: Lens.Lens' ModelDescription (Prelude.Maybe Prelude.Text)+modelDescription_kmsKeyId = Lens.lens (\ModelDescription' {kmsKeyId} -> kmsKeyId) (\s@ModelDescription' {} a -> s {kmsKeyId = a} :: ModelDescription)++-- | The maximum number of inference units Amazon Lookout for Vision uses to+-- auto-scale the model. For more information, see StartModel.+modelDescription_maxInferenceUnits :: Lens.Lens' ModelDescription (Prelude.Maybe Prelude.Natural)+modelDescription_maxInferenceUnits = Lens.lens (\ModelDescription' {maxInferenceUnits} -> maxInferenceUnits) (\s@ModelDescription' {} a -> s {maxInferenceUnits = a} :: ModelDescription)++-- | The minimum number of inference units used by the model. For more+-- information, see StartModel+modelDescription_minInferenceUnits :: Lens.Lens' ModelDescription (Prelude.Maybe Prelude.Natural)+modelDescription_minInferenceUnits = Lens.lens (\ModelDescription' {minInferenceUnits} -> minInferenceUnits) (\s@ModelDescription' {} a -> s {minInferenceUnits = a} :: ModelDescription)++-- | The Amazon Resource Name (ARN) of the model.+modelDescription_modelArn :: Lens.Lens' ModelDescription (Prelude.Maybe Prelude.Text)+modelDescription_modelArn = Lens.lens (\ModelDescription' {modelArn} -> modelArn) (\s@ModelDescription' {} a -> s {modelArn = a} :: ModelDescription)++-- | The version of the model+modelDescription_modelVersion :: Lens.Lens' ModelDescription (Prelude.Maybe Prelude.Text)+modelDescription_modelVersion = Lens.lens (\ModelDescription' {modelVersion} -> modelVersion) (\s@ModelDescription' {} a -> s {modelVersion = a} :: ModelDescription)++-- | The S3 location where Amazon Lookout for Vision saves model training+-- files.+modelDescription_outputConfig :: Lens.Lens' ModelDescription (Prelude.Maybe OutputConfig)+modelDescription_outputConfig = Lens.lens (\ModelDescription' {outputConfig} -> outputConfig) (\s@ModelDescription' {} a -> s {outputConfig = a} :: ModelDescription)++-- | Performance metrics for the model. Created during training.+modelDescription_performance :: Lens.Lens' ModelDescription (Prelude.Maybe ModelPerformance)+modelDescription_performance = Lens.lens (\ModelDescription' {performance} -> performance) (\s@ModelDescription' {} a -> s {performance = a} :: ModelDescription)++-- | The status of the model.+modelDescription_status :: Lens.Lens' ModelDescription (Prelude.Maybe ModelStatus)+modelDescription_status = Lens.lens (\ModelDescription' {status} -> status) (\s@ModelDescription' {} a -> s {status = a} :: ModelDescription)++-- | The status message for the model.+modelDescription_statusMessage :: Lens.Lens' ModelDescription (Prelude.Maybe Prelude.Text)+modelDescription_statusMessage = Lens.lens (\ModelDescription' {statusMessage} -> statusMessage) (\s@ModelDescription' {} a -> s {statusMessage = a} :: ModelDescription)++instance Data.FromJSON ModelDescription where+  parseJSON =+    Data.withObject+      "ModelDescription"+      ( \x ->+          ModelDescription'+            Prelude.<$> (x Data..:? "CreationTimestamp")+            Prelude.<*> (x Data..:? "Description")+            Prelude.<*> (x Data..:? "EvaluationEndTimestamp")+            Prelude.<*> (x Data..:? "EvaluationManifest")+            Prelude.<*> (x Data..:? "EvaluationResult")+            Prelude.<*> (x Data..:? "KmsKeyId")+            Prelude.<*> (x Data..:? "MaxInferenceUnits")+            Prelude.<*> (x Data..:? "MinInferenceUnits")+            Prelude.<*> (x Data..:? "ModelArn")+            Prelude.<*> (x Data..:? "ModelVersion")+            Prelude.<*> (x Data..:? "OutputConfig")+            Prelude.<*> (x Data..:? "Performance")+            Prelude.<*> (x Data..:? "Status")+            Prelude.<*> (x Data..:? "StatusMessage")+      )++instance Prelude.Hashable ModelDescription where+  hashWithSalt _salt ModelDescription' {..} =+    _salt+      `Prelude.hashWithSalt` creationTimestamp+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` evaluationEndTimestamp+      `Prelude.hashWithSalt` evaluationManifest+      `Prelude.hashWithSalt` evaluationResult+      `Prelude.hashWithSalt` kmsKeyId+      `Prelude.hashWithSalt` maxInferenceUnits+      `Prelude.hashWithSalt` minInferenceUnits+      `Prelude.hashWithSalt` modelArn+      `Prelude.hashWithSalt` modelVersion+      `Prelude.hashWithSalt` outputConfig+      `Prelude.hashWithSalt` performance+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` statusMessage++instance Prelude.NFData ModelDescription where+  rnf ModelDescription' {..} =+    Prelude.rnf creationTimestamp+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf evaluationEndTimestamp+      `Prelude.seq` Prelude.rnf evaluationManifest+      `Prelude.seq` Prelude.rnf evaluationResult+      `Prelude.seq` Prelude.rnf kmsKeyId+      `Prelude.seq` Prelude.rnf maxInferenceUnits+      `Prelude.seq` Prelude.rnf minInferenceUnits+      `Prelude.seq` Prelude.rnf modelArn+      `Prelude.seq` Prelude.rnf modelVersion+      `Prelude.seq` Prelude.rnf outputConfig+      `Prelude.seq` Prelude.rnf performance+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf statusMessage
+ gen/Amazonka/LookoutVision/Types/ModelHostingStatus.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.Types.ModelHostingStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutVision.Types.ModelHostingStatus+  ( ModelHostingStatus+      ( ..,+        ModelHostingStatus_HOSTED,+        ModelHostingStatus_HOSTING_FAILED,+        ModelHostingStatus_STARTING_HOSTING,+        ModelHostingStatus_STOPPING_HOSTING,+        ModelHostingStatus_SYSTEM_UPDATING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ModelHostingStatus = ModelHostingStatus'+  { fromModelHostingStatus ::+      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 ModelHostingStatus_HOSTED :: ModelHostingStatus+pattern ModelHostingStatus_HOSTED = ModelHostingStatus' "HOSTED"++pattern ModelHostingStatus_HOSTING_FAILED :: ModelHostingStatus+pattern ModelHostingStatus_HOSTING_FAILED = ModelHostingStatus' "HOSTING_FAILED"++pattern ModelHostingStatus_STARTING_HOSTING :: ModelHostingStatus+pattern ModelHostingStatus_STARTING_HOSTING = ModelHostingStatus' "STARTING_HOSTING"++pattern ModelHostingStatus_STOPPING_HOSTING :: ModelHostingStatus+pattern ModelHostingStatus_STOPPING_HOSTING = ModelHostingStatus' "STOPPING_HOSTING"++pattern ModelHostingStatus_SYSTEM_UPDATING :: ModelHostingStatus+pattern ModelHostingStatus_SYSTEM_UPDATING = ModelHostingStatus' "SYSTEM_UPDATING"++{-# COMPLETE+  ModelHostingStatus_HOSTED,+  ModelHostingStatus_HOSTING_FAILED,+  ModelHostingStatus_STARTING_HOSTING,+  ModelHostingStatus_STOPPING_HOSTING,+  ModelHostingStatus_SYSTEM_UPDATING,+  ModelHostingStatus'+  #-}
+ gen/Amazonka/LookoutVision/Types/ModelMetadata.hs view
@@ -0,0 +1,149 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.Types.ModelMetadata+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutVision.Types.ModelMetadata where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutVision.Types.ModelPerformance+import Amazonka.LookoutVision.Types.ModelStatus+import qualified Amazonka.Prelude as Prelude++-- | Describes an Amazon Lookout for Vision model.+--+-- /See:/ 'newModelMetadata' smart constructor.+data ModelMetadata = ModelMetadata'+  { -- | The unix timestamp for the date and time that the model was created.+    creationTimestamp :: Prelude.Maybe Data.POSIX,+    -- | The description for the model.+    description :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the model.+    modelArn :: Prelude.Maybe Prelude.Text,+    -- | The version of the model.+    modelVersion :: Prelude.Maybe Prelude.Text,+    -- | Performance metrics for the model. Not available until training has+    -- successfully completed.+    performance :: Prelude.Maybe ModelPerformance,+    -- | The status of the model.+    status :: Prelude.Maybe ModelStatus,+    -- | The status message for the model.+    statusMessage :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ModelMetadata' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationTimestamp', 'modelMetadata_creationTimestamp' - The unix timestamp for the date and time that the model was created.+--+-- 'description', 'modelMetadata_description' - The description for the model.+--+-- 'modelArn', 'modelMetadata_modelArn' - The Amazon Resource Name (ARN) of the model.+--+-- 'modelVersion', 'modelMetadata_modelVersion' - The version of the model.+--+-- 'performance', 'modelMetadata_performance' - Performance metrics for the model. Not available until training has+-- successfully completed.+--+-- 'status', 'modelMetadata_status' - The status of the model.+--+-- 'statusMessage', 'modelMetadata_statusMessage' - The status message for the model.+newModelMetadata ::+  ModelMetadata+newModelMetadata =+  ModelMetadata'+    { creationTimestamp = Prelude.Nothing,+      description = Prelude.Nothing,+      modelArn = Prelude.Nothing,+      modelVersion = Prelude.Nothing,+      performance = Prelude.Nothing,+      status = Prelude.Nothing,+      statusMessage = Prelude.Nothing+    }++-- | The unix timestamp for the date and time that the model was created.+modelMetadata_creationTimestamp :: Lens.Lens' ModelMetadata (Prelude.Maybe Prelude.UTCTime)+modelMetadata_creationTimestamp = Lens.lens (\ModelMetadata' {creationTimestamp} -> creationTimestamp) (\s@ModelMetadata' {} a -> s {creationTimestamp = a} :: ModelMetadata) Prelude.. Lens.mapping Data._Time++-- | The description for the model.+modelMetadata_description :: Lens.Lens' ModelMetadata (Prelude.Maybe Prelude.Text)+modelMetadata_description = Lens.lens (\ModelMetadata' {description} -> description) (\s@ModelMetadata' {} a -> s {description = a} :: ModelMetadata)++-- | The Amazon Resource Name (ARN) of the model.+modelMetadata_modelArn :: Lens.Lens' ModelMetadata (Prelude.Maybe Prelude.Text)+modelMetadata_modelArn = Lens.lens (\ModelMetadata' {modelArn} -> modelArn) (\s@ModelMetadata' {} a -> s {modelArn = a} :: ModelMetadata)++-- | The version of the model.+modelMetadata_modelVersion :: Lens.Lens' ModelMetadata (Prelude.Maybe Prelude.Text)+modelMetadata_modelVersion = Lens.lens (\ModelMetadata' {modelVersion} -> modelVersion) (\s@ModelMetadata' {} a -> s {modelVersion = a} :: ModelMetadata)++-- | Performance metrics for the model. Not available until training has+-- successfully completed.+modelMetadata_performance :: Lens.Lens' ModelMetadata (Prelude.Maybe ModelPerformance)+modelMetadata_performance = Lens.lens (\ModelMetadata' {performance} -> performance) (\s@ModelMetadata' {} a -> s {performance = a} :: ModelMetadata)++-- | The status of the model.+modelMetadata_status :: Lens.Lens' ModelMetadata (Prelude.Maybe ModelStatus)+modelMetadata_status = Lens.lens (\ModelMetadata' {status} -> status) (\s@ModelMetadata' {} a -> s {status = a} :: ModelMetadata)++-- | The status message for the model.+modelMetadata_statusMessage :: Lens.Lens' ModelMetadata (Prelude.Maybe Prelude.Text)+modelMetadata_statusMessage = Lens.lens (\ModelMetadata' {statusMessage} -> statusMessage) (\s@ModelMetadata' {} a -> s {statusMessage = a} :: ModelMetadata)++instance Data.FromJSON ModelMetadata where+  parseJSON =+    Data.withObject+      "ModelMetadata"+      ( \x ->+          ModelMetadata'+            Prelude.<$> (x Data..:? "CreationTimestamp")+            Prelude.<*> (x Data..:? "Description")+            Prelude.<*> (x Data..:? "ModelArn")+            Prelude.<*> (x Data..:? "ModelVersion")+            Prelude.<*> (x Data..:? "Performance")+            Prelude.<*> (x Data..:? "Status")+            Prelude.<*> (x Data..:? "StatusMessage")+      )++instance Prelude.Hashable ModelMetadata where+  hashWithSalt _salt ModelMetadata' {..} =+    _salt+      `Prelude.hashWithSalt` creationTimestamp+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` modelArn+      `Prelude.hashWithSalt` modelVersion+      `Prelude.hashWithSalt` performance+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` statusMessage++instance Prelude.NFData ModelMetadata where+  rnf ModelMetadata' {..} =+    Prelude.rnf creationTimestamp+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf modelArn+      `Prelude.seq` Prelude.rnf modelVersion+      `Prelude.seq` Prelude.rnf performance+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf statusMessage
+ gen/Amazonka/LookoutVision/Types/ModelPackagingConfiguration.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.LookoutVision.Types.ModelPackagingConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutVision.Types.ModelPackagingConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutVision.Types.GreengrassConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Configuration information for a Amazon Lookout for Vision model+-- packaging job. For more information, see StartModelPackagingJob.+--+-- /See:/ 'newModelPackagingConfiguration' smart constructor.+data ModelPackagingConfiguration = ModelPackagingConfiguration'+  { -- | Configuration information for the AWS IoT Greengrass component in a+    -- model packaging job.+    greengrass :: GreengrassConfiguration+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ModelPackagingConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'greengrass', 'modelPackagingConfiguration_greengrass' - Configuration information for the AWS IoT Greengrass component in a+-- model packaging job.+newModelPackagingConfiguration ::+  -- | 'greengrass'+  GreengrassConfiguration ->+  ModelPackagingConfiguration+newModelPackagingConfiguration pGreengrass_ =+  ModelPackagingConfiguration'+    { greengrass =+        pGreengrass_+    }++-- | Configuration information for the AWS IoT Greengrass component in a+-- model packaging job.+modelPackagingConfiguration_greengrass :: Lens.Lens' ModelPackagingConfiguration GreengrassConfiguration+modelPackagingConfiguration_greengrass = Lens.lens (\ModelPackagingConfiguration' {greengrass} -> greengrass) (\s@ModelPackagingConfiguration' {} a -> s {greengrass = a} :: ModelPackagingConfiguration)++instance Data.FromJSON ModelPackagingConfiguration where+  parseJSON =+    Data.withObject+      "ModelPackagingConfiguration"+      ( \x ->+          ModelPackagingConfiguration'+            Prelude.<$> (x Data..: "Greengrass")+      )++instance Prelude.Hashable ModelPackagingConfiguration where+  hashWithSalt _salt ModelPackagingConfiguration' {..} =+    _salt `Prelude.hashWithSalt` greengrass++instance Prelude.NFData ModelPackagingConfiguration where+  rnf ModelPackagingConfiguration' {..} =+    Prelude.rnf greengrass++instance Data.ToJSON ModelPackagingConfiguration where+  toJSON ModelPackagingConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("Greengrass" Data..= greengrass)]+      )
+ gen/Amazonka/LookoutVision/Types/ModelPackagingDescription.hs view
@@ -0,0 +1,212 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.Types.ModelPackagingDescription+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutVision.Types.ModelPackagingDescription where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutVision.Types.ModelPackagingConfiguration+import Amazonka.LookoutVision.Types.ModelPackagingJobStatus+import Amazonka.LookoutVision.Types.ModelPackagingOutputDetails+import qualified Amazonka.Prelude as Prelude++-- | Information about a model packaging job. For more information, see+-- DescribeModelPackagingJob.+--+-- /See:/ 'newModelPackagingDescription' smart constructor.+data ModelPackagingDescription = ModelPackagingDescription'+  { -- | The Unix timestamp for the time and date that the model packaging job+    -- was created.+    creationTimestamp :: Prelude.Maybe Data.POSIX,+    -- | The name of the model packaging job.+    jobName :: Prelude.Maybe Prelude.Text,+    -- | The Unix timestamp for the time and date that the model packaging job+    -- was last updated.+    lastUpdatedTimestamp :: Prelude.Maybe Data.POSIX,+    -- | The configuration information used in the model packaging job.+    modelPackagingConfiguration :: Prelude.Maybe ModelPackagingConfiguration,+    -- | The description for the model packaging job.+    modelPackagingJobDescription :: Prelude.Maybe Prelude.Text,+    -- | The AWS service used to package the job. Currently Lookout for Vision+    -- can package jobs with AWS IoT Greengrass.+    modelPackagingMethod :: Prelude.Maybe Prelude.Text,+    -- | Information about the output of the model packaging job. For more+    -- information, see DescribeModelPackagingJob.+    modelPackagingOutputDetails :: Prelude.Maybe ModelPackagingOutputDetails,+    -- | The version of the model used in the model packaging job.+    modelVersion :: Prelude.Maybe Prelude.Text,+    -- | The name of the project that\'s associated with a model that\'s in the+    -- model package.+    projectName :: Prelude.Maybe Prelude.Text,+    -- | The status of the model packaging job.+    status :: Prelude.Maybe ModelPackagingJobStatus,+    -- | The status message for the model packaging job.+    statusMessage :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ModelPackagingDescription' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationTimestamp', 'modelPackagingDescription_creationTimestamp' - The Unix timestamp for the time and date that the model packaging job+-- was created.+--+-- 'jobName', 'modelPackagingDescription_jobName' - The name of the model packaging job.+--+-- 'lastUpdatedTimestamp', 'modelPackagingDescription_lastUpdatedTimestamp' - The Unix timestamp for the time and date that the model packaging job+-- was last updated.+--+-- 'modelPackagingConfiguration', 'modelPackagingDescription_modelPackagingConfiguration' - The configuration information used in the model packaging job.+--+-- 'modelPackagingJobDescription', 'modelPackagingDescription_modelPackagingJobDescription' - The description for the model packaging job.+--+-- 'modelPackagingMethod', 'modelPackagingDescription_modelPackagingMethod' - The AWS service used to package the job. Currently Lookout for Vision+-- can package jobs with AWS IoT Greengrass.+--+-- 'modelPackagingOutputDetails', 'modelPackagingDescription_modelPackagingOutputDetails' - Information about the output of the model packaging job. For more+-- information, see DescribeModelPackagingJob.+--+-- 'modelVersion', 'modelPackagingDescription_modelVersion' - The version of the model used in the model packaging job.+--+-- 'projectName', 'modelPackagingDescription_projectName' - The name of the project that\'s associated with a model that\'s in the+-- model package.+--+-- 'status', 'modelPackagingDescription_status' - The status of the model packaging job.+--+-- 'statusMessage', 'modelPackagingDescription_statusMessage' - The status message for the model packaging job.+newModelPackagingDescription ::+  ModelPackagingDescription+newModelPackagingDescription =+  ModelPackagingDescription'+    { creationTimestamp =+        Prelude.Nothing,+      jobName = Prelude.Nothing,+      lastUpdatedTimestamp = Prelude.Nothing,+      modelPackagingConfiguration = Prelude.Nothing,+      modelPackagingJobDescription = Prelude.Nothing,+      modelPackagingMethod = Prelude.Nothing,+      modelPackagingOutputDetails = Prelude.Nothing,+      modelVersion = Prelude.Nothing,+      projectName = Prelude.Nothing,+      status = Prelude.Nothing,+      statusMessage = Prelude.Nothing+    }++-- | The Unix timestamp for the time and date that the model packaging job+-- was created.+modelPackagingDescription_creationTimestamp :: Lens.Lens' ModelPackagingDescription (Prelude.Maybe Prelude.UTCTime)+modelPackagingDescription_creationTimestamp = Lens.lens (\ModelPackagingDescription' {creationTimestamp} -> creationTimestamp) (\s@ModelPackagingDescription' {} a -> s {creationTimestamp = a} :: ModelPackagingDescription) Prelude.. Lens.mapping Data._Time++-- | The name of the model packaging job.+modelPackagingDescription_jobName :: Lens.Lens' ModelPackagingDescription (Prelude.Maybe Prelude.Text)+modelPackagingDescription_jobName = Lens.lens (\ModelPackagingDescription' {jobName} -> jobName) (\s@ModelPackagingDescription' {} a -> s {jobName = a} :: ModelPackagingDescription)++-- | The Unix timestamp for the time and date that the model packaging job+-- was last updated.+modelPackagingDescription_lastUpdatedTimestamp :: Lens.Lens' ModelPackagingDescription (Prelude.Maybe Prelude.UTCTime)+modelPackagingDescription_lastUpdatedTimestamp = Lens.lens (\ModelPackagingDescription' {lastUpdatedTimestamp} -> lastUpdatedTimestamp) (\s@ModelPackagingDescription' {} a -> s {lastUpdatedTimestamp = a} :: ModelPackagingDescription) Prelude.. Lens.mapping Data._Time++-- | The configuration information used in the model packaging job.+modelPackagingDescription_modelPackagingConfiguration :: Lens.Lens' ModelPackagingDescription (Prelude.Maybe ModelPackagingConfiguration)+modelPackagingDescription_modelPackagingConfiguration = Lens.lens (\ModelPackagingDescription' {modelPackagingConfiguration} -> modelPackagingConfiguration) (\s@ModelPackagingDescription' {} a -> s {modelPackagingConfiguration = a} :: ModelPackagingDescription)++-- | The description for the model packaging job.+modelPackagingDescription_modelPackagingJobDescription :: Lens.Lens' ModelPackagingDescription (Prelude.Maybe Prelude.Text)+modelPackagingDescription_modelPackagingJobDescription = Lens.lens (\ModelPackagingDescription' {modelPackagingJobDescription} -> modelPackagingJobDescription) (\s@ModelPackagingDescription' {} a -> s {modelPackagingJobDescription = a} :: ModelPackagingDescription)++-- | The AWS service used to package the job. Currently Lookout for Vision+-- can package jobs with AWS IoT Greengrass.+modelPackagingDescription_modelPackagingMethod :: Lens.Lens' ModelPackagingDescription (Prelude.Maybe Prelude.Text)+modelPackagingDescription_modelPackagingMethod = Lens.lens (\ModelPackagingDescription' {modelPackagingMethod} -> modelPackagingMethod) (\s@ModelPackagingDescription' {} a -> s {modelPackagingMethod = a} :: ModelPackagingDescription)++-- | Information about the output of the model packaging job. For more+-- information, see DescribeModelPackagingJob.+modelPackagingDescription_modelPackagingOutputDetails :: Lens.Lens' ModelPackagingDescription (Prelude.Maybe ModelPackagingOutputDetails)+modelPackagingDescription_modelPackagingOutputDetails = Lens.lens (\ModelPackagingDescription' {modelPackagingOutputDetails} -> modelPackagingOutputDetails) (\s@ModelPackagingDescription' {} a -> s {modelPackagingOutputDetails = a} :: ModelPackagingDescription)++-- | The version of the model used in the model packaging job.+modelPackagingDescription_modelVersion :: Lens.Lens' ModelPackagingDescription (Prelude.Maybe Prelude.Text)+modelPackagingDescription_modelVersion = Lens.lens (\ModelPackagingDescription' {modelVersion} -> modelVersion) (\s@ModelPackagingDescription' {} a -> s {modelVersion = a} :: ModelPackagingDescription)++-- | The name of the project that\'s associated with a model that\'s in the+-- model package.+modelPackagingDescription_projectName :: Lens.Lens' ModelPackagingDescription (Prelude.Maybe Prelude.Text)+modelPackagingDescription_projectName = Lens.lens (\ModelPackagingDescription' {projectName} -> projectName) (\s@ModelPackagingDescription' {} a -> s {projectName = a} :: ModelPackagingDescription)++-- | The status of the model packaging job.+modelPackagingDescription_status :: Lens.Lens' ModelPackagingDescription (Prelude.Maybe ModelPackagingJobStatus)+modelPackagingDescription_status = Lens.lens (\ModelPackagingDescription' {status} -> status) (\s@ModelPackagingDescription' {} a -> s {status = a} :: ModelPackagingDescription)++-- | The status message for the model packaging job.+modelPackagingDescription_statusMessage :: Lens.Lens' ModelPackagingDescription (Prelude.Maybe Prelude.Text)+modelPackagingDescription_statusMessage = Lens.lens (\ModelPackagingDescription' {statusMessage} -> statusMessage) (\s@ModelPackagingDescription' {} a -> s {statusMessage = a} :: ModelPackagingDescription)++instance Data.FromJSON ModelPackagingDescription where+  parseJSON =+    Data.withObject+      "ModelPackagingDescription"+      ( \x ->+          ModelPackagingDescription'+            Prelude.<$> (x Data..:? "CreationTimestamp")+            Prelude.<*> (x Data..:? "JobName")+            Prelude.<*> (x Data..:? "LastUpdatedTimestamp")+            Prelude.<*> (x Data..:? "ModelPackagingConfiguration")+            Prelude.<*> (x Data..:? "ModelPackagingJobDescription")+            Prelude.<*> (x Data..:? "ModelPackagingMethod")+            Prelude.<*> (x Data..:? "ModelPackagingOutputDetails")+            Prelude.<*> (x Data..:? "ModelVersion")+            Prelude.<*> (x Data..:? "ProjectName")+            Prelude.<*> (x Data..:? "Status")+            Prelude.<*> (x Data..:? "StatusMessage")+      )++instance Prelude.Hashable ModelPackagingDescription where+  hashWithSalt _salt ModelPackagingDescription' {..} =+    _salt+      `Prelude.hashWithSalt` creationTimestamp+      `Prelude.hashWithSalt` jobName+      `Prelude.hashWithSalt` lastUpdatedTimestamp+      `Prelude.hashWithSalt` modelPackagingConfiguration+      `Prelude.hashWithSalt` modelPackagingJobDescription+      `Prelude.hashWithSalt` modelPackagingMethod+      `Prelude.hashWithSalt` modelPackagingOutputDetails+      `Prelude.hashWithSalt` modelVersion+      `Prelude.hashWithSalt` projectName+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` statusMessage++instance Prelude.NFData ModelPackagingDescription where+  rnf ModelPackagingDescription' {..} =+    Prelude.rnf creationTimestamp+      `Prelude.seq` Prelude.rnf jobName+      `Prelude.seq` Prelude.rnf lastUpdatedTimestamp+      `Prelude.seq` Prelude.rnf modelPackagingConfiguration+      `Prelude.seq` Prelude.rnf modelPackagingJobDescription+      `Prelude.seq` Prelude.rnf modelPackagingMethod+      `Prelude.seq` Prelude.rnf modelPackagingOutputDetails+      `Prelude.seq` Prelude.rnf modelVersion+      `Prelude.seq` Prelude.rnf projectName+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf statusMessage
+ gen/Amazonka/LookoutVision/Types/ModelPackagingJobMetadata.hs view
@@ -0,0 +1,180 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.Types.ModelPackagingJobMetadata+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutVision.Types.ModelPackagingJobMetadata where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutVision.Types.ModelPackagingJobStatus+import qualified Amazonka.Prelude as Prelude++-- | Metadata for a model packaging job. For more information, see+-- ListModelPackagingJobs.+--+-- /See:/ 'newModelPackagingJobMetadata' smart constructor.+data ModelPackagingJobMetadata = ModelPackagingJobMetadata'+  { -- | The Unix timestamp for the time and date that the model packaging job+    -- was created.+    creationTimestamp :: Prelude.Maybe Data.POSIX,+    -- | The name of the model packaging job.+    jobName :: Prelude.Maybe Prelude.Text,+    -- | The Unix timestamp for the time and date that the model packaging job+    -- was last updated.+    lastUpdatedTimestamp :: Prelude.Maybe Data.POSIX,+    -- | The description for the model packaging job.+    modelPackagingJobDescription :: Prelude.Maybe Prelude.Text,+    -- | The AWS service used to package the job. Currently Lookout for Vision+    -- can package jobs with AWS IoT Greengrass.+    modelPackagingMethod :: Prelude.Maybe Prelude.Text,+    -- | The version of the model that is in the model package.+    modelVersion :: Prelude.Maybe Prelude.Text,+    -- | The project that contains the model that is in the model package.+    projectName :: Prelude.Maybe Prelude.Text,+    -- | The status of the model packaging job.+    status :: Prelude.Maybe ModelPackagingJobStatus,+    -- | The status message for the model packaging job.+    statusMessage :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ModelPackagingJobMetadata' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationTimestamp', 'modelPackagingJobMetadata_creationTimestamp' - The Unix timestamp for the time and date that the model packaging job+-- was created.+--+-- 'jobName', 'modelPackagingJobMetadata_jobName' - The name of the model packaging job.+--+-- 'lastUpdatedTimestamp', 'modelPackagingJobMetadata_lastUpdatedTimestamp' - The Unix timestamp for the time and date that the model packaging job+-- was last updated.+--+-- 'modelPackagingJobDescription', 'modelPackagingJobMetadata_modelPackagingJobDescription' - The description for the model packaging job.+--+-- 'modelPackagingMethod', 'modelPackagingJobMetadata_modelPackagingMethod' - The AWS service used to package the job. Currently Lookout for Vision+-- can package jobs with AWS IoT Greengrass.+--+-- 'modelVersion', 'modelPackagingJobMetadata_modelVersion' - The version of the model that is in the model package.+--+-- 'projectName', 'modelPackagingJobMetadata_projectName' - The project that contains the model that is in the model package.+--+-- 'status', 'modelPackagingJobMetadata_status' - The status of the model packaging job.+--+-- 'statusMessage', 'modelPackagingJobMetadata_statusMessage' - The status message for the model packaging job.+newModelPackagingJobMetadata ::+  ModelPackagingJobMetadata+newModelPackagingJobMetadata =+  ModelPackagingJobMetadata'+    { creationTimestamp =+        Prelude.Nothing,+      jobName = Prelude.Nothing,+      lastUpdatedTimestamp = Prelude.Nothing,+      modelPackagingJobDescription = Prelude.Nothing,+      modelPackagingMethod = Prelude.Nothing,+      modelVersion = Prelude.Nothing,+      projectName = Prelude.Nothing,+      status = Prelude.Nothing,+      statusMessage = Prelude.Nothing+    }++-- | The Unix timestamp for the time and date that the model packaging job+-- was created.+modelPackagingJobMetadata_creationTimestamp :: Lens.Lens' ModelPackagingJobMetadata (Prelude.Maybe Prelude.UTCTime)+modelPackagingJobMetadata_creationTimestamp = Lens.lens (\ModelPackagingJobMetadata' {creationTimestamp} -> creationTimestamp) (\s@ModelPackagingJobMetadata' {} a -> s {creationTimestamp = a} :: ModelPackagingJobMetadata) Prelude.. Lens.mapping Data._Time++-- | The name of the model packaging job.+modelPackagingJobMetadata_jobName :: Lens.Lens' ModelPackagingJobMetadata (Prelude.Maybe Prelude.Text)+modelPackagingJobMetadata_jobName = Lens.lens (\ModelPackagingJobMetadata' {jobName} -> jobName) (\s@ModelPackagingJobMetadata' {} a -> s {jobName = a} :: ModelPackagingJobMetadata)++-- | The Unix timestamp for the time and date that the model packaging job+-- was last updated.+modelPackagingJobMetadata_lastUpdatedTimestamp :: Lens.Lens' ModelPackagingJobMetadata (Prelude.Maybe Prelude.UTCTime)+modelPackagingJobMetadata_lastUpdatedTimestamp = Lens.lens (\ModelPackagingJobMetadata' {lastUpdatedTimestamp} -> lastUpdatedTimestamp) (\s@ModelPackagingJobMetadata' {} a -> s {lastUpdatedTimestamp = a} :: ModelPackagingJobMetadata) Prelude.. Lens.mapping Data._Time++-- | The description for the model packaging job.+modelPackagingJobMetadata_modelPackagingJobDescription :: Lens.Lens' ModelPackagingJobMetadata (Prelude.Maybe Prelude.Text)+modelPackagingJobMetadata_modelPackagingJobDescription = Lens.lens (\ModelPackagingJobMetadata' {modelPackagingJobDescription} -> modelPackagingJobDescription) (\s@ModelPackagingJobMetadata' {} a -> s {modelPackagingJobDescription = a} :: ModelPackagingJobMetadata)++-- | The AWS service used to package the job. Currently Lookout for Vision+-- can package jobs with AWS IoT Greengrass.+modelPackagingJobMetadata_modelPackagingMethod :: Lens.Lens' ModelPackagingJobMetadata (Prelude.Maybe Prelude.Text)+modelPackagingJobMetadata_modelPackagingMethod = Lens.lens (\ModelPackagingJobMetadata' {modelPackagingMethod} -> modelPackagingMethod) (\s@ModelPackagingJobMetadata' {} a -> s {modelPackagingMethod = a} :: ModelPackagingJobMetadata)++-- | The version of the model that is in the model package.+modelPackagingJobMetadata_modelVersion :: Lens.Lens' ModelPackagingJobMetadata (Prelude.Maybe Prelude.Text)+modelPackagingJobMetadata_modelVersion = Lens.lens (\ModelPackagingJobMetadata' {modelVersion} -> modelVersion) (\s@ModelPackagingJobMetadata' {} a -> s {modelVersion = a} :: ModelPackagingJobMetadata)++-- | The project that contains the model that is in the model package.+modelPackagingJobMetadata_projectName :: Lens.Lens' ModelPackagingJobMetadata (Prelude.Maybe Prelude.Text)+modelPackagingJobMetadata_projectName = Lens.lens (\ModelPackagingJobMetadata' {projectName} -> projectName) (\s@ModelPackagingJobMetadata' {} a -> s {projectName = a} :: ModelPackagingJobMetadata)++-- | The status of the model packaging job.+modelPackagingJobMetadata_status :: Lens.Lens' ModelPackagingJobMetadata (Prelude.Maybe ModelPackagingJobStatus)+modelPackagingJobMetadata_status = Lens.lens (\ModelPackagingJobMetadata' {status} -> status) (\s@ModelPackagingJobMetadata' {} a -> s {status = a} :: ModelPackagingJobMetadata)++-- | The status message for the model packaging job.+modelPackagingJobMetadata_statusMessage :: Lens.Lens' ModelPackagingJobMetadata (Prelude.Maybe Prelude.Text)+modelPackagingJobMetadata_statusMessage = Lens.lens (\ModelPackagingJobMetadata' {statusMessage} -> statusMessage) (\s@ModelPackagingJobMetadata' {} a -> s {statusMessage = a} :: ModelPackagingJobMetadata)++instance Data.FromJSON ModelPackagingJobMetadata where+  parseJSON =+    Data.withObject+      "ModelPackagingJobMetadata"+      ( \x ->+          ModelPackagingJobMetadata'+            Prelude.<$> (x Data..:? "CreationTimestamp")+            Prelude.<*> (x Data..:? "JobName")+            Prelude.<*> (x Data..:? "LastUpdatedTimestamp")+            Prelude.<*> (x Data..:? "ModelPackagingJobDescription")+            Prelude.<*> (x Data..:? "ModelPackagingMethod")+            Prelude.<*> (x Data..:? "ModelVersion")+            Prelude.<*> (x Data..:? "ProjectName")+            Prelude.<*> (x Data..:? "Status")+            Prelude.<*> (x Data..:? "StatusMessage")+      )++instance Prelude.Hashable ModelPackagingJobMetadata where+  hashWithSalt _salt ModelPackagingJobMetadata' {..} =+    _salt+      `Prelude.hashWithSalt` creationTimestamp+      `Prelude.hashWithSalt` jobName+      `Prelude.hashWithSalt` lastUpdatedTimestamp+      `Prelude.hashWithSalt` modelPackagingJobDescription+      `Prelude.hashWithSalt` modelPackagingMethod+      `Prelude.hashWithSalt` modelVersion+      `Prelude.hashWithSalt` projectName+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` statusMessage++instance Prelude.NFData ModelPackagingJobMetadata where+  rnf ModelPackagingJobMetadata' {..} =+    Prelude.rnf creationTimestamp+      `Prelude.seq` Prelude.rnf jobName+      `Prelude.seq` Prelude.rnf lastUpdatedTimestamp+      `Prelude.seq` Prelude.rnf modelPackagingJobDescription+      `Prelude.seq` Prelude.rnf modelPackagingMethod+      `Prelude.seq` Prelude.rnf modelVersion+      `Prelude.seq` Prelude.rnf projectName+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf statusMessage
+ gen/Amazonka/LookoutVision/Types/ModelPackagingJobStatus.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.LookoutVision.Types.ModelPackagingJobStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutVision.Types.ModelPackagingJobStatus+  ( ModelPackagingJobStatus+      ( ..,+        ModelPackagingJobStatus_CREATED,+        ModelPackagingJobStatus_FAILED,+        ModelPackagingJobStatus_RUNNING,+        ModelPackagingJobStatus_SUCCEEDED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ModelPackagingJobStatus = ModelPackagingJobStatus'+  { fromModelPackagingJobStatus ::+      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 ModelPackagingJobStatus_CREATED :: ModelPackagingJobStatus+pattern ModelPackagingJobStatus_CREATED = ModelPackagingJobStatus' "CREATED"++pattern ModelPackagingJobStatus_FAILED :: ModelPackagingJobStatus+pattern ModelPackagingJobStatus_FAILED = ModelPackagingJobStatus' "FAILED"++pattern ModelPackagingJobStatus_RUNNING :: ModelPackagingJobStatus+pattern ModelPackagingJobStatus_RUNNING = ModelPackagingJobStatus' "RUNNING"++pattern ModelPackagingJobStatus_SUCCEEDED :: ModelPackagingJobStatus+pattern ModelPackagingJobStatus_SUCCEEDED = ModelPackagingJobStatus' "SUCCEEDED"++{-# COMPLETE+  ModelPackagingJobStatus_CREATED,+  ModelPackagingJobStatus_FAILED,+  ModelPackagingJobStatus_RUNNING,+  ModelPackagingJobStatus_SUCCEEDED,+  ModelPackagingJobStatus'+  #-}
+ gen/Amazonka/LookoutVision/Types/ModelPackagingOutputDetails.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.Types.ModelPackagingOutputDetails+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutVision.Types.ModelPackagingOutputDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutVision.Types.GreengrassOutputDetails+import qualified Amazonka.Prelude as Prelude++-- | Information about the output from a model packaging job.+--+-- /See:/ 'newModelPackagingOutputDetails' smart constructor.+data ModelPackagingOutputDetails = ModelPackagingOutputDetails'+  { -- | Information about the AWS IoT Greengrass component in a model packaging+    -- job.+    greengrass :: Prelude.Maybe GreengrassOutputDetails+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ModelPackagingOutputDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'greengrass', 'modelPackagingOutputDetails_greengrass' - Information about the AWS IoT Greengrass component in a model packaging+-- job.+newModelPackagingOutputDetails ::+  ModelPackagingOutputDetails+newModelPackagingOutputDetails =+  ModelPackagingOutputDetails'+    { greengrass =+        Prelude.Nothing+    }++-- | Information about the AWS IoT Greengrass component in a model packaging+-- job.+modelPackagingOutputDetails_greengrass :: Lens.Lens' ModelPackagingOutputDetails (Prelude.Maybe GreengrassOutputDetails)+modelPackagingOutputDetails_greengrass = Lens.lens (\ModelPackagingOutputDetails' {greengrass} -> greengrass) (\s@ModelPackagingOutputDetails' {} a -> s {greengrass = a} :: ModelPackagingOutputDetails)++instance Data.FromJSON ModelPackagingOutputDetails where+  parseJSON =+    Data.withObject+      "ModelPackagingOutputDetails"+      ( \x ->+          ModelPackagingOutputDetails'+            Prelude.<$> (x Data..:? "Greengrass")+      )++instance Prelude.Hashable ModelPackagingOutputDetails where+  hashWithSalt _salt ModelPackagingOutputDetails' {..} =+    _salt `Prelude.hashWithSalt` greengrass++instance Prelude.NFData ModelPackagingOutputDetails where+  rnf ModelPackagingOutputDetails' {..} =+    Prelude.rnf greengrass
+ gen/Amazonka/LookoutVision/Types/ModelPerformance.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.LookoutVision.Types.ModelPerformance+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutVision.Types.ModelPerformance where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about the evaluation performance of a trained model.+--+-- /See:/ 'newModelPerformance' smart constructor.+data ModelPerformance = ModelPerformance'+  { -- | The overall F1 score metric for the trained model.+    f1Score :: Prelude.Maybe Prelude.Double,+    -- | The overall precision metric value for the trained model.+    precision :: Prelude.Maybe Prelude.Double,+    -- | The overall recall metric value for the trained model.+    recall :: Prelude.Maybe Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ModelPerformance' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'f1Score', 'modelPerformance_f1Score' - The overall F1 score metric for the trained model.+--+-- 'precision', 'modelPerformance_precision' - The overall precision metric value for the trained model.+--+-- 'recall', 'modelPerformance_recall' - The overall recall metric value for the trained model.+newModelPerformance ::+  ModelPerformance+newModelPerformance =+  ModelPerformance'+    { f1Score = Prelude.Nothing,+      precision = Prelude.Nothing,+      recall = Prelude.Nothing+    }++-- | The overall F1 score metric for the trained model.+modelPerformance_f1Score :: Lens.Lens' ModelPerformance (Prelude.Maybe Prelude.Double)+modelPerformance_f1Score = Lens.lens (\ModelPerformance' {f1Score} -> f1Score) (\s@ModelPerformance' {} a -> s {f1Score = a} :: ModelPerformance)++-- | The overall precision metric value for the trained model.+modelPerformance_precision :: Lens.Lens' ModelPerformance (Prelude.Maybe Prelude.Double)+modelPerformance_precision = Lens.lens (\ModelPerformance' {precision} -> precision) (\s@ModelPerformance' {} a -> s {precision = a} :: ModelPerformance)++-- | The overall recall metric value for the trained model.+modelPerformance_recall :: Lens.Lens' ModelPerformance (Prelude.Maybe Prelude.Double)+modelPerformance_recall = Lens.lens (\ModelPerformance' {recall} -> recall) (\s@ModelPerformance' {} a -> s {recall = a} :: ModelPerformance)++instance Data.FromJSON ModelPerformance where+  parseJSON =+    Data.withObject+      "ModelPerformance"+      ( \x ->+          ModelPerformance'+            Prelude.<$> (x Data..:? "F1Score")+            Prelude.<*> (x Data..:? "Precision")+            Prelude.<*> (x Data..:? "Recall")+      )++instance Prelude.Hashable ModelPerformance where+  hashWithSalt _salt ModelPerformance' {..} =+    _salt+      `Prelude.hashWithSalt` f1Score+      `Prelude.hashWithSalt` precision+      `Prelude.hashWithSalt` recall++instance Prelude.NFData ModelPerformance where+  rnf ModelPerformance' {..} =+    Prelude.rnf f1Score+      `Prelude.seq` Prelude.rnf precision+      `Prelude.seq` Prelude.rnf recall
+ gen/Amazonka/LookoutVision/Types/ModelStatus.hs view
@@ -0,0 +1,106 @@+{-# 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.LookoutVision.Types.ModelStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutVision.Types.ModelStatus+  ( ModelStatus+      ( ..,+        ModelStatus_DELETING,+        ModelStatus_HOSTED,+        ModelStatus_HOSTING_FAILED,+        ModelStatus_STARTING_HOSTING,+        ModelStatus_STOPPING_HOSTING,+        ModelStatus_SYSTEM_UPDATING,+        ModelStatus_TRAINED,+        ModelStatus_TRAINING,+        ModelStatus_TRAINING_FAILED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ModelStatus = ModelStatus'+  { fromModelStatus ::+      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 ModelStatus_DELETING :: ModelStatus+pattern ModelStatus_DELETING = ModelStatus' "DELETING"++pattern ModelStatus_HOSTED :: ModelStatus+pattern ModelStatus_HOSTED = ModelStatus' "HOSTED"++pattern ModelStatus_HOSTING_FAILED :: ModelStatus+pattern ModelStatus_HOSTING_FAILED = ModelStatus' "HOSTING_FAILED"++pattern ModelStatus_STARTING_HOSTING :: ModelStatus+pattern ModelStatus_STARTING_HOSTING = ModelStatus' "STARTING_HOSTING"++pattern ModelStatus_STOPPING_HOSTING :: ModelStatus+pattern ModelStatus_STOPPING_HOSTING = ModelStatus' "STOPPING_HOSTING"++pattern ModelStatus_SYSTEM_UPDATING :: ModelStatus+pattern ModelStatus_SYSTEM_UPDATING = ModelStatus' "SYSTEM_UPDATING"++pattern ModelStatus_TRAINED :: ModelStatus+pattern ModelStatus_TRAINED = ModelStatus' "TRAINED"++pattern ModelStatus_TRAINING :: ModelStatus+pattern ModelStatus_TRAINING = ModelStatus' "TRAINING"++pattern ModelStatus_TRAINING_FAILED :: ModelStatus+pattern ModelStatus_TRAINING_FAILED = ModelStatus' "TRAINING_FAILED"++{-# COMPLETE+  ModelStatus_DELETING,+  ModelStatus_HOSTED,+  ModelStatus_HOSTING_FAILED,+  ModelStatus_STARTING_HOSTING,+  ModelStatus_STOPPING_HOSTING,+  ModelStatus_SYSTEM_UPDATING,+  ModelStatus_TRAINED,+  ModelStatus_TRAINING,+  ModelStatus_TRAINING_FAILED,+  ModelStatus'+  #-}
+ gen/Amazonka/LookoutVision/Types/OutputConfig.hs view
@@ -0,0 +1,78 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.Types.OutputConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutVision.Types.OutputConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutVision.Types.S3Location+import qualified Amazonka.Prelude as Prelude++-- | The S3 location where Amazon Lookout for Vision saves model training+-- files.+--+-- /See:/ 'newOutputConfig' smart constructor.+data OutputConfig = OutputConfig'+  { -- | The S3 location for the output.+    s3Location :: S3Location+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OutputConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 's3Location', 'outputConfig_s3Location' - The S3 location for the output.+newOutputConfig ::+  -- | 's3Location'+  S3Location ->+  OutputConfig+newOutputConfig pS3Location_ =+  OutputConfig' {s3Location = pS3Location_}++-- | The S3 location for the output.+outputConfig_s3Location :: Lens.Lens' OutputConfig S3Location+outputConfig_s3Location = Lens.lens (\OutputConfig' {s3Location} -> s3Location) (\s@OutputConfig' {} a -> s {s3Location = a} :: OutputConfig)++instance Data.FromJSON OutputConfig where+  parseJSON =+    Data.withObject+      "OutputConfig"+      ( \x ->+          OutputConfig' Prelude.<$> (x Data..: "S3Location")+      )++instance Prelude.Hashable OutputConfig where+  hashWithSalt _salt OutputConfig' {..} =+    _salt `Prelude.hashWithSalt` s3Location++instance Prelude.NFData OutputConfig where+  rnf OutputConfig' {..} = Prelude.rnf s3Location++instance Data.ToJSON OutputConfig where+  toJSON OutputConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("S3Location" Data..= s3Location)]+      )
+ gen/Amazonka/LookoutVision/Types/OutputS3Object.hs view
@@ -0,0 +1,84 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.Types.OutputS3Object+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutVision.Types.OutputS3Object 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 S3 location where Amazon Lookout for Vision saves training output.+--+-- /See:/ 'newOutputS3Object' smart constructor.+data OutputS3Object = OutputS3Object'+  { -- | The bucket that contains the training output.+    bucket :: Prelude.Text,+    -- | The location of the training output in the bucket.+    key :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OutputS3Object' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'bucket', 'outputS3Object_bucket' - The bucket that contains the training output.+--+-- 'key', 'outputS3Object_key' - The location of the training output in the bucket.+newOutputS3Object ::+  -- | 'bucket'+  Prelude.Text ->+  -- | 'key'+  Prelude.Text ->+  OutputS3Object+newOutputS3Object pBucket_ pKey_ =+  OutputS3Object' {bucket = pBucket_, key = pKey_}++-- | The bucket that contains the training output.+outputS3Object_bucket :: Lens.Lens' OutputS3Object Prelude.Text+outputS3Object_bucket = Lens.lens (\OutputS3Object' {bucket} -> bucket) (\s@OutputS3Object' {} a -> s {bucket = a} :: OutputS3Object)++-- | The location of the training output in the bucket.+outputS3Object_key :: Lens.Lens' OutputS3Object Prelude.Text+outputS3Object_key = Lens.lens (\OutputS3Object' {key} -> key) (\s@OutputS3Object' {} a -> s {key = a} :: OutputS3Object)++instance Data.FromJSON OutputS3Object where+  parseJSON =+    Data.withObject+      "OutputS3Object"+      ( \x ->+          OutputS3Object'+            Prelude.<$> (x Data..: "Bucket")+            Prelude.<*> (x Data..: "Key")+      )++instance Prelude.Hashable OutputS3Object where+  hashWithSalt _salt OutputS3Object' {..} =+    _salt+      `Prelude.hashWithSalt` bucket+      `Prelude.hashWithSalt` key++instance Prelude.NFData OutputS3Object where+  rnf OutputS3Object' {..} =+    Prelude.rnf bucket `Prelude.seq` Prelude.rnf key
+ gen/Amazonka/LookoutVision/Types/PixelAnomaly.hs view
@@ -0,0 +1,92 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.Types.PixelAnomaly+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutVision.Types.PixelAnomaly where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about the pixels in an anomaly mask. For more information,+-- see Anomaly. @PixelAnomaly@ is only returned by image segmentation+-- models.+--+-- /See:/ 'newPixelAnomaly' smart constructor.+data PixelAnomaly = PixelAnomaly'+  { -- | A hex color value for the mask that covers an anomaly type. Each anomaly+    -- type has a different mask color. The color maps to the color of the+    -- anomaly type used in the training dataset.+    color :: Prelude.Maybe Prelude.Text,+    -- | The percentage area of the image that the anomaly type covers.+    totalPercentageArea :: Prelude.Maybe Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PixelAnomaly' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'color', 'pixelAnomaly_color' - A hex color value for the mask that covers an anomaly type. Each anomaly+-- type has a different mask color. The color maps to the color of the+-- anomaly type used in the training dataset.+--+-- 'totalPercentageArea', 'pixelAnomaly_totalPercentageArea' - The percentage area of the image that the anomaly type covers.+newPixelAnomaly ::+  PixelAnomaly+newPixelAnomaly =+  PixelAnomaly'+    { color = Prelude.Nothing,+      totalPercentageArea = Prelude.Nothing+    }++-- | A hex color value for the mask that covers an anomaly type. Each anomaly+-- type has a different mask color. The color maps to the color of the+-- anomaly type used in the training dataset.+pixelAnomaly_color :: Lens.Lens' PixelAnomaly (Prelude.Maybe Prelude.Text)+pixelAnomaly_color = Lens.lens (\PixelAnomaly' {color} -> color) (\s@PixelAnomaly' {} a -> s {color = a} :: PixelAnomaly)++-- | The percentage area of the image that the anomaly type covers.+pixelAnomaly_totalPercentageArea :: Lens.Lens' PixelAnomaly (Prelude.Maybe Prelude.Double)+pixelAnomaly_totalPercentageArea = Lens.lens (\PixelAnomaly' {totalPercentageArea} -> totalPercentageArea) (\s@PixelAnomaly' {} a -> s {totalPercentageArea = a} :: PixelAnomaly)++instance Data.FromJSON PixelAnomaly where+  parseJSON =+    Data.withObject+      "PixelAnomaly"+      ( \x ->+          PixelAnomaly'+            Prelude.<$> (x Data..:? "Color")+            Prelude.<*> (x Data..:? "TotalPercentageArea")+      )++instance Prelude.Hashable PixelAnomaly where+  hashWithSalt _salt PixelAnomaly' {..} =+    _salt+      `Prelude.hashWithSalt` color+      `Prelude.hashWithSalt` totalPercentageArea++instance Prelude.NFData PixelAnomaly where+  rnf PixelAnomaly' {..} =+    Prelude.rnf color+      `Prelude.seq` Prelude.rnf totalPercentageArea
+ gen/Amazonka/LookoutVision/Types/ProjectDescription.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.LookoutVision.Types.ProjectDescription+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutVision.Types.ProjectDescription where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutVision.Types.DatasetMetadata+import qualified Amazonka.Prelude as Prelude++-- | Describe an Amazon Lookout for Vision project. For more information, see+-- DescribeProject.+--+-- /See:/ 'newProjectDescription' smart constructor.+data ProjectDescription = ProjectDescription'+  { -- | The unix timestamp for the date and time that the project was created.+    creationTimestamp :: Prelude.Maybe Data.POSIX,+    -- | A list of datasets in the project.+    datasets :: Prelude.Maybe [DatasetMetadata],+    -- | The Amazon Resource Name (ARN) of the project.+    projectArn :: Prelude.Maybe Prelude.Text,+    -- | The name of the project.+    projectName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ProjectDescription' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationTimestamp', 'projectDescription_creationTimestamp' - The unix timestamp for the date and time that the project was created.+--+-- 'datasets', 'projectDescription_datasets' - A list of datasets in the project.+--+-- 'projectArn', 'projectDescription_projectArn' - The Amazon Resource Name (ARN) of the project.+--+-- 'projectName', 'projectDescription_projectName' - The name of the project.+newProjectDescription ::+  ProjectDescription+newProjectDescription =+  ProjectDescription'+    { creationTimestamp =+        Prelude.Nothing,+      datasets = Prelude.Nothing,+      projectArn = Prelude.Nothing,+      projectName = Prelude.Nothing+    }++-- | The unix timestamp for the date and time that the project was created.+projectDescription_creationTimestamp :: Lens.Lens' ProjectDescription (Prelude.Maybe Prelude.UTCTime)+projectDescription_creationTimestamp = Lens.lens (\ProjectDescription' {creationTimestamp} -> creationTimestamp) (\s@ProjectDescription' {} a -> s {creationTimestamp = a} :: ProjectDescription) Prelude.. Lens.mapping Data._Time++-- | A list of datasets in the project.+projectDescription_datasets :: Lens.Lens' ProjectDescription (Prelude.Maybe [DatasetMetadata])+projectDescription_datasets = Lens.lens (\ProjectDescription' {datasets} -> datasets) (\s@ProjectDescription' {} a -> s {datasets = a} :: ProjectDescription) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) of the project.+projectDescription_projectArn :: Lens.Lens' ProjectDescription (Prelude.Maybe Prelude.Text)+projectDescription_projectArn = Lens.lens (\ProjectDescription' {projectArn} -> projectArn) (\s@ProjectDescription' {} a -> s {projectArn = a} :: ProjectDescription)++-- | The name of the project.+projectDescription_projectName :: Lens.Lens' ProjectDescription (Prelude.Maybe Prelude.Text)+projectDescription_projectName = Lens.lens (\ProjectDescription' {projectName} -> projectName) (\s@ProjectDescription' {} a -> s {projectName = a} :: ProjectDescription)++instance Data.FromJSON ProjectDescription where+  parseJSON =+    Data.withObject+      "ProjectDescription"+      ( \x ->+          ProjectDescription'+            Prelude.<$> (x Data..:? "CreationTimestamp")+            Prelude.<*> (x Data..:? "Datasets" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "ProjectArn")+            Prelude.<*> (x Data..:? "ProjectName")+      )++instance Prelude.Hashable ProjectDescription where+  hashWithSalt _salt ProjectDescription' {..} =+    _salt+      `Prelude.hashWithSalt` creationTimestamp+      `Prelude.hashWithSalt` datasets+      `Prelude.hashWithSalt` projectArn+      `Prelude.hashWithSalt` projectName++instance Prelude.NFData ProjectDescription where+  rnf ProjectDescription' {..} =+    Prelude.rnf creationTimestamp+      `Prelude.seq` Prelude.rnf datasets+      `Prelude.seq` Prelude.rnf projectArn+      `Prelude.seq` Prelude.rnf projectName
+ gen/Amazonka/LookoutVision/Types/ProjectMetadata.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.LookoutVision.Types.ProjectMetadata+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutVision.Types.ProjectMetadata 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++-- | Metadata about an Amazon Lookout for Vision project.+--+-- /See:/ 'newProjectMetadata' smart constructor.+data ProjectMetadata = ProjectMetadata'+  { -- | The unix timestamp for the date and time that the project was created.+    creationTimestamp :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) of the project.+    projectArn :: Prelude.Maybe Prelude.Text,+    -- | The name of the project.+    projectName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ProjectMetadata' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationTimestamp', 'projectMetadata_creationTimestamp' - The unix timestamp for the date and time that the project was created.+--+-- 'projectArn', 'projectMetadata_projectArn' - The Amazon Resource Name (ARN) of the project.+--+-- 'projectName', 'projectMetadata_projectName' - The name of the project.+newProjectMetadata ::+  ProjectMetadata+newProjectMetadata =+  ProjectMetadata'+    { creationTimestamp =+        Prelude.Nothing,+      projectArn = Prelude.Nothing,+      projectName = Prelude.Nothing+    }++-- | The unix timestamp for the date and time that the project was created.+projectMetadata_creationTimestamp :: Lens.Lens' ProjectMetadata (Prelude.Maybe Prelude.UTCTime)+projectMetadata_creationTimestamp = Lens.lens (\ProjectMetadata' {creationTimestamp} -> creationTimestamp) (\s@ProjectMetadata' {} a -> s {creationTimestamp = a} :: ProjectMetadata) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the project.+projectMetadata_projectArn :: Lens.Lens' ProjectMetadata (Prelude.Maybe Prelude.Text)+projectMetadata_projectArn = Lens.lens (\ProjectMetadata' {projectArn} -> projectArn) (\s@ProjectMetadata' {} a -> s {projectArn = a} :: ProjectMetadata)++-- | The name of the project.+projectMetadata_projectName :: Lens.Lens' ProjectMetadata (Prelude.Maybe Prelude.Text)+projectMetadata_projectName = Lens.lens (\ProjectMetadata' {projectName} -> projectName) (\s@ProjectMetadata' {} a -> s {projectName = a} :: ProjectMetadata)++instance Data.FromJSON ProjectMetadata where+  parseJSON =+    Data.withObject+      "ProjectMetadata"+      ( \x ->+          ProjectMetadata'+            Prelude.<$> (x Data..:? "CreationTimestamp")+            Prelude.<*> (x Data..:? "ProjectArn")+            Prelude.<*> (x Data..:? "ProjectName")+      )++instance Prelude.Hashable ProjectMetadata where+  hashWithSalt _salt ProjectMetadata' {..} =+    _salt+      `Prelude.hashWithSalt` creationTimestamp+      `Prelude.hashWithSalt` projectArn+      `Prelude.hashWithSalt` projectName++instance Prelude.NFData ProjectMetadata where+  rnf ProjectMetadata' {..} =+    Prelude.rnf creationTimestamp+      `Prelude.seq` Prelude.rnf projectArn+      `Prelude.seq` Prelude.rnf projectName
+ gen/Amazonka/LookoutVision/Types/S3Location.hs view
@@ -0,0 +1,104 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.Types.S3Location+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutVision.Types.S3Location where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about the location of training output or the output of a+-- model packaging job.+--+-- /See:/ 'newS3Location' smart constructor.+data S3Location = S3Location'+  { -- | The path of the folder, within the S3 bucket, that contains the output.+    prefix :: Prelude.Maybe Prelude.Text,+    -- | The S3 bucket that contains the training or model packaging job output.+    -- If you are training a model, the bucket must in your AWS account. If you+    -- use an S3 bucket for a model packaging job, the S3 bucket must be in the+    -- same AWS Region and AWS account in which you use AWS IoT Greengrass.+    bucket :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3Location' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'prefix', 's3Location_prefix' - The path of the folder, within the S3 bucket, that contains the output.+--+-- 'bucket', 's3Location_bucket' - The S3 bucket that contains the training or model packaging job output.+-- If you are training a model, the bucket must in your AWS account. If you+-- use an S3 bucket for a model packaging job, the S3 bucket must be in the+-- same AWS Region and AWS account in which you use AWS IoT Greengrass.+newS3Location ::+  -- | 'bucket'+  Prelude.Text ->+  S3Location+newS3Location pBucket_ =+  S3Location'+    { prefix = Prelude.Nothing,+      bucket = pBucket_+    }++-- | The path of the folder, within the S3 bucket, that contains the output.+s3Location_prefix :: Lens.Lens' S3Location (Prelude.Maybe Prelude.Text)+s3Location_prefix = Lens.lens (\S3Location' {prefix} -> prefix) (\s@S3Location' {} a -> s {prefix = a} :: S3Location)++-- | The S3 bucket that contains the training or model packaging job output.+-- If you are training a model, the bucket must in your AWS account. If you+-- use an S3 bucket for a model packaging job, the S3 bucket must be in the+-- same AWS Region and AWS account in which you use AWS IoT Greengrass.+s3Location_bucket :: Lens.Lens' S3Location Prelude.Text+s3Location_bucket = Lens.lens (\S3Location' {bucket} -> bucket) (\s@S3Location' {} a -> s {bucket = a} :: S3Location)++instance Data.FromJSON S3Location where+  parseJSON =+    Data.withObject+      "S3Location"+      ( \x ->+          S3Location'+            Prelude.<$> (x Data..:? "Prefix")+            Prelude.<*> (x Data..: "Bucket")+      )++instance Prelude.Hashable S3Location where+  hashWithSalt _salt S3Location' {..} =+    _salt+      `Prelude.hashWithSalt` prefix+      `Prelude.hashWithSalt` bucket++instance Prelude.NFData S3Location where+  rnf S3Location' {..} =+    Prelude.rnf prefix `Prelude.seq` Prelude.rnf bucket++instance Data.ToJSON S3Location where+  toJSON S3Location' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Prefix" Data..=) Prelude.<$> prefix,+            Prelude.Just ("Bucket" Data..= bucket)+          ]+      )
+ gen/Amazonka/LookoutVision/Types/Tag.hs view
@@ -0,0 +1,94 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.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.LookoutVision.Types.Tag where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A key and value pair that is attached to the specified Amazon Lookout+-- for Vision model.+--+-- /See:/ 'newTag' smart constructor.+data Tag = Tag'+  { -- | The key of the tag that is attached to the specified model.+    key :: Prelude.Text,+    -- | The value of the tag that is attached to the specified model.+    value :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Tag' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'key', 'tag_key' - The key of the tag that is attached to the specified model.+--+-- 'value', 'tag_value' - The value of the tag that is attached to the specified model.+newTag ::+  -- | 'key'+  Prelude.Text ->+  -- | 'value'+  Prelude.Text ->+  Tag+newTag pKey_ pValue_ =+  Tag' {key = pKey_, value = pValue_}++-- | The key of the tag that is attached to the specified model.+tag_key :: Lens.Lens' Tag Prelude.Text+tag_key = Lens.lens (\Tag' {key} -> key) (\s@Tag' {} a -> s {key = a} :: Tag)++-- | The value of the tag that is attached to the specified model.+tag_value :: Lens.Lens' Tag Prelude.Text+tag_value = Lens.lens (\Tag' {value} -> value) (\s@Tag' {} a -> s {value = a} :: Tag)++instance Data.FromJSON Tag where+  parseJSON =+    Data.withObject+      "Tag"+      ( \x ->+          Tag'+            Prelude.<$> (x Data..: "Key")+            Prelude.<*> (x Data..: "Value")+      )++instance Prelude.Hashable Tag where+  hashWithSalt _salt Tag' {..} =+    _salt+      `Prelude.hashWithSalt` key+      `Prelude.hashWithSalt` value++instance Prelude.NFData Tag where+  rnf Tag' {..} =+    Prelude.rnf key `Prelude.seq` Prelude.rnf value++instance Data.ToJSON Tag where+  toJSON Tag' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Key" Data..= key),+            Prelude.Just ("Value" Data..= value)+          ]+      )
+ gen/Amazonka/LookoutVision/Types/TargetDevice.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.LookoutVision.Types.TargetDevice+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutVision.Types.TargetDevice+  ( TargetDevice+      ( ..,+        TargetDevice_Jetson_xavier+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype TargetDevice = TargetDevice'+  { fromTargetDevice ::+      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 TargetDevice_Jetson_xavier :: TargetDevice+pattern TargetDevice_Jetson_xavier = TargetDevice' "jetson_xavier"++{-# COMPLETE+  TargetDevice_Jetson_xavier,+  TargetDevice'+  #-}
+ gen/Amazonka/LookoutVision/Types/TargetPlatform.hs view
@@ -0,0 +1,161 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.Types.TargetPlatform+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutVision.Types.TargetPlatform where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutVision.Types.TargetPlatformAccelerator+import Amazonka.LookoutVision.Types.TargetPlatformArch+import Amazonka.LookoutVision.Types.TargetPlatformOs+import qualified Amazonka.Prelude as Prelude++-- | The platform on which a model runs on an AWS IoT Greengrass core device.+--+-- /See:/ 'newTargetPlatform' smart constructor.+data TargetPlatform = TargetPlatform'+  { -- | The target accelerator for the model. Currently, Amazon Lookout for+    -- Vision only supports NVIDIA (Nvidia graphics processing unit) and CPU+    -- accelerators. If you specify NVIDIA as an accelerator, you must also+    -- specify the @gpu-code@, @trt-ver@, and @cuda-ver@ compiler options. If+    -- you don\'t specify an accelerator, Lookout for Vision uses the CPU for+    -- compilation and we highly recommend that you use the+    -- GreengrassConfiguration$CompilerOptions field. For example, you can use+    -- the following compiler options for CPU:+    --+    -- -   @mcpu@: CPU micro-architecture. For example,+    --     @{\'mcpu\': \'skylake-avx512\'}@+    --+    -- -   @mattr@: CPU flags. For example,+    --     @{\'mattr\': [\'+neon\', \'+vfpv4\']}@+    accelerator :: Prelude.Maybe TargetPlatformAccelerator,+    -- | The target operating system for the model. Linux is the only operating+    -- system that is currently supported.+    os :: TargetPlatformOs,+    -- | The target architecture for the model. The currently supported+    -- architectures are X86_64 (64-bit version of the x86 instruction set) and+    -- ARM_64 (ARMv8 64-bit CPU).+    arch :: TargetPlatformArch+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TargetPlatform' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accelerator', 'targetPlatform_accelerator' - The target accelerator for the model. Currently, Amazon Lookout for+-- Vision only supports NVIDIA (Nvidia graphics processing unit) and CPU+-- accelerators. If you specify NVIDIA as an accelerator, you must also+-- specify the @gpu-code@, @trt-ver@, and @cuda-ver@ compiler options. If+-- you don\'t specify an accelerator, Lookout for Vision uses the CPU for+-- compilation and we highly recommend that you use the+-- GreengrassConfiguration$CompilerOptions field. For example, you can use+-- the following compiler options for CPU:+--+-- -   @mcpu@: CPU micro-architecture. For example,+--     @{\'mcpu\': \'skylake-avx512\'}@+--+-- -   @mattr@: CPU flags. For example,+--     @{\'mattr\': [\'+neon\', \'+vfpv4\']}@+--+-- 'os', 'targetPlatform_os' - The target operating system for the model. Linux is the only operating+-- system that is currently supported.+--+-- 'arch', 'targetPlatform_arch' - The target architecture for the model. The currently supported+-- architectures are X86_64 (64-bit version of the x86 instruction set) and+-- ARM_64 (ARMv8 64-bit CPU).+newTargetPlatform ::+  -- | 'os'+  TargetPlatformOs ->+  -- | 'arch'+  TargetPlatformArch ->+  TargetPlatform+newTargetPlatform pOs_ pArch_ =+  TargetPlatform'+    { accelerator = Prelude.Nothing,+      os = pOs_,+      arch = pArch_+    }++-- | The target accelerator for the model. Currently, Amazon Lookout for+-- Vision only supports NVIDIA (Nvidia graphics processing unit) and CPU+-- accelerators. If you specify NVIDIA as an accelerator, you must also+-- specify the @gpu-code@, @trt-ver@, and @cuda-ver@ compiler options. If+-- you don\'t specify an accelerator, Lookout for Vision uses the CPU for+-- compilation and we highly recommend that you use the+-- GreengrassConfiguration$CompilerOptions field. For example, you can use+-- the following compiler options for CPU:+--+-- -   @mcpu@: CPU micro-architecture. For example,+--     @{\'mcpu\': \'skylake-avx512\'}@+--+-- -   @mattr@: CPU flags. For example,+--     @{\'mattr\': [\'+neon\', \'+vfpv4\']}@+targetPlatform_accelerator :: Lens.Lens' TargetPlatform (Prelude.Maybe TargetPlatformAccelerator)+targetPlatform_accelerator = Lens.lens (\TargetPlatform' {accelerator} -> accelerator) (\s@TargetPlatform' {} a -> s {accelerator = a} :: TargetPlatform)++-- | The target operating system for the model. Linux is the only operating+-- system that is currently supported.+targetPlatform_os :: Lens.Lens' TargetPlatform TargetPlatformOs+targetPlatform_os = Lens.lens (\TargetPlatform' {os} -> os) (\s@TargetPlatform' {} a -> s {os = a} :: TargetPlatform)++-- | The target architecture for the model. The currently supported+-- architectures are X86_64 (64-bit version of the x86 instruction set) and+-- ARM_64 (ARMv8 64-bit CPU).+targetPlatform_arch :: Lens.Lens' TargetPlatform TargetPlatformArch+targetPlatform_arch = Lens.lens (\TargetPlatform' {arch} -> arch) (\s@TargetPlatform' {} a -> s {arch = a} :: TargetPlatform)++instance Data.FromJSON TargetPlatform where+  parseJSON =+    Data.withObject+      "TargetPlatform"+      ( \x ->+          TargetPlatform'+            Prelude.<$> (x Data..:? "Accelerator")+            Prelude.<*> (x Data..: "Os")+            Prelude.<*> (x Data..: "Arch")+      )++instance Prelude.Hashable TargetPlatform where+  hashWithSalt _salt TargetPlatform' {..} =+    _salt+      `Prelude.hashWithSalt` accelerator+      `Prelude.hashWithSalt` os+      `Prelude.hashWithSalt` arch++instance Prelude.NFData TargetPlatform where+  rnf TargetPlatform' {..} =+    Prelude.rnf accelerator+      `Prelude.seq` Prelude.rnf os+      `Prelude.seq` Prelude.rnf arch++instance Data.ToJSON TargetPlatform where+  toJSON TargetPlatform' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Accelerator" Data..=) Prelude.<$> accelerator,+            Prelude.Just ("Os" Data..= os),+            Prelude.Just ("Arch" Data..= arch)+          ]+      )
+ gen/Amazonka/LookoutVision/Types/TargetPlatformAccelerator.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.LookoutVision.Types.TargetPlatformAccelerator+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutVision.Types.TargetPlatformAccelerator+  ( TargetPlatformAccelerator+      ( ..,+        TargetPlatformAccelerator_NVIDIA+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype TargetPlatformAccelerator = TargetPlatformAccelerator'+  { fromTargetPlatformAccelerator ::+      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 TargetPlatformAccelerator_NVIDIA :: TargetPlatformAccelerator+pattern TargetPlatformAccelerator_NVIDIA = TargetPlatformAccelerator' "NVIDIA"++{-# COMPLETE+  TargetPlatformAccelerator_NVIDIA,+  TargetPlatformAccelerator'+  #-}
+ gen/Amazonka/LookoutVision/Types/TargetPlatformArch.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.LookoutVision.Types.TargetPlatformArch+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutVision.Types.TargetPlatformArch+  ( TargetPlatformArch+      ( ..,+        TargetPlatformArch_ARM64,+        TargetPlatformArch_X86_64+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype TargetPlatformArch = TargetPlatformArch'+  { fromTargetPlatformArch ::+      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 TargetPlatformArch_ARM64 :: TargetPlatformArch+pattern TargetPlatformArch_ARM64 = TargetPlatformArch' "ARM64"++pattern TargetPlatformArch_X86_64 :: TargetPlatformArch+pattern TargetPlatformArch_X86_64 = TargetPlatformArch' "X86_64"++{-# COMPLETE+  TargetPlatformArch_ARM64,+  TargetPlatformArch_X86_64,+  TargetPlatformArch'+  #-}
+ gen/Amazonka/LookoutVision/Types/TargetPlatformOs.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.LookoutVision.Types.TargetPlatformOs+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LookoutVision.Types.TargetPlatformOs+  ( TargetPlatformOs+      ( ..,+        TargetPlatformOs_LINUX+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype TargetPlatformOs = TargetPlatformOs'+  { fromTargetPlatformOs ::+      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 TargetPlatformOs_LINUX :: TargetPlatformOs+pattern TargetPlatformOs_LINUX = TargetPlatformOs' "LINUX"++{-# COMPLETE+  TargetPlatformOs_LINUX,+  TargetPlatformOs'+  #-}
+ gen/Amazonka/LookoutVision/UntagResource.hs view
@@ -0,0 +1,170 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.UntagResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes one or more tags from an Amazon Lookout for Vision model. For+-- more information, see /Tagging a model/ in the /Amazon Lookout for+-- Vision Developer Guide/.+--+-- This operation requires permissions to perform the+-- @lookoutvision:UntagResource@ operation.+module Amazonka.LookoutVision.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.LookoutVision.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 Amazon Resource Name (ARN) of the model from which you want to+    -- remove tags.+    resourceArn :: Prelude.Text,+    -- | A list of the keys of the tags that you want to remove.+    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 Amazon Resource Name (ARN) of the model from which you want to+-- remove tags.+--+-- 'tagKeys', 'untagResource_tagKeys' - A list of the keys of the tags that you want to remove.+newUntagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  UntagResource+newUntagResource pResourceArn_ =+  UntagResource'+    { resourceArn = pResourceArn_,+      tagKeys = Prelude.mempty+    }++-- | The Amazon Resource Name (ARN) of the model from which you want to+-- remove tags.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | A list of the keys of the tags that you want to remove.+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.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UntagResourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UntagResource where+  hashWithSalt _salt UntagResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` tagKeys++instance Prelude.NFData UntagResource where+  rnf UntagResource' {..} =+    Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf tagKeys++instance Data.ToHeaders UntagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath UntagResource where+  toPath UntagResource' {..} =+    Prelude.mconcat+      ["/2020-11-20/tags/", Data.toBS resourceArn]++instance Data.ToQuery UntagResource where+  toQuery UntagResource' {..} =+    Prelude.mconcat+      ["tagKeys" Data.=: Data.toQueryList "member" tagKeys]++-- | /See:/ 'newUntagResourceResponse' smart constructor.+data UntagResourceResponse = UntagResourceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'untagResourceResponse_httpStatus' - The response's http status code.+newUntagResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UntagResourceResponse+newUntagResourceResponse pHttpStatus_ =+  UntagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+untagResourceResponse_httpStatus :: Lens.Lens' UntagResourceResponse Prelude.Int+untagResourceResponse_httpStatus = Lens.lens (\UntagResourceResponse' {httpStatus} -> httpStatus) (\s@UntagResourceResponse' {} a -> s {httpStatus = a} :: UntagResourceResponse)++instance Prelude.NFData UntagResourceResponse where+  rnf UntagResourceResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/LookoutVision/UpdateDatasetEntries.hs view
@@ -0,0 +1,295 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LookoutVision.UpdateDatasetEntries+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds or updates one or more JSON Line entries in a dataset. A JSON Line+-- includes information about an image used for training or testing an+-- Amazon Lookout for Vision model.+--+-- To update an existing JSON Line, use the @source-ref@ field to identify+-- the JSON Line. The JSON line that you supply replaces the existing JSON+-- line. Any existing annotations that are not in the new JSON line are+-- removed from the dataset.+--+-- For more information, see /Defining JSON lines for anomaly+-- classification/ in the Amazon Lookout for Vision Developer Guide.+--+-- The images you reference in the @source-ref@ field of a JSON line, must+-- be in the same S3 bucket as the existing images in the dataset.+--+-- Updating a dataset might take a while to complete. To check the current+-- status, call DescribeDataset and check the @Status@ field in the+-- response.+--+-- This operation requires permissions to perform the+-- @lookoutvision:UpdateDatasetEntries@ operation.+module Amazonka.LookoutVision.UpdateDatasetEntries+  ( -- * Creating a Request+    UpdateDatasetEntries (..),+    newUpdateDatasetEntries,++    -- * Request Lenses+    updateDatasetEntries_clientToken,+    updateDatasetEntries_projectName,+    updateDatasetEntries_datasetType,+    updateDatasetEntries_changes,++    -- * Destructuring the Response+    UpdateDatasetEntriesResponse (..),+    newUpdateDatasetEntriesResponse,++    -- * Response Lenses+    updateDatasetEntriesResponse_status,+    updateDatasetEntriesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutVision.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateDatasetEntries' smart constructor.+data UpdateDatasetEntries = UpdateDatasetEntries'+  { -- | ClientToken is an idempotency token that ensures a call to+    -- @UpdateDatasetEntries@ completes only once. You choose the value to+    -- pass. For example, An issue might prevent you from getting a response+    -- from @UpdateDatasetEntries@. In this case, safely retry your call to+    -- @UpdateDatasetEntries@ by using the same @ClientToken@ parameter value.+    --+    -- If you don\'t supply a value for @ClientToken@, the AWS SDK you are+    -- using inserts a value for you. This prevents retries after a network+    -- error from making multiple updates with the same dataset entries.+    -- You\'ll need to provide your own value for other use cases.+    --+    -- An error occurs if the other input parameters are not the same as in the+    -- first request. Using a different value for @ClientToken@ is considered a+    -- new call to @UpdateDatasetEntries@. An idempotency token is active for 8+    -- hours.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The name of the project that contains the dataset that you want to+    -- update.+    projectName :: Prelude.Text,+    -- | The type of the dataset that you want to update. Specify @train@ to+    -- update the training dataset. Specify @test@ to update the test dataset.+    -- If you have a single dataset project, specify @train@.+    datasetType :: Prelude.Text,+    -- | The entries to add to the dataset.+    changes :: Data.Base64+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateDatasetEntries' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'updateDatasetEntries_clientToken' - ClientToken is an idempotency token that ensures a call to+-- @UpdateDatasetEntries@ completes only once. You choose the value to+-- pass. For example, An issue might prevent you from getting a response+-- from @UpdateDatasetEntries@. In this case, safely retry your call to+-- @UpdateDatasetEntries@ by using the same @ClientToken@ parameter value.+--+-- If you don\'t supply a value for @ClientToken@, the AWS SDK you are+-- using inserts a value for you. This prevents retries after a network+-- error from making multiple updates with the same dataset entries.+-- You\'ll need to provide your own value for other use cases.+--+-- An error occurs if the other input parameters are not the same as in the+-- first request. Using a different value for @ClientToken@ is considered a+-- new call to @UpdateDatasetEntries@. An idempotency token is active for 8+-- hours.+--+-- 'projectName', 'updateDatasetEntries_projectName' - The name of the project that contains the dataset that you want to+-- update.+--+-- 'datasetType', 'updateDatasetEntries_datasetType' - The type of the dataset that you want to update. Specify @train@ to+-- update the training dataset. Specify @test@ to update the test dataset.+-- If you have a single dataset project, specify @train@.+--+-- 'changes', 'updateDatasetEntries_changes' - The entries to add to the dataset.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+newUpdateDatasetEntries ::+  -- | 'projectName'+  Prelude.Text ->+  -- | 'datasetType'+  Prelude.Text ->+  -- | 'changes'+  Prelude.ByteString ->+  UpdateDatasetEntries+newUpdateDatasetEntries+  pProjectName_+  pDatasetType_+  pChanges_ =+    UpdateDatasetEntries'+      { clientToken =+          Prelude.Nothing,+        projectName = pProjectName_,+        datasetType = pDatasetType_,+        changes = Data._Base64 Lens.# pChanges_+      }++-- | ClientToken is an idempotency token that ensures a call to+-- @UpdateDatasetEntries@ completes only once. You choose the value to+-- pass. For example, An issue might prevent you from getting a response+-- from @UpdateDatasetEntries@. In this case, safely retry your call to+-- @UpdateDatasetEntries@ by using the same @ClientToken@ parameter value.+--+-- If you don\'t supply a value for @ClientToken@, the AWS SDK you are+-- using inserts a value for you. This prevents retries after a network+-- error from making multiple updates with the same dataset entries.+-- You\'ll need to provide your own value for other use cases.+--+-- An error occurs if the other input parameters are not the same as in the+-- first request. Using a different value for @ClientToken@ is considered a+-- new call to @UpdateDatasetEntries@. An idempotency token is active for 8+-- hours.+updateDatasetEntries_clientToken :: Lens.Lens' UpdateDatasetEntries (Prelude.Maybe Prelude.Text)+updateDatasetEntries_clientToken = Lens.lens (\UpdateDatasetEntries' {clientToken} -> clientToken) (\s@UpdateDatasetEntries' {} a -> s {clientToken = a} :: UpdateDatasetEntries)++-- | The name of the project that contains the dataset that you want to+-- update.+updateDatasetEntries_projectName :: Lens.Lens' UpdateDatasetEntries Prelude.Text+updateDatasetEntries_projectName = Lens.lens (\UpdateDatasetEntries' {projectName} -> projectName) (\s@UpdateDatasetEntries' {} a -> s {projectName = a} :: UpdateDatasetEntries)++-- | The type of the dataset that you want to update. Specify @train@ to+-- update the training dataset. Specify @test@ to update the test dataset.+-- If you have a single dataset project, specify @train@.+updateDatasetEntries_datasetType :: Lens.Lens' UpdateDatasetEntries Prelude.Text+updateDatasetEntries_datasetType = Lens.lens (\UpdateDatasetEntries' {datasetType} -> datasetType) (\s@UpdateDatasetEntries' {} a -> s {datasetType = a} :: UpdateDatasetEntries)++-- | The entries to add to the dataset.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+updateDatasetEntries_changes :: Lens.Lens' UpdateDatasetEntries Prelude.ByteString+updateDatasetEntries_changes = Lens.lens (\UpdateDatasetEntries' {changes} -> changes) (\s@UpdateDatasetEntries' {} a -> s {changes = a} :: UpdateDatasetEntries) Prelude.. Data._Base64++instance Core.AWSRequest UpdateDatasetEntries where+  type+    AWSResponse UpdateDatasetEntries =+      UpdateDatasetEntriesResponse+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateDatasetEntriesResponse'+            Prelude.<$> (x Data..?> "Status")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateDatasetEntries where+  hashWithSalt _salt UpdateDatasetEntries' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` projectName+      `Prelude.hashWithSalt` datasetType+      `Prelude.hashWithSalt` changes++instance Prelude.NFData UpdateDatasetEntries where+  rnf UpdateDatasetEntries' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf projectName+      `Prelude.seq` Prelude.rnf datasetType+      `Prelude.seq` Prelude.rnf changes++instance Data.ToHeaders UpdateDatasetEntries where+  toHeaders UpdateDatasetEntries' {..} =+    Prelude.mconcat+      [ "X-Amzn-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToJSON UpdateDatasetEntries where+  toJSON UpdateDatasetEntries' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("Changes" Data..= changes)]+      )++instance Data.ToPath UpdateDatasetEntries where+  toPath UpdateDatasetEntries' {..} =+    Prelude.mconcat+      [ "/2020-11-20/projects/",+        Data.toBS projectName,+        "/datasets/",+        Data.toBS datasetType,+        "/entries"+      ]++instance Data.ToQuery UpdateDatasetEntries where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateDatasetEntriesResponse' smart constructor.+data UpdateDatasetEntriesResponse = UpdateDatasetEntriesResponse'+  { -- | The status of the dataset update.+    status :: Prelude.Maybe DatasetStatus,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateDatasetEntriesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'status', 'updateDatasetEntriesResponse_status' - The status of the dataset update.+--+-- 'httpStatus', 'updateDatasetEntriesResponse_httpStatus' - The response's http status code.+newUpdateDatasetEntriesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateDatasetEntriesResponse+newUpdateDatasetEntriesResponse pHttpStatus_ =+  UpdateDatasetEntriesResponse'+    { status =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The status of the dataset update.+updateDatasetEntriesResponse_status :: Lens.Lens' UpdateDatasetEntriesResponse (Prelude.Maybe DatasetStatus)+updateDatasetEntriesResponse_status = Lens.lens (\UpdateDatasetEntriesResponse' {status} -> status) (\s@UpdateDatasetEntriesResponse' {} a -> s {status = a} :: UpdateDatasetEntriesResponse)++-- | The response's http status code.+updateDatasetEntriesResponse_httpStatus :: Lens.Lens' UpdateDatasetEntriesResponse Prelude.Int+updateDatasetEntriesResponse_httpStatus = Lens.lens (\UpdateDatasetEntriesResponse' {httpStatus} -> httpStatus) (\s@UpdateDatasetEntriesResponse' {} a -> s {httpStatus = a} :: UpdateDatasetEntriesResponse)++instance Prelude.NFData UpdateDatasetEntriesResponse where+  rnf UpdateDatasetEntriesResponse' {..} =+    Prelude.rnf status+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LookoutVision/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.LookoutVision.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.LookoutVision.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LookoutVision.Lens+import Amazonka.LookoutVision.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.LookoutVision+import Test.Amazonka.LookoutVision.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "LookoutVision"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/Gen/LookoutVision.hs view
@@ -0,0 +1,472 @@+{-# 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.LookoutVision+-- Copyright   : (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.LookoutVision where++import Amazonka.LookoutVision+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.LookoutVision.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"+--         [ requestCreateDataset $+--             newCreateDataset+--+--         , requestCreateModel $+--             newCreateModel+--+--         , requestCreateProject $+--             newCreateProject+--+--         , requestDeleteDataset $+--             newDeleteDataset+--+--         , requestDeleteModel $+--             newDeleteModel+--+--         , requestDeleteProject $+--             newDeleteProject+--+--         , requestDescribeDataset $+--             newDescribeDataset+--+--         , requestDescribeModel $+--             newDescribeModel+--+--         , requestDescribeModelPackagingJob $+--             newDescribeModelPackagingJob+--+--         , requestDescribeProject $+--             newDescribeProject+--+--         , requestDetectAnomalies $+--             newDetectAnomalies+--+--         , requestListDatasetEntries $+--             newListDatasetEntries+--+--         , requestListModelPackagingJobs $+--             newListModelPackagingJobs+--+--         , requestListModels $+--             newListModels+--+--         , requestListProjects $+--             newListProjects+--+--         , requestListTagsForResource $+--             newListTagsForResource+--+--         , requestStartModel $+--             newStartModel+--+--         , requestStartModelPackagingJob $+--             newStartModelPackagingJob+--+--         , requestStopModel $+--             newStopModel+--+--         , requestTagResource $+--             newTagResource+--+--         , requestUntagResource $+--             newUntagResource+--+--         , requestUpdateDatasetEntries $+--             newUpdateDatasetEntries+--+--           ]++--     , testGroup "response"+--         [ responseCreateDataset $+--             newCreateDatasetResponse+--+--         , responseCreateModel $+--             newCreateModelResponse+--+--         , responseCreateProject $+--             newCreateProjectResponse+--+--         , responseDeleteDataset $+--             newDeleteDatasetResponse+--+--         , responseDeleteModel $+--             newDeleteModelResponse+--+--         , responseDeleteProject $+--             newDeleteProjectResponse+--+--         , responseDescribeDataset $+--             newDescribeDatasetResponse+--+--         , responseDescribeModel $+--             newDescribeModelResponse+--+--         , responseDescribeModelPackagingJob $+--             newDescribeModelPackagingJobResponse+--+--         , responseDescribeProject $+--             newDescribeProjectResponse+--+--         , responseDetectAnomalies $+--             newDetectAnomaliesResponse+--+--         , responseListDatasetEntries $+--             newListDatasetEntriesResponse+--+--         , responseListModelPackagingJobs $+--             newListModelPackagingJobsResponse+--+--         , responseListModels $+--             newListModelsResponse+--+--         , responseListProjects $+--             newListProjectsResponse+--+--         , responseListTagsForResource $+--             newListTagsForResourceResponse+--+--         , responseStartModel $+--             newStartModelResponse+--+--         , responseStartModelPackagingJob $+--             newStartModelPackagingJobResponse+--+--         , responseStopModel $+--             newStopModelResponse+--+--         , responseTagResource $+--             newTagResourceResponse+--+--         , responseUntagResource $+--             newUntagResourceResponse+--+--         , responseUpdateDatasetEntries $+--             newUpdateDatasetEntriesResponse+--+--           ]+--     ]++-- Requests++requestCreateDataset :: CreateDataset -> TestTree+requestCreateDataset =+  req+    "CreateDataset"+    "fixture/CreateDataset.yaml"++requestCreateModel :: CreateModel -> TestTree+requestCreateModel =+  req+    "CreateModel"+    "fixture/CreateModel.yaml"++requestCreateProject :: CreateProject -> TestTree+requestCreateProject =+  req+    "CreateProject"+    "fixture/CreateProject.yaml"++requestDeleteDataset :: DeleteDataset -> TestTree+requestDeleteDataset =+  req+    "DeleteDataset"+    "fixture/DeleteDataset.yaml"++requestDeleteModel :: DeleteModel -> TestTree+requestDeleteModel =+  req+    "DeleteModel"+    "fixture/DeleteModel.yaml"++requestDeleteProject :: DeleteProject -> TestTree+requestDeleteProject =+  req+    "DeleteProject"+    "fixture/DeleteProject.yaml"++requestDescribeDataset :: DescribeDataset -> TestTree+requestDescribeDataset =+  req+    "DescribeDataset"+    "fixture/DescribeDataset.yaml"++requestDescribeModel :: DescribeModel -> TestTree+requestDescribeModel =+  req+    "DescribeModel"+    "fixture/DescribeModel.yaml"++requestDescribeModelPackagingJob :: DescribeModelPackagingJob -> TestTree+requestDescribeModelPackagingJob =+  req+    "DescribeModelPackagingJob"+    "fixture/DescribeModelPackagingJob.yaml"++requestDescribeProject :: DescribeProject -> TestTree+requestDescribeProject =+  req+    "DescribeProject"+    "fixture/DescribeProject.yaml"++requestListDatasetEntries :: ListDatasetEntries -> TestTree+requestListDatasetEntries =+  req+    "ListDatasetEntries"+    "fixture/ListDatasetEntries.yaml"++requestListModelPackagingJobs :: ListModelPackagingJobs -> TestTree+requestListModelPackagingJobs =+  req+    "ListModelPackagingJobs"+    "fixture/ListModelPackagingJobs.yaml"++requestListModels :: ListModels -> TestTree+requestListModels =+  req+    "ListModels"+    "fixture/ListModels.yaml"++requestListProjects :: ListProjects -> TestTree+requestListProjects =+  req+    "ListProjects"+    "fixture/ListProjects.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+  req+    "ListTagsForResource"+    "fixture/ListTagsForResource.yaml"++requestStartModel :: StartModel -> TestTree+requestStartModel =+  req+    "StartModel"+    "fixture/StartModel.yaml"++requestStartModelPackagingJob :: StartModelPackagingJob -> TestTree+requestStartModelPackagingJob =+  req+    "StartModelPackagingJob"+    "fixture/StartModelPackagingJob.yaml"++requestStopModel :: StopModel -> TestTree+requestStopModel =+  req+    "StopModel"+    "fixture/StopModel.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+  req+    "TagResource"+    "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+  req+    "UntagResource"+    "fixture/UntagResource.yaml"++requestUpdateDatasetEntries :: UpdateDatasetEntries -> TestTree+requestUpdateDatasetEntries =+  req+    "UpdateDatasetEntries"+    "fixture/UpdateDatasetEntries.yaml"++-- Responses++responseCreateDataset :: CreateDatasetResponse -> TestTree+responseCreateDataset =+  res+    "CreateDatasetResponse"+    "fixture/CreateDatasetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateDataset)++responseCreateModel :: CreateModelResponse -> TestTree+responseCreateModel =+  res+    "CreateModelResponse"+    "fixture/CreateModelResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateModel)++responseCreateProject :: CreateProjectResponse -> TestTree+responseCreateProject =+  res+    "CreateProjectResponse"+    "fixture/CreateProjectResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateProject)++responseDeleteDataset :: DeleteDatasetResponse -> TestTree+responseDeleteDataset =+  res+    "DeleteDatasetResponse"+    "fixture/DeleteDatasetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteDataset)++responseDeleteModel :: DeleteModelResponse -> TestTree+responseDeleteModel =+  res+    "DeleteModelResponse"+    "fixture/DeleteModelResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteModel)++responseDeleteProject :: DeleteProjectResponse -> TestTree+responseDeleteProject =+  res+    "DeleteProjectResponse"+    "fixture/DeleteProjectResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteProject)++responseDescribeDataset :: DescribeDatasetResponse -> TestTree+responseDescribeDataset =+  res+    "DescribeDatasetResponse"+    "fixture/DescribeDatasetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeDataset)++responseDescribeModel :: DescribeModelResponse -> TestTree+responseDescribeModel =+  res+    "DescribeModelResponse"+    "fixture/DescribeModelResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeModel)++responseDescribeModelPackagingJob :: DescribeModelPackagingJobResponse -> TestTree+responseDescribeModelPackagingJob =+  res+    "DescribeModelPackagingJobResponse"+    "fixture/DescribeModelPackagingJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeModelPackagingJob)++responseDescribeProject :: DescribeProjectResponse -> TestTree+responseDescribeProject =+  res+    "DescribeProjectResponse"+    "fixture/DescribeProjectResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeProject)++responseDetectAnomalies :: DetectAnomaliesResponse -> TestTree+responseDetectAnomalies =+  res+    "DetectAnomaliesResponse"+    "fixture/DetectAnomaliesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DetectAnomalies)++responseListDatasetEntries :: ListDatasetEntriesResponse -> TestTree+responseListDatasetEntries =+  res+    "ListDatasetEntriesResponse"+    "fixture/ListDatasetEntriesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListDatasetEntries)++responseListModelPackagingJobs :: ListModelPackagingJobsResponse -> TestTree+responseListModelPackagingJobs =+  res+    "ListModelPackagingJobsResponse"+    "fixture/ListModelPackagingJobsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListModelPackagingJobs)++responseListModels :: ListModelsResponse -> TestTree+responseListModels =+  res+    "ListModelsResponse"+    "fixture/ListModelsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListModels)++responseListProjects :: ListProjectsResponse -> TestTree+responseListProjects =+  res+    "ListProjectsResponse"+    "fixture/ListProjectsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListProjects)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+  res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responseStartModel :: StartModelResponse -> TestTree+responseStartModel =+  res+    "StartModelResponse"+    "fixture/StartModelResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StartModel)++responseStartModelPackagingJob :: StartModelPackagingJobResponse -> TestTree+responseStartModelPackagingJob =+  res+    "StartModelPackagingJobResponse"+    "fixture/StartModelPackagingJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StartModelPackagingJob)++responseStopModel :: StopModelResponse -> TestTree+responseStopModel =+  res+    "StopModelResponse"+    "fixture/StopModelResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StopModel)++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)++responseUpdateDatasetEntries :: UpdateDatasetEntriesResponse -> TestTree+responseUpdateDatasetEntries =+  res+    "UpdateDatasetEntriesResponse"+    "fixture/UpdateDatasetEntriesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateDatasetEntries)
+ test/Test/Amazonka/LookoutVision.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.LookoutVision+-- Copyright   : (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.LookoutVision+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/LookoutVision/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.LookoutVision.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.LookoutVision.Internal where