packages feed

amazonka-robomaker (empty) → 2.0

raw patch · 228 files changed

+24003/−0 lines, 228 filesdep +amazonka-coredep +amazonka-robomakerdep +amazonka-test

Dependencies added: amazonka-core, amazonka-robomaker, 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 RoboMaker SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2018-06-29@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-robomaker)+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.RobOMaker](http://hackage.haskell.org/package/amazonka-robomaker/docs/Amazonka-RobOMaker.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-robomaker` 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-robomaker.cabal view
@@ -0,0 +1,185 @@+cabal-version:      2.2+name:               amazonka-robomaker+version:            2.0+synopsis:           Amazon RoboMaker SDK.+homepage:           https://github.com/brendanhay/amazonka+bug-reports:        https://github.com/brendanhay/amazonka/issues+license:            MPL-2.0+license-file:       LICENSE+author:             Brendan Hay+maintainer:+  Brendan Hay <brendan.g.hay+amazonka@gmail.com>, Jack Kelly <jack@jackkelly.name>++copyright:          Copyright (c) 2013-2023 Brendan Hay+category:           AWS+build-type:         Simple+extra-source-files:+  fixture/*.proto+  fixture/*.yaml+  README.md+  src/.gitkeep++description:+  Derived from API version @2018-06-29@ 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.RobOMaker.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.RobOMaker" 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-robomaker++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.RobOMaker+    Amazonka.RobOMaker.BatchDeleteWorlds+    Amazonka.RobOMaker.BatchDescribeSimulationJob+    Amazonka.RobOMaker.CancelSimulationJob+    Amazonka.RobOMaker.CancelSimulationJobBatch+    Amazonka.RobOMaker.CancelWorldExportJob+    Amazonka.RobOMaker.CancelWorldGenerationJob+    Amazonka.RobOMaker.CreateRobotApplication+    Amazonka.RobOMaker.CreateRobotApplicationVersion+    Amazonka.RobOMaker.CreateSimulationApplication+    Amazonka.RobOMaker.CreateSimulationApplicationVersion+    Amazonka.RobOMaker.CreateSimulationJob+    Amazonka.RobOMaker.CreateWorldExportJob+    Amazonka.RobOMaker.CreateWorldGenerationJob+    Amazonka.RobOMaker.CreateWorldTemplate+    Amazonka.RobOMaker.DeleteRobotApplication+    Amazonka.RobOMaker.DeleteSimulationApplication+    Amazonka.RobOMaker.DeleteWorldTemplate+    Amazonka.RobOMaker.DescribeRobotApplication+    Amazonka.RobOMaker.DescribeSimulationApplication+    Amazonka.RobOMaker.DescribeSimulationJob+    Amazonka.RobOMaker.DescribeSimulationJobBatch+    Amazonka.RobOMaker.DescribeWorld+    Amazonka.RobOMaker.DescribeWorldExportJob+    Amazonka.RobOMaker.DescribeWorldGenerationJob+    Amazonka.RobOMaker.DescribeWorldTemplate+    Amazonka.RobOMaker.GetWorldTemplateBody+    Amazonka.RobOMaker.Lens+    Amazonka.RobOMaker.ListRobotApplications+    Amazonka.RobOMaker.ListSimulationApplications+    Amazonka.RobOMaker.ListSimulationJobBatches+    Amazonka.RobOMaker.ListSimulationJobs+    Amazonka.RobOMaker.ListTagsForResource+    Amazonka.RobOMaker.ListWorldExportJobs+    Amazonka.RobOMaker.ListWorldGenerationJobs+    Amazonka.RobOMaker.ListWorlds+    Amazonka.RobOMaker.ListWorldTemplates+    Amazonka.RobOMaker.RestartSimulationJob+    Amazonka.RobOMaker.StartSimulationJobBatch+    Amazonka.RobOMaker.TagResource+    Amazonka.RobOMaker.Types+    Amazonka.RobOMaker.Types.Architecture+    Amazonka.RobOMaker.Types.BatchPolicy+    Amazonka.RobOMaker.Types.Compute+    Amazonka.RobOMaker.Types.ComputeResponse+    Amazonka.RobOMaker.Types.ComputeType+    Amazonka.RobOMaker.Types.DataSource+    Amazonka.RobOMaker.Types.DataSourceConfig+    Amazonka.RobOMaker.Types.DataSourceType+    Amazonka.RobOMaker.Types.Environment+    Amazonka.RobOMaker.Types.ExitBehavior+    Amazonka.RobOMaker.Types.FailedCreateSimulationJobRequest+    Amazonka.RobOMaker.Types.FailureBehavior+    Amazonka.RobOMaker.Types.FailureSummary+    Amazonka.RobOMaker.Types.Filter+    Amazonka.RobOMaker.Types.FinishedWorldsSummary+    Amazonka.RobOMaker.Types.LaunchConfig+    Amazonka.RobOMaker.Types.LoggingConfig+    Amazonka.RobOMaker.Types.NetworkInterface+    Amazonka.RobOMaker.Types.OutputLocation+    Amazonka.RobOMaker.Types.PortForwardingConfig+    Amazonka.RobOMaker.Types.PortMapping+    Amazonka.RobOMaker.Types.RenderingEngine+    Amazonka.RobOMaker.Types.RenderingEngineType+    Amazonka.RobOMaker.Types.RobotApplicationConfig+    Amazonka.RobOMaker.Types.RobotApplicationSummary+    Amazonka.RobOMaker.Types.RobotSoftwareSuite+    Amazonka.RobOMaker.Types.RobotSoftwareSuiteType+    Amazonka.RobOMaker.Types.RobotSoftwareSuiteVersionType+    Amazonka.RobOMaker.Types.S3KeyOutput+    Amazonka.RobOMaker.Types.SimulationApplicationConfig+    Amazonka.RobOMaker.Types.SimulationApplicationSummary+    Amazonka.RobOMaker.Types.SimulationJob+    Amazonka.RobOMaker.Types.SimulationJobBatchErrorCode+    Amazonka.RobOMaker.Types.SimulationJobBatchStatus+    Amazonka.RobOMaker.Types.SimulationJobBatchSummary+    Amazonka.RobOMaker.Types.SimulationJobErrorCode+    Amazonka.RobOMaker.Types.SimulationJobRequest+    Amazonka.RobOMaker.Types.SimulationJobStatus+    Amazonka.RobOMaker.Types.SimulationJobSummary+    Amazonka.RobOMaker.Types.SimulationSoftwareSuite+    Amazonka.RobOMaker.Types.SimulationSoftwareSuiteType+    Amazonka.RobOMaker.Types.Source+    Amazonka.RobOMaker.Types.SourceConfig+    Amazonka.RobOMaker.Types.TemplateLocation+    Amazonka.RobOMaker.Types.TemplateSummary+    Amazonka.RobOMaker.Types.Tool+    Amazonka.RobOMaker.Types.UploadBehavior+    Amazonka.RobOMaker.Types.UploadConfiguration+    Amazonka.RobOMaker.Types.VPCConfig+    Amazonka.RobOMaker.Types.VPCConfigResponse+    Amazonka.RobOMaker.Types.WorldConfig+    Amazonka.RobOMaker.Types.WorldCount+    Amazonka.RobOMaker.Types.WorldExportJobErrorCode+    Amazonka.RobOMaker.Types.WorldExportJobStatus+    Amazonka.RobOMaker.Types.WorldExportJobSummary+    Amazonka.RobOMaker.Types.WorldFailure+    Amazonka.RobOMaker.Types.WorldGenerationJobErrorCode+    Amazonka.RobOMaker.Types.WorldGenerationJobStatus+    Amazonka.RobOMaker.Types.WorldGenerationJobSummary+    Amazonka.RobOMaker.Types.WorldSummary+    Amazonka.RobOMaker.UntagResource+    Amazonka.RobOMaker.UpdateRobotApplication+    Amazonka.RobOMaker.UpdateSimulationApplication+    Amazonka.RobOMaker.UpdateWorldTemplate+    Amazonka.RobOMaker.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-robomaker-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.RobOMaker+    Test.Amazonka.RobOMaker+    Test.Amazonka.RobOMaker.Internal++  build-depends:+    , amazonka-core         >=2.0 && <2.1+    , amazonka-robomaker+    , amazonka-test         >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/BatchDeleteWorlds.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/BatchDeleteWorldsResponse.proto view
+ fixture/BatchDescribeSimulationJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/BatchDescribeSimulationJobResponse.proto view
+ fixture/CancelDeploymentJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CancelDeploymentJobResponse.proto view
+ fixture/CancelSimulationJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CancelSimulationJobBatch.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CancelSimulationJobBatchResponse.proto view
+ fixture/CancelSimulationJobResponse.proto view
+ fixture/CancelWorldExportJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CancelWorldExportJobResponse.proto view
+ fixture/CancelWorldGenerationJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CancelWorldGenerationJobResponse.proto view
+ fixture/CreateDeploymentJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateDeploymentJobResponse.proto view
+ fixture/CreateFleet.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateFleetResponse.proto view
+ fixture/CreateRobot.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateRobotApplication.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateRobotApplicationResponse.proto view
+ fixture/CreateRobotApplicationVersion.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateRobotApplicationVersionResponse.proto view
+ fixture/CreateRobotResponse.proto view
+ fixture/CreateSimulationApplication.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateSimulationApplicationResponse.proto view
+ fixture/CreateSimulationApplicationVersion.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateSimulationApplicationVersionResponse.proto view
+ fixture/CreateSimulationJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateSimulationJobResponse.proto view
+ fixture/CreateWorldExportJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateWorldExportJobResponse.proto view
+ fixture/CreateWorldGenerationJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateWorldGenerationJobResponse.proto view
+ fixture/CreateWorldTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateWorldTemplateResponse.proto view
+ fixture/DeleteFleet.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteFleetResponse.proto view
+ fixture/DeleteRobot.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteRobotApplication.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteRobotApplicationResponse.proto view
+ fixture/DeleteRobotResponse.proto view
+ fixture/DeleteSimulationApplication.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteSimulationApplicationResponse.proto view
+ fixture/DeleteWorldTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteWorldTemplateResponse.proto view
+ fixture/DeregisterRobot.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeregisterRobotResponse.proto view
+ fixture/DescribeDeploymentJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeDeploymentJobResponse.proto view
+ fixture/DescribeFleet.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeFleetResponse.proto view
+ fixture/DescribeRobot.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeRobotApplication.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeRobotApplicationResponse.proto view
+ fixture/DescribeRobotResponse.proto view
+ fixture/DescribeSimulationApplication.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeSimulationApplicationResponse.proto view
+ fixture/DescribeSimulationJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeSimulationJobBatch.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeSimulationJobBatchResponse.proto view
+ fixture/DescribeSimulationJobResponse.proto view
+ fixture/DescribeWorld.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeWorldExportJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeWorldExportJobResponse.proto view
+ fixture/DescribeWorldGenerationJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeWorldGenerationJobResponse.proto view
+ fixture/DescribeWorldResponse.proto view
+ fixture/DescribeWorldTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeWorldTemplateResponse.proto view
+ fixture/GetWorldTemplateBody.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetWorldTemplateBodyResponse.proto view
+ fixture/ListDeploymentJobs.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListDeploymentJobsResponse.proto view
+ fixture/ListFleets.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListFleetsResponse.proto view
+ fixture/ListRobotApplications.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListRobotApplicationsResponse.proto view
+ fixture/ListRobots.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListRobotsResponse.proto view
+ fixture/ListSimulationApplications.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListSimulationApplicationsResponse.proto view
+ fixture/ListSimulationJobBatches.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListSimulationJobBatchesResponse.proto view
+ fixture/ListSimulationJobs.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListSimulationJobsResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-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/ListWorldExportJobs.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListWorldExportJobsResponse.proto view
+ fixture/ListWorldGenerationJobs.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListWorldGenerationJobsResponse.proto view
+ fixture/ListWorldTemplates.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListWorldTemplatesResponse.proto view
+ fixture/ListWorlds.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListWorldsResponse.proto view
+ fixture/RegisterRobot.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/RegisterRobotResponse.proto view
+ fixture/RestartSimulationJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/RestartSimulationJobResponse.proto view
+ fixture/StartSimulationJobBatch.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/StartSimulationJobBatchResponse.proto view
+ fixture/SyncDeploymentJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/SyncDeploymentJobResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-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/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-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/UpdateRobotApplication.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateRobotApplicationResponse.proto view
+ fixture/UpdateSimulationApplication.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateSimulationApplicationResponse.proto view
+ fixture/UpdateWorldTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/robomaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  robomaker.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateWorldTemplateResponse.proto view
+ gen/Amazonka/RobOMaker.hs view
@@ -0,0 +1,605 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.RobOMaker+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Derived from API version @2018-06-29@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- This section provides documentation for the AWS RoboMaker API+-- operations.+module Amazonka.RobOMaker+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** ConcurrentDeploymentException+    _ConcurrentDeploymentException,++    -- ** IdempotentParameterMismatchException+    _IdempotentParameterMismatchException,++    -- ** InternalServerException+    _InternalServerException,++    -- ** InvalidParameterException+    _InvalidParameterException,++    -- ** LimitExceededException+    _LimitExceededException,++    -- ** ResourceAlreadyExistsException+    _ResourceAlreadyExistsException,++    -- ** ResourceNotFoundException+    _ResourceNotFoundException,++    -- ** ServiceUnavailableException+    _ServiceUnavailableException,++    -- ** ThrottlingException+    _ThrottlingException,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** BatchDeleteWorlds+    BatchDeleteWorlds (BatchDeleteWorlds'),+    newBatchDeleteWorlds,+    BatchDeleteWorldsResponse (BatchDeleteWorldsResponse'),+    newBatchDeleteWorldsResponse,++    -- ** BatchDescribeSimulationJob+    BatchDescribeSimulationJob (BatchDescribeSimulationJob'),+    newBatchDescribeSimulationJob,+    BatchDescribeSimulationJobResponse (BatchDescribeSimulationJobResponse'),+    newBatchDescribeSimulationJobResponse,++    -- ** CancelSimulationJob+    CancelSimulationJob (CancelSimulationJob'),+    newCancelSimulationJob,+    CancelSimulationJobResponse (CancelSimulationJobResponse'),+    newCancelSimulationJobResponse,++    -- ** CancelSimulationJobBatch+    CancelSimulationJobBatch (CancelSimulationJobBatch'),+    newCancelSimulationJobBatch,+    CancelSimulationJobBatchResponse (CancelSimulationJobBatchResponse'),+    newCancelSimulationJobBatchResponse,++    -- ** CancelWorldExportJob+    CancelWorldExportJob (CancelWorldExportJob'),+    newCancelWorldExportJob,+    CancelWorldExportJobResponse (CancelWorldExportJobResponse'),+    newCancelWorldExportJobResponse,++    -- ** CancelWorldGenerationJob+    CancelWorldGenerationJob (CancelWorldGenerationJob'),+    newCancelWorldGenerationJob,+    CancelWorldGenerationJobResponse (CancelWorldGenerationJobResponse'),+    newCancelWorldGenerationJobResponse,++    -- ** CreateRobotApplication+    CreateRobotApplication (CreateRobotApplication'),+    newCreateRobotApplication,+    CreateRobotApplicationResponse (CreateRobotApplicationResponse'),+    newCreateRobotApplicationResponse,++    -- ** CreateRobotApplicationVersion+    CreateRobotApplicationVersion (CreateRobotApplicationVersion'),+    newCreateRobotApplicationVersion,+    CreateRobotApplicationVersionResponse (CreateRobotApplicationVersionResponse'),+    newCreateRobotApplicationVersionResponse,++    -- ** CreateSimulationApplication+    CreateSimulationApplication (CreateSimulationApplication'),+    newCreateSimulationApplication,+    CreateSimulationApplicationResponse (CreateSimulationApplicationResponse'),+    newCreateSimulationApplicationResponse,++    -- ** CreateSimulationApplicationVersion+    CreateSimulationApplicationVersion (CreateSimulationApplicationVersion'),+    newCreateSimulationApplicationVersion,+    CreateSimulationApplicationVersionResponse (CreateSimulationApplicationVersionResponse'),+    newCreateSimulationApplicationVersionResponse,++    -- ** CreateSimulationJob+    CreateSimulationJob (CreateSimulationJob'),+    newCreateSimulationJob,+    CreateSimulationJobResponse (CreateSimulationJobResponse'),+    newCreateSimulationJobResponse,++    -- ** CreateWorldExportJob+    CreateWorldExportJob (CreateWorldExportJob'),+    newCreateWorldExportJob,+    CreateWorldExportJobResponse (CreateWorldExportJobResponse'),+    newCreateWorldExportJobResponse,++    -- ** CreateWorldGenerationJob+    CreateWorldGenerationJob (CreateWorldGenerationJob'),+    newCreateWorldGenerationJob,+    CreateWorldGenerationJobResponse (CreateWorldGenerationJobResponse'),+    newCreateWorldGenerationJobResponse,++    -- ** CreateWorldTemplate+    CreateWorldTemplate (CreateWorldTemplate'),+    newCreateWorldTemplate,+    CreateWorldTemplateResponse (CreateWorldTemplateResponse'),+    newCreateWorldTemplateResponse,++    -- ** DeleteRobotApplication+    DeleteRobotApplication (DeleteRobotApplication'),+    newDeleteRobotApplication,+    DeleteRobotApplicationResponse (DeleteRobotApplicationResponse'),+    newDeleteRobotApplicationResponse,++    -- ** DeleteSimulationApplication+    DeleteSimulationApplication (DeleteSimulationApplication'),+    newDeleteSimulationApplication,+    DeleteSimulationApplicationResponse (DeleteSimulationApplicationResponse'),+    newDeleteSimulationApplicationResponse,++    -- ** DeleteWorldTemplate+    DeleteWorldTemplate (DeleteWorldTemplate'),+    newDeleteWorldTemplate,+    DeleteWorldTemplateResponse (DeleteWorldTemplateResponse'),+    newDeleteWorldTemplateResponse,++    -- ** DescribeRobotApplication+    DescribeRobotApplication (DescribeRobotApplication'),+    newDescribeRobotApplication,+    DescribeRobotApplicationResponse (DescribeRobotApplicationResponse'),+    newDescribeRobotApplicationResponse,++    -- ** DescribeSimulationApplication+    DescribeSimulationApplication (DescribeSimulationApplication'),+    newDescribeSimulationApplication,+    DescribeSimulationApplicationResponse (DescribeSimulationApplicationResponse'),+    newDescribeSimulationApplicationResponse,++    -- ** DescribeSimulationJob+    DescribeSimulationJob (DescribeSimulationJob'),+    newDescribeSimulationJob,+    DescribeSimulationJobResponse (DescribeSimulationJobResponse'),+    newDescribeSimulationJobResponse,++    -- ** DescribeSimulationJobBatch+    DescribeSimulationJobBatch (DescribeSimulationJobBatch'),+    newDescribeSimulationJobBatch,+    DescribeSimulationJobBatchResponse (DescribeSimulationJobBatchResponse'),+    newDescribeSimulationJobBatchResponse,++    -- ** DescribeWorld+    DescribeWorld (DescribeWorld'),+    newDescribeWorld,+    DescribeWorldResponse (DescribeWorldResponse'),+    newDescribeWorldResponse,++    -- ** DescribeWorldExportJob+    DescribeWorldExportJob (DescribeWorldExportJob'),+    newDescribeWorldExportJob,+    DescribeWorldExportJobResponse (DescribeWorldExportJobResponse'),+    newDescribeWorldExportJobResponse,++    -- ** DescribeWorldGenerationJob+    DescribeWorldGenerationJob (DescribeWorldGenerationJob'),+    newDescribeWorldGenerationJob,+    DescribeWorldGenerationJobResponse (DescribeWorldGenerationJobResponse'),+    newDescribeWorldGenerationJobResponse,++    -- ** DescribeWorldTemplate+    DescribeWorldTemplate (DescribeWorldTemplate'),+    newDescribeWorldTemplate,+    DescribeWorldTemplateResponse (DescribeWorldTemplateResponse'),+    newDescribeWorldTemplateResponse,++    -- ** GetWorldTemplateBody+    GetWorldTemplateBody (GetWorldTemplateBody'),+    newGetWorldTemplateBody,+    GetWorldTemplateBodyResponse (GetWorldTemplateBodyResponse'),+    newGetWorldTemplateBodyResponse,++    -- ** ListRobotApplications (Paginated)+    ListRobotApplications (ListRobotApplications'),+    newListRobotApplications,+    ListRobotApplicationsResponse (ListRobotApplicationsResponse'),+    newListRobotApplicationsResponse,++    -- ** ListSimulationApplications (Paginated)+    ListSimulationApplications (ListSimulationApplications'),+    newListSimulationApplications,+    ListSimulationApplicationsResponse (ListSimulationApplicationsResponse'),+    newListSimulationApplicationsResponse,++    -- ** ListSimulationJobBatches (Paginated)+    ListSimulationJobBatches (ListSimulationJobBatches'),+    newListSimulationJobBatches,+    ListSimulationJobBatchesResponse (ListSimulationJobBatchesResponse'),+    newListSimulationJobBatchesResponse,++    -- ** ListSimulationJobs (Paginated)+    ListSimulationJobs (ListSimulationJobs'),+    newListSimulationJobs,+    ListSimulationJobsResponse (ListSimulationJobsResponse'),+    newListSimulationJobsResponse,++    -- ** ListTagsForResource+    ListTagsForResource (ListTagsForResource'),+    newListTagsForResource,+    ListTagsForResourceResponse (ListTagsForResourceResponse'),+    newListTagsForResourceResponse,++    -- ** ListWorldExportJobs (Paginated)+    ListWorldExportJobs (ListWorldExportJobs'),+    newListWorldExportJobs,+    ListWorldExportJobsResponse (ListWorldExportJobsResponse'),+    newListWorldExportJobsResponse,++    -- ** ListWorldGenerationJobs (Paginated)+    ListWorldGenerationJobs (ListWorldGenerationJobs'),+    newListWorldGenerationJobs,+    ListWorldGenerationJobsResponse (ListWorldGenerationJobsResponse'),+    newListWorldGenerationJobsResponse,++    -- ** ListWorldTemplates (Paginated)+    ListWorldTemplates (ListWorldTemplates'),+    newListWorldTemplates,+    ListWorldTemplatesResponse (ListWorldTemplatesResponse'),+    newListWorldTemplatesResponse,++    -- ** ListWorlds (Paginated)+    ListWorlds (ListWorlds'),+    newListWorlds,+    ListWorldsResponse (ListWorldsResponse'),+    newListWorldsResponse,++    -- ** RestartSimulationJob+    RestartSimulationJob (RestartSimulationJob'),+    newRestartSimulationJob,+    RestartSimulationJobResponse (RestartSimulationJobResponse'),+    newRestartSimulationJobResponse,++    -- ** StartSimulationJobBatch+    StartSimulationJobBatch (StartSimulationJobBatch'),+    newStartSimulationJobBatch,+    StartSimulationJobBatchResponse (StartSimulationJobBatchResponse'),+    newStartSimulationJobBatchResponse,++    -- ** TagResource+    TagResource (TagResource'),+    newTagResource,+    TagResourceResponse (TagResourceResponse'),+    newTagResourceResponse,++    -- ** UntagResource+    UntagResource (UntagResource'),+    newUntagResource,+    UntagResourceResponse (UntagResourceResponse'),+    newUntagResourceResponse,++    -- ** UpdateRobotApplication+    UpdateRobotApplication (UpdateRobotApplication'),+    newUpdateRobotApplication,+    UpdateRobotApplicationResponse (UpdateRobotApplicationResponse'),+    newUpdateRobotApplicationResponse,++    -- ** UpdateSimulationApplication+    UpdateSimulationApplication (UpdateSimulationApplication'),+    newUpdateSimulationApplication,+    UpdateSimulationApplicationResponse (UpdateSimulationApplicationResponse'),+    newUpdateSimulationApplicationResponse,++    -- ** UpdateWorldTemplate+    UpdateWorldTemplate (UpdateWorldTemplate'),+    newUpdateWorldTemplate,+    UpdateWorldTemplateResponse (UpdateWorldTemplateResponse'),+    newUpdateWorldTemplateResponse,++    -- * Types++    -- ** Architecture+    Architecture (..),++    -- ** ComputeType+    ComputeType (..),++    -- ** DataSourceType+    DataSourceType (..),++    -- ** ExitBehavior+    ExitBehavior (..),++    -- ** FailureBehavior+    FailureBehavior (..),++    -- ** RenderingEngineType+    RenderingEngineType (..),++    -- ** RobotSoftwareSuiteType+    RobotSoftwareSuiteType (..),++    -- ** RobotSoftwareSuiteVersionType+    RobotSoftwareSuiteVersionType (..),++    -- ** SimulationJobBatchErrorCode+    SimulationJobBatchErrorCode (..),++    -- ** SimulationJobBatchStatus+    SimulationJobBatchStatus (..),++    -- ** SimulationJobErrorCode+    SimulationJobErrorCode (..),++    -- ** SimulationJobStatus+    SimulationJobStatus (..),++    -- ** SimulationSoftwareSuiteType+    SimulationSoftwareSuiteType (..),++    -- ** UploadBehavior+    UploadBehavior (..),++    -- ** WorldExportJobErrorCode+    WorldExportJobErrorCode (..),++    -- ** WorldExportJobStatus+    WorldExportJobStatus (..),++    -- ** WorldGenerationJobErrorCode+    WorldGenerationJobErrorCode (..),++    -- ** WorldGenerationJobStatus+    WorldGenerationJobStatus (..),++    -- ** BatchPolicy+    BatchPolicy (BatchPolicy'),+    newBatchPolicy,++    -- ** Compute+    Compute (Compute'),+    newCompute,++    -- ** ComputeResponse+    ComputeResponse (ComputeResponse'),+    newComputeResponse,++    -- ** DataSource+    DataSource (DataSource'),+    newDataSource,++    -- ** DataSourceConfig+    DataSourceConfig (DataSourceConfig'),+    newDataSourceConfig,++    -- ** Environment+    Environment (Environment'),+    newEnvironment,++    -- ** FailedCreateSimulationJobRequest+    FailedCreateSimulationJobRequest (FailedCreateSimulationJobRequest'),+    newFailedCreateSimulationJobRequest,++    -- ** FailureSummary+    FailureSummary (FailureSummary'),+    newFailureSummary,++    -- ** Filter+    Filter (Filter'),+    newFilter,++    -- ** FinishedWorldsSummary+    FinishedWorldsSummary (FinishedWorldsSummary'),+    newFinishedWorldsSummary,++    -- ** LaunchConfig+    LaunchConfig (LaunchConfig'),+    newLaunchConfig,++    -- ** LoggingConfig+    LoggingConfig (LoggingConfig'),+    newLoggingConfig,++    -- ** NetworkInterface+    NetworkInterface (NetworkInterface'),+    newNetworkInterface,++    -- ** OutputLocation+    OutputLocation (OutputLocation'),+    newOutputLocation,++    -- ** PortForwardingConfig+    PortForwardingConfig (PortForwardingConfig'),+    newPortForwardingConfig,++    -- ** PortMapping+    PortMapping (PortMapping'),+    newPortMapping,++    -- ** RenderingEngine+    RenderingEngine (RenderingEngine'),+    newRenderingEngine,++    -- ** RobotApplicationConfig+    RobotApplicationConfig (RobotApplicationConfig'),+    newRobotApplicationConfig,++    -- ** RobotApplicationSummary+    RobotApplicationSummary (RobotApplicationSummary'),+    newRobotApplicationSummary,++    -- ** RobotSoftwareSuite+    RobotSoftwareSuite (RobotSoftwareSuite'),+    newRobotSoftwareSuite,++    -- ** S3KeyOutput+    S3KeyOutput (S3KeyOutput'),+    newS3KeyOutput,++    -- ** SimulationApplicationConfig+    SimulationApplicationConfig (SimulationApplicationConfig'),+    newSimulationApplicationConfig,++    -- ** SimulationApplicationSummary+    SimulationApplicationSummary (SimulationApplicationSummary'),+    newSimulationApplicationSummary,++    -- ** SimulationJob+    SimulationJob (SimulationJob'),+    newSimulationJob,++    -- ** SimulationJobBatchSummary+    SimulationJobBatchSummary (SimulationJobBatchSummary'),+    newSimulationJobBatchSummary,++    -- ** SimulationJobRequest+    SimulationJobRequest (SimulationJobRequest'),+    newSimulationJobRequest,++    -- ** SimulationJobSummary+    SimulationJobSummary (SimulationJobSummary'),+    newSimulationJobSummary,++    -- ** SimulationSoftwareSuite+    SimulationSoftwareSuite (SimulationSoftwareSuite'),+    newSimulationSoftwareSuite,++    -- ** Source+    Source (Source'),+    newSource,++    -- ** SourceConfig+    SourceConfig (SourceConfig'),+    newSourceConfig,++    -- ** TemplateLocation+    TemplateLocation (TemplateLocation'),+    newTemplateLocation,++    -- ** TemplateSummary+    TemplateSummary (TemplateSummary'),+    newTemplateSummary,++    -- ** Tool+    Tool (Tool'),+    newTool,++    -- ** UploadConfiguration+    UploadConfiguration (UploadConfiguration'),+    newUploadConfiguration,++    -- ** VPCConfig+    VPCConfig (VPCConfig'),+    newVPCConfig,++    -- ** VPCConfigResponse+    VPCConfigResponse (VPCConfigResponse'),+    newVPCConfigResponse,++    -- ** WorldConfig+    WorldConfig (WorldConfig'),+    newWorldConfig,++    -- ** WorldCount+    WorldCount (WorldCount'),+    newWorldCount,++    -- ** WorldExportJobSummary+    WorldExportJobSummary (WorldExportJobSummary'),+    newWorldExportJobSummary,++    -- ** WorldFailure+    WorldFailure (WorldFailure'),+    newWorldFailure,++    -- ** WorldGenerationJobSummary+    WorldGenerationJobSummary (WorldGenerationJobSummary'),+    newWorldGenerationJobSummary,++    -- ** WorldSummary+    WorldSummary (WorldSummary'),+    newWorldSummary,+  )+where++import Amazonka.RobOMaker.BatchDeleteWorlds+import Amazonka.RobOMaker.BatchDescribeSimulationJob+import Amazonka.RobOMaker.CancelSimulationJob+import Amazonka.RobOMaker.CancelSimulationJobBatch+import Amazonka.RobOMaker.CancelWorldExportJob+import Amazonka.RobOMaker.CancelWorldGenerationJob+import Amazonka.RobOMaker.CreateRobotApplication+import Amazonka.RobOMaker.CreateRobotApplicationVersion+import Amazonka.RobOMaker.CreateSimulationApplication+import Amazonka.RobOMaker.CreateSimulationApplicationVersion+import Amazonka.RobOMaker.CreateSimulationJob+import Amazonka.RobOMaker.CreateWorldExportJob+import Amazonka.RobOMaker.CreateWorldGenerationJob+import Amazonka.RobOMaker.CreateWorldTemplate+import Amazonka.RobOMaker.DeleteRobotApplication+import Amazonka.RobOMaker.DeleteSimulationApplication+import Amazonka.RobOMaker.DeleteWorldTemplate+import Amazonka.RobOMaker.DescribeRobotApplication+import Amazonka.RobOMaker.DescribeSimulationApplication+import Amazonka.RobOMaker.DescribeSimulationJob+import Amazonka.RobOMaker.DescribeSimulationJobBatch+import Amazonka.RobOMaker.DescribeWorld+import Amazonka.RobOMaker.DescribeWorldExportJob+import Amazonka.RobOMaker.DescribeWorldGenerationJob+import Amazonka.RobOMaker.DescribeWorldTemplate+import Amazonka.RobOMaker.GetWorldTemplateBody+import Amazonka.RobOMaker.Lens+import Amazonka.RobOMaker.ListRobotApplications+import Amazonka.RobOMaker.ListSimulationApplications+import Amazonka.RobOMaker.ListSimulationJobBatches+import Amazonka.RobOMaker.ListSimulationJobs+import Amazonka.RobOMaker.ListTagsForResource+import Amazonka.RobOMaker.ListWorldExportJobs+import Amazonka.RobOMaker.ListWorldGenerationJobs+import Amazonka.RobOMaker.ListWorldTemplates+import Amazonka.RobOMaker.ListWorlds+import Amazonka.RobOMaker.RestartSimulationJob+import Amazonka.RobOMaker.StartSimulationJobBatch+import Amazonka.RobOMaker.TagResource+import Amazonka.RobOMaker.Types+import Amazonka.RobOMaker.UntagResource+import Amazonka.RobOMaker.UpdateRobotApplication+import Amazonka.RobOMaker.UpdateSimulationApplication+import Amazonka.RobOMaker.UpdateWorldTemplate+import Amazonka.RobOMaker.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 'RobOMaker'.++-- $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/RobOMaker/BatchDeleteWorlds.hs view
@@ -0,0 +1,173 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.BatchDeleteWorlds+-- 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 one or more worlds in a batch operation.+module Amazonka.RobOMaker.BatchDeleteWorlds+  ( -- * Creating a Request+    BatchDeleteWorlds (..),+    newBatchDeleteWorlds,++    -- * Request Lenses+    batchDeleteWorlds_worlds,++    -- * Destructuring the Response+    BatchDeleteWorldsResponse (..),+    newBatchDeleteWorldsResponse,++    -- * Response Lenses+    batchDeleteWorldsResponse_unprocessedWorlds,+    batchDeleteWorldsResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newBatchDeleteWorlds' smart constructor.+data BatchDeleteWorlds = BatchDeleteWorlds'+  { -- | A list of Amazon Resource Names (arns) that correspond to worlds to+    -- delete.+    worlds :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchDeleteWorlds' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'worlds', 'batchDeleteWorlds_worlds' - A list of Amazon Resource Names (arns) that correspond to worlds to+-- delete.+newBatchDeleteWorlds ::+  -- | 'worlds'+  Prelude.NonEmpty Prelude.Text ->+  BatchDeleteWorlds+newBatchDeleteWorlds pWorlds_ =+  BatchDeleteWorlds'+    { worlds =+        Lens.coerced Lens.# pWorlds_+    }++-- | A list of Amazon Resource Names (arns) that correspond to worlds to+-- delete.+batchDeleteWorlds_worlds :: Lens.Lens' BatchDeleteWorlds (Prelude.NonEmpty Prelude.Text)+batchDeleteWorlds_worlds = Lens.lens (\BatchDeleteWorlds' {worlds} -> worlds) (\s@BatchDeleteWorlds' {} a -> s {worlds = a} :: BatchDeleteWorlds) Prelude.. Lens.coerced++instance Core.AWSRequest BatchDeleteWorlds where+  type+    AWSResponse BatchDeleteWorlds =+      BatchDeleteWorldsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          BatchDeleteWorldsResponse'+            Prelude.<$> (x Data..?> "unprocessedWorlds")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable BatchDeleteWorlds where+  hashWithSalt _salt BatchDeleteWorlds' {..} =+    _salt `Prelude.hashWithSalt` worlds++instance Prelude.NFData BatchDeleteWorlds where+  rnf BatchDeleteWorlds' {..} = Prelude.rnf worlds++instance Data.ToHeaders BatchDeleteWorlds where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON BatchDeleteWorlds where+  toJSON BatchDeleteWorlds' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("worlds" Data..= worlds)]+      )++instance Data.ToPath BatchDeleteWorlds where+  toPath = Prelude.const "/batchDeleteWorlds"++instance Data.ToQuery BatchDeleteWorlds where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newBatchDeleteWorldsResponse' smart constructor.+data BatchDeleteWorldsResponse = BatchDeleteWorldsResponse'+  { -- | A list of unprocessed worlds associated with the call. These worlds were+    -- not deleted.+    unprocessedWorlds :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchDeleteWorldsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'unprocessedWorlds', 'batchDeleteWorldsResponse_unprocessedWorlds' - A list of unprocessed worlds associated with the call. These worlds were+-- not deleted.+--+-- 'httpStatus', 'batchDeleteWorldsResponse_httpStatus' - The response's http status code.+newBatchDeleteWorldsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  BatchDeleteWorldsResponse+newBatchDeleteWorldsResponse pHttpStatus_ =+  BatchDeleteWorldsResponse'+    { unprocessedWorlds =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of unprocessed worlds associated with the call. These worlds were+-- not deleted.+batchDeleteWorldsResponse_unprocessedWorlds :: Lens.Lens' BatchDeleteWorldsResponse (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+batchDeleteWorldsResponse_unprocessedWorlds = Lens.lens (\BatchDeleteWorldsResponse' {unprocessedWorlds} -> unprocessedWorlds) (\s@BatchDeleteWorldsResponse' {} a -> s {unprocessedWorlds = a} :: BatchDeleteWorldsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+batchDeleteWorldsResponse_httpStatus :: Lens.Lens' BatchDeleteWorldsResponse Prelude.Int+batchDeleteWorldsResponse_httpStatus = Lens.lens (\BatchDeleteWorldsResponse' {httpStatus} -> httpStatus) (\s@BatchDeleteWorldsResponse' {} a -> s {httpStatus = a} :: BatchDeleteWorldsResponse)++instance Prelude.NFData BatchDeleteWorldsResponse where+  rnf BatchDeleteWorldsResponse' {..} =+    Prelude.rnf unprocessedWorlds+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/BatchDescribeSimulationJob.hs view
@@ -0,0 +1,183 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.BatchDescribeSimulationJob+-- 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 one or more simulation jobs.+module Amazonka.RobOMaker.BatchDescribeSimulationJob+  ( -- * Creating a Request+    BatchDescribeSimulationJob (..),+    newBatchDescribeSimulationJob,++    -- * Request Lenses+    batchDescribeSimulationJob_jobs,++    -- * Destructuring the Response+    BatchDescribeSimulationJobResponse (..),+    newBatchDescribeSimulationJobResponse,++    -- * Response Lenses+    batchDescribeSimulationJobResponse_jobs,+    batchDescribeSimulationJobResponse_unprocessedJobs,+    batchDescribeSimulationJobResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newBatchDescribeSimulationJob' smart constructor.+data BatchDescribeSimulationJob = BatchDescribeSimulationJob'+  { -- | A list of Amazon Resource Names (ARNs) of simulation jobs to describe.+    jobs :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchDescribeSimulationJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'jobs', 'batchDescribeSimulationJob_jobs' - A list of Amazon Resource Names (ARNs) of simulation jobs to describe.+newBatchDescribeSimulationJob ::+  -- | 'jobs'+  Prelude.NonEmpty Prelude.Text ->+  BatchDescribeSimulationJob+newBatchDescribeSimulationJob pJobs_ =+  BatchDescribeSimulationJob'+    { jobs =+        Lens.coerced Lens.# pJobs_+    }++-- | A list of Amazon Resource Names (ARNs) of simulation jobs to describe.+batchDescribeSimulationJob_jobs :: Lens.Lens' BatchDescribeSimulationJob (Prelude.NonEmpty Prelude.Text)+batchDescribeSimulationJob_jobs = Lens.lens (\BatchDescribeSimulationJob' {jobs} -> jobs) (\s@BatchDescribeSimulationJob' {} a -> s {jobs = a} :: BatchDescribeSimulationJob) Prelude.. Lens.coerced++instance Core.AWSRequest BatchDescribeSimulationJob where+  type+    AWSResponse BatchDescribeSimulationJob =+      BatchDescribeSimulationJobResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          BatchDescribeSimulationJobResponse'+            Prelude.<$> (x Data..?> "jobs" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "unprocessedJobs")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable BatchDescribeSimulationJob where+  hashWithSalt _salt BatchDescribeSimulationJob' {..} =+    _salt `Prelude.hashWithSalt` jobs++instance Prelude.NFData BatchDescribeSimulationJob where+  rnf BatchDescribeSimulationJob' {..} =+    Prelude.rnf jobs++instance Data.ToHeaders BatchDescribeSimulationJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON BatchDescribeSimulationJob where+  toJSON BatchDescribeSimulationJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("jobs" Data..= jobs)]+      )++instance Data.ToPath BatchDescribeSimulationJob where+  toPath = Prelude.const "/batchDescribeSimulationJob"++instance Data.ToQuery BatchDescribeSimulationJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newBatchDescribeSimulationJobResponse' smart constructor.+data BatchDescribeSimulationJobResponse = BatchDescribeSimulationJobResponse'+  { -- | A list of simulation jobs.+    jobs :: Prelude.Maybe [SimulationJob],+    -- | A list of unprocessed simulation job Amazon Resource Names (ARNs).+    unprocessedJobs :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchDescribeSimulationJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'jobs', 'batchDescribeSimulationJobResponse_jobs' - A list of simulation jobs.+--+-- 'unprocessedJobs', 'batchDescribeSimulationJobResponse_unprocessedJobs' - A list of unprocessed simulation job Amazon Resource Names (ARNs).+--+-- 'httpStatus', 'batchDescribeSimulationJobResponse_httpStatus' - The response's http status code.+newBatchDescribeSimulationJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  BatchDescribeSimulationJobResponse+newBatchDescribeSimulationJobResponse pHttpStatus_ =+  BatchDescribeSimulationJobResponse'+    { jobs =+        Prelude.Nothing,+      unprocessedJobs = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of simulation jobs.+batchDescribeSimulationJobResponse_jobs :: Lens.Lens' BatchDescribeSimulationJobResponse (Prelude.Maybe [SimulationJob])+batchDescribeSimulationJobResponse_jobs = Lens.lens (\BatchDescribeSimulationJobResponse' {jobs} -> jobs) (\s@BatchDescribeSimulationJobResponse' {} a -> s {jobs = a} :: BatchDescribeSimulationJobResponse) Prelude.. Lens.mapping Lens.coerced++-- | A list of unprocessed simulation job Amazon Resource Names (ARNs).+batchDescribeSimulationJobResponse_unprocessedJobs :: Lens.Lens' BatchDescribeSimulationJobResponse (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+batchDescribeSimulationJobResponse_unprocessedJobs = Lens.lens (\BatchDescribeSimulationJobResponse' {unprocessedJobs} -> unprocessedJobs) (\s@BatchDescribeSimulationJobResponse' {} a -> s {unprocessedJobs = a} :: BatchDescribeSimulationJobResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+batchDescribeSimulationJobResponse_httpStatus :: Lens.Lens' BatchDescribeSimulationJobResponse Prelude.Int+batchDescribeSimulationJobResponse_httpStatus = Lens.lens (\BatchDescribeSimulationJobResponse' {httpStatus} -> httpStatus) (\s@BatchDescribeSimulationJobResponse' {} a -> s {httpStatus = a} :: BatchDescribeSimulationJobResponse)++instance+  Prelude.NFData+    BatchDescribeSimulationJobResponse+  where+  rnf BatchDescribeSimulationJobResponse' {..} =+    Prelude.rnf jobs+      `Prelude.seq` Prelude.rnf unprocessedJobs+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/CancelSimulationJob.hs view
@@ -0,0 +1,152 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.CancelSimulationJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Cancels the specified simulation job.+module Amazonka.RobOMaker.CancelSimulationJob+  ( -- * Creating a Request+    CancelSimulationJob (..),+    newCancelSimulationJob,++    -- * Request Lenses+    cancelSimulationJob_job,++    -- * Destructuring the Response+    CancelSimulationJobResponse (..),+    newCancelSimulationJobResponse,++    -- * Response Lenses+    cancelSimulationJobResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newCancelSimulationJob' smart constructor.+data CancelSimulationJob = CancelSimulationJob'+  { -- | The simulation job ARN to cancel.+    job :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CancelSimulationJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'job', 'cancelSimulationJob_job' - The simulation job ARN to cancel.+newCancelSimulationJob ::+  -- | 'job'+  Prelude.Text ->+  CancelSimulationJob+newCancelSimulationJob pJob_ =+  CancelSimulationJob' {job = pJob_}++-- | The simulation job ARN to cancel.+cancelSimulationJob_job :: Lens.Lens' CancelSimulationJob Prelude.Text+cancelSimulationJob_job = Lens.lens (\CancelSimulationJob' {job} -> job) (\s@CancelSimulationJob' {} a -> s {job = a} :: CancelSimulationJob)++instance Core.AWSRequest CancelSimulationJob where+  type+    AWSResponse CancelSimulationJob =+      CancelSimulationJobResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          CancelSimulationJobResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CancelSimulationJob where+  hashWithSalt _salt CancelSimulationJob' {..} =+    _salt `Prelude.hashWithSalt` job++instance Prelude.NFData CancelSimulationJob where+  rnf CancelSimulationJob' {..} = Prelude.rnf job++instance Data.ToHeaders CancelSimulationJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CancelSimulationJob where+  toJSON CancelSimulationJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("job" Data..= job)]+      )++instance Data.ToPath CancelSimulationJob where+  toPath = Prelude.const "/cancelSimulationJob"++instance Data.ToQuery CancelSimulationJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCancelSimulationJobResponse' smart constructor.+data CancelSimulationJobResponse = CancelSimulationJobResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CancelSimulationJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'cancelSimulationJobResponse_httpStatus' - The response's http status code.+newCancelSimulationJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CancelSimulationJobResponse+newCancelSimulationJobResponse pHttpStatus_ =+  CancelSimulationJobResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+cancelSimulationJobResponse_httpStatus :: Lens.Lens' CancelSimulationJobResponse Prelude.Int+cancelSimulationJobResponse_httpStatus = Lens.lens (\CancelSimulationJobResponse' {httpStatus} -> httpStatus) (\s@CancelSimulationJobResponse' {} a -> s {httpStatus = a} :: CancelSimulationJobResponse)++instance Prelude.NFData CancelSimulationJobResponse where+  rnf CancelSimulationJobResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/CancelSimulationJobBatch.hs view
@@ -0,0 +1,157 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.CancelSimulationJobBatch+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Cancels a simulation job batch. When you cancel a simulation job batch,+-- you are also cancelling all of the active simulation jobs created as+-- part of the batch.+module Amazonka.RobOMaker.CancelSimulationJobBatch+  ( -- * Creating a Request+    CancelSimulationJobBatch (..),+    newCancelSimulationJobBatch,++    -- * Request Lenses+    cancelSimulationJobBatch_batch,++    -- * Destructuring the Response+    CancelSimulationJobBatchResponse (..),+    newCancelSimulationJobBatchResponse,++    -- * Response Lenses+    cancelSimulationJobBatchResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newCancelSimulationJobBatch' smart constructor.+data CancelSimulationJobBatch = CancelSimulationJobBatch'+  { -- | The id of the batch to cancel.+    batch :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CancelSimulationJobBatch' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'batch', 'cancelSimulationJobBatch_batch' - The id of the batch to cancel.+newCancelSimulationJobBatch ::+  -- | 'batch'+  Prelude.Text ->+  CancelSimulationJobBatch+newCancelSimulationJobBatch pBatch_ =+  CancelSimulationJobBatch' {batch = pBatch_}++-- | The id of the batch to cancel.+cancelSimulationJobBatch_batch :: Lens.Lens' CancelSimulationJobBatch Prelude.Text+cancelSimulationJobBatch_batch = Lens.lens (\CancelSimulationJobBatch' {batch} -> batch) (\s@CancelSimulationJobBatch' {} a -> s {batch = a} :: CancelSimulationJobBatch)++instance Core.AWSRequest CancelSimulationJobBatch where+  type+    AWSResponse CancelSimulationJobBatch =+      CancelSimulationJobBatchResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          CancelSimulationJobBatchResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CancelSimulationJobBatch where+  hashWithSalt _salt CancelSimulationJobBatch' {..} =+    _salt `Prelude.hashWithSalt` batch++instance Prelude.NFData CancelSimulationJobBatch where+  rnf CancelSimulationJobBatch' {..} = Prelude.rnf batch++instance Data.ToHeaders CancelSimulationJobBatch where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CancelSimulationJobBatch where+  toJSON CancelSimulationJobBatch' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("batch" Data..= batch)]+      )++instance Data.ToPath CancelSimulationJobBatch where+  toPath = Prelude.const "/cancelSimulationJobBatch"++instance Data.ToQuery CancelSimulationJobBatch where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCancelSimulationJobBatchResponse' smart constructor.+data CancelSimulationJobBatchResponse = CancelSimulationJobBatchResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CancelSimulationJobBatchResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'cancelSimulationJobBatchResponse_httpStatus' - The response's http status code.+newCancelSimulationJobBatchResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CancelSimulationJobBatchResponse+newCancelSimulationJobBatchResponse pHttpStatus_ =+  CancelSimulationJobBatchResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+cancelSimulationJobBatchResponse_httpStatus :: Lens.Lens' CancelSimulationJobBatchResponse Prelude.Int+cancelSimulationJobBatchResponse_httpStatus = Lens.lens (\CancelSimulationJobBatchResponse' {httpStatus} -> httpStatus) (\s@CancelSimulationJobBatchResponse' {} a -> s {httpStatus = a} :: CancelSimulationJobBatchResponse)++instance+  Prelude.NFData+    CancelSimulationJobBatchResponse+  where+  rnf CancelSimulationJobBatchResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/CancelWorldExportJob.hs view
@@ -0,0 +1,152 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.CancelWorldExportJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Cancels the specified export job.+module Amazonka.RobOMaker.CancelWorldExportJob+  ( -- * Creating a Request+    CancelWorldExportJob (..),+    newCancelWorldExportJob,++    -- * Request Lenses+    cancelWorldExportJob_job,++    -- * Destructuring the Response+    CancelWorldExportJobResponse (..),+    newCancelWorldExportJobResponse,++    -- * Response Lenses+    cancelWorldExportJobResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newCancelWorldExportJob' smart constructor.+data CancelWorldExportJob = CancelWorldExportJob'+  { -- | The Amazon Resource Name (arn) of the world export job to cancel.+    job :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CancelWorldExportJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'job', 'cancelWorldExportJob_job' - The Amazon Resource Name (arn) of the world export job to cancel.+newCancelWorldExportJob ::+  -- | 'job'+  Prelude.Text ->+  CancelWorldExportJob+newCancelWorldExportJob pJob_ =+  CancelWorldExportJob' {job = pJob_}++-- | The Amazon Resource Name (arn) of the world export job to cancel.+cancelWorldExportJob_job :: Lens.Lens' CancelWorldExportJob Prelude.Text+cancelWorldExportJob_job = Lens.lens (\CancelWorldExportJob' {job} -> job) (\s@CancelWorldExportJob' {} a -> s {job = a} :: CancelWorldExportJob)++instance Core.AWSRequest CancelWorldExportJob where+  type+    AWSResponse CancelWorldExportJob =+      CancelWorldExportJobResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          CancelWorldExportJobResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CancelWorldExportJob where+  hashWithSalt _salt CancelWorldExportJob' {..} =+    _salt `Prelude.hashWithSalt` job++instance Prelude.NFData CancelWorldExportJob where+  rnf CancelWorldExportJob' {..} = Prelude.rnf job++instance Data.ToHeaders CancelWorldExportJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CancelWorldExportJob where+  toJSON CancelWorldExportJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("job" Data..= job)]+      )++instance Data.ToPath CancelWorldExportJob where+  toPath = Prelude.const "/cancelWorldExportJob"++instance Data.ToQuery CancelWorldExportJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCancelWorldExportJobResponse' smart constructor.+data CancelWorldExportJobResponse = CancelWorldExportJobResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CancelWorldExportJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'cancelWorldExportJobResponse_httpStatus' - The response's http status code.+newCancelWorldExportJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CancelWorldExportJobResponse+newCancelWorldExportJobResponse pHttpStatus_ =+  CancelWorldExportJobResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+cancelWorldExportJobResponse_httpStatus :: Lens.Lens' CancelWorldExportJobResponse Prelude.Int+cancelWorldExportJobResponse_httpStatus = Lens.lens (\CancelWorldExportJobResponse' {httpStatus} -> httpStatus) (\s@CancelWorldExportJobResponse' {} a -> s {httpStatus = a} :: CancelWorldExportJobResponse)++instance Prelude.NFData CancelWorldExportJobResponse where+  rnf CancelWorldExportJobResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/CancelWorldGenerationJob.hs view
@@ -0,0 +1,155 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.CancelWorldGenerationJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Cancels the specified world generator job.+module Amazonka.RobOMaker.CancelWorldGenerationJob+  ( -- * Creating a Request+    CancelWorldGenerationJob (..),+    newCancelWorldGenerationJob,++    -- * Request Lenses+    cancelWorldGenerationJob_job,++    -- * Destructuring the Response+    CancelWorldGenerationJobResponse (..),+    newCancelWorldGenerationJobResponse,++    -- * Response Lenses+    cancelWorldGenerationJobResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newCancelWorldGenerationJob' smart constructor.+data CancelWorldGenerationJob = CancelWorldGenerationJob'+  { -- | The Amazon Resource Name (arn) of the world generator job to cancel.+    job :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CancelWorldGenerationJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'job', 'cancelWorldGenerationJob_job' - The Amazon Resource Name (arn) of the world generator job to cancel.+newCancelWorldGenerationJob ::+  -- | 'job'+  Prelude.Text ->+  CancelWorldGenerationJob+newCancelWorldGenerationJob pJob_ =+  CancelWorldGenerationJob' {job = pJob_}++-- | The Amazon Resource Name (arn) of the world generator job to cancel.+cancelWorldGenerationJob_job :: Lens.Lens' CancelWorldGenerationJob Prelude.Text+cancelWorldGenerationJob_job = Lens.lens (\CancelWorldGenerationJob' {job} -> job) (\s@CancelWorldGenerationJob' {} a -> s {job = a} :: CancelWorldGenerationJob)++instance Core.AWSRequest CancelWorldGenerationJob where+  type+    AWSResponse CancelWorldGenerationJob =+      CancelWorldGenerationJobResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          CancelWorldGenerationJobResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CancelWorldGenerationJob where+  hashWithSalt _salt CancelWorldGenerationJob' {..} =+    _salt `Prelude.hashWithSalt` job++instance Prelude.NFData CancelWorldGenerationJob where+  rnf CancelWorldGenerationJob' {..} = Prelude.rnf job++instance Data.ToHeaders CancelWorldGenerationJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CancelWorldGenerationJob where+  toJSON CancelWorldGenerationJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("job" Data..= job)]+      )++instance Data.ToPath CancelWorldGenerationJob where+  toPath = Prelude.const "/cancelWorldGenerationJob"++instance Data.ToQuery CancelWorldGenerationJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCancelWorldGenerationJobResponse' smart constructor.+data CancelWorldGenerationJobResponse = CancelWorldGenerationJobResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CancelWorldGenerationJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'cancelWorldGenerationJobResponse_httpStatus' - The response's http status code.+newCancelWorldGenerationJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CancelWorldGenerationJobResponse+newCancelWorldGenerationJobResponse pHttpStatus_ =+  CancelWorldGenerationJobResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+cancelWorldGenerationJobResponse_httpStatus :: Lens.Lens' CancelWorldGenerationJobResponse Prelude.Int+cancelWorldGenerationJobResponse_httpStatus = Lens.lens (\CancelWorldGenerationJobResponse' {httpStatus} -> httpStatus) (\s@CancelWorldGenerationJobResponse' {} a -> s {httpStatus = a} :: CancelWorldGenerationJobResponse)++instance+  Prelude.NFData+    CancelWorldGenerationJobResponse+  where+  rnf CancelWorldGenerationJobResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/CreateRobotApplication.hs view
@@ -0,0 +1,342 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.CreateRobotApplication+-- 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 robot application.+module Amazonka.RobOMaker.CreateRobotApplication+  ( -- * Creating a Request+    CreateRobotApplication (..),+    newCreateRobotApplication,++    -- * Request Lenses+    createRobotApplication_environment,+    createRobotApplication_sources,+    createRobotApplication_tags,+    createRobotApplication_name,+    createRobotApplication_robotSoftwareSuite,++    -- * Destructuring the Response+    CreateRobotApplicationResponse (..),+    newCreateRobotApplicationResponse,++    -- * Response Lenses+    createRobotApplicationResponse_arn,+    createRobotApplicationResponse_environment,+    createRobotApplicationResponse_lastUpdatedAt,+    createRobotApplicationResponse_name,+    createRobotApplicationResponse_revisionId,+    createRobotApplicationResponse_robotSoftwareSuite,+    createRobotApplicationResponse_sources,+    createRobotApplicationResponse_tags,+    createRobotApplicationResponse_version,+    createRobotApplicationResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newCreateRobotApplication' smart constructor.+data CreateRobotApplication = CreateRobotApplication'+  { -- | The object that contains that URI of the Docker image that you use for+    -- your robot application.+    environment :: Prelude.Maybe Environment,+    -- | The sources of the robot application.+    sources :: Prelude.Maybe [SourceConfig],+    -- | A map that contains tag keys and tag values that are attached to the+    -- robot application.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The name of the robot application.+    name :: Prelude.Text,+    -- | The robot software suite (ROS distribuition) used by the robot+    -- application.+    robotSoftwareSuite :: RobotSoftwareSuite+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateRobotApplication' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'environment', 'createRobotApplication_environment' - The object that contains that URI of the Docker image that you use for+-- your robot application.+--+-- 'sources', 'createRobotApplication_sources' - The sources of the robot application.+--+-- 'tags', 'createRobotApplication_tags' - A map that contains tag keys and tag values that are attached to the+-- robot application.+--+-- 'name', 'createRobotApplication_name' - The name of the robot application.+--+-- 'robotSoftwareSuite', 'createRobotApplication_robotSoftwareSuite' - The robot software suite (ROS distribuition) used by the robot+-- application.+newCreateRobotApplication ::+  -- | 'name'+  Prelude.Text ->+  -- | 'robotSoftwareSuite'+  RobotSoftwareSuite ->+  CreateRobotApplication+newCreateRobotApplication pName_ pRobotSoftwareSuite_ =+  CreateRobotApplication'+    { environment =+        Prelude.Nothing,+      sources = Prelude.Nothing,+      tags = Prelude.Nothing,+      name = pName_,+      robotSoftwareSuite = pRobotSoftwareSuite_+    }++-- | The object that contains that URI of the Docker image that you use for+-- your robot application.+createRobotApplication_environment :: Lens.Lens' CreateRobotApplication (Prelude.Maybe Environment)+createRobotApplication_environment = Lens.lens (\CreateRobotApplication' {environment} -> environment) (\s@CreateRobotApplication' {} a -> s {environment = a} :: CreateRobotApplication)++-- | The sources of the robot application.+createRobotApplication_sources :: Lens.Lens' CreateRobotApplication (Prelude.Maybe [SourceConfig])+createRobotApplication_sources = Lens.lens (\CreateRobotApplication' {sources} -> sources) (\s@CreateRobotApplication' {} a -> s {sources = a} :: CreateRobotApplication) Prelude.. Lens.mapping Lens.coerced++-- | A map that contains tag keys and tag values that are attached to the+-- robot application.+createRobotApplication_tags :: Lens.Lens' CreateRobotApplication (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createRobotApplication_tags = Lens.lens (\CreateRobotApplication' {tags} -> tags) (\s@CreateRobotApplication' {} a -> s {tags = a} :: CreateRobotApplication) Prelude.. Lens.mapping Lens.coerced++-- | The name of the robot application.+createRobotApplication_name :: Lens.Lens' CreateRobotApplication Prelude.Text+createRobotApplication_name = Lens.lens (\CreateRobotApplication' {name} -> name) (\s@CreateRobotApplication' {} a -> s {name = a} :: CreateRobotApplication)++-- | The robot software suite (ROS distribuition) used by the robot+-- application.+createRobotApplication_robotSoftwareSuite :: Lens.Lens' CreateRobotApplication RobotSoftwareSuite+createRobotApplication_robotSoftwareSuite = Lens.lens (\CreateRobotApplication' {robotSoftwareSuite} -> robotSoftwareSuite) (\s@CreateRobotApplication' {} a -> s {robotSoftwareSuite = a} :: CreateRobotApplication)++instance Core.AWSRequest CreateRobotApplication where+  type+    AWSResponse CreateRobotApplication =+      CreateRobotApplicationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateRobotApplicationResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "environment")+            Prelude.<*> (x Data..?> "lastUpdatedAt")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (x Data..?> "revisionId")+            Prelude.<*> (x Data..?> "robotSoftwareSuite")+            Prelude.<*> (x Data..?> "sources" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "version")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateRobotApplication where+  hashWithSalt _salt CreateRobotApplication' {..} =+    _salt+      `Prelude.hashWithSalt` environment+      `Prelude.hashWithSalt` sources+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` robotSoftwareSuite++instance Prelude.NFData CreateRobotApplication where+  rnf CreateRobotApplication' {..} =+    Prelude.rnf environment+      `Prelude.seq` Prelude.rnf sources+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf robotSoftwareSuite++instance Data.ToHeaders CreateRobotApplication where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateRobotApplication where+  toJSON CreateRobotApplication' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("environment" Data..=) Prelude.<$> environment,+            ("sources" Data..=) Prelude.<$> sources,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("name" Data..= name),+            Prelude.Just+              ("robotSoftwareSuite" Data..= robotSoftwareSuite)+          ]+      )++instance Data.ToPath CreateRobotApplication where+  toPath = Prelude.const "/createRobotApplication"++instance Data.ToQuery CreateRobotApplication where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateRobotApplicationResponse' smart constructor.+data CreateRobotApplicationResponse = CreateRobotApplicationResponse'+  { -- | The Amazon Resource Name (ARN) of the robot application.+    arn :: Prelude.Maybe Prelude.Text,+    -- | An object that contains the Docker image URI used to a create your robot+    -- application.+    environment :: Prelude.Maybe Environment,+    -- | The time, in milliseconds since the epoch, when the robot application+    -- was last updated.+    lastUpdatedAt :: Prelude.Maybe Data.POSIX,+    -- | The name of the robot application.+    name :: Prelude.Maybe Prelude.Text,+    -- | The revision id of the robot application.+    revisionId :: Prelude.Maybe Prelude.Text,+    -- | The robot software suite (ROS distribution) used by the robot+    -- application.+    robotSoftwareSuite :: Prelude.Maybe RobotSoftwareSuite,+    -- | The sources of the robot application.+    sources :: Prelude.Maybe [Source],+    -- | The list of all tags added to the robot application.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The version of the robot application.+    version :: 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 'CreateRobotApplicationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'createRobotApplicationResponse_arn' - The Amazon Resource Name (ARN) of the robot application.+--+-- 'environment', 'createRobotApplicationResponse_environment' - An object that contains the Docker image URI used to a create your robot+-- application.+--+-- 'lastUpdatedAt', 'createRobotApplicationResponse_lastUpdatedAt' - The time, in milliseconds since the epoch, when the robot application+-- was last updated.+--+-- 'name', 'createRobotApplicationResponse_name' - The name of the robot application.+--+-- 'revisionId', 'createRobotApplicationResponse_revisionId' - The revision id of the robot application.+--+-- 'robotSoftwareSuite', 'createRobotApplicationResponse_robotSoftwareSuite' - The robot software suite (ROS distribution) used by the robot+-- application.+--+-- 'sources', 'createRobotApplicationResponse_sources' - The sources of the robot application.+--+-- 'tags', 'createRobotApplicationResponse_tags' - The list of all tags added to the robot application.+--+-- 'version', 'createRobotApplicationResponse_version' - The version of the robot application.+--+-- 'httpStatus', 'createRobotApplicationResponse_httpStatus' - The response's http status code.+newCreateRobotApplicationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateRobotApplicationResponse+newCreateRobotApplicationResponse pHttpStatus_ =+  CreateRobotApplicationResponse'+    { arn =+        Prelude.Nothing,+      environment = Prelude.Nothing,+      lastUpdatedAt = Prelude.Nothing,+      name = Prelude.Nothing,+      revisionId = Prelude.Nothing,+      robotSoftwareSuite = Prelude.Nothing,+      sources = Prelude.Nothing,+      tags = Prelude.Nothing,+      version = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the robot application.+createRobotApplicationResponse_arn :: Lens.Lens' CreateRobotApplicationResponse (Prelude.Maybe Prelude.Text)+createRobotApplicationResponse_arn = Lens.lens (\CreateRobotApplicationResponse' {arn} -> arn) (\s@CreateRobotApplicationResponse' {} a -> s {arn = a} :: CreateRobotApplicationResponse)++-- | An object that contains the Docker image URI used to a create your robot+-- application.+createRobotApplicationResponse_environment :: Lens.Lens' CreateRobotApplicationResponse (Prelude.Maybe Environment)+createRobotApplicationResponse_environment = Lens.lens (\CreateRobotApplicationResponse' {environment} -> environment) (\s@CreateRobotApplicationResponse' {} a -> s {environment = a} :: CreateRobotApplicationResponse)++-- | The time, in milliseconds since the epoch, when the robot application+-- was last updated.+createRobotApplicationResponse_lastUpdatedAt :: Lens.Lens' CreateRobotApplicationResponse (Prelude.Maybe Prelude.UTCTime)+createRobotApplicationResponse_lastUpdatedAt = Lens.lens (\CreateRobotApplicationResponse' {lastUpdatedAt} -> lastUpdatedAt) (\s@CreateRobotApplicationResponse' {} a -> s {lastUpdatedAt = a} :: CreateRobotApplicationResponse) Prelude.. Lens.mapping Data._Time++-- | The name of the robot application.+createRobotApplicationResponse_name :: Lens.Lens' CreateRobotApplicationResponse (Prelude.Maybe Prelude.Text)+createRobotApplicationResponse_name = Lens.lens (\CreateRobotApplicationResponse' {name} -> name) (\s@CreateRobotApplicationResponse' {} a -> s {name = a} :: CreateRobotApplicationResponse)++-- | The revision id of the robot application.+createRobotApplicationResponse_revisionId :: Lens.Lens' CreateRobotApplicationResponse (Prelude.Maybe Prelude.Text)+createRobotApplicationResponse_revisionId = Lens.lens (\CreateRobotApplicationResponse' {revisionId} -> revisionId) (\s@CreateRobotApplicationResponse' {} a -> s {revisionId = a} :: CreateRobotApplicationResponse)++-- | The robot software suite (ROS distribution) used by the robot+-- application.+createRobotApplicationResponse_robotSoftwareSuite :: Lens.Lens' CreateRobotApplicationResponse (Prelude.Maybe RobotSoftwareSuite)+createRobotApplicationResponse_robotSoftwareSuite = Lens.lens (\CreateRobotApplicationResponse' {robotSoftwareSuite} -> robotSoftwareSuite) (\s@CreateRobotApplicationResponse' {} a -> s {robotSoftwareSuite = a} :: CreateRobotApplicationResponse)++-- | The sources of the robot application.+createRobotApplicationResponse_sources :: Lens.Lens' CreateRobotApplicationResponse (Prelude.Maybe [Source])+createRobotApplicationResponse_sources = Lens.lens (\CreateRobotApplicationResponse' {sources} -> sources) (\s@CreateRobotApplicationResponse' {} a -> s {sources = a} :: CreateRobotApplicationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The list of all tags added to the robot application.+createRobotApplicationResponse_tags :: Lens.Lens' CreateRobotApplicationResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createRobotApplicationResponse_tags = Lens.lens (\CreateRobotApplicationResponse' {tags} -> tags) (\s@CreateRobotApplicationResponse' {} a -> s {tags = a} :: CreateRobotApplicationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The version of the robot application.+createRobotApplicationResponse_version :: Lens.Lens' CreateRobotApplicationResponse (Prelude.Maybe Prelude.Text)+createRobotApplicationResponse_version = Lens.lens (\CreateRobotApplicationResponse' {version} -> version) (\s@CreateRobotApplicationResponse' {} a -> s {version = a} :: CreateRobotApplicationResponse)++-- | The response's http status code.+createRobotApplicationResponse_httpStatus :: Lens.Lens' CreateRobotApplicationResponse Prelude.Int+createRobotApplicationResponse_httpStatus = Lens.lens (\CreateRobotApplicationResponse' {httpStatus} -> httpStatus) (\s@CreateRobotApplicationResponse' {} a -> s {httpStatus = a} :: CreateRobotApplicationResponse)++instance+  Prelude.NFData+    CreateRobotApplicationResponse+  where+  rnf CreateRobotApplicationResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf environment+      `Prelude.seq` Prelude.rnf lastUpdatedAt+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf revisionId+      `Prelude.seq` Prelude.rnf robotSoftwareSuite+      `Prelude.seq` Prelude.rnf sources+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf version+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/CreateRobotApplicationVersion.hs view
@@ -0,0 +1,325 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.CreateRobotApplicationVersion+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a version of a robot application.+module Amazonka.RobOMaker.CreateRobotApplicationVersion+  ( -- * Creating a Request+    CreateRobotApplicationVersion (..),+    newCreateRobotApplicationVersion,++    -- * Request Lenses+    createRobotApplicationVersion_currentRevisionId,+    createRobotApplicationVersion_imageDigest,+    createRobotApplicationVersion_s3Etags,+    createRobotApplicationVersion_application,++    -- * Destructuring the Response+    CreateRobotApplicationVersionResponse (..),+    newCreateRobotApplicationVersionResponse,++    -- * Response Lenses+    createRobotApplicationVersionResponse_arn,+    createRobotApplicationVersionResponse_environment,+    createRobotApplicationVersionResponse_lastUpdatedAt,+    createRobotApplicationVersionResponse_name,+    createRobotApplicationVersionResponse_revisionId,+    createRobotApplicationVersionResponse_robotSoftwareSuite,+    createRobotApplicationVersionResponse_sources,+    createRobotApplicationVersionResponse_version,+    createRobotApplicationVersionResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newCreateRobotApplicationVersion' smart constructor.+data CreateRobotApplicationVersion = CreateRobotApplicationVersion'+  { -- | The current revision id for the robot application. If you provide a+    -- value and it matches the latest revision ID, a new version will be+    -- created.+    currentRevisionId :: Prelude.Maybe Prelude.Text,+    -- | A SHA256 identifier for the Docker image that you use for your robot+    -- application.+    imageDigest :: Prelude.Maybe Prelude.Text,+    -- | The Amazon S3 identifier for the zip file bundle that you use for your+    -- robot application.+    s3Etags :: Prelude.Maybe [Prelude.Text],+    -- | The application information for the robot application.+    application :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateRobotApplicationVersion' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'currentRevisionId', 'createRobotApplicationVersion_currentRevisionId' - The current revision id for the robot application. If you provide a+-- value and it matches the latest revision ID, a new version will be+-- created.+--+-- 'imageDigest', 'createRobotApplicationVersion_imageDigest' - A SHA256 identifier for the Docker image that you use for your robot+-- application.+--+-- 's3Etags', 'createRobotApplicationVersion_s3Etags' - The Amazon S3 identifier for the zip file bundle that you use for your+-- robot application.+--+-- 'application', 'createRobotApplicationVersion_application' - The application information for the robot application.+newCreateRobotApplicationVersion ::+  -- | 'application'+  Prelude.Text ->+  CreateRobotApplicationVersion+newCreateRobotApplicationVersion pApplication_ =+  CreateRobotApplicationVersion'+    { currentRevisionId =+        Prelude.Nothing,+      imageDigest = Prelude.Nothing,+      s3Etags = Prelude.Nothing,+      application = pApplication_+    }++-- | The current revision id for the robot application. If you provide a+-- value and it matches the latest revision ID, a new version will be+-- created.+createRobotApplicationVersion_currentRevisionId :: Lens.Lens' CreateRobotApplicationVersion (Prelude.Maybe Prelude.Text)+createRobotApplicationVersion_currentRevisionId = Lens.lens (\CreateRobotApplicationVersion' {currentRevisionId} -> currentRevisionId) (\s@CreateRobotApplicationVersion' {} a -> s {currentRevisionId = a} :: CreateRobotApplicationVersion)++-- | A SHA256 identifier for the Docker image that you use for your robot+-- application.+createRobotApplicationVersion_imageDigest :: Lens.Lens' CreateRobotApplicationVersion (Prelude.Maybe Prelude.Text)+createRobotApplicationVersion_imageDigest = Lens.lens (\CreateRobotApplicationVersion' {imageDigest} -> imageDigest) (\s@CreateRobotApplicationVersion' {} a -> s {imageDigest = a} :: CreateRobotApplicationVersion)++-- | The Amazon S3 identifier for the zip file bundle that you use for your+-- robot application.+createRobotApplicationVersion_s3Etags :: Lens.Lens' CreateRobotApplicationVersion (Prelude.Maybe [Prelude.Text])+createRobotApplicationVersion_s3Etags = Lens.lens (\CreateRobotApplicationVersion' {s3Etags} -> s3Etags) (\s@CreateRobotApplicationVersion' {} a -> s {s3Etags = a} :: CreateRobotApplicationVersion) Prelude.. Lens.mapping Lens.coerced++-- | The application information for the robot application.+createRobotApplicationVersion_application :: Lens.Lens' CreateRobotApplicationVersion Prelude.Text+createRobotApplicationVersion_application = Lens.lens (\CreateRobotApplicationVersion' {application} -> application) (\s@CreateRobotApplicationVersion' {} a -> s {application = a} :: CreateRobotApplicationVersion)++instance+  Core.AWSRequest+    CreateRobotApplicationVersion+  where+  type+    AWSResponse CreateRobotApplicationVersion =+      CreateRobotApplicationVersionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateRobotApplicationVersionResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "environment")+            Prelude.<*> (x Data..?> "lastUpdatedAt")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (x Data..?> "revisionId")+            Prelude.<*> (x Data..?> "robotSoftwareSuite")+            Prelude.<*> (x Data..?> "sources" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "version")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    CreateRobotApplicationVersion+  where+  hashWithSalt _salt CreateRobotApplicationVersion' {..} =+    _salt+      `Prelude.hashWithSalt` currentRevisionId+      `Prelude.hashWithSalt` imageDigest+      `Prelude.hashWithSalt` s3Etags+      `Prelude.hashWithSalt` application++instance Prelude.NFData CreateRobotApplicationVersion where+  rnf CreateRobotApplicationVersion' {..} =+    Prelude.rnf currentRevisionId+      `Prelude.seq` Prelude.rnf imageDigest+      `Prelude.seq` Prelude.rnf s3Etags+      `Prelude.seq` Prelude.rnf application++instance Data.ToHeaders CreateRobotApplicationVersion where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateRobotApplicationVersion where+  toJSON CreateRobotApplicationVersion' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("currentRevisionId" Data..=)+              Prelude.<$> currentRevisionId,+            ("imageDigest" Data..=) Prelude.<$> imageDigest,+            ("s3Etags" Data..=) Prelude.<$> s3Etags,+            Prelude.Just ("application" Data..= application)+          ]+      )++instance Data.ToPath CreateRobotApplicationVersion where+  toPath =+    Prelude.const "/createRobotApplicationVersion"++instance Data.ToQuery CreateRobotApplicationVersion where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateRobotApplicationVersionResponse' smart constructor.+data CreateRobotApplicationVersionResponse = CreateRobotApplicationVersionResponse'+  { -- | The Amazon Resource Name (ARN) of the robot application.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The object that contains the Docker image URI used to create your robot+    -- application.+    environment :: Prelude.Maybe Environment,+    -- | The time, in milliseconds since the epoch, when the robot application+    -- was last updated.+    lastUpdatedAt :: Prelude.Maybe Data.POSIX,+    -- | The name of the robot application.+    name :: Prelude.Maybe Prelude.Text,+    -- | The revision id of the robot application.+    revisionId :: Prelude.Maybe Prelude.Text,+    -- | The robot software suite (ROS distribution) used by the robot+    -- application.+    robotSoftwareSuite :: Prelude.Maybe RobotSoftwareSuite,+    -- | The sources of the robot application.+    sources :: Prelude.Maybe [Source],+    -- | The version of the robot application.+    version :: 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 'CreateRobotApplicationVersionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'createRobotApplicationVersionResponse_arn' - The Amazon Resource Name (ARN) of the robot application.+--+-- 'environment', 'createRobotApplicationVersionResponse_environment' - The object that contains the Docker image URI used to create your robot+-- application.+--+-- 'lastUpdatedAt', 'createRobotApplicationVersionResponse_lastUpdatedAt' - The time, in milliseconds since the epoch, when the robot application+-- was last updated.+--+-- 'name', 'createRobotApplicationVersionResponse_name' - The name of the robot application.+--+-- 'revisionId', 'createRobotApplicationVersionResponse_revisionId' - The revision id of the robot application.+--+-- 'robotSoftwareSuite', 'createRobotApplicationVersionResponse_robotSoftwareSuite' - The robot software suite (ROS distribution) used by the robot+-- application.+--+-- 'sources', 'createRobotApplicationVersionResponse_sources' - The sources of the robot application.+--+-- 'version', 'createRobotApplicationVersionResponse_version' - The version of the robot application.+--+-- 'httpStatus', 'createRobotApplicationVersionResponse_httpStatus' - The response's http status code.+newCreateRobotApplicationVersionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateRobotApplicationVersionResponse+newCreateRobotApplicationVersionResponse pHttpStatus_ =+  CreateRobotApplicationVersionResponse'+    { arn =+        Prelude.Nothing,+      environment = Prelude.Nothing,+      lastUpdatedAt = Prelude.Nothing,+      name = Prelude.Nothing,+      revisionId = Prelude.Nothing,+      robotSoftwareSuite = Prelude.Nothing,+      sources = Prelude.Nothing,+      version = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the robot application.+createRobotApplicationVersionResponse_arn :: Lens.Lens' CreateRobotApplicationVersionResponse (Prelude.Maybe Prelude.Text)+createRobotApplicationVersionResponse_arn = Lens.lens (\CreateRobotApplicationVersionResponse' {arn} -> arn) (\s@CreateRobotApplicationVersionResponse' {} a -> s {arn = a} :: CreateRobotApplicationVersionResponse)++-- | The object that contains the Docker image URI used to create your robot+-- application.+createRobotApplicationVersionResponse_environment :: Lens.Lens' CreateRobotApplicationVersionResponse (Prelude.Maybe Environment)+createRobotApplicationVersionResponse_environment = Lens.lens (\CreateRobotApplicationVersionResponse' {environment} -> environment) (\s@CreateRobotApplicationVersionResponse' {} a -> s {environment = a} :: CreateRobotApplicationVersionResponse)++-- | The time, in milliseconds since the epoch, when the robot application+-- was last updated.+createRobotApplicationVersionResponse_lastUpdatedAt :: Lens.Lens' CreateRobotApplicationVersionResponse (Prelude.Maybe Prelude.UTCTime)+createRobotApplicationVersionResponse_lastUpdatedAt = Lens.lens (\CreateRobotApplicationVersionResponse' {lastUpdatedAt} -> lastUpdatedAt) (\s@CreateRobotApplicationVersionResponse' {} a -> s {lastUpdatedAt = a} :: CreateRobotApplicationVersionResponse) Prelude.. Lens.mapping Data._Time++-- | The name of the robot application.+createRobotApplicationVersionResponse_name :: Lens.Lens' CreateRobotApplicationVersionResponse (Prelude.Maybe Prelude.Text)+createRobotApplicationVersionResponse_name = Lens.lens (\CreateRobotApplicationVersionResponse' {name} -> name) (\s@CreateRobotApplicationVersionResponse' {} a -> s {name = a} :: CreateRobotApplicationVersionResponse)++-- | The revision id of the robot application.+createRobotApplicationVersionResponse_revisionId :: Lens.Lens' CreateRobotApplicationVersionResponse (Prelude.Maybe Prelude.Text)+createRobotApplicationVersionResponse_revisionId = Lens.lens (\CreateRobotApplicationVersionResponse' {revisionId} -> revisionId) (\s@CreateRobotApplicationVersionResponse' {} a -> s {revisionId = a} :: CreateRobotApplicationVersionResponse)++-- | The robot software suite (ROS distribution) used by the robot+-- application.+createRobotApplicationVersionResponse_robotSoftwareSuite :: Lens.Lens' CreateRobotApplicationVersionResponse (Prelude.Maybe RobotSoftwareSuite)+createRobotApplicationVersionResponse_robotSoftwareSuite = Lens.lens (\CreateRobotApplicationVersionResponse' {robotSoftwareSuite} -> robotSoftwareSuite) (\s@CreateRobotApplicationVersionResponse' {} a -> s {robotSoftwareSuite = a} :: CreateRobotApplicationVersionResponse)++-- | The sources of the robot application.+createRobotApplicationVersionResponse_sources :: Lens.Lens' CreateRobotApplicationVersionResponse (Prelude.Maybe [Source])+createRobotApplicationVersionResponse_sources = Lens.lens (\CreateRobotApplicationVersionResponse' {sources} -> sources) (\s@CreateRobotApplicationVersionResponse' {} a -> s {sources = a} :: CreateRobotApplicationVersionResponse) Prelude.. Lens.mapping Lens.coerced++-- | The version of the robot application.+createRobotApplicationVersionResponse_version :: Lens.Lens' CreateRobotApplicationVersionResponse (Prelude.Maybe Prelude.Text)+createRobotApplicationVersionResponse_version = Lens.lens (\CreateRobotApplicationVersionResponse' {version} -> version) (\s@CreateRobotApplicationVersionResponse' {} a -> s {version = a} :: CreateRobotApplicationVersionResponse)++-- | The response's http status code.+createRobotApplicationVersionResponse_httpStatus :: Lens.Lens' CreateRobotApplicationVersionResponse Prelude.Int+createRobotApplicationVersionResponse_httpStatus = Lens.lens (\CreateRobotApplicationVersionResponse' {httpStatus} -> httpStatus) (\s@CreateRobotApplicationVersionResponse' {} a -> s {httpStatus = a} :: CreateRobotApplicationVersionResponse)++instance+  Prelude.NFData+    CreateRobotApplicationVersionResponse+  where+  rnf CreateRobotApplicationVersionResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf environment+      `Prelude.seq` Prelude.rnf lastUpdatedAt+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf revisionId+      `Prelude.seq` Prelude.rnf robotSoftwareSuite+      `Prelude.seq` Prelude.rnf sources+      `Prelude.seq` Prelude.rnf version+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/CreateSimulationApplication.hs view
@@ -0,0 +1,400 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.CreateSimulationApplication+-- 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 simulation application.+module Amazonka.RobOMaker.CreateSimulationApplication+  ( -- * Creating a Request+    CreateSimulationApplication (..),+    newCreateSimulationApplication,++    -- * Request Lenses+    createSimulationApplication_environment,+    createSimulationApplication_renderingEngine,+    createSimulationApplication_sources,+    createSimulationApplication_tags,+    createSimulationApplication_name,+    createSimulationApplication_simulationSoftwareSuite,+    createSimulationApplication_robotSoftwareSuite,++    -- * Destructuring the Response+    CreateSimulationApplicationResponse (..),+    newCreateSimulationApplicationResponse,++    -- * Response Lenses+    createSimulationApplicationResponse_arn,+    createSimulationApplicationResponse_environment,+    createSimulationApplicationResponse_lastUpdatedAt,+    createSimulationApplicationResponse_name,+    createSimulationApplicationResponse_renderingEngine,+    createSimulationApplicationResponse_revisionId,+    createSimulationApplicationResponse_robotSoftwareSuite,+    createSimulationApplicationResponse_simulationSoftwareSuite,+    createSimulationApplicationResponse_sources,+    createSimulationApplicationResponse_tags,+    createSimulationApplicationResponse_version,+    createSimulationApplicationResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newCreateSimulationApplication' smart constructor.+data CreateSimulationApplication = CreateSimulationApplication'+  { -- | The object that contains the Docker image URI used to create your+    -- simulation application.+    environment :: Prelude.Maybe Environment,+    -- | The rendering engine for the simulation application.+    renderingEngine :: Prelude.Maybe RenderingEngine,+    -- | The sources of the simulation application.+    sources :: Prelude.Maybe [SourceConfig],+    -- | A map that contains tag keys and tag values that are attached to the+    -- simulation application.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The name of the simulation application.+    name :: Prelude.Text,+    -- | The simulation software suite used by the simulation application.+    simulationSoftwareSuite :: SimulationSoftwareSuite,+    -- | The robot software suite (ROS distribution) used by the simulation+    -- application.+    robotSoftwareSuite :: RobotSoftwareSuite+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateSimulationApplication' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'environment', 'createSimulationApplication_environment' - The object that contains the Docker image URI used to create your+-- simulation application.+--+-- 'renderingEngine', 'createSimulationApplication_renderingEngine' - The rendering engine for the simulation application.+--+-- 'sources', 'createSimulationApplication_sources' - The sources of the simulation application.+--+-- 'tags', 'createSimulationApplication_tags' - A map that contains tag keys and tag values that are attached to the+-- simulation application.+--+-- 'name', 'createSimulationApplication_name' - The name of the simulation application.+--+-- 'simulationSoftwareSuite', 'createSimulationApplication_simulationSoftwareSuite' - The simulation software suite used by the simulation application.+--+-- 'robotSoftwareSuite', 'createSimulationApplication_robotSoftwareSuite' - The robot software suite (ROS distribution) used by the simulation+-- application.+newCreateSimulationApplication ::+  -- | 'name'+  Prelude.Text ->+  -- | 'simulationSoftwareSuite'+  SimulationSoftwareSuite ->+  -- | 'robotSoftwareSuite'+  RobotSoftwareSuite ->+  CreateSimulationApplication+newCreateSimulationApplication+  pName_+  pSimulationSoftwareSuite_+  pRobotSoftwareSuite_ =+    CreateSimulationApplication'+      { environment =+          Prelude.Nothing,+        renderingEngine = Prelude.Nothing,+        sources = Prelude.Nothing,+        tags = Prelude.Nothing,+        name = pName_,+        simulationSoftwareSuite =+          pSimulationSoftwareSuite_,+        robotSoftwareSuite = pRobotSoftwareSuite_+      }++-- | The object that contains the Docker image URI used to create your+-- simulation application.+createSimulationApplication_environment :: Lens.Lens' CreateSimulationApplication (Prelude.Maybe Environment)+createSimulationApplication_environment = Lens.lens (\CreateSimulationApplication' {environment} -> environment) (\s@CreateSimulationApplication' {} a -> s {environment = a} :: CreateSimulationApplication)++-- | The rendering engine for the simulation application.+createSimulationApplication_renderingEngine :: Lens.Lens' CreateSimulationApplication (Prelude.Maybe RenderingEngine)+createSimulationApplication_renderingEngine = Lens.lens (\CreateSimulationApplication' {renderingEngine} -> renderingEngine) (\s@CreateSimulationApplication' {} a -> s {renderingEngine = a} :: CreateSimulationApplication)++-- | The sources of the simulation application.+createSimulationApplication_sources :: Lens.Lens' CreateSimulationApplication (Prelude.Maybe [SourceConfig])+createSimulationApplication_sources = Lens.lens (\CreateSimulationApplication' {sources} -> sources) (\s@CreateSimulationApplication' {} a -> s {sources = a} :: CreateSimulationApplication) Prelude.. Lens.mapping Lens.coerced++-- | A map that contains tag keys and tag values that are attached to the+-- simulation application.+createSimulationApplication_tags :: Lens.Lens' CreateSimulationApplication (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createSimulationApplication_tags = Lens.lens (\CreateSimulationApplication' {tags} -> tags) (\s@CreateSimulationApplication' {} a -> s {tags = a} :: CreateSimulationApplication) Prelude.. Lens.mapping Lens.coerced++-- | The name of the simulation application.+createSimulationApplication_name :: Lens.Lens' CreateSimulationApplication Prelude.Text+createSimulationApplication_name = Lens.lens (\CreateSimulationApplication' {name} -> name) (\s@CreateSimulationApplication' {} a -> s {name = a} :: CreateSimulationApplication)++-- | The simulation software suite used by the simulation application.+createSimulationApplication_simulationSoftwareSuite :: Lens.Lens' CreateSimulationApplication SimulationSoftwareSuite+createSimulationApplication_simulationSoftwareSuite = Lens.lens (\CreateSimulationApplication' {simulationSoftwareSuite} -> simulationSoftwareSuite) (\s@CreateSimulationApplication' {} a -> s {simulationSoftwareSuite = a} :: CreateSimulationApplication)++-- | The robot software suite (ROS distribution) used by the simulation+-- application.+createSimulationApplication_robotSoftwareSuite :: Lens.Lens' CreateSimulationApplication RobotSoftwareSuite+createSimulationApplication_robotSoftwareSuite = Lens.lens (\CreateSimulationApplication' {robotSoftwareSuite} -> robotSoftwareSuite) (\s@CreateSimulationApplication' {} a -> s {robotSoftwareSuite = a} :: CreateSimulationApplication)++instance Core.AWSRequest CreateSimulationApplication where+  type+    AWSResponse CreateSimulationApplication =+      CreateSimulationApplicationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateSimulationApplicationResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "environment")+            Prelude.<*> (x Data..?> "lastUpdatedAt")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (x Data..?> "renderingEngine")+            Prelude.<*> (x Data..?> "revisionId")+            Prelude.<*> (x Data..?> "robotSoftwareSuite")+            Prelude.<*> (x Data..?> "simulationSoftwareSuite")+            Prelude.<*> (x Data..?> "sources" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "version")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateSimulationApplication where+  hashWithSalt _salt CreateSimulationApplication' {..} =+    _salt+      `Prelude.hashWithSalt` environment+      `Prelude.hashWithSalt` renderingEngine+      `Prelude.hashWithSalt` sources+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` simulationSoftwareSuite+      `Prelude.hashWithSalt` robotSoftwareSuite++instance Prelude.NFData CreateSimulationApplication where+  rnf CreateSimulationApplication' {..} =+    Prelude.rnf environment+      `Prelude.seq` Prelude.rnf renderingEngine+      `Prelude.seq` Prelude.rnf sources+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf simulationSoftwareSuite+      `Prelude.seq` Prelude.rnf robotSoftwareSuite++instance Data.ToHeaders CreateSimulationApplication where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateSimulationApplication where+  toJSON CreateSimulationApplication' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("environment" Data..=) Prelude.<$> environment,+            ("renderingEngine" Data..=)+              Prelude.<$> renderingEngine,+            ("sources" Data..=) Prelude.<$> sources,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("name" Data..= name),+            Prelude.Just+              ( "simulationSoftwareSuite"+                  Data..= simulationSoftwareSuite+              ),+            Prelude.Just+              ("robotSoftwareSuite" Data..= robotSoftwareSuite)+          ]+      )++instance Data.ToPath CreateSimulationApplication where+  toPath = Prelude.const "/createSimulationApplication"++instance Data.ToQuery CreateSimulationApplication where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateSimulationApplicationResponse' smart constructor.+data CreateSimulationApplicationResponse = CreateSimulationApplicationResponse'+  { -- | The Amazon Resource Name (ARN) of the simulation application.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The object that contains the Docker image URI that you used to create+    -- your simulation application.+    environment :: Prelude.Maybe Environment,+    -- | The time, in milliseconds since the epoch, when the simulation+    -- application was last updated.+    lastUpdatedAt :: Prelude.Maybe Data.POSIX,+    -- | The name of the simulation application.+    name :: Prelude.Maybe Prelude.Text,+    -- | The rendering engine for the simulation application.+    renderingEngine :: Prelude.Maybe RenderingEngine,+    -- | The revision id of the simulation application.+    revisionId :: Prelude.Maybe Prelude.Text,+    -- | Information about the robot software suite (ROS distribution).+    robotSoftwareSuite :: Prelude.Maybe RobotSoftwareSuite,+    -- | The simulation software suite used by the simulation application.+    simulationSoftwareSuite :: Prelude.Maybe SimulationSoftwareSuite,+    -- | The sources of the simulation application.+    sources :: Prelude.Maybe [Source],+    -- | The list of all tags added to the simulation application.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The version of the simulation application.+    version :: 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 'CreateSimulationApplicationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'createSimulationApplicationResponse_arn' - The Amazon Resource Name (ARN) of the simulation application.+--+-- 'environment', 'createSimulationApplicationResponse_environment' - The object that contains the Docker image URI that you used to create+-- your simulation application.+--+-- 'lastUpdatedAt', 'createSimulationApplicationResponse_lastUpdatedAt' - The time, in milliseconds since the epoch, when the simulation+-- application was last updated.+--+-- 'name', 'createSimulationApplicationResponse_name' - The name of the simulation application.+--+-- 'renderingEngine', 'createSimulationApplicationResponse_renderingEngine' - The rendering engine for the simulation application.+--+-- 'revisionId', 'createSimulationApplicationResponse_revisionId' - The revision id of the simulation application.+--+-- 'robotSoftwareSuite', 'createSimulationApplicationResponse_robotSoftwareSuite' - Information about the robot software suite (ROS distribution).+--+-- 'simulationSoftwareSuite', 'createSimulationApplicationResponse_simulationSoftwareSuite' - The simulation software suite used by the simulation application.+--+-- 'sources', 'createSimulationApplicationResponse_sources' - The sources of the simulation application.+--+-- 'tags', 'createSimulationApplicationResponse_tags' - The list of all tags added to the simulation application.+--+-- 'version', 'createSimulationApplicationResponse_version' - The version of the simulation application.+--+-- 'httpStatus', 'createSimulationApplicationResponse_httpStatus' - The response's http status code.+newCreateSimulationApplicationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateSimulationApplicationResponse+newCreateSimulationApplicationResponse pHttpStatus_ =+  CreateSimulationApplicationResponse'+    { arn =+        Prelude.Nothing,+      environment = Prelude.Nothing,+      lastUpdatedAt = Prelude.Nothing,+      name = Prelude.Nothing,+      renderingEngine = Prelude.Nothing,+      revisionId = Prelude.Nothing,+      robotSoftwareSuite = Prelude.Nothing,+      simulationSoftwareSuite =+        Prelude.Nothing,+      sources = Prelude.Nothing,+      tags = Prelude.Nothing,+      version = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the simulation application.+createSimulationApplicationResponse_arn :: Lens.Lens' CreateSimulationApplicationResponse (Prelude.Maybe Prelude.Text)+createSimulationApplicationResponse_arn = Lens.lens (\CreateSimulationApplicationResponse' {arn} -> arn) (\s@CreateSimulationApplicationResponse' {} a -> s {arn = a} :: CreateSimulationApplicationResponse)++-- | The object that contains the Docker image URI that you used to create+-- your simulation application.+createSimulationApplicationResponse_environment :: Lens.Lens' CreateSimulationApplicationResponse (Prelude.Maybe Environment)+createSimulationApplicationResponse_environment = Lens.lens (\CreateSimulationApplicationResponse' {environment} -> environment) (\s@CreateSimulationApplicationResponse' {} a -> s {environment = a} :: CreateSimulationApplicationResponse)++-- | The time, in milliseconds since the epoch, when the simulation+-- application was last updated.+createSimulationApplicationResponse_lastUpdatedAt :: Lens.Lens' CreateSimulationApplicationResponse (Prelude.Maybe Prelude.UTCTime)+createSimulationApplicationResponse_lastUpdatedAt = Lens.lens (\CreateSimulationApplicationResponse' {lastUpdatedAt} -> lastUpdatedAt) (\s@CreateSimulationApplicationResponse' {} a -> s {lastUpdatedAt = a} :: CreateSimulationApplicationResponse) Prelude.. Lens.mapping Data._Time++-- | The name of the simulation application.+createSimulationApplicationResponse_name :: Lens.Lens' CreateSimulationApplicationResponse (Prelude.Maybe Prelude.Text)+createSimulationApplicationResponse_name = Lens.lens (\CreateSimulationApplicationResponse' {name} -> name) (\s@CreateSimulationApplicationResponse' {} a -> s {name = a} :: CreateSimulationApplicationResponse)++-- | The rendering engine for the simulation application.+createSimulationApplicationResponse_renderingEngine :: Lens.Lens' CreateSimulationApplicationResponse (Prelude.Maybe RenderingEngine)+createSimulationApplicationResponse_renderingEngine = Lens.lens (\CreateSimulationApplicationResponse' {renderingEngine} -> renderingEngine) (\s@CreateSimulationApplicationResponse' {} a -> s {renderingEngine = a} :: CreateSimulationApplicationResponse)++-- | The revision id of the simulation application.+createSimulationApplicationResponse_revisionId :: Lens.Lens' CreateSimulationApplicationResponse (Prelude.Maybe Prelude.Text)+createSimulationApplicationResponse_revisionId = Lens.lens (\CreateSimulationApplicationResponse' {revisionId} -> revisionId) (\s@CreateSimulationApplicationResponse' {} a -> s {revisionId = a} :: CreateSimulationApplicationResponse)++-- | Information about the robot software suite (ROS distribution).+createSimulationApplicationResponse_robotSoftwareSuite :: Lens.Lens' CreateSimulationApplicationResponse (Prelude.Maybe RobotSoftwareSuite)+createSimulationApplicationResponse_robotSoftwareSuite = Lens.lens (\CreateSimulationApplicationResponse' {robotSoftwareSuite} -> robotSoftwareSuite) (\s@CreateSimulationApplicationResponse' {} a -> s {robotSoftwareSuite = a} :: CreateSimulationApplicationResponse)++-- | The simulation software suite used by the simulation application.+createSimulationApplicationResponse_simulationSoftwareSuite :: Lens.Lens' CreateSimulationApplicationResponse (Prelude.Maybe SimulationSoftwareSuite)+createSimulationApplicationResponse_simulationSoftwareSuite = Lens.lens (\CreateSimulationApplicationResponse' {simulationSoftwareSuite} -> simulationSoftwareSuite) (\s@CreateSimulationApplicationResponse' {} a -> s {simulationSoftwareSuite = a} :: CreateSimulationApplicationResponse)++-- | The sources of the simulation application.+createSimulationApplicationResponse_sources :: Lens.Lens' CreateSimulationApplicationResponse (Prelude.Maybe [Source])+createSimulationApplicationResponse_sources = Lens.lens (\CreateSimulationApplicationResponse' {sources} -> sources) (\s@CreateSimulationApplicationResponse' {} a -> s {sources = a} :: CreateSimulationApplicationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The list of all tags added to the simulation application.+createSimulationApplicationResponse_tags :: Lens.Lens' CreateSimulationApplicationResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createSimulationApplicationResponse_tags = Lens.lens (\CreateSimulationApplicationResponse' {tags} -> tags) (\s@CreateSimulationApplicationResponse' {} a -> s {tags = a} :: CreateSimulationApplicationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The version of the simulation application.+createSimulationApplicationResponse_version :: Lens.Lens' CreateSimulationApplicationResponse (Prelude.Maybe Prelude.Text)+createSimulationApplicationResponse_version = Lens.lens (\CreateSimulationApplicationResponse' {version} -> version) (\s@CreateSimulationApplicationResponse' {} a -> s {version = a} :: CreateSimulationApplicationResponse)++-- | The response's http status code.+createSimulationApplicationResponse_httpStatus :: Lens.Lens' CreateSimulationApplicationResponse Prelude.Int+createSimulationApplicationResponse_httpStatus = Lens.lens (\CreateSimulationApplicationResponse' {httpStatus} -> httpStatus) (\s@CreateSimulationApplicationResponse' {} a -> s {httpStatus = a} :: CreateSimulationApplicationResponse)++instance+  Prelude.NFData+    CreateSimulationApplicationResponse+  where+  rnf CreateSimulationApplicationResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf environment+      `Prelude.seq` Prelude.rnf lastUpdatedAt+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf renderingEngine+      `Prelude.seq` Prelude.rnf revisionId+      `Prelude.seq` Prelude.rnf robotSoftwareSuite+      `Prelude.seq` Prelude.rnf simulationSoftwareSuite+      `Prelude.seq` Prelude.rnf sources+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf version+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/CreateSimulationApplicationVersion.hs view
@@ -0,0 +1,367 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.CreateSimulationApplicationVersion+-- 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 simulation application with a specific revision id.+module Amazonka.RobOMaker.CreateSimulationApplicationVersion+  ( -- * Creating a Request+    CreateSimulationApplicationVersion (..),+    newCreateSimulationApplicationVersion,++    -- * Request Lenses+    createSimulationApplicationVersion_currentRevisionId,+    createSimulationApplicationVersion_imageDigest,+    createSimulationApplicationVersion_s3Etags,+    createSimulationApplicationVersion_application,++    -- * Destructuring the Response+    CreateSimulationApplicationVersionResponse (..),+    newCreateSimulationApplicationVersionResponse,++    -- * Response Lenses+    createSimulationApplicationVersionResponse_arn,+    createSimulationApplicationVersionResponse_environment,+    createSimulationApplicationVersionResponse_lastUpdatedAt,+    createSimulationApplicationVersionResponse_name,+    createSimulationApplicationVersionResponse_renderingEngine,+    createSimulationApplicationVersionResponse_revisionId,+    createSimulationApplicationVersionResponse_robotSoftwareSuite,+    createSimulationApplicationVersionResponse_simulationSoftwareSuite,+    createSimulationApplicationVersionResponse_sources,+    createSimulationApplicationVersionResponse_version,+    createSimulationApplicationVersionResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newCreateSimulationApplicationVersion' smart constructor.+data CreateSimulationApplicationVersion = CreateSimulationApplicationVersion'+  { -- | The current revision id for the simulation application. If you provide a+    -- value and it matches the latest revision ID, a new version will be+    -- created.+    currentRevisionId :: Prelude.Maybe Prelude.Text,+    -- | The SHA256 digest used to identify the Docker image URI used to created+    -- the simulation application.+    imageDigest :: Prelude.Maybe Prelude.Text,+    -- | The Amazon S3 eTag identifier for the zip file bundle that you use to+    -- create the simulation application.+    s3Etags :: Prelude.Maybe [Prelude.Text],+    -- | The application information for the simulation application.+    application :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateSimulationApplicationVersion' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'currentRevisionId', 'createSimulationApplicationVersion_currentRevisionId' - The current revision id for the simulation application. If you provide a+-- value and it matches the latest revision ID, a new version will be+-- created.+--+-- 'imageDigest', 'createSimulationApplicationVersion_imageDigest' - The SHA256 digest used to identify the Docker image URI used to created+-- the simulation application.+--+-- 's3Etags', 'createSimulationApplicationVersion_s3Etags' - The Amazon S3 eTag identifier for the zip file bundle that you use to+-- create the simulation application.+--+-- 'application', 'createSimulationApplicationVersion_application' - The application information for the simulation application.+newCreateSimulationApplicationVersion ::+  -- | 'application'+  Prelude.Text ->+  CreateSimulationApplicationVersion+newCreateSimulationApplicationVersion pApplication_ =+  CreateSimulationApplicationVersion'+    { currentRevisionId =+        Prelude.Nothing,+      imageDigest = Prelude.Nothing,+      s3Etags = Prelude.Nothing,+      application = pApplication_+    }++-- | The current revision id for the simulation application. If you provide a+-- value and it matches the latest revision ID, a new version will be+-- created.+createSimulationApplicationVersion_currentRevisionId :: Lens.Lens' CreateSimulationApplicationVersion (Prelude.Maybe Prelude.Text)+createSimulationApplicationVersion_currentRevisionId = Lens.lens (\CreateSimulationApplicationVersion' {currentRevisionId} -> currentRevisionId) (\s@CreateSimulationApplicationVersion' {} a -> s {currentRevisionId = a} :: CreateSimulationApplicationVersion)++-- | The SHA256 digest used to identify the Docker image URI used to created+-- the simulation application.+createSimulationApplicationVersion_imageDigest :: Lens.Lens' CreateSimulationApplicationVersion (Prelude.Maybe Prelude.Text)+createSimulationApplicationVersion_imageDigest = Lens.lens (\CreateSimulationApplicationVersion' {imageDigest} -> imageDigest) (\s@CreateSimulationApplicationVersion' {} a -> s {imageDigest = a} :: CreateSimulationApplicationVersion)++-- | The Amazon S3 eTag identifier for the zip file bundle that you use to+-- create the simulation application.+createSimulationApplicationVersion_s3Etags :: Lens.Lens' CreateSimulationApplicationVersion (Prelude.Maybe [Prelude.Text])+createSimulationApplicationVersion_s3Etags = Lens.lens (\CreateSimulationApplicationVersion' {s3Etags} -> s3Etags) (\s@CreateSimulationApplicationVersion' {} a -> s {s3Etags = a} :: CreateSimulationApplicationVersion) Prelude.. Lens.mapping Lens.coerced++-- | The application information for the simulation application.+createSimulationApplicationVersion_application :: Lens.Lens' CreateSimulationApplicationVersion Prelude.Text+createSimulationApplicationVersion_application = Lens.lens (\CreateSimulationApplicationVersion' {application} -> application) (\s@CreateSimulationApplicationVersion' {} a -> s {application = a} :: CreateSimulationApplicationVersion)++instance+  Core.AWSRequest+    CreateSimulationApplicationVersion+  where+  type+    AWSResponse CreateSimulationApplicationVersion =+      CreateSimulationApplicationVersionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateSimulationApplicationVersionResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "environment")+            Prelude.<*> (x Data..?> "lastUpdatedAt")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (x Data..?> "renderingEngine")+            Prelude.<*> (x Data..?> "revisionId")+            Prelude.<*> (x Data..?> "robotSoftwareSuite")+            Prelude.<*> (x Data..?> "simulationSoftwareSuite")+            Prelude.<*> (x Data..?> "sources" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "version")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    CreateSimulationApplicationVersion+  where+  hashWithSalt+    _salt+    CreateSimulationApplicationVersion' {..} =+      _salt+        `Prelude.hashWithSalt` currentRevisionId+        `Prelude.hashWithSalt` imageDigest+        `Prelude.hashWithSalt` s3Etags+        `Prelude.hashWithSalt` application++instance+  Prelude.NFData+    CreateSimulationApplicationVersion+  where+  rnf CreateSimulationApplicationVersion' {..} =+    Prelude.rnf currentRevisionId+      `Prelude.seq` Prelude.rnf imageDigest+      `Prelude.seq` Prelude.rnf s3Etags+      `Prelude.seq` Prelude.rnf application++instance+  Data.ToHeaders+    CreateSimulationApplicationVersion+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    CreateSimulationApplicationVersion+  where+  toJSON CreateSimulationApplicationVersion' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("currentRevisionId" Data..=)+              Prelude.<$> currentRevisionId,+            ("imageDigest" Data..=) Prelude.<$> imageDigest,+            ("s3Etags" Data..=) Prelude.<$> s3Etags,+            Prelude.Just ("application" Data..= application)+          ]+      )++instance+  Data.ToPath+    CreateSimulationApplicationVersion+  where+  toPath =+    Prelude.const "/createSimulationApplicationVersion"++instance+  Data.ToQuery+    CreateSimulationApplicationVersion+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateSimulationApplicationVersionResponse' smart constructor.+data CreateSimulationApplicationVersionResponse = CreateSimulationApplicationVersionResponse'+  { -- | The Amazon Resource Name (ARN) of the simulation application.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The object that contains the Docker image URI used to create the+    -- simulation application.+    environment :: Prelude.Maybe Environment,+    -- | The time, in milliseconds since the epoch, when the simulation+    -- application was last updated.+    lastUpdatedAt :: Prelude.Maybe Data.POSIX,+    -- | The name of the simulation application.+    name :: Prelude.Maybe Prelude.Text,+    -- | The rendering engine for the simulation application.+    renderingEngine :: Prelude.Maybe RenderingEngine,+    -- | The revision ID of the simulation application.+    revisionId :: Prelude.Maybe Prelude.Text,+    -- | Information about the robot software suite (ROS distribution).+    robotSoftwareSuite :: Prelude.Maybe RobotSoftwareSuite,+    -- | The simulation software suite used by the simulation application.+    simulationSoftwareSuite :: Prelude.Maybe SimulationSoftwareSuite,+    -- | The sources of the simulation application.+    sources :: Prelude.Maybe [Source],+    -- | The version of the simulation application.+    version :: 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 'CreateSimulationApplicationVersionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'createSimulationApplicationVersionResponse_arn' - The Amazon Resource Name (ARN) of the simulation application.+--+-- 'environment', 'createSimulationApplicationVersionResponse_environment' - The object that contains the Docker image URI used to create the+-- simulation application.+--+-- 'lastUpdatedAt', 'createSimulationApplicationVersionResponse_lastUpdatedAt' - The time, in milliseconds since the epoch, when the simulation+-- application was last updated.+--+-- 'name', 'createSimulationApplicationVersionResponse_name' - The name of the simulation application.+--+-- 'renderingEngine', 'createSimulationApplicationVersionResponse_renderingEngine' - The rendering engine for the simulation application.+--+-- 'revisionId', 'createSimulationApplicationVersionResponse_revisionId' - The revision ID of the simulation application.+--+-- 'robotSoftwareSuite', 'createSimulationApplicationVersionResponse_robotSoftwareSuite' - Information about the robot software suite (ROS distribution).+--+-- 'simulationSoftwareSuite', 'createSimulationApplicationVersionResponse_simulationSoftwareSuite' - The simulation software suite used by the simulation application.+--+-- 'sources', 'createSimulationApplicationVersionResponse_sources' - The sources of the simulation application.+--+-- 'version', 'createSimulationApplicationVersionResponse_version' - The version of the simulation application.+--+-- 'httpStatus', 'createSimulationApplicationVersionResponse_httpStatus' - The response's http status code.+newCreateSimulationApplicationVersionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateSimulationApplicationVersionResponse+newCreateSimulationApplicationVersionResponse+  pHttpStatus_ =+    CreateSimulationApplicationVersionResponse'+      { arn =+          Prelude.Nothing,+        environment = Prelude.Nothing,+        lastUpdatedAt = Prelude.Nothing,+        name = Prelude.Nothing,+        renderingEngine =+          Prelude.Nothing,+        revisionId = Prelude.Nothing,+        robotSoftwareSuite =+          Prelude.Nothing,+        simulationSoftwareSuite =+          Prelude.Nothing,+        sources = Prelude.Nothing,+        version = Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | The Amazon Resource Name (ARN) of the simulation application.+createSimulationApplicationVersionResponse_arn :: Lens.Lens' CreateSimulationApplicationVersionResponse (Prelude.Maybe Prelude.Text)+createSimulationApplicationVersionResponse_arn = Lens.lens (\CreateSimulationApplicationVersionResponse' {arn} -> arn) (\s@CreateSimulationApplicationVersionResponse' {} a -> s {arn = a} :: CreateSimulationApplicationVersionResponse)++-- | The object that contains the Docker image URI used to create the+-- simulation application.+createSimulationApplicationVersionResponse_environment :: Lens.Lens' CreateSimulationApplicationVersionResponse (Prelude.Maybe Environment)+createSimulationApplicationVersionResponse_environment = Lens.lens (\CreateSimulationApplicationVersionResponse' {environment} -> environment) (\s@CreateSimulationApplicationVersionResponse' {} a -> s {environment = a} :: CreateSimulationApplicationVersionResponse)++-- | The time, in milliseconds since the epoch, when the simulation+-- application was last updated.+createSimulationApplicationVersionResponse_lastUpdatedAt :: Lens.Lens' CreateSimulationApplicationVersionResponse (Prelude.Maybe Prelude.UTCTime)+createSimulationApplicationVersionResponse_lastUpdatedAt = Lens.lens (\CreateSimulationApplicationVersionResponse' {lastUpdatedAt} -> lastUpdatedAt) (\s@CreateSimulationApplicationVersionResponse' {} a -> s {lastUpdatedAt = a} :: CreateSimulationApplicationVersionResponse) Prelude.. Lens.mapping Data._Time++-- | The name of the simulation application.+createSimulationApplicationVersionResponse_name :: Lens.Lens' CreateSimulationApplicationVersionResponse (Prelude.Maybe Prelude.Text)+createSimulationApplicationVersionResponse_name = Lens.lens (\CreateSimulationApplicationVersionResponse' {name} -> name) (\s@CreateSimulationApplicationVersionResponse' {} a -> s {name = a} :: CreateSimulationApplicationVersionResponse)++-- | The rendering engine for the simulation application.+createSimulationApplicationVersionResponse_renderingEngine :: Lens.Lens' CreateSimulationApplicationVersionResponse (Prelude.Maybe RenderingEngine)+createSimulationApplicationVersionResponse_renderingEngine = Lens.lens (\CreateSimulationApplicationVersionResponse' {renderingEngine} -> renderingEngine) (\s@CreateSimulationApplicationVersionResponse' {} a -> s {renderingEngine = a} :: CreateSimulationApplicationVersionResponse)++-- | The revision ID of the simulation application.+createSimulationApplicationVersionResponse_revisionId :: Lens.Lens' CreateSimulationApplicationVersionResponse (Prelude.Maybe Prelude.Text)+createSimulationApplicationVersionResponse_revisionId = Lens.lens (\CreateSimulationApplicationVersionResponse' {revisionId} -> revisionId) (\s@CreateSimulationApplicationVersionResponse' {} a -> s {revisionId = a} :: CreateSimulationApplicationVersionResponse)++-- | Information about the robot software suite (ROS distribution).+createSimulationApplicationVersionResponse_robotSoftwareSuite :: Lens.Lens' CreateSimulationApplicationVersionResponse (Prelude.Maybe RobotSoftwareSuite)+createSimulationApplicationVersionResponse_robotSoftwareSuite = Lens.lens (\CreateSimulationApplicationVersionResponse' {robotSoftwareSuite} -> robotSoftwareSuite) (\s@CreateSimulationApplicationVersionResponse' {} a -> s {robotSoftwareSuite = a} :: CreateSimulationApplicationVersionResponse)++-- | The simulation software suite used by the simulation application.+createSimulationApplicationVersionResponse_simulationSoftwareSuite :: Lens.Lens' CreateSimulationApplicationVersionResponse (Prelude.Maybe SimulationSoftwareSuite)+createSimulationApplicationVersionResponse_simulationSoftwareSuite = Lens.lens (\CreateSimulationApplicationVersionResponse' {simulationSoftwareSuite} -> simulationSoftwareSuite) (\s@CreateSimulationApplicationVersionResponse' {} a -> s {simulationSoftwareSuite = a} :: CreateSimulationApplicationVersionResponse)++-- | The sources of the simulation application.+createSimulationApplicationVersionResponse_sources :: Lens.Lens' CreateSimulationApplicationVersionResponse (Prelude.Maybe [Source])+createSimulationApplicationVersionResponse_sources = Lens.lens (\CreateSimulationApplicationVersionResponse' {sources} -> sources) (\s@CreateSimulationApplicationVersionResponse' {} a -> s {sources = a} :: CreateSimulationApplicationVersionResponse) Prelude.. Lens.mapping Lens.coerced++-- | The version of the simulation application.+createSimulationApplicationVersionResponse_version :: Lens.Lens' CreateSimulationApplicationVersionResponse (Prelude.Maybe Prelude.Text)+createSimulationApplicationVersionResponse_version = Lens.lens (\CreateSimulationApplicationVersionResponse' {version} -> version) (\s@CreateSimulationApplicationVersionResponse' {} a -> s {version = a} :: CreateSimulationApplicationVersionResponse)++-- | The response's http status code.+createSimulationApplicationVersionResponse_httpStatus :: Lens.Lens' CreateSimulationApplicationVersionResponse Prelude.Int+createSimulationApplicationVersionResponse_httpStatus = Lens.lens (\CreateSimulationApplicationVersionResponse' {httpStatus} -> httpStatus) (\s@CreateSimulationApplicationVersionResponse' {} a -> s {httpStatus = a} :: CreateSimulationApplicationVersionResponse)++instance+  Prelude.NFData+    CreateSimulationApplicationVersionResponse+  where+  rnf CreateSimulationApplicationVersionResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf environment+      `Prelude.seq` Prelude.rnf lastUpdatedAt+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf renderingEngine+      `Prelude.seq` Prelude.rnf revisionId+      `Prelude.seq` Prelude.rnf robotSoftwareSuite+      `Prelude.seq` Prelude.rnf simulationSoftwareSuite+      `Prelude.seq` Prelude.rnf sources+      `Prelude.seq` Prelude.rnf version+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/CreateSimulationJob.hs view
@@ -0,0 +1,747 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.CreateSimulationJob+-- 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 simulation job.+--+-- After 90 days, simulation jobs expire and will be deleted. They will no+-- longer be accessible.+module Amazonka.RobOMaker.CreateSimulationJob+  ( -- * Creating a Request+    CreateSimulationJob (..),+    newCreateSimulationJob,++    -- * Request Lenses+    createSimulationJob_clientRequestToken,+    createSimulationJob_compute,+    createSimulationJob_dataSources,+    createSimulationJob_failureBehavior,+    createSimulationJob_loggingConfig,+    createSimulationJob_outputLocation,+    createSimulationJob_robotApplications,+    createSimulationJob_simulationApplications,+    createSimulationJob_tags,+    createSimulationJob_vpcConfig,+    createSimulationJob_maxJobDurationInSeconds,+    createSimulationJob_iamRole,++    -- * Destructuring the Response+    CreateSimulationJobResponse (..),+    newCreateSimulationJobResponse,++    -- * Response Lenses+    createSimulationJobResponse_arn,+    createSimulationJobResponse_clientRequestToken,+    createSimulationJobResponse_compute,+    createSimulationJobResponse_dataSources,+    createSimulationJobResponse_failureBehavior,+    createSimulationJobResponse_failureCode,+    createSimulationJobResponse_iamRole,+    createSimulationJobResponse_lastStartedAt,+    createSimulationJobResponse_lastUpdatedAt,+    createSimulationJobResponse_loggingConfig,+    createSimulationJobResponse_maxJobDurationInSeconds,+    createSimulationJobResponse_outputLocation,+    createSimulationJobResponse_robotApplications,+    createSimulationJobResponse_simulationApplications,+    createSimulationJobResponse_simulationTimeMillis,+    createSimulationJobResponse_status,+    createSimulationJobResponse_tags,+    createSimulationJobResponse_vpcConfig,+    createSimulationJobResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newCreateSimulationJob' smart constructor.+data CreateSimulationJob = CreateSimulationJob'+  { -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request.+    clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | Compute information for the simulation job.+    compute :: Prelude.Maybe Compute,+    -- | Specify data sources to mount read-only files from S3 into your+    -- simulation. These files are available under+    -- @\/opt\/robomaker\/datasources\/data_source_name@.+    --+    -- There is a limit of 100 files and a combined size of 25GB for all+    -- @DataSourceConfig@ objects.+    dataSources :: Prelude.Maybe (Prelude.NonEmpty DataSourceConfig),+    -- | The failure behavior the simulation job.+    --+    -- [Continue]+    --     Leaves the instance running for its maximum timeout duration after a+    --     @4XX@ error code.+    --+    -- [Fail]+    --     Stop the simulation job and terminate the instance.+    failureBehavior :: Prelude.Maybe FailureBehavior,+    -- | The logging configuration.+    loggingConfig :: Prelude.Maybe LoggingConfig,+    -- | Location for output files generated by the simulation job.+    outputLocation :: Prelude.Maybe OutputLocation,+    -- | The robot application to use in the simulation job.+    robotApplications :: Prelude.Maybe (Prelude.NonEmpty RobotApplicationConfig),+    -- | The simulation application to use in the simulation job.+    simulationApplications :: Prelude.Maybe (Prelude.NonEmpty SimulationApplicationConfig),+    -- | A map that contains tag keys and tag values that are attached to the+    -- simulation job.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | If your simulation job accesses resources in a VPC, you provide this+    -- parameter identifying the list of security group IDs and subnet IDs.+    -- These must belong to the same VPC. You must provide at least one+    -- security group and one subnet ID.+    vpcConfig :: Prelude.Maybe VPCConfig,+    -- | The maximum simulation job duration in seconds (up to 14 days or+    -- 1,209,600 seconds. When @maxJobDurationInSeconds@ is reached, the+    -- simulation job will status will transition to @Completed@.+    maxJobDurationInSeconds :: Prelude.Integer,+    -- | The IAM role name that allows the simulation instance to call the AWS+    -- APIs that are specified in its associated policies on your behalf. This+    -- is how credentials are passed in to your simulation job.+    iamRole :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateSimulationJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientRequestToken', 'createSimulationJob_clientRequestToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+--+-- 'compute', 'createSimulationJob_compute' - Compute information for the simulation job.+--+-- 'dataSources', 'createSimulationJob_dataSources' - Specify data sources to mount read-only files from S3 into your+-- simulation. These files are available under+-- @\/opt\/robomaker\/datasources\/data_source_name@.+--+-- There is a limit of 100 files and a combined size of 25GB for all+-- @DataSourceConfig@ objects.+--+-- 'failureBehavior', 'createSimulationJob_failureBehavior' - The failure behavior the simulation job.+--+-- [Continue]+--     Leaves the instance running for its maximum timeout duration after a+--     @4XX@ error code.+--+-- [Fail]+--     Stop the simulation job and terminate the instance.+--+-- 'loggingConfig', 'createSimulationJob_loggingConfig' - The logging configuration.+--+-- 'outputLocation', 'createSimulationJob_outputLocation' - Location for output files generated by the simulation job.+--+-- 'robotApplications', 'createSimulationJob_robotApplications' - The robot application to use in the simulation job.+--+-- 'simulationApplications', 'createSimulationJob_simulationApplications' - The simulation application to use in the simulation job.+--+-- 'tags', 'createSimulationJob_tags' - A map that contains tag keys and tag values that are attached to the+-- simulation job.+--+-- 'vpcConfig', 'createSimulationJob_vpcConfig' - If your simulation job accesses resources in a VPC, you provide this+-- parameter identifying the list of security group IDs and subnet IDs.+-- These must belong to the same VPC. You must provide at least one+-- security group and one subnet ID.+--+-- 'maxJobDurationInSeconds', 'createSimulationJob_maxJobDurationInSeconds' - The maximum simulation job duration in seconds (up to 14 days or+-- 1,209,600 seconds. When @maxJobDurationInSeconds@ is reached, the+-- simulation job will status will transition to @Completed@.+--+-- 'iamRole', 'createSimulationJob_iamRole' - The IAM role name that allows the simulation instance to call the AWS+-- APIs that are specified in its associated policies on your behalf. This+-- is how credentials are passed in to your simulation job.+newCreateSimulationJob ::+  -- | 'maxJobDurationInSeconds'+  Prelude.Integer ->+  -- | 'iamRole'+  Prelude.Text ->+  CreateSimulationJob+newCreateSimulationJob+  pMaxJobDurationInSeconds_+  pIamRole_ =+    CreateSimulationJob'+      { clientRequestToken =+          Prelude.Nothing,+        compute = Prelude.Nothing,+        dataSources = Prelude.Nothing,+        failureBehavior = Prelude.Nothing,+        loggingConfig = Prelude.Nothing,+        outputLocation = Prelude.Nothing,+        robotApplications = Prelude.Nothing,+        simulationApplications = Prelude.Nothing,+        tags = Prelude.Nothing,+        vpcConfig = Prelude.Nothing,+        maxJobDurationInSeconds = pMaxJobDurationInSeconds_,+        iamRole = pIamRole_+      }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+createSimulationJob_clientRequestToken :: Lens.Lens' CreateSimulationJob (Prelude.Maybe Prelude.Text)+createSimulationJob_clientRequestToken = Lens.lens (\CreateSimulationJob' {clientRequestToken} -> clientRequestToken) (\s@CreateSimulationJob' {} a -> s {clientRequestToken = a} :: CreateSimulationJob)++-- | Compute information for the simulation job.+createSimulationJob_compute :: Lens.Lens' CreateSimulationJob (Prelude.Maybe Compute)+createSimulationJob_compute = Lens.lens (\CreateSimulationJob' {compute} -> compute) (\s@CreateSimulationJob' {} a -> s {compute = a} :: CreateSimulationJob)++-- | Specify data sources to mount read-only files from S3 into your+-- simulation. These files are available under+-- @\/opt\/robomaker\/datasources\/data_source_name@.+--+-- There is a limit of 100 files and a combined size of 25GB for all+-- @DataSourceConfig@ objects.+createSimulationJob_dataSources :: Lens.Lens' CreateSimulationJob (Prelude.Maybe (Prelude.NonEmpty DataSourceConfig))+createSimulationJob_dataSources = Lens.lens (\CreateSimulationJob' {dataSources} -> dataSources) (\s@CreateSimulationJob' {} a -> s {dataSources = a} :: CreateSimulationJob) Prelude.. Lens.mapping Lens.coerced++-- | The failure behavior the simulation job.+--+-- [Continue]+--     Leaves the instance running for its maximum timeout duration after a+--     @4XX@ error code.+--+-- [Fail]+--     Stop the simulation job and terminate the instance.+createSimulationJob_failureBehavior :: Lens.Lens' CreateSimulationJob (Prelude.Maybe FailureBehavior)+createSimulationJob_failureBehavior = Lens.lens (\CreateSimulationJob' {failureBehavior} -> failureBehavior) (\s@CreateSimulationJob' {} a -> s {failureBehavior = a} :: CreateSimulationJob)++-- | The logging configuration.+createSimulationJob_loggingConfig :: Lens.Lens' CreateSimulationJob (Prelude.Maybe LoggingConfig)+createSimulationJob_loggingConfig = Lens.lens (\CreateSimulationJob' {loggingConfig} -> loggingConfig) (\s@CreateSimulationJob' {} a -> s {loggingConfig = a} :: CreateSimulationJob)++-- | Location for output files generated by the simulation job.+createSimulationJob_outputLocation :: Lens.Lens' CreateSimulationJob (Prelude.Maybe OutputLocation)+createSimulationJob_outputLocation = Lens.lens (\CreateSimulationJob' {outputLocation} -> outputLocation) (\s@CreateSimulationJob' {} a -> s {outputLocation = a} :: CreateSimulationJob)++-- | The robot application to use in the simulation job.+createSimulationJob_robotApplications :: Lens.Lens' CreateSimulationJob (Prelude.Maybe (Prelude.NonEmpty RobotApplicationConfig))+createSimulationJob_robotApplications = Lens.lens (\CreateSimulationJob' {robotApplications} -> robotApplications) (\s@CreateSimulationJob' {} a -> s {robotApplications = a} :: CreateSimulationJob) Prelude.. Lens.mapping Lens.coerced++-- | The simulation application to use in the simulation job.+createSimulationJob_simulationApplications :: Lens.Lens' CreateSimulationJob (Prelude.Maybe (Prelude.NonEmpty SimulationApplicationConfig))+createSimulationJob_simulationApplications = Lens.lens (\CreateSimulationJob' {simulationApplications} -> simulationApplications) (\s@CreateSimulationJob' {} a -> s {simulationApplications = a} :: CreateSimulationJob) Prelude.. Lens.mapping Lens.coerced++-- | A map that contains tag keys and tag values that are attached to the+-- simulation job.+createSimulationJob_tags :: Lens.Lens' CreateSimulationJob (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createSimulationJob_tags = Lens.lens (\CreateSimulationJob' {tags} -> tags) (\s@CreateSimulationJob' {} a -> s {tags = a} :: CreateSimulationJob) Prelude.. Lens.mapping Lens.coerced++-- | If your simulation job accesses resources in a VPC, you provide this+-- parameter identifying the list of security group IDs and subnet IDs.+-- These must belong to the same VPC. You must provide at least one+-- security group and one subnet ID.+createSimulationJob_vpcConfig :: Lens.Lens' CreateSimulationJob (Prelude.Maybe VPCConfig)+createSimulationJob_vpcConfig = Lens.lens (\CreateSimulationJob' {vpcConfig} -> vpcConfig) (\s@CreateSimulationJob' {} a -> s {vpcConfig = a} :: CreateSimulationJob)++-- | The maximum simulation job duration in seconds (up to 14 days or+-- 1,209,600 seconds. When @maxJobDurationInSeconds@ is reached, the+-- simulation job will status will transition to @Completed@.+createSimulationJob_maxJobDurationInSeconds :: Lens.Lens' CreateSimulationJob Prelude.Integer+createSimulationJob_maxJobDurationInSeconds = Lens.lens (\CreateSimulationJob' {maxJobDurationInSeconds} -> maxJobDurationInSeconds) (\s@CreateSimulationJob' {} a -> s {maxJobDurationInSeconds = a} :: CreateSimulationJob)++-- | The IAM role name that allows the simulation instance to call the AWS+-- APIs that are specified in its associated policies on your behalf. This+-- is how credentials are passed in to your simulation job.+createSimulationJob_iamRole :: Lens.Lens' CreateSimulationJob Prelude.Text+createSimulationJob_iamRole = Lens.lens (\CreateSimulationJob' {iamRole} -> iamRole) (\s@CreateSimulationJob' {} a -> s {iamRole = a} :: CreateSimulationJob)++instance Core.AWSRequest CreateSimulationJob where+  type+    AWSResponse CreateSimulationJob =+      CreateSimulationJobResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateSimulationJobResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "clientRequestToken")+            Prelude.<*> (x Data..?> "compute")+            Prelude.<*> (x Data..?> "dataSources" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "failureBehavior")+            Prelude.<*> (x Data..?> "failureCode")+            Prelude.<*> (x Data..?> "iamRole")+            Prelude.<*> (x Data..?> "lastStartedAt")+            Prelude.<*> (x Data..?> "lastUpdatedAt")+            Prelude.<*> (x Data..?> "loggingConfig")+            Prelude.<*> (x Data..?> "maxJobDurationInSeconds")+            Prelude.<*> (x Data..?> "outputLocation")+            Prelude.<*> (x Data..?> "robotApplications")+            Prelude.<*> (x Data..?> "simulationApplications")+            Prelude.<*> (x Data..?> "simulationTimeMillis")+            Prelude.<*> (x Data..?> "status")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "vpcConfig")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateSimulationJob where+  hashWithSalt _salt CreateSimulationJob' {..} =+    _salt+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` compute+      `Prelude.hashWithSalt` dataSources+      `Prelude.hashWithSalt` failureBehavior+      `Prelude.hashWithSalt` loggingConfig+      `Prelude.hashWithSalt` outputLocation+      `Prelude.hashWithSalt` robotApplications+      `Prelude.hashWithSalt` simulationApplications+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` vpcConfig+      `Prelude.hashWithSalt` maxJobDurationInSeconds+      `Prelude.hashWithSalt` iamRole++instance Prelude.NFData CreateSimulationJob where+  rnf CreateSimulationJob' {..} =+    Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf compute+      `Prelude.seq` Prelude.rnf dataSources+      `Prelude.seq` Prelude.rnf failureBehavior+      `Prelude.seq` Prelude.rnf loggingConfig+      `Prelude.seq` Prelude.rnf outputLocation+      `Prelude.seq` Prelude.rnf robotApplications+      `Prelude.seq` Prelude.rnf simulationApplications+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf vpcConfig+      `Prelude.seq` Prelude.rnf maxJobDurationInSeconds+      `Prelude.seq` Prelude.rnf iamRole++instance Data.ToHeaders CreateSimulationJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateSimulationJob where+  toJSON CreateSimulationJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("clientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            ("compute" Data..=) Prelude.<$> compute,+            ("dataSources" Data..=) Prelude.<$> dataSources,+            ("failureBehavior" Data..=)+              Prelude.<$> failureBehavior,+            ("loggingConfig" Data..=) Prelude.<$> loggingConfig,+            ("outputLocation" Data..=)+              Prelude.<$> outputLocation,+            ("robotApplications" Data..=)+              Prelude.<$> robotApplications,+            ("simulationApplications" Data..=)+              Prelude.<$> simulationApplications,+            ("tags" Data..=) Prelude.<$> tags,+            ("vpcConfig" Data..=) Prelude.<$> vpcConfig,+            Prelude.Just+              ( "maxJobDurationInSeconds"+                  Data..= maxJobDurationInSeconds+              ),+            Prelude.Just ("iamRole" Data..= iamRole)+          ]+      )++instance Data.ToPath CreateSimulationJob where+  toPath = Prelude.const "/createSimulationJob"++instance Data.ToQuery CreateSimulationJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateSimulationJobResponse' smart constructor.+data CreateSimulationJobResponse = CreateSimulationJobResponse'+  { -- | The Amazon Resource Name (ARN) of the simulation job.+    arn :: Prelude.Maybe Prelude.Text,+    -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request.+    clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | Compute information for the simulation job.+    compute :: Prelude.Maybe ComputeResponse,+    -- | The data sources for the simulation job.+    dataSources :: Prelude.Maybe [DataSource],+    -- | the failure behavior for the simulation job.+    failureBehavior :: Prelude.Maybe FailureBehavior,+    -- | The failure code of the simulation job if it failed:+    --+    -- [InternalServiceError]+    --     Internal service error.+    --+    -- [RobotApplicationCrash]+    --     Robot application exited abnormally.+    --+    -- [SimulationApplicationCrash]+    --     Simulation application exited abnormally.+    --+    -- [BadPermissionsRobotApplication]+    --     Robot application bundle could not be downloaded.+    --+    -- [BadPermissionsSimulationApplication]+    --     Simulation application bundle could not be downloaded.+    --+    -- [BadPermissionsS3Output]+    --     Unable to publish outputs to customer-provided S3 bucket.+    --+    -- [BadPermissionsCloudwatchLogs]+    --     Unable to publish logs to customer-provided CloudWatch Logs+    --     resource.+    --+    -- [SubnetIpLimitExceeded]+    --     Subnet IP limit exceeded.+    --+    -- [ENILimitExceeded]+    --     ENI limit exceeded.+    --+    -- [BadPermissionsUserCredentials]+    --     Unable to use the Role provided.+    --+    -- [InvalidBundleRobotApplication]+    --     Robot bundle cannot be extracted (invalid format, bundling error, or+    --     other issue).+    --+    -- [InvalidBundleSimulationApplication]+    --     Simulation bundle cannot be extracted (invalid format, bundling+    --     error, or other issue).+    --+    -- [RobotApplicationVersionMismatchedEtag]+    --     Etag for RobotApplication does not match value during version+    --     creation.+    --+    -- [SimulationApplicationVersionMismatchedEtag]+    --     Etag for SimulationApplication does not match value during version+    --     creation.+    failureCode :: Prelude.Maybe SimulationJobErrorCode,+    -- | The IAM role that allows the simulation job to call the AWS APIs that+    -- are specified in its associated policies on your behalf.+    iamRole :: Prelude.Maybe Prelude.Text,+    -- | The time, in milliseconds since the epoch, when the simulation job was+    -- last started.+    lastStartedAt :: Prelude.Maybe Data.POSIX,+    -- | The time, in milliseconds since the epoch, when the simulation job was+    -- last updated.+    lastUpdatedAt :: Prelude.Maybe Data.POSIX,+    -- | The logging configuration.+    loggingConfig :: Prelude.Maybe LoggingConfig,+    -- | The maximum simulation job duration in seconds.+    maxJobDurationInSeconds :: Prelude.Maybe Prelude.Integer,+    -- | Simulation job output files location.+    outputLocation :: Prelude.Maybe OutputLocation,+    -- | The robot application used by the simulation job.+    robotApplications :: Prelude.Maybe (Prelude.NonEmpty RobotApplicationConfig),+    -- | The simulation application used by the simulation job.+    simulationApplications :: Prelude.Maybe (Prelude.NonEmpty SimulationApplicationConfig),+    -- | The simulation job execution duration in milliseconds.+    simulationTimeMillis :: Prelude.Maybe Prelude.Integer,+    -- | The status of the simulation job.+    status :: Prelude.Maybe SimulationJobStatus,+    -- | The list of all tags added to the simulation job.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Information about the vpc configuration.+    vpcConfig :: Prelude.Maybe VPCConfigResponse,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateSimulationJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'createSimulationJobResponse_arn' - The Amazon Resource Name (ARN) of the simulation job.+--+-- 'clientRequestToken', 'createSimulationJobResponse_clientRequestToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+--+-- 'compute', 'createSimulationJobResponse_compute' - Compute information for the simulation job.+--+-- 'dataSources', 'createSimulationJobResponse_dataSources' - The data sources for the simulation job.+--+-- 'failureBehavior', 'createSimulationJobResponse_failureBehavior' - the failure behavior for the simulation job.+--+-- 'failureCode', 'createSimulationJobResponse_failureCode' - The failure code of the simulation job if it failed:+--+-- [InternalServiceError]+--     Internal service error.+--+-- [RobotApplicationCrash]+--     Robot application exited abnormally.+--+-- [SimulationApplicationCrash]+--     Simulation application exited abnormally.+--+-- [BadPermissionsRobotApplication]+--     Robot application bundle could not be downloaded.+--+-- [BadPermissionsSimulationApplication]+--     Simulation application bundle could not be downloaded.+--+-- [BadPermissionsS3Output]+--     Unable to publish outputs to customer-provided S3 bucket.+--+-- [BadPermissionsCloudwatchLogs]+--     Unable to publish logs to customer-provided CloudWatch Logs+--     resource.+--+-- [SubnetIpLimitExceeded]+--     Subnet IP limit exceeded.+--+-- [ENILimitExceeded]+--     ENI limit exceeded.+--+-- [BadPermissionsUserCredentials]+--     Unable to use the Role provided.+--+-- [InvalidBundleRobotApplication]+--     Robot bundle cannot be extracted (invalid format, bundling error, or+--     other issue).+--+-- [InvalidBundleSimulationApplication]+--     Simulation bundle cannot be extracted (invalid format, bundling+--     error, or other issue).+--+-- [RobotApplicationVersionMismatchedEtag]+--     Etag for RobotApplication does not match value during version+--     creation.+--+-- [SimulationApplicationVersionMismatchedEtag]+--     Etag for SimulationApplication does not match value during version+--     creation.+--+-- 'iamRole', 'createSimulationJobResponse_iamRole' - The IAM role that allows the simulation job to call the AWS APIs that+-- are specified in its associated policies on your behalf.+--+-- 'lastStartedAt', 'createSimulationJobResponse_lastStartedAt' - The time, in milliseconds since the epoch, when the simulation job was+-- last started.+--+-- 'lastUpdatedAt', 'createSimulationJobResponse_lastUpdatedAt' - The time, in milliseconds since the epoch, when the simulation job was+-- last updated.+--+-- 'loggingConfig', 'createSimulationJobResponse_loggingConfig' - The logging configuration.+--+-- 'maxJobDurationInSeconds', 'createSimulationJobResponse_maxJobDurationInSeconds' - The maximum simulation job duration in seconds.+--+-- 'outputLocation', 'createSimulationJobResponse_outputLocation' - Simulation job output files location.+--+-- 'robotApplications', 'createSimulationJobResponse_robotApplications' - The robot application used by the simulation job.+--+-- 'simulationApplications', 'createSimulationJobResponse_simulationApplications' - The simulation application used by the simulation job.+--+-- 'simulationTimeMillis', 'createSimulationJobResponse_simulationTimeMillis' - The simulation job execution duration in milliseconds.+--+-- 'status', 'createSimulationJobResponse_status' - The status of the simulation job.+--+-- 'tags', 'createSimulationJobResponse_tags' - The list of all tags added to the simulation job.+--+-- 'vpcConfig', 'createSimulationJobResponse_vpcConfig' - Information about the vpc configuration.+--+-- 'httpStatus', 'createSimulationJobResponse_httpStatus' - The response's http status code.+newCreateSimulationJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateSimulationJobResponse+newCreateSimulationJobResponse pHttpStatus_ =+  CreateSimulationJobResponse'+    { arn = Prelude.Nothing,+      clientRequestToken = Prelude.Nothing,+      compute = Prelude.Nothing,+      dataSources = Prelude.Nothing,+      failureBehavior = Prelude.Nothing,+      failureCode = Prelude.Nothing,+      iamRole = Prelude.Nothing,+      lastStartedAt = Prelude.Nothing,+      lastUpdatedAt = Prelude.Nothing,+      loggingConfig = Prelude.Nothing,+      maxJobDurationInSeconds = Prelude.Nothing,+      outputLocation = Prelude.Nothing,+      robotApplications = Prelude.Nothing,+      simulationApplications = Prelude.Nothing,+      simulationTimeMillis = Prelude.Nothing,+      status = Prelude.Nothing,+      tags = Prelude.Nothing,+      vpcConfig = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the simulation job.+createSimulationJobResponse_arn :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe Prelude.Text)+createSimulationJobResponse_arn = Lens.lens (\CreateSimulationJobResponse' {arn} -> arn) (\s@CreateSimulationJobResponse' {} a -> s {arn = a} :: CreateSimulationJobResponse)++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+createSimulationJobResponse_clientRequestToken :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe Prelude.Text)+createSimulationJobResponse_clientRequestToken = Lens.lens (\CreateSimulationJobResponse' {clientRequestToken} -> clientRequestToken) (\s@CreateSimulationJobResponse' {} a -> s {clientRequestToken = a} :: CreateSimulationJobResponse)++-- | Compute information for the simulation job.+createSimulationJobResponse_compute :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe ComputeResponse)+createSimulationJobResponse_compute = Lens.lens (\CreateSimulationJobResponse' {compute} -> compute) (\s@CreateSimulationJobResponse' {} a -> s {compute = a} :: CreateSimulationJobResponse)++-- | The data sources for the simulation job.+createSimulationJobResponse_dataSources :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe [DataSource])+createSimulationJobResponse_dataSources = Lens.lens (\CreateSimulationJobResponse' {dataSources} -> dataSources) (\s@CreateSimulationJobResponse' {} a -> s {dataSources = a} :: CreateSimulationJobResponse) Prelude.. Lens.mapping Lens.coerced++-- | the failure behavior for the simulation job.+createSimulationJobResponse_failureBehavior :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe FailureBehavior)+createSimulationJobResponse_failureBehavior = Lens.lens (\CreateSimulationJobResponse' {failureBehavior} -> failureBehavior) (\s@CreateSimulationJobResponse' {} a -> s {failureBehavior = a} :: CreateSimulationJobResponse)++-- | The failure code of the simulation job if it failed:+--+-- [InternalServiceError]+--     Internal service error.+--+-- [RobotApplicationCrash]+--     Robot application exited abnormally.+--+-- [SimulationApplicationCrash]+--     Simulation application exited abnormally.+--+-- [BadPermissionsRobotApplication]+--     Robot application bundle could not be downloaded.+--+-- [BadPermissionsSimulationApplication]+--     Simulation application bundle could not be downloaded.+--+-- [BadPermissionsS3Output]+--     Unable to publish outputs to customer-provided S3 bucket.+--+-- [BadPermissionsCloudwatchLogs]+--     Unable to publish logs to customer-provided CloudWatch Logs+--     resource.+--+-- [SubnetIpLimitExceeded]+--     Subnet IP limit exceeded.+--+-- [ENILimitExceeded]+--     ENI limit exceeded.+--+-- [BadPermissionsUserCredentials]+--     Unable to use the Role provided.+--+-- [InvalidBundleRobotApplication]+--     Robot bundle cannot be extracted (invalid format, bundling error, or+--     other issue).+--+-- [InvalidBundleSimulationApplication]+--     Simulation bundle cannot be extracted (invalid format, bundling+--     error, or other issue).+--+-- [RobotApplicationVersionMismatchedEtag]+--     Etag for RobotApplication does not match value during version+--     creation.+--+-- [SimulationApplicationVersionMismatchedEtag]+--     Etag for SimulationApplication does not match value during version+--     creation.+createSimulationJobResponse_failureCode :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe SimulationJobErrorCode)+createSimulationJobResponse_failureCode = Lens.lens (\CreateSimulationJobResponse' {failureCode} -> failureCode) (\s@CreateSimulationJobResponse' {} a -> s {failureCode = a} :: CreateSimulationJobResponse)++-- | The IAM role that allows the simulation job to call the AWS APIs that+-- are specified in its associated policies on your behalf.+createSimulationJobResponse_iamRole :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe Prelude.Text)+createSimulationJobResponse_iamRole = Lens.lens (\CreateSimulationJobResponse' {iamRole} -> iamRole) (\s@CreateSimulationJobResponse' {} a -> s {iamRole = a} :: CreateSimulationJobResponse)++-- | The time, in milliseconds since the epoch, when the simulation job was+-- last started.+createSimulationJobResponse_lastStartedAt :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe Prelude.UTCTime)+createSimulationJobResponse_lastStartedAt = Lens.lens (\CreateSimulationJobResponse' {lastStartedAt} -> lastStartedAt) (\s@CreateSimulationJobResponse' {} a -> s {lastStartedAt = a} :: CreateSimulationJobResponse) Prelude.. Lens.mapping Data._Time++-- | The time, in milliseconds since the epoch, when the simulation job was+-- last updated.+createSimulationJobResponse_lastUpdatedAt :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe Prelude.UTCTime)+createSimulationJobResponse_lastUpdatedAt = Lens.lens (\CreateSimulationJobResponse' {lastUpdatedAt} -> lastUpdatedAt) (\s@CreateSimulationJobResponse' {} a -> s {lastUpdatedAt = a} :: CreateSimulationJobResponse) Prelude.. Lens.mapping Data._Time++-- | The logging configuration.+createSimulationJobResponse_loggingConfig :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe LoggingConfig)+createSimulationJobResponse_loggingConfig = Lens.lens (\CreateSimulationJobResponse' {loggingConfig} -> loggingConfig) (\s@CreateSimulationJobResponse' {} a -> s {loggingConfig = a} :: CreateSimulationJobResponse)++-- | The maximum simulation job duration in seconds.+createSimulationJobResponse_maxJobDurationInSeconds :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe Prelude.Integer)+createSimulationJobResponse_maxJobDurationInSeconds = Lens.lens (\CreateSimulationJobResponse' {maxJobDurationInSeconds} -> maxJobDurationInSeconds) (\s@CreateSimulationJobResponse' {} a -> s {maxJobDurationInSeconds = a} :: CreateSimulationJobResponse)++-- | Simulation job output files location.+createSimulationJobResponse_outputLocation :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe OutputLocation)+createSimulationJobResponse_outputLocation = Lens.lens (\CreateSimulationJobResponse' {outputLocation} -> outputLocation) (\s@CreateSimulationJobResponse' {} a -> s {outputLocation = a} :: CreateSimulationJobResponse)++-- | The robot application used by the simulation job.+createSimulationJobResponse_robotApplications :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe (Prelude.NonEmpty RobotApplicationConfig))+createSimulationJobResponse_robotApplications = Lens.lens (\CreateSimulationJobResponse' {robotApplications} -> robotApplications) (\s@CreateSimulationJobResponse' {} a -> s {robotApplications = a} :: CreateSimulationJobResponse) Prelude.. Lens.mapping Lens.coerced++-- | The simulation application used by the simulation job.+createSimulationJobResponse_simulationApplications :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe (Prelude.NonEmpty SimulationApplicationConfig))+createSimulationJobResponse_simulationApplications = Lens.lens (\CreateSimulationJobResponse' {simulationApplications} -> simulationApplications) (\s@CreateSimulationJobResponse' {} a -> s {simulationApplications = a} :: CreateSimulationJobResponse) Prelude.. Lens.mapping Lens.coerced++-- | The simulation job execution duration in milliseconds.+createSimulationJobResponse_simulationTimeMillis :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe Prelude.Integer)+createSimulationJobResponse_simulationTimeMillis = Lens.lens (\CreateSimulationJobResponse' {simulationTimeMillis} -> simulationTimeMillis) (\s@CreateSimulationJobResponse' {} a -> s {simulationTimeMillis = a} :: CreateSimulationJobResponse)++-- | The status of the simulation job.+createSimulationJobResponse_status :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe SimulationJobStatus)+createSimulationJobResponse_status = Lens.lens (\CreateSimulationJobResponse' {status} -> status) (\s@CreateSimulationJobResponse' {} a -> s {status = a} :: CreateSimulationJobResponse)++-- | The list of all tags added to the simulation job.+createSimulationJobResponse_tags :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createSimulationJobResponse_tags = Lens.lens (\CreateSimulationJobResponse' {tags} -> tags) (\s@CreateSimulationJobResponse' {} a -> s {tags = a} :: CreateSimulationJobResponse) Prelude.. Lens.mapping Lens.coerced++-- | Information about the vpc configuration.+createSimulationJobResponse_vpcConfig :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe VPCConfigResponse)+createSimulationJobResponse_vpcConfig = Lens.lens (\CreateSimulationJobResponse' {vpcConfig} -> vpcConfig) (\s@CreateSimulationJobResponse' {} a -> s {vpcConfig = a} :: CreateSimulationJobResponse)++-- | The response's http status code.+createSimulationJobResponse_httpStatus :: Lens.Lens' CreateSimulationJobResponse Prelude.Int+createSimulationJobResponse_httpStatus = Lens.lens (\CreateSimulationJobResponse' {httpStatus} -> httpStatus) (\s@CreateSimulationJobResponse' {} a -> s {httpStatus = a} :: CreateSimulationJobResponse)++instance Prelude.NFData CreateSimulationJobResponse where+  rnf CreateSimulationJobResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf compute+      `Prelude.seq` Prelude.rnf dataSources+      `Prelude.seq` Prelude.rnf failureBehavior+      `Prelude.seq` Prelude.rnf failureCode+      `Prelude.seq` Prelude.rnf iamRole+      `Prelude.seq` Prelude.rnf lastStartedAt+      `Prelude.seq` Prelude.rnf lastUpdatedAt+      `Prelude.seq` Prelude.rnf loggingConfig+      `Prelude.seq` Prelude.rnf maxJobDurationInSeconds+      `Prelude.seq` Prelude.rnf outputLocation+      `Prelude.seq` Prelude.rnf robotApplications+      `Prelude.seq` Prelude.rnf simulationApplications+      `Prelude.seq` Prelude.rnf simulationTimeMillis+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf vpcConfig+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/CreateWorldExportJob.hs view
@@ -0,0 +1,463 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.CreateWorldExportJob+-- 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 world export job.+module Amazonka.RobOMaker.CreateWorldExportJob+  ( -- * Creating a Request+    CreateWorldExportJob (..),+    newCreateWorldExportJob,++    -- * Request Lenses+    createWorldExportJob_clientRequestToken,+    createWorldExportJob_tags,+    createWorldExportJob_worlds,+    createWorldExportJob_outputLocation,+    createWorldExportJob_iamRole,++    -- * Destructuring the Response+    CreateWorldExportJobResponse (..),+    newCreateWorldExportJobResponse,++    -- * Response Lenses+    createWorldExportJobResponse_arn,+    createWorldExportJobResponse_clientRequestToken,+    createWorldExportJobResponse_createdAt,+    createWorldExportJobResponse_failureCode,+    createWorldExportJobResponse_iamRole,+    createWorldExportJobResponse_outputLocation,+    createWorldExportJobResponse_status,+    createWorldExportJobResponse_tags,+    createWorldExportJobResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newCreateWorldExportJob' smart constructor.+data CreateWorldExportJob = CreateWorldExportJob'+  { -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request.+    clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | A map that contains tag keys and tag values that are attached to the+    -- world export job.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | A list of Amazon Resource Names (arns) that correspond to worlds to+    -- export.+    worlds :: Prelude.NonEmpty Prelude.Text,+    outputLocation :: OutputLocation,+    -- | The IAM role that the world export process uses to access the Amazon S3+    -- bucket and put the export.+    iamRole :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateWorldExportJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientRequestToken', 'createWorldExportJob_clientRequestToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+--+-- 'tags', 'createWorldExportJob_tags' - A map that contains tag keys and tag values that are attached to the+-- world export job.+--+-- 'worlds', 'createWorldExportJob_worlds' - A list of Amazon Resource Names (arns) that correspond to worlds to+-- export.+--+-- 'outputLocation', 'createWorldExportJob_outputLocation' - Undocumented member.+--+-- 'iamRole', 'createWorldExportJob_iamRole' - The IAM role that the world export process uses to access the Amazon S3+-- bucket and put the export.+newCreateWorldExportJob ::+  -- | 'worlds'+  Prelude.NonEmpty Prelude.Text ->+  -- | 'outputLocation'+  OutputLocation ->+  -- | 'iamRole'+  Prelude.Text ->+  CreateWorldExportJob+newCreateWorldExportJob+  pWorlds_+  pOutputLocation_+  pIamRole_ =+    CreateWorldExportJob'+      { clientRequestToken =+          Prelude.Nothing,+        tags = Prelude.Nothing,+        worlds = Lens.coerced Lens.# pWorlds_,+        outputLocation = pOutputLocation_,+        iamRole = pIamRole_+      }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+createWorldExportJob_clientRequestToken :: Lens.Lens' CreateWorldExportJob (Prelude.Maybe Prelude.Text)+createWorldExportJob_clientRequestToken = Lens.lens (\CreateWorldExportJob' {clientRequestToken} -> clientRequestToken) (\s@CreateWorldExportJob' {} a -> s {clientRequestToken = a} :: CreateWorldExportJob)++-- | A map that contains tag keys and tag values that are attached to the+-- world export job.+createWorldExportJob_tags :: Lens.Lens' CreateWorldExportJob (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createWorldExportJob_tags = Lens.lens (\CreateWorldExportJob' {tags} -> tags) (\s@CreateWorldExportJob' {} a -> s {tags = a} :: CreateWorldExportJob) Prelude.. Lens.mapping Lens.coerced++-- | A list of Amazon Resource Names (arns) that correspond to worlds to+-- export.+createWorldExportJob_worlds :: Lens.Lens' CreateWorldExportJob (Prelude.NonEmpty Prelude.Text)+createWorldExportJob_worlds = Lens.lens (\CreateWorldExportJob' {worlds} -> worlds) (\s@CreateWorldExportJob' {} a -> s {worlds = a} :: CreateWorldExportJob) Prelude.. Lens.coerced++-- | Undocumented member.+createWorldExportJob_outputLocation :: Lens.Lens' CreateWorldExportJob OutputLocation+createWorldExportJob_outputLocation = Lens.lens (\CreateWorldExportJob' {outputLocation} -> outputLocation) (\s@CreateWorldExportJob' {} a -> s {outputLocation = a} :: CreateWorldExportJob)++-- | The IAM role that the world export process uses to access the Amazon S3+-- bucket and put the export.+createWorldExportJob_iamRole :: Lens.Lens' CreateWorldExportJob Prelude.Text+createWorldExportJob_iamRole = Lens.lens (\CreateWorldExportJob' {iamRole} -> iamRole) (\s@CreateWorldExportJob' {} a -> s {iamRole = a} :: CreateWorldExportJob)++instance Core.AWSRequest CreateWorldExportJob where+  type+    AWSResponse CreateWorldExportJob =+      CreateWorldExportJobResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateWorldExportJobResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "clientRequestToken")+            Prelude.<*> (x Data..?> "createdAt")+            Prelude.<*> (x Data..?> "failureCode")+            Prelude.<*> (x Data..?> "iamRole")+            Prelude.<*> (x Data..?> "outputLocation")+            Prelude.<*> (x Data..?> "status")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateWorldExportJob where+  hashWithSalt _salt CreateWorldExportJob' {..} =+    _salt+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` worlds+      `Prelude.hashWithSalt` outputLocation+      `Prelude.hashWithSalt` iamRole++instance Prelude.NFData CreateWorldExportJob where+  rnf CreateWorldExportJob' {..} =+    Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf worlds+      `Prelude.seq` Prelude.rnf outputLocation+      `Prelude.seq` Prelude.rnf iamRole++instance Data.ToHeaders CreateWorldExportJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateWorldExportJob where+  toJSON CreateWorldExportJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("clientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("worlds" Data..= worlds),+            Prelude.Just+              ("outputLocation" Data..= outputLocation),+            Prelude.Just ("iamRole" Data..= iamRole)+          ]+      )++instance Data.ToPath CreateWorldExportJob where+  toPath = Prelude.const "/createWorldExportJob"++instance Data.ToQuery CreateWorldExportJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateWorldExportJobResponse' smart constructor.+data CreateWorldExportJobResponse = CreateWorldExportJobResponse'+  { -- | The Amazon Resource Name (ARN) of the world export job.+    arn :: Prelude.Maybe Prelude.Text,+    -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request.+    clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | The time, in milliseconds since the epoch, when the world export job was+    -- created.+    createdAt :: Prelude.Maybe Data.POSIX,+    -- | The failure code of the world export job if it failed:+    --+    -- [InternalServiceError]+    --     Internal service error.+    --+    -- [LimitExceeded]+    --     The requested resource exceeds the maximum number allowed, or the+    --     number of concurrent stream requests exceeds the maximum number+    --     allowed.+    --+    -- [ResourceNotFound]+    --     The specified resource could not be found.+    --+    -- [RequestThrottled]+    --     The request was throttled.+    --+    -- [InvalidInput]+    --     An input parameter in the request is not valid.+    --+    -- [AllWorldGenerationFailed]+    --     All of the worlds in the world generation job failed. This can+    --     happen if your @worldCount@ is greater than 50 or less than 1.+    --+    -- For more information about troubleshooting WorldForge, see+    -- <https://docs.aws.amazon.com/robomaker/latest/dg/troubleshooting-worldforge.html Troubleshooting Simulation WorldForge>.+    failureCode :: Prelude.Maybe WorldExportJobErrorCode,+    -- | The IAM role that the world export process uses to access the Amazon S3+    -- bucket and put the export.+    iamRole :: Prelude.Maybe Prelude.Text,+    outputLocation :: Prelude.Maybe OutputLocation,+    -- | The status of the world export job.+    --+    -- [Pending]+    --     The world export job request is pending.+    --+    -- [Running]+    --     The world export job is running.+    --+    -- [Completed]+    --     The world export job completed.+    --+    -- [Failed]+    --     The world export job failed. See @failureCode@ for more information.+    --+    -- [Canceled]+    --     The world export job was cancelled.+    --+    -- [Canceling]+    --     The world export job is being cancelled.+    status :: Prelude.Maybe WorldExportJobStatus,+    -- | A map that contains tag keys and tag values that are attached to the+    -- world export job.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateWorldExportJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'createWorldExportJobResponse_arn' - The Amazon Resource Name (ARN) of the world export job.+--+-- 'clientRequestToken', 'createWorldExportJobResponse_clientRequestToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+--+-- 'createdAt', 'createWorldExportJobResponse_createdAt' - The time, in milliseconds since the epoch, when the world export job was+-- created.+--+-- 'failureCode', 'createWorldExportJobResponse_failureCode' - The failure code of the world export job if it failed:+--+-- [InternalServiceError]+--     Internal service error.+--+-- [LimitExceeded]+--     The requested resource exceeds the maximum number allowed, or the+--     number of concurrent stream requests exceeds the maximum number+--     allowed.+--+-- [ResourceNotFound]+--     The specified resource could not be found.+--+-- [RequestThrottled]+--     The request was throttled.+--+-- [InvalidInput]+--     An input parameter in the request is not valid.+--+-- [AllWorldGenerationFailed]+--     All of the worlds in the world generation job failed. This can+--     happen if your @worldCount@ is greater than 50 or less than 1.+--+-- For more information about troubleshooting WorldForge, see+-- <https://docs.aws.amazon.com/robomaker/latest/dg/troubleshooting-worldforge.html Troubleshooting Simulation WorldForge>.+--+-- 'iamRole', 'createWorldExportJobResponse_iamRole' - The IAM role that the world export process uses to access the Amazon S3+-- bucket and put the export.+--+-- 'outputLocation', 'createWorldExportJobResponse_outputLocation' - Undocumented member.+--+-- 'status', 'createWorldExportJobResponse_status' - The status of the world export job.+--+-- [Pending]+--     The world export job request is pending.+--+-- [Running]+--     The world export job is running.+--+-- [Completed]+--     The world export job completed.+--+-- [Failed]+--     The world export job failed. See @failureCode@ for more information.+--+-- [Canceled]+--     The world export job was cancelled.+--+-- [Canceling]+--     The world export job is being cancelled.+--+-- 'tags', 'createWorldExportJobResponse_tags' - A map that contains tag keys and tag values that are attached to the+-- world export job.+--+-- 'httpStatus', 'createWorldExportJobResponse_httpStatus' - The response's http status code.+newCreateWorldExportJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateWorldExportJobResponse+newCreateWorldExportJobResponse pHttpStatus_ =+  CreateWorldExportJobResponse'+    { arn =+        Prelude.Nothing,+      clientRequestToken = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      failureCode = Prelude.Nothing,+      iamRole = Prelude.Nothing,+      outputLocation = Prelude.Nothing,+      status = Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the world export job.+createWorldExportJobResponse_arn :: Lens.Lens' CreateWorldExportJobResponse (Prelude.Maybe Prelude.Text)+createWorldExportJobResponse_arn = Lens.lens (\CreateWorldExportJobResponse' {arn} -> arn) (\s@CreateWorldExportJobResponse' {} a -> s {arn = a} :: CreateWorldExportJobResponse)++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+createWorldExportJobResponse_clientRequestToken :: Lens.Lens' CreateWorldExportJobResponse (Prelude.Maybe Prelude.Text)+createWorldExportJobResponse_clientRequestToken = Lens.lens (\CreateWorldExportJobResponse' {clientRequestToken} -> clientRequestToken) (\s@CreateWorldExportJobResponse' {} a -> s {clientRequestToken = a} :: CreateWorldExportJobResponse)++-- | The time, in milliseconds since the epoch, when the world export job was+-- created.+createWorldExportJobResponse_createdAt :: Lens.Lens' CreateWorldExportJobResponse (Prelude.Maybe Prelude.UTCTime)+createWorldExportJobResponse_createdAt = Lens.lens (\CreateWorldExportJobResponse' {createdAt} -> createdAt) (\s@CreateWorldExportJobResponse' {} a -> s {createdAt = a} :: CreateWorldExportJobResponse) Prelude.. Lens.mapping Data._Time++-- | The failure code of the world export job if it failed:+--+-- [InternalServiceError]+--     Internal service error.+--+-- [LimitExceeded]+--     The requested resource exceeds the maximum number allowed, or the+--     number of concurrent stream requests exceeds the maximum number+--     allowed.+--+-- [ResourceNotFound]+--     The specified resource could not be found.+--+-- [RequestThrottled]+--     The request was throttled.+--+-- [InvalidInput]+--     An input parameter in the request is not valid.+--+-- [AllWorldGenerationFailed]+--     All of the worlds in the world generation job failed. This can+--     happen if your @worldCount@ is greater than 50 or less than 1.+--+-- For more information about troubleshooting WorldForge, see+-- <https://docs.aws.amazon.com/robomaker/latest/dg/troubleshooting-worldforge.html Troubleshooting Simulation WorldForge>.+createWorldExportJobResponse_failureCode :: Lens.Lens' CreateWorldExportJobResponse (Prelude.Maybe WorldExportJobErrorCode)+createWorldExportJobResponse_failureCode = Lens.lens (\CreateWorldExportJobResponse' {failureCode} -> failureCode) (\s@CreateWorldExportJobResponse' {} a -> s {failureCode = a} :: CreateWorldExportJobResponse)++-- | The IAM role that the world export process uses to access the Amazon S3+-- bucket and put the export.+createWorldExportJobResponse_iamRole :: Lens.Lens' CreateWorldExportJobResponse (Prelude.Maybe Prelude.Text)+createWorldExportJobResponse_iamRole = Lens.lens (\CreateWorldExportJobResponse' {iamRole} -> iamRole) (\s@CreateWorldExportJobResponse' {} a -> s {iamRole = a} :: CreateWorldExportJobResponse)++-- | Undocumented member.+createWorldExportJobResponse_outputLocation :: Lens.Lens' CreateWorldExportJobResponse (Prelude.Maybe OutputLocation)+createWorldExportJobResponse_outputLocation = Lens.lens (\CreateWorldExportJobResponse' {outputLocation} -> outputLocation) (\s@CreateWorldExportJobResponse' {} a -> s {outputLocation = a} :: CreateWorldExportJobResponse)++-- | The status of the world export job.+--+-- [Pending]+--     The world export job request is pending.+--+-- [Running]+--     The world export job is running.+--+-- [Completed]+--     The world export job completed.+--+-- [Failed]+--     The world export job failed. See @failureCode@ for more information.+--+-- [Canceled]+--     The world export job was cancelled.+--+-- [Canceling]+--     The world export job is being cancelled.+createWorldExportJobResponse_status :: Lens.Lens' CreateWorldExportJobResponse (Prelude.Maybe WorldExportJobStatus)+createWorldExportJobResponse_status = Lens.lens (\CreateWorldExportJobResponse' {status} -> status) (\s@CreateWorldExportJobResponse' {} a -> s {status = a} :: CreateWorldExportJobResponse)++-- | A map that contains tag keys and tag values that are attached to the+-- world export job.+createWorldExportJobResponse_tags :: Lens.Lens' CreateWorldExportJobResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createWorldExportJobResponse_tags = Lens.lens (\CreateWorldExportJobResponse' {tags} -> tags) (\s@CreateWorldExportJobResponse' {} a -> s {tags = a} :: CreateWorldExportJobResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+createWorldExportJobResponse_httpStatus :: Lens.Lens' CreateWorldExportJobResponse Prelude.Int+createWorldExportJobResponse_httpStatus = Lens.lens (\CreateWorldExportJobResponse' {httpStatus} -> httpStatus) (\s@CreateWorldExportJobResponse' {} a -> s {httpStatus = a} :: CreateWorldExportJobResponse)++instance Prelude.NFData CreateWorldExportJobResponse where+  rnf CreateWorldExportJobResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf failureCode+      `Prelude.seq` Prelude.rnf iamRole+      `Prelude.seq` Prelude.rnf outputLocation+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/CreateWorldGenerationJob.hs view
@@ -0,0 +1,465 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.CreateWorldGenerationJob+-- 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 worlds using the specified template.+module Amazonka.RobOMaker.CreateWorldGenerationJob+  ( -- * Creating a Request+    CreateWorldGenerationJob (..),+    newCreateWorldGenerationJob,++    -- * Request Lenses+    createWorldGenerationJob_clientRequestToken,+    createWorldGenerationJob_tags,+    createWorldGenerationJob_worldTags,+    createWorldGenerationJob_template,+    createWorldGenerationJob_worldCount,++    -- * Destructuring the Response+    CreateWorldGenerationJobResponse (..),+    newCreateWorldGenerationJobResponse,++    -- * Response Lenses+    createWorldGenerationJobResponse_arn,+    createWorldGenerationJobResponse_clientRequestToken,+    createWorldGenerationJobResponse_createdAt,+    createWorldGenerationJobResponse_failureCode,+    createWorldGenerationJobResponse_status,+    createWorldGenerationJobResponse_tags,+    createWorldGenerationJobResponse_template,+    createWorldGenerationJobResponse_worldCount,+    createWorldGenerationJobResponse_worldTags,+    createWorldGenerationJobResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newCreateWorldGenerationJob' smart constructor.+data CreateWorldGenerationJob = CreateWorldGenerationJob'+  { -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request.+    clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | A map that contains tag keys and tag values that are attached to the+    -- world generator job.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | A map that contains tag keys and tag values that are attached to the+    -- generated worlds.+    worldTags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The Amazon Resource Name (arn) of the world template describing the+    -- worlds you want to create.+    template :: Prelude.Text,+    -- | Information about the world count.+    worldCount :: WorldCount+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateWorldGenerationJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientRequestToken', 'createWorldGenerationJob_clientRequestToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+--+-- 'tags', 'createWorldGenerationJob_tags' - A map that contains tag keys and tag values that are attached to the+-- world generator job.+--+-- 'worldTags', 'createWorldGenerationJob_worldTags' - A map that contains tag keys and tag values that are attached to the+-- generated worlds.+--+-- 'template', 'createWorldGenerationJob_template' - The Amazon Resource Name (arn) of the world template describing the+-- worlds you want to create.+--+-- 'worldCount', 'createWorldGenerationJob_worldCount' - Information about the world count.+newCreateWorldGenerationJob ::+  -- | 'template'+  Prelude.Text ->+  -- | 'worldCount'+  WorldCount ->+  CreateWorldGenerationJob+newCreateWorldGenerationJob pTemplate_ pWorldCount_ =+  CreateWorldGenerationJob'+    { clientRequestToken =+        Prelude.Nothing,+      tags = Prelude.Nothing,+      worldTags = Prelude.Nothing,+      template = pTemplate_,+      worldCount = pWorldCount_+    }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+createWorldGenerationJob_clientRequestToken :: Lens.Lens' CreateWorldGenerationJob (Prelude.Maybe Prelude.Text)+createWorldGenerationJob_clientRequestToken = Lens.lens (\CreateWorldGenerationJob' {clientRequestToken} -> clientRequestToken) (\s@CreateWorldGenerationJob' {} a -> s {clientRequestToken = a} :: CreateWorldGenerationJob)++-- | A map that contains tag keys and tag values that are attached to the+-- world generator job.+createWorldGenerationJob_tags :: Lens.Lens' CreateWorldGenerationJob (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createWorldGenerationJob_tags = Lens.lens (\CreateWorldGenerationJob' {tags} -> tags) (\s@CreateWorldGenerationJob' {} a -> s {tags = a} :: CreateWorldGenerationJob) Prelude.. Lens.mapping Lens.coerced++-- | A map that contains tag keys and tag values that are attached to the+-- generated worlds.+createWorldGenerationJob_worldTags :: Lens.Lens' CreateWorldGenerationJob (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createWorldGenerationJob_worldTags = Lens.lens (\CreateWorldGenerationJob' {worldTags} -> worldTags) (\s@CreateWorldGenerationJob' {} a -> s {worldTags = a} :: CreateWorldGenerationJob) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (arn) of the world template describing the+-- worlds you want to create.+createWorldGenerationJob_template :: Lens.Lens' CreateWorldGenerationJob Prelude.Text+createWorldGenerationJob_template = Lens.lens (\CreateWorldGenerationJob' {template} -> template) (\s@CreateWorldGenerationJob' {} a -> s {template = a} :: CreateWorldGenerationJob)++-- | Information about the world count.+createWorldGenerationJob_worldCount :: Lens.Lens' CreateWorldGenerationJob WorldCount+createWorldGenerationJob_worldCount = Lens.lens (\CreateWorldGenerationJob' {worldCount} -> worldCount) (\s@CreateWorldGenerationJob' {} a -> s {worldCount = a} :: CreateWorldGenerationJob)++instance Core.AWSRequest CreateWorldGenerationJob where+  type+    AWSResponse CreateWorldGenerationJob =+      CreateWorldGenerationJobResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateWorldGenerationJobResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "clientRequestToken")+            Prelude.<*> (x Data..?> "createdAt")+            Prelude.<*> (x Data..?> "failureCode")+            Prelude.<*> (x Data..?> "status")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "template")+            Prelude.<*> (x Data..?> "worldCount")+            Prelude.<*> (x Data..?> "worldTags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateWorldGenerationJob where+  hashWithSalt _salt CreateWorldGenerationJob' {..} =+    _salt+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` worldTags+      `Prelude.hashWithSalt` template+      `Prelude.hashWithSalt` worldCount++instance Prelude.NFData CreateWorldGenerationJob where+  rnf CreateWorldGenerationJob' {..} =+    Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf worldTags+      `Prelude.seq` Prelude.rnf template+      `Prelude.seq` Prelude.rnf worldCount++instance Data.ToHeaders CreateWorldGenerationJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateWorldGenerationJob where+  toJSON CreateWorldGenerationJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("clientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            ("tags" Data..=) Prelude.<$> tags,+            ("worldTags" Data..=) Prelude.<$> worldTags,+            Prelude.Just ("template" Data..= template),+            Prelude.Just ("worldCount" Data..= worldCount)+          ]+      )++instance Data.ToPath CreateWorldGenerationJob where+  toPath = Prelude.const "/createWorldGenerationJob"++instance Data.ToQuery CreateWorldGenerationJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateWorldGenerationJobResponse' smart constructor.+data CreateWorldGenerationJobResponse = CreateWorldGenerationJobResponse'+  { -- | The Amazon Resource Name (ARN) of the world generator job.+    arn :: Prelude.Maybe Prelude.Text,+    -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request.+    clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | The time, in milliseconds since the epoch, when the world generator job+    -- was created.+    createdAt :: Prelude.Maybe Data.POSIX,+    -- | The failure code of the world generator job if it failed:+    --+    -- [InternalServiceError]+    --     Internal service error.+    --+    -- [LimitExceeded]+    --     The requested resource exceeds the maximum number allowed, or the+    --     number of concurrent stream requests exceeds the maximum number+    --     allowed.+    --+    -- [ResourceNotFound]+    --     The specified resource could not be found.+    --+    -- [RequestThrottled]+    --     The request was throttled.+    --+    -- [InvalidInput]+    --     An input parameter in the request is not valid.+    failureCode :: Prelude.Maybe WorldGenerationJobErrorCode,+    -- | The status of the world generator job.+    --+    -- [Pending]+    --     The world generator job request is pending.+    --+    -- [Running]+    --     The world generator job is running.+    --+    -- [Completed]+    --     The world generator job completed.+    --+    -- [Failed]+    --     The world generator job failed. See @failureCode@ for more+    --     information.+    --+    -- [PartialFailed]+    --     Some worlds did not generate.+    --+    -- [Canceled]+    --     The world generator job was cancelled.+    --+    -- [Canceling]+    --     The world generator job is being cancelled.+    status :: Prelude.Maybe WorldGenerationJobStatus,+    -- | A map that contains tag keys and tag values that are attached to the+    -- world generator job.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The Amazon Resource Name (arn) of the world template.+    template :: Prelude.Maybe Prelude.Text,+    -- | Information about the world count.+    worldCount :: Prelude.Maybe WorldCount,+    -- | A map that contains tag keys and tag values that are attached to the+    -- generated worlds.+    worldTags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateWorldGenerationJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'createWorldGenerationJobResponse_arn' - The Amazon Resource Name (ARN) of the world generator job.+--+-- 'clientRequestToken', 'createWorldGenerationJobResponse_clientRequestToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+--+-- 'createdAt', 'createWorldGenerationJobResponse_createdAt' - The time, in milliseconds since the epoch, when the world generator job+-- was created.+--+-- 'failureCode', 'createWorldGenerationJobResponse_failureCode' - The failure code of the world generator job if it failed:+--+-- [InternalServiceError]+--     Internal service error.+--+-- [LimitExceeded]+--     The requested resource exceeds the maximum number allowed, or the+--     number of concurrent stream requests exceeds the maximum number+--     allowed.+--+-- [ResourceNotFound]+--     The specified resource could not be found.+--+-- [RequestThrottled]+--     The request was throttled.+--+-- [InvalidInput]+--     An input parameter in the request is not valid.+--+-- 'status', 'createWorldGenerationJobResponse_status' - The status of the world generator job.+--+-- [Pending]+--     The world generator job request is pending.+--+-- [Running]+--     The world generator job is running.+--+-- [Completed]+--     The world generator job completed.+--+-- [Failed]+--     The world generator job failed. See @failureCode@ for more+--     information.+--+-- [PartialFailed]+--     Some worlds did not generate.+--+-- [Canceled]+--     The world generator job was cancelled.+--+-- [Canceling]+--     The world generator job is being cancelled.+--+-- 'tags', 'createWorldGenerationJobResponse_tags' - A map that contains tag keys and tag values that are attached to the+-- world generator job.+--+-- 'template', 'createWorldGenerationJobResponse_template' - The Amazon Resource Name (arn) of the world template.+--+-- 'worldCount', 'createWorldGenerationJobResponse_worldCount' - Information about the world count.+--+-- 'worldTags', 'createWorldGenerationJobResponse_worldTags' - A map that contains tag keys and tag values that are attached to the+-- generated worlds.+--+-- 'httpStatus', 'createWorldGenerationJobResponse_httpStatus' - The response's http status code.+newCreateWorldGenerationJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateWorldGenerationJobResponse+newCreateWorldGenerationJobResponse pHttpStatus_ =+  CreateWorldGenerationJobResponse'+    { arn =+        Prelude.Nothing,+      clientRequestToken = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      failureCode = Prelude.Nothing,+      status = Prelude.Nothing,+      tags = Prelude.Nothing,+      template = Prelude.Nothing,+      worldCount = Prelude.Nothing,+      worldTags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the world generator job.+createWorldGenerationJobResponse_arn :: Lens.Lens' CreateWorldGenerationJobResponse (Prelude.Maybe Prelude.Text)+createWorldGenerationJobResponse_arn = Lens.lens (\CreateWorldGenerationJobResponse' {arn} -> arn) (\s@CreateWorldGenerationJobResponse' {} a -> s {arn = a} :: CreateWorldGenerationJobResponse)++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+createWorldGenerationJobResponse_clientRequestToken :: Lens.Lens' CreateWorldGenerationJobResponse (Prelude.Maybe Prelude.Text)+createWorldGenerationJobResponse_clientRequestToken = Lens.lens (\CreateWorldGenerationJobResponse' {clientRequestToken} -> clientRequestToken) (\s@CreateWorldGenerationJobResponse' {} a -> s {clientRequestToken = a} :: CreateWorldGenerationJobResponse)++-- | The time, in milliseconds since the epoch, when the world generator job+-- was created.+createWorldGenerationJobResponse_createdAt :: Lens.Lens' CreateWorldGenerationJobResponse (Prelude.Maybe Prelude.UTCTime)+createWorldGenerationJobResponse_createdAt = Lens.lens (\CreateWorldGenerationJobResponse' {createdAt} -> createdAt) (\s@CreateWorldGenerationJobResponse' {} a -> s {createdAt = a} :: CreateWorldGenerationJobResponse) Prelude.. Lens.mapping Data._Time++-- | The failure code of the world generator job if it failed:+--+-- [InternalServiceError]+--     Internal service error.+--+-- [LimitExceeded]+--     The requested resource exceeds the maximum number allowed, or the+--     number of concurrent stream requests exceeds the maximum number+--     allowed.+--+-- [ResourceNotFound]+--     The specified resource could not be found.+--+-- [RequestThrottled]+--     The request was throttled.+--+-- [InvalidInput]+--     An input parameter in the request is not valid.+createWorldGenerationJobResponse_failureCode :: Lens.Lens' CreateWorldGenerationJobResponse (Prelude.Maybe WorldGenerationJobErrorCode)+createWorldGenerationJobResponse_failureCode = Lens.lens (\CreateWorldGenerationJobResponse' {failureCode} -> failureCode) (\s@CreateWorldGenerationJobResponse' {} a -> s {failureCode = a} :: CreateWorldGenerationJobResponse)++-- | The status of the world generator job.+--+-- [Pending]+--     The world generator job request is pending.+--+-- [Running]+--     The world generator job is running.+--+-- [Completed]+--     The world generator job completed.+--+-- [Failed]+--     The world generator job failed. See @failureCode@ for more+--     information.+--+-- [PartialFailed]+--     Some worlds did not generate.+--+-- [Canceled]+--     The world generator job was cancelled.+--+-- [Canceling]+--     The world generator job is being cancelled.+createWorldGenerationJobResponse_status :: Lens.Lens' CreateWorldGenerationJobResponse (Prelude.Maybe WorldGenerationJobStatus)+createWorldGenerationJobResponse_status = Lens.lens (\CreateWorldGenerationJobResponse' {status} -> status) (\s@CreateWorldGenerationJobResponse' {} a -> s {status = a} :: CreateWorldGenerationJobResponse)++-- | A map that contains tag keys and tag values that are attached to the+-- world generator job.+createWorldGenerationJobResponse_tags :: Lens.Lens' CreateWorldGenerationJobResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createWorldGenerationJobResponse_tags = Lens.lens (\CreateWorldGenerationJobResponse' {tags} -> tags) (\s@CreateWorldGenerationJobResponse' {} a -> s {tags = a} :: CreateWorldGenerationJobResponse) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (arn) of the world template.+createWorldGenerationJobResponse_template :: Lens.Lens' CreateWorldGenerationJobResponse (Prelude.Maybe Prelude.Text)+createWorldGenerationJobResponse_template = Lens.lens (\CreateWorldGenerationJobResponse' {template} -> template) (\s@CreateWorldGenerationJobResponse' {} a -> s {template = a} :: CreateWorldGenerationJobResponse)++-- | Information about the world count.+createWorldGenerationJobResponse_worldCount :: Lens.Lens' CreateWorldGenerationJobResponse (Prelude.Maybe WorldCount)+createWorldGenerationJobResponse_worldCount = Lens.lens (\CreateWorldGenerationJobResponse' {worldCount} -> worldCount) (\s@CreateWorldGenerationJobResponse' {} a -> s {worldCount = a} :: CreateWorldGenerationJobResponse)++-- | A map that contains tag keys and tag values that are attached to the+-- generated worlds.+createWorldGenerationJobResponse_worldTags :: Lens.Lens' CreateWorldGenerationJobResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createWorldGenerationJobResponse_worldTags = Lens.lens (\CreateWorldGenerationJobResponse' {worldTags} -> worldTags) (\s@CreateWorldGenerationJobResponse' {} a -> s {worldTags = a} :: CreateWorldGenerationJobResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+createWorldGenerationJobResponse_httpStatus :: Lens.Lens' CreateWorldGenerationJobResponse Prelude.Int+createWorldGenerationJobResponse_httpStatus = Lens.lens (\CreateWorldGenerationJobResponse' {httpStatus} -> httpStatus) (\s@CreateWorldGenerationJobResponse' {} a -> s {httpStatus = a} :: CreateWorldGenerationJobResponse)++instance+  Prelude.NFData+    CreateWorldGenerationJobResponse+  where+  rnf CreateWorldGenerationJobResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf failureCode+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf template+      `Prelude.seq` Prelude.rnf worldCount+      `Prelude.seq` Prelude.rnf worldTags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/CreateWorldTemplate.hs view
@@ -0,0 +1,284 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.CreateWorldTemplate+-- 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 world template.+module Amazonka.RobOMaker.CreateWorldTemplate+  ( -- * Creating a Request+    CreateWorldTemplate (..),+    newCreateWorldTemplate,++    -- * Request Lenses+    createWorldTemplate_clientRequestToken,+    createWorldTemplate_name,+    createWorldTemplate_tags,+    createWorldTemplate_templateBody,+    createWorldTemplate_templateLocation,++    -- * Destructuring the Response+    CreateWorldTemplateResponse (..),+    newCreateWorldTemplateResponse,++    -- * Response Lenses+    createWorldTemplateResponse_arn,+    createWorldTemplateResponse_clientRequestToken,+    createWorldTemplateResponse_createdAt,+    createWorldTemplateResponse_name,+    createWorldTemplateResponse_tags,+    createWorldTemplateResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newCreateWorldTemplate' smart constructor.+data CreateWorldTemplate = CreateWorldTemplate'+  { -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request.+    clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | The name of the world template.+    name :: Prelude.Maybe Prelude.Text,+    -- | A map that contains tag keys and tag values that are attached to the+    -- world template.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The world template body.+    templateBody :: Prelude.Maybe Prelude.Text,+    -- | The location of the world template.+    templateLocation :: Prelude.Maybe TemplateLocation+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateWorldTemplate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientRequestToken', 'createWorldTemplate_clientRequestToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+--+-- 'name', 'createWorldTemplate_name' - The name of the world template.+--+-- 'tags', 'createWorldTemplate_tags' - A map that contains tag keys and tag values that are attached to the+-- world template.+--+-- 'templateBody', 'createWorldTemplate_templateBody' - The world template body.+--+-- 'templateLocation', 'createWorldTemplate_templateLocation' - The location of the world template.+newCreateWorldTemplate ::+  CreateWorldTemplate+newCreateWorldTemplate =+  CreateWorldTemplate'+    { clientRequestToken =+        Prelude.Nothing,+      name = Prelude.Nothing,+      tags = Prelude.Nothing,+      templateBody = Prelude.Nothing,+      templateLocation = Prelude.Nothing+    }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+createWorldTemplate_clientRequestToken :: Lens.Lens' CreateWorldTemplate (Prelude.Maybe Prelude.Text)+createWorldTemplate_clientRequestToken = Lens.lens (\CreateWorldTemplate' {clientRequestToken} -> clientRequestToken) (\s@CreateWorldTemplate' {} a -> s {clientRequestToken = a} :: CreateWorldTemplate)++-- | The name of the world template.+createWorldTemplate_name :: Lens.Lens' CreateWorldTemplate (Prelude.Maybe Prelude.Text)+createWorldTemplate_name = Lens.lens (\CreateWorldTemplate' {name} -> name) (\s@CreateWorldTemplate' {} a -> s {name = a} :: CreateWorldTemplate)++-- | A map that contains tag keys and tag values that are attached to the+-- world template.+createWorldTemplate_tags :: Lens.Lens' CreateWorldTemplate (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createWorldTemplate_tags = Lens.lens (\CreateWorldTemplate' {tags} -> tags) (\s@CreateWorldTemplate' {} a -> s {tags = a} :: CreateWorldTemplate) Prelude.. Lens.mapping Lens.coerced++-- | The world template body.+createWorldTemplate_templateBody :: Lens.Lens' CreateWorldTemplate (Prelude.Maybe Prelude.Text)+createWorldTemplate_templateBody = Lens.lens (\CreateWorldTemplate' {templateBody} -> templateBody) (\s@CreateWorldTemplate' {} a -> s {templateBody = a} :: CreateWorldTemplate)++-- | The location of the world template.+createWorldTemplate_templateLocation :: Lens.Lens' CreateWorldTemplate (Prelude.Maybe TemplateLocation)+createWorldTemplate_templateLocation = Lens.lens (\CreateWorldTemplate' {templateLocation} -> templateLocation) (\s@CreateWorldTemplate' {} a -> s {templateLocation = a} :: CreateWorldTemplate)++instance Core.AWSRequest CreateWorldTemplate where+  type+    AWSResponse CreateWorldTemplate =+      CreateWorldTemplateResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateWorldTemplateResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "clientRequestToken")+            Prelude.<*> (x Data..?> "createdAt")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateWorldTemplate where+  hashWithSalt _salt CreateWorldTemplate' {..} =+    _salt+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` templateBody+      `Prelude.hashWithSalt` templateLocation++instance Prelude.NFData CreateWorldTemplate where+  rnf CreateWorldTemplate' {..} =+    Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf templateBody+      `Prelude.seq` Prelude.rnf templateLocation++instance Data.ToHeaders CreateWorldTemplate where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateWorldTemplate where+  toJSON CreateWorldTemplate' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("clientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            ("name" Data..=) Prelude.<$> name,+            ("tags" Data..=) Prelude.<$> tags,+            ("templateBody" Data..=) Prelude.<$> templateBody,+            ("templateLocation" Data..=)+              Prelude.<$> templateLocation+          ]+      )++instance Data.ToPath CreateWorldTemplate where+  toPath = Prelude.const "/createWorldTemplate"++instance Data.ToQuery CreateWorldTemplate where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateWorldTemplateResponse' smart constructor.+data CreateWorldTemplateResponse = CreateWorldTemplateResponse'+  { -- | The Amazon Resource Name (ARN) of the world template.+    arn :: Prelude.Maybe Prelude.Text,+    -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request.+    clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | The time, in milliseconds since the epoch, when the world template was+    -- created.+    createdAt :: Prelude.Maybe Data.POSIX,+    -- | The name of the world template.+    name :: Prelude.Maybe Prelude.Text,+    -- | A map that contains tag keys and tag values that are attached to the+    -- world template.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateWorldTemplateResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'createWorldTemplateResponse_arn' - The Amazon Resource Name (ARN) of the world template.+--+-- 'clientRequestToken', 'createWorldTemplateResponse_clientRequestToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+--+-- 'createdAt', 'createWorldTemplateResponse_createdAt' - The time, in milliseconds since the epoch, when the world template was+-- created.+--+-- 'name', 'createWorldTemplateResponse_name' - The name of the world template.+--+-- 'tags', 'createWorldTemplateResponse_tags' - A map that contains tag keys and tag values that are attached to the+-- world template.+--+-- 'httpStatus', 'createWorldTemplateResponse_httpStatus' - The response's http status code.+newCreateWorldTemplateResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateWorldTemplateResponse+newCreateWorldTemplateResponse pHttpStatus_ =+  CreateWorldTemplateResponse'+    { arn = Prelude.Nothing,+      clientRequestToken = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      name = Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the world template.+createWorldTemplateResponse_arn :: Lens.Lens' CreateWorldTemplateResponse (Prelude.Maybe Prelude.Text)+createWorldTemplateResponse_arn = Lens.lens (\CreateWorldTemplateResponse' {arn} -> arn) (\s@CreateWorldTemplateResponse' {} a -> s {arn = a} :: CreateWorldTemplateResponse)++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+createWorldTemplateResponse_clientRequestToken :: Lens.Lens' CreateWorldTemplateResponse (Prelude.Maybe Prelude.Text)+createWorldTemplateResponse_clientRequestToken = Lens.lens (\CreateWorldTemplateResponse' {clientRequestToken} -> clientRequestToken) (\s@CreateWorldTemplateResponse' {} a -> s {clientRequestToken = a} :: CreateWorldTemplateResponse)++-- | The time, in milliseconds since the epoch, when the world template was+-- created.+createWorldTemplateResponse_createdAt :: Lens.Lens' CreateWorldTemplateResponse (Prelude.Maybe Prelude.UTCTime)+createWorldTemplateResponse_createdAt = Lens.lens (\CreateWorldTemplateResponse' {createdAt} -> createdAt) (\s@CreateWorldTemplateResponse' {} a -> s {createdAt = a} :: CreateWorldTemplateResponse) Prelude.. Lens.mapping Data._Time++-- | The name of the world template.+createWorldTemplateResponse_name :: Lens.Lens' CreateWorldTemplateResponse (Prelude.Maybe Prelude.Text)+createWorldTemplateResponse_name = Lens.lens (\CreateWorldTemplateResponse' {name} -> name) (\s@CreateWorldTemplateResponse' {} a -> s {name = a} :: CreateWorldTemplateResponse)++-- | A map that contains tag keys and tag values that are attached to the+-- world template.+createWorldTemplateResponse_tags :: Lens.Lens' CreateWorldTemplateResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createWorldTemplateResponse_tags = Lens.lens (\CreateWorldTemplateResponse' {tags} -> tags) (\s@CreateWorldTemplateResponse' {} a -> s {tags = a} :: CreateWorldTemplateResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+createWorldTemplateResponse_httpStatus :: Lens.Lens' CreateWorldTemplateResponse Prelude.Int+createWorldTemplateResponse_httpStatus = Lens.lens (\CreateWorldTemplateResponse' {httpStatus} -> httpStatus) (\s@CreateWorldTemplateResponse' {} a -> s {httpStatus = a} :: CreateWorldTemplateResponse)++instance Prelude.NFData CreateWorldTemplateResponse where+  rnf CreateWorldTemplateResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/DeleteRobotApplication.hs view
@@ -0,0 +1,175 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.DeleteRobotApplication+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a robot application.+module Amazonka.RobOMaker.DeleteRobotApplication+  ( -- * Creating a Request+    DeleteRobotApplication (..),+    newDeleteRobotApplication,++    -- * Request Lenses+    deleteRobotApplication_applicationVersion,+    deleteRobotApplication_application,++    -- * Destructuring the Response+    DeleteRobotApplicationResponse (..),+    newDeleteRobotApplicationResponse,++    -- * Response Lenses+    deleteRobotApplicationResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newDeleteRobotApplication' smart constructor.+data DeleteRobotApplication = DeleteRobotApplication'+  { -- | The version of the robot application to delete.+    applicationVersion :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the the robot application.+    application :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteRobotApplication' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'applicationVersion', 'deleteRobotApplication_applicationVersion' - The version of the robot application to delete.+--+-- 'application', 'deleteRobotApplication_application' - The Amazon Resource Name (ARN) of the the robot application.+newDeleteRobotApplication ::+  -- | 'application'+  Prelude.Text ->+  DeleteRobotApplication+newDeleteRobotApplication pApplication_ =+  DeleteRobotApplication'+    { applicationVersion =+        Prelude.Nothing,+      application = pApplication_+    }++-- | The version of the robot application to delete.+deleteRobotApplication_applicationVersion :: Lens.Lens' DeleteRobotApplication (Prelude.Maybe Prelude.Text)+deleteRobotApplication_applicationVersion = Lens.lens (\DeleteRobotApplication' {applicationVersion} -> applicationVersion) (\s@DeleteRobotApplication' {} a -> s {applicationVersion = a} :: DeleteRobotApplication)++-- | The Amazon Resource Name (ARN) of the the robot application.+deleteRobotApplication_application :: Lens.Lens' DeleteRobotApplication Prelude.Text+deleteRobotApplication_application = Lens.lens (\DeleteRobotApplication' {application} -> application) (\s@DeleteRobotApplication' {} a -> s {application = a} :: DeleteRobotApplication)++instance Core.AWSRequest DeleteRobotApplication where+  type+    AWSResponse DeleteRobotApplication =+      DeleteRobotApplicationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteRobotApplicationResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteRobotApplication where+  hashWithSalt _salt DeleteRobotApplication' {..} =+    _salt+      `Prelude.hashWithSalt` applicationVersion+      `Prelude.hashWithSalt` application++instance Prelude.NFData DeleteRobotApplication where+  rnf DeleteRobotApplication' {..} =+    Prelude.rnf applicationVersion+      `Prelude.seq` Prelude.rnf application++instance Data.ToHeaders DeleteRobotApplication where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteRobotApplication where+  toJSON DeleteRobotApplication' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("applicationVersion" Data..=)+              Prelude.<$> applicationVersion,+            Prelude.Just ("application" Data..= application)+          ]+      )++instance Data.ToPath DeleteRobotApplication where+  toPath = Prelude.const "/deleteRobotApplication"++instance Data.ToQuery DeleteRobotApplication where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteRobotApplicationResponse' smart constructor.+data DeleteRobotApplicationResponse = DeleteRobotApplicationResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteRobotApplicationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteRobotApplicationResponse_httpStatus' - The response's http status code.+newDeleteRobotApplicationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteRobotApplicationResponse+newDeleteRobotApplicationResponse pHttpStatus_ =+  DeleteRobotApplicationResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deleteRobotApplicationResponse_httpStatus :: Lens.Lens' DeleteRobotApplicationResponse Prelude.Int+deleteRobotApplicationResponse_httpStatus = Lens.lens (\DeleteRobotApplicationResponse' {httpStatus} -> httpStatus) (\s@DeleteRobotApplicationResponse' {} a -> s {httpStatus = a} :: DeleteRobotApplicationResponse)++instance+  Prelude.NFData+    DeleteRobotApplicationResponse+  where+  rnf DeleteRobotApplicationResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/DeleteSimulationApplication.hs view
@@ -0,0 +1,175 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.DeleteSimulationApplication+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a simulation application.+module Amazonka.RobOMaker.DeleteSimulationApplication+  ( -- * Creating a Request+    DeleteSimulationApplication (..),+    newDeleteSimulationApplication,++    -- * Request Lenses+    deleteSimulationApplication_applicationVersion,+    deleteSimulationApplication_application,++    -- * Destructuring the Response+    DeleteSimulationApplicationResponse (..),+    newDeleteSimulationApplicationResponse,++    -- * Response Lenses+    deleteSimulationApplicationResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newDeleteSimulationApplication' smart constructor.+data DeleteSimulationApplication = DeleteSimulationApplication'+  { -- | The version of the simulation application to delete.+    applicationVersion :: Prelude.Maybe Prelude.Text,+    -- | The application information for the simulation application to delete.+    application :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSimulationApplication' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'applicationVersion', 'deleteSimulationApplication_applicationVersion' - The version of the simulation application to delete.+--+-- 'application', 'deleteSimulationApplication_application' - The application information for the simulation application to delete.+newDeleteSimulationApplication ::+  -- | 'application'+  Prelude.Text ->+  DeleteSimulationApplication+newDeleteSimulationApplication pApplication_ =+  DeleteSimulationApplication'+    { applicationVersion =+        Prelude.Nothing,+      application = pApplication_+    }++-- | The version of the simulation application to delete.+deleteSimulationApplication_applicationVersion :: Lens.Lens' DeleteSimulationApplication (Prelude.Maybe Prelude.Text)+deleteSimulationApplication_applicationVersion = Lens.lens (\DeleteSimulationApplication' {applicationVersion} -> applicationVersion) (\s@DeleteSimulationApplication' {} a -> s {applicationVersion = a} :: DeleteSimulationApplication)++-- | The application information for the simulation application to delete.+deleteSimulationApplication_application :: Lens.Lens' DeleteSimulationApplication Prelude.Text+deleteSimulationApplication_application = Lens.lens (\DeleteSimulationApplication' {application} -> application) (\s@DeleteSimulationApplication' {} a -> s {application = a} :: DeleteSimulationApplication)++instance Core.AWSRequest DeleteSimulationApplication where+  type+    AWSResponse DeleteSimulationApplication =+      DeleteSimulationApplicationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteSimulationApplicationResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteSimulationApplication where+  hashWithSalt _salt DeleteSimulationApplication' {..} =+    _salt+      `Prelude.hashWithSalt` applicationVersion+      `Prelude.hashWithSalt` application++instance Prelude.NFData DeleteSimulationApplication where+  rnf DeleteSimulationApplication' {..} =+    Prelude.rnf applicationVersion+      `Prelude.seq` Prelude.rnf application++instance Data.ToHeaders DeleteSimulationApplication where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteSimulationApplication where+  toJSON DeleteSimulationApplication' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("applicationVersion" Data..=)+              Prelude.<$> applicationVersion,+            Prelude.Just ("application" Data..= application)+          ]+      )++instance Data.ToPath DeleteSimulationApplication where+  toPath = Prelude.const "/deleteSimulationApplication"++instance Data.ToQuery DeleteSimulationApplication where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteSimulationApplicationResponse' smart constructor.+data DeleteSimulationApplicationResponse = DeleteSimulationApplicationResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSimulationApplicationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteSimulationApplicationResponse_httpStatus' - The response's http status code.+newDeleteSimulationApplicationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteSimulationApplicationResponse+newDeleteSimulationApplicationResponse pHttpStatus_ =+  DeleteSimulationApplicationResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deleteSimulationApplicationResponse_httpStatus :: Lens.Lens' DeleteSimulationApplicationResponse Prelude.Int+deleteSimulationApplicationResponse_httpStatus = Lens.lens (\DeleteSimulationApplicationResponse' {httpStatus} -> httpStatus) (\s@DeleteSimulationApplicationResponse' {} a -> s {httpStatus = a} :: DeleteSimulationApplicationResponse)++instance+  Prelude.NFData+    DeleteSimulationApplicationResponse+  where+  rnf DeleteSimulationApplicationResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/DeleteWorldTemplate.hs view
@@ -0,0 +1,152 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.DeleteWorldTemplate+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a world template.+module Amazonka.RobOMaker.DeleteWorldTemplate+  ( -- * Creating a Request+    DeleteWorldTemplate (..),+    newDeleteWorldTemplate,++    -- * Request Lenses+    deleteWorldTemplate_template,++    -- * Destructuring the Response+    DeleteWorldTemplateResponse (..),+    newDeleteWorldTemplateResponse,++    -- * Response Lenses+    deleteWorldTemplateResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newDeleteWorldTemplate' smart constructor.+data DeleteWorldTemplate = DeleteWorldTemplate'+  { -- | The Amazon Resource Name (arn) of the world template you want to delete.+    template :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteWorldTemplate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'template', 'deleteWorldTemplate_template' - The Amazon Resource Name (arn) of the world template you want to delete.+newDeleteWorldTemplate ::+  -- | 'template'+  Prelude.Text ->+  DeleteWorldTemplate+newDeleteWorldTemplate pTemplate_ =+  DeleteWorldTemplate' {template = pTemplate_}++-- | The Amazon Resource Name (arn) of the world template you want to delete.+deleteWorldTemplate_template :: Lens.Lens' DeleteWorldTemplate Prelude.Text+deleteWorldTemplate_template = Lens.lens (\DeleteWorldTemplate' {template} -> template) (\s@DeleteWorldTemplate' {} a -> s {template = a} :: DeleteWorldTemplate)++instance Core.AWSRequest DeleteWorldTemplate where+  type+    AWSResponse DeleteWorldTemplate =+      DeleteWorldTemplateResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteWorldTemplateResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteWorldTemplate where+  hashWithSalt _salt DeleteWorldTemplate' {..} =+    _salt `Prelude.hashWithSalt` template++instance Prelude.NFData DeleteWorldTemplate where+  rnf DeleteWorldTemplate' {..} = Prelude.rnf template++instance Data.ToHeaders DeleteWorldTemplate where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteWorldTemplate where+  toJSON DeleteWorldTemplate' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("template" Data..= template)]+      )++instance Data.ToPath DeleteWorldTemplate where+  toPath = Prelude.const "/deleteWorldTemplate"++instance Data.ToQuery DeleteWorldTemplate where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteWorldTemplateResponse' smart constructor.+data DeleteWorldTemplateResponse = DeleteWorldTemplateResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteWorldTemplateResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteWorldTemplateResponse_httpStatus' - The response's http status code.+newDeleteWorldTemplateResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteWorldTemplateResponse+newDeleteWorldTemplateResponse pHttpStatus_ =+  DeleteWorldTemplateResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deleteWorldTemplateResponse_httpStatus :: Lens.Lens' DeleteWorldTemplateResponse Prelude.Int+deleteWorldTemplateResponse_httpStatus = Lens.lens (\DeleteWorldTemplateResponse' {httpStatus} -> httpStatus) (\s@DeleteWorldTemplateResponse' {} a -> s {httpStatus = a} :: DeleteWorldTemplateResponse)++instance Prelude.NFData DeleteWorldTemplateResponse where+  rnf DeleteWorldTemplateResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/DescribeRobotApplication.hs view
@@ -0,0 +1,307 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.DescribeRobotApplication+-- 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 robot application.+module Amazonka.RobOMaker.DescribeRobotApplication+  ( -- * Creating a Request+    DescribeRobotApplication (..),+    newDescribeRobotApplication,++    -- * Request Lenses+    describeRobotApplication_applicationVersion,+    describeRobotApplication_application,++    -- * Destructuring the Response+    DescribeRobotApplicationResponse (..),+    newDescribeRobotApplicationResponse,++    -- * Response Lenses+    describeRobotApplicationResponse_arn,+    describeRobotApplicationResponse_environment,+    describeRobotApplicationResponse_imageDigest,+    describeRobotApplicationResponse_lastUpdatedAt,+    describeRobotApplicationResponse_name,+    describeRobotApplicationResponse_revisionId,+    describeRobotApplicationResponse_robotSoftwareSuite,+    describeRobotApplicationResponse_sources,+    describeRobotApplicationResponse_tags,+    describeRobotApplicationResponse_version,+    describeRobotApplicationResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newDescribeRobotApplication' smart constructor.+data DescribeRobotApplication = DescribeRobotApplication'+  { -- | The version of the robot application to describe.+    applicationVersion :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the robot application.+    application :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeRobotApplication' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'applicationVersion', 'describeRobotApplication_applicationVersion' - The version of the robot application to describe.+--+-- 'application', 'describeRobotApplication_application' - The Amazon Resource Name (ARN) of the robot application.+newDescribeRobotApplication ::+  -- | 'application'+  Prelude.Text ->+  DescribeRobotApplication+newDescribeRobotApplication pApplication_ =+  DescribeRobotApplication'+    { applicationVersion =+        Prelude.Nothing,+      application = pApplication_+    }++-- | The version of the robot application to describe.+describeRobotApplication_applicationVersion :: Lens.Lens' DescribeRobotApplication (Prelude.Maybe Prelude.Text)+describeRobotApplication_applicationVersion = Lens.lens (\DescribeRobotApplication' {applicationVersion} -> applicationVersion) (\s@DescribeRobotApplication' {} a -> s {applicationVersion = a} :: DescribeRobotApplication)++-- | The Amazon Resource Name (ARN) of the robot application.+describeRobotApplication_application :: Lens.Lens' DescribeRobotApplication Prelude.Text+describeRobotApplication_application = Lens.lens (\DescribeRobotApplication' {application} -> application) (\s@DescribeRobotApplication' {} a -> s {application = a} :: DescribeRobotApplication)++instance Core.AWSRequest DescribeRobotApplication where+  type+    AWSResponse DescribeRobotApplication =+      DescribeRobotApplicationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeRobotApplicationResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "environment")+            Prelude.<*> (x Data..?> "imageDigest")+            Prelude.<*> (x Data..?> "lastUpdatedAt")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (x Data..?> "revisionId")+            Prelude.<*> (x Data..?> "robotSoftwareSuite")+            Prelude.<*> (x Data..?> "sources" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "version")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeRobotApplication where+  hashWithSalt _salt DescribeRobotApplication' {..} =+    _salt+      `Prelude.hashWithSalt` applicationVersion+      `Prelude.hashWithSalt` application++instance Prelude.NFData DescribeRobotApplication where+  rnf DescribeRobotApplication' {..} =+    Prelude.rnf applicationVersion+      `Prelude.seq` Prelude.rnf application++instance Data.ToHeaders DescribeRobotApplication where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeRobotApplication where+  toJSON DescribeRobotApplication' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("applicationVersion" Data..=)+              Prelude.<$> applicationVersion,+            Prelude.Just ("application" Data..= application)+          ]+      )++instance Data.ToPath DescribeRobotApplication where+  toPath = Prelude.const "/describeRobotApplication"++instance Data.ToQuery DescribeRobotApplication where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeRobotApplicationResponse' smart constructor.+data DescribeRobotApplicationResponse = DescribeRobotApplicationResponse'+  { -- | The Amazon Resource Name (ARN) of the robot application.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The object that contains the Docker image URI used to create the robot+    -- application.+    environment :: Prelude.Maybe Environment,+    -- | A SHA256 identifier for the Docker image that you use for your robot+    -- application.+    imageDigest :: Prelude.Maybe Prelude.Text,+    -- | The time, in milliseconds since the epoch, when the robot application+    -- was last updated.+    lastUpdatedAt :: Prelude.Maybe Data.POSIX,+    -- | The name of the robot application.+    name :: Prelude.Maybe Prelude.Text,+    -- | The revision id of the robot application.+    revisionId :: Prelude.Maybe Prelude.Text,+    -- | The robot software suite (ROS distribution) used by the robot+    -- application.+    robotSoftwareSuite :: Prelude.Maybe RobotSoftwareSuite,+    -- | The sources of the robot application.+    sources :: Prelude.Maybe [Source],+    -- | The list of all tags added to the specified robot application.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The version of the robot application.+    version :: 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 'DescribeRobotApplicationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'describeRobotApplicationResponse_arn' - The Amazon Resource Name (ARN) of the robot application.+--+-- 'environment', 'describeRobotApplicationResponse_environment' - The object that contains the Docker image URI used to create the robot+-- application.+--+-- 'imageDigest', 'describeRobotApplicationResponse_imageDigest' - A SHA256 identifier for the Docker image that you use for your robot+-- application.+--+-- 'lastUpdatedAt', 'describeRobotApplicationResponse_lastUpdatedAt' - The time, in milliseconds since the epoch, when the robot application+-- was last updated.+--+-- 'name', 'describeRobotApplicationResponse_name' - The name of the robot application.+--+-- 'revisionId', 'describeRobotApplicationResponse_revisionId' - The revision id of the robot application.+--+-- 'robotSoftwareSuite', 'describeRobotApplicationResponse_robotSoftwareSuite' - The robot software suite (ROS distribution) used by the robot+-- application.+--+-- 'sources', 'describeRobotApplicationResponse_sources' - The sources of the robot application.+--+-- 'tags', 'describeRobotApplicationResponse_tags' - The list of all tags added to the specified robot application.+--+-- 'version', 'describeRobotApplicationResponse_version' - The version of the robot application.+--+-- 'httpStatus', 'describeRobotApplicationResponse_httpStatus' - The response's http status code.+newDescribeRobotApplicationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeRobotApplicationResponse+newDescribeRobotApplicationResponse pHttpStatus_ =+  DescribeRobotApplicationResponse'+    { arn =+        Prelude.Nothing,+      environment = Prelude.Nothing,+      imageDigest = Prelude.Nothing,+      lastUpdatedAt = Prelude.Nothing,+      name = Prelude.Nothing,+      revisionId = Prelude.Nothing,+      robotSoftwareSuite = Prelude.Nothing,+      sources = Prelude.Nothing,+      tags = Prelude.Nothing,+      version = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the robot application.+describeRobotApplicationResponse_arn :: Lens.Lens' DescribeRobotApplicationResponse (Prelude.Maybe Prelude.Text)+describeRobotApplicationResponse_arn = Lens.lens (\DescribeRobotApplicationResponse' {arn} -> arn) (\s@DescribeRobotApplicationResponse' {} a -> s {arn = a} :: DescribeRobotApplicationResponse)++-- | The object that contains the Docker image URI used to create the robot+-- application.+describeRobotApplicationResponse_environment :: Lens.Lens' DescribeRobotApplicationResponse (Prelude.Maybe Environment)+describeRobotApplicationResponse_environment = Lens.lens (\DescribeRobotApplicationResponse' {environment} -> environment) (\s@DescribeRobotApplicationResponse' {} a -> s {environment = a} :: DescribeRobotApplicationResponse)++-- | A SHA256 identifier for the Docker image that you use for your robot+-- application.+describeRobotApplicationResponse_imageDigest :: Lens.Lens' DescribeRobotApplicationResponse (Prelude.Maybe Prelude.Text)+describeRobotApplicationResponse_imageDigest = Lens.lens (\DescribeRobotApplicationResponse' {imageDigest} -> imageDigest) (\s@DescribeRobotApplicationResponse' {} a -> s {imageDigest = a} :: DescribeRobotApplicationResponse)++-- | The time, in milliseconds since the epoch, when the robot application+-- was last updated.+describeRobotApplicationResponse_lastUpdatedAt :: Lens.Lens' DescribeRobotApplicationResponse (Prelude.Maybe Prelude.UTCTime)+describeRobotApplicationResponse_lastUpdatedAt = Lens.lens (\DescribeRobotApplicationResponse' {lastUpdatedAt} -> lastUpdatedAt) (\s@DescribeRobotApplicationResponse' {} a -> s {lastUpdatedAt = a} :: DescribeRobotApplicationResponse) Prelude.. Lens.mapping Data._Time++-- | The name of the robot application.+describeRobotApplicationResponse_name :: Lens.Lens' DescribeRobotApplicationResponse (Prelude.Maybe Prelude.Text)+describeRobotApplicationResponse_name = Lens.lens (\DescribeRobotApplicationResponse' {name} -> name) (\s@DescribeRobotApplicationResponse' {} a -> s {name = a} :: DescribeRobotApplicationResponse)++-- | The revision id of the robot application.+describeRobotApplicationResponse_revisionId :: Lens.Lens' DescribeRobotApplicationResponse (Prelude.Maybe Prelude.Text)+describeRobotApplicationResponse_revisionId = Lens.lens (\DescribeRobotApplicationResponse' {revisionId} -> revisionId) (\s@DescribeRobotApplicationResponse' {} a -> s {revisionId = a} :: DescribeRobotApplicationResponse)++-- | The robot software suite (ROS distribution) used by the robot+-- application.+describeRobotApplicationResponse_robotSoftwareSuite :: Lens.Lens' DescribeRobotApplicationResponse (Prelude.Maybe RobotSoftwareSuite)+describeRobotApplicationResponse_robotSoftwareSuite = Lens.lens (\DescribeRobotApplicationResponse' {robotSoftwareSuite} -> robotSoftwareSuite) (\s@DescribeRobotApplicationResponse' {} a -> s {robotSoftwareSuite = a} :: DescribeRobotApplicationResponse)++-- | The sources of the robot application.+describeRobotApplicationResponse_sources :: Lens.Lens' DescribeRobotApplicationResponse (Prelude.Maybe [Source])+describeRobotApplicationResponse_sources = Lens.lens (\DescribeRobotApplicationResponse' {sources} -> sources) (\s@DescribeRobotApplicationResponse' {} a -> s {sources = a} :: DescribeRobotApplicationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The list of all tags added to the specified robot application.+describeRobotApplicationResponse_tags :: Lens.Lens' DescribeRobotApplicationResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+describeRobotApplicationResponse_tags = Lens.lens (\DescribeRobotApplicationResponse' {tags} -> tags) (\s@DescribeRobotApplicationResponse' {} a -> s {tags = a} :: DescribeRobotApplicationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The version of the robot application.+describeRobotApplicationResponse_version :: Lens.Lens' DescribeRobotApplicationResponse (Prelude.Maybe Prelude.Text)+describeRobotApplicationResponse_version = Lens.lens (\DescribeRobotApplicationResponse' {version} -> version) (\s@DescribeRobotApplicationResponse' {} a -> s {version = a} :: DescribeRobotApplicationResponse)++-- | The response's http status code.+describeRobotApplicationResponse_httpStatus :: Lens.Lens' DescribeRobotApplicationResponse Prelude.Int+describeRobotApplicationResponse_httpStatus = Lens.lens (\DescribeRobotApplicationResponse' {httpStatus} -> httpStatus) (\s@DescribeRobotApplicationResponse' {} a -> s {httpStatus = a} :: DescribeRobotApplicationResponse)++instance+  Prelude.NFData+    DescribeRobotApplicationResponse+  where+  rnf DescribeRobotApplicationResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf environment+      `Prelude.seq` Prelude.rnf imageDigest+      `Prelude.seq` Prelude.rnf lastUpdatedAt+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf revisionId+      `Prelude.seq` Prelude.rnf robotSoftwareSuite+      `Prelude.seq` Prelude.rnf sources+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf version+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/DescribeSimulationApplication.hs view
@@ -0,0 +1,336 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.DescribeSimulationApplication+-- 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 simulation application.+module Amazonka.RobOMaker.DescribeSimulationApplication+  ( -- * Creating a Request+    DescribeSimulationApplication (..),+    newDescribeSimulationApplication,++    -- * Request Lenses+    describeSimulationApplication_applicationVersion,+    describeSimulationApplication_application,++    -- * Destructuring the Response+    DescribeSimulationApplicationResponse (..),+    newDescribeSimulationApplicationResponse,++    -- * Response Lenses+    describeSimulationApplicationResponse_arn,+    describeSimulationApplicationResponse_environment,+    describeSimulationApplicationResponse_imageDigest,+    describeSimulationApplicationResponse_lastUpdatedAt,+    describeSimulationApplicationResponse_name,+    describeSimulationApplicationResponse_renderingEngine,+    describeSimulationApplicationResponse_revisionId,+    describeSimulationApplicationResponse_robotSoftwareSuite,+    describeSimulationApplicationResponse_simulationSoftwareSuite,+    describeSimulationApplicationResponse_sources,+    describeSimulationApplicationResponse_tags,+    describeSimulationApplicationResponse_version,+    describeSimulationApplicationResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newDescribeSimulationApplication' smart constructor.+data DescribeSimulationApplication = DescribeSimulationApplication'+  { -- | The version of the simulation application to describe.+    applicationVersion :: Prelude.Maybe Prelude.Text,+    -- | The application information for the simulation application.+    application :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeSimulationApplication' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'applicationVersion', 'describeSimulationApplication_applicationVersion' - The version of the simulation application to describe.+--+-- 'application', 'describeSimulationApplication_application' - The application information for the simulation application.+newDescribeSimulationApplication ::+  -- | 'application'+  Prelude.Text ->+  DescribeSimulationApplication+newDescribeSimulationApplication pApplication_ =+  DescribeSimulationApplication'+    { applicationVersion =+        Prelude.Nothing,+      application = pApplication_+    }++-- | The version of the simulation application to describe.+describeSimulationApplication_applicationVersion :: Lens.Lens' DescribeSimulationApplication (Prelude.Maybe Prelude.Text)+describeSimulationApplication_applicationVersion = Lens.lens (\DescribeSimulationApplication' {applicationVersion} -> applicationVersion) (\s@DescribeSimulationApplication' {} a -> s {applicationVersion = a} :: DescribeSimulationApplication)++-- | The application information for the simulation application.+describeSimulationApplication_application :: Lens.Lens' DescribeSimulationApplication Prelude.Text+describeSimulationApplication_application = Lens.lens (\DescribeSimulationApplication' {application} -> application) (\s@DescribeSimulationApplication' {} a -> s {application = a} :: DescribeSimulationApplication)++instance+  Core.AWSRequest+    DescribeSimulationApplication+  where+  type+    AWSResponse DescribeSimulationApplication =+      DescribeSimulationApplicationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeSimulationApplicationResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "environment")+            Prelude.<*> (x Data..?> "imageDigest")+            Prelude.<*> (x Data..?> "lastUpdatedAt")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (x Data..?> "renderingEngine")+            Prelude.<*> (x Data..?> "revisionId")+            Prelude.<*> (x Data..?> "robotSoftwareSuite")+            Prelude.<*> (x Data..?> "simulationSoftwareSuite")+            Prelude.<*> (x Data..?> "sources" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "version")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DescribeSimulationApplication+  where+  hashWithSalt _salt DescribeSimulationApplication' {..} =+    _salt+      `Prelude.hashWithSalt` applicationVersion+      `Prelude.hashWithSalt` application++instance Prelude.NFData DescribeSimulationApplication where+  rnf DescribeSimulationApplication' {..} =+    Prelude.rnf applicationVersion+      `Prelude.seq` Prelude.rnf application++instance Data.ToHeaders DescribeSimulationApplication where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeSimulationApplication where+  toJSON DescribeSimulationApplication' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("applicationVersion" Data..=)+              Prelude.<$> applicationVersion,+            Prelude.Just ("application" Data..= application)+          ]+      )++instance Data.ToPath DescribeSimulationApplication where+  toPath =+    Prelude.const "/describeSimulationApplication"++instance Data.ToQuery DescribeSimulationApplication where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeSimulationApplicationResponse' smart constructor.+data DescribeSimulationApplicationResponse = DescribeSimulationApplicationResponse'+  { -- | The Amazon Resource Name (ARN) of the robot simulation application.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The object that contains the Docker image URI used to create the+    -- simulation application.+    environment :: Prelude.Maybe Environment,+    -- | A SHA256 identifier for the Docker image that you use for your+    -- simulation application.+    imageDigest :: Prelude.Maybe Prelude.Text,+    -- | The time, in milliseconds since the epoch, when the simulation+    -- application was last updated.+    lastUpdatedAt :: Prelude.Maybe Data.POSIX,+    -- | The name of the simulation application.+    name :: Prelude.Maybe Prelude.Text,+    -- | The rendering engine for the simulation application.+    renderingEngine :: Prelude.Maybe RenderingEngine,+    -- | The revision id of the simulation application.+    revisionId :: Prelude.Maybe Prelude.Text,+    -- | Information about the robot software suite (ROS distribution).+    robotSoftwareSuite :: Prelude.Maybe RobotSoftwareSuite,+    -- | The simulation software suite used by the simulation application.+    simulationSoftwareSuite :: Prelude.Maybe SimulationSoftwareSuite,+    -- | The sources of the simulation application.+    sources :: Prelude.Maybe [Source],+    -- | The list of all tags added to the specified simulation application.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The version of the simulation application.+    version :: 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 'DescribeSimulationApplicationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'describeSimulationApplicationResponse_arn' - The Amazon Resource Name (ARN) of the robot simulation application.+--+-- 'environment', 'describeSimulationApplicationResponse_environment' - The object that contains the Docker image URI used to create the+-- simulation application.+--+-- 'imageDigest', 'describeSimulationApplicationResponse_imageDigest' - A SHA256 identifier for the Docker image that you use for your+-- simulation application.+--+-- 'lastUpdatedAt', 'describeSimulationApplicationResponse_lastUpdatedAt' - The time, in milliseconds since the epoch, when the simulation+-- application was last updated.+--+-- 'name', 'describeSimulationApplicationResponse_name' - The name of the simulation application.+--+-- 'renderingEngine', 'describeSimulationApplicationResponse_renderingEngine' - The rendering engine for the simulation application.+--+-- 'revisionId', 'describeSimulationApplicationResponse_revisionId' - The revision id of the simulation application.+--+-- 'robotSoftwareSuite', 'describeSimulationApplicationResponse_robotSoftwareSuite' - Information about the robot software suite (ROS distribution).+--+-- 'simulationSoftwareSuite', 'describeSimulationApplicationResponse_simulationSoftwareSuite' - The simulation software suite used by the simulation application.+--+-- 'sources', 'describeSimulationApplicationResponse_sources' - The sources of the simulation application.+--+-- 'tags', 'describeSimulationApplicationResponse_tags' - The list of all tags added to the specified simulation application.+--+-- 'version', 'describeSimulationApplicationResponse_version' - The version of the simulation application.+--+-- 'httpStatus', 'describeSimulationApplicationResponse_httpStatus' - The response's http status code.+newDescribeSimulationApplicationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeSimulationApplicationResponse+newDescribeSimulationApplicationResponse pHttpStatus_ =+  DescribeSimulationApplicationResponse'+    { arn =+        Prelude.Nothing,+      environment = Prelude.Nothing,+      imageDigest = Prelude.Nothing,+      lastUpdatedAt = Prelude.Nothing,+      name = Prelude.Nothing,+      renderingEngine = Prelude.Nothing,+      revisionId = Prelude.Nothing,+      robotSoftwareSuite = Prelude.Nothing,+      simulationSoftwareSuite =+        Prelude.Nothing,+      sources = Prelude.Nothing,+      tags = Prelude.Nothing,+      version = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the robot simulation application.+describeSimulationApplicationResponse_arn :: Lens.Lens' DescribeSimulationApplicationResponse (Prelude.Maybe Prelude.Text)+describeSimulationApplicationResponse_arn = Lens.lens (\DescribeSimulationApplicationResponse' {arn} -> arn) (\s@DescribeSimulationApplicationResponse' {} a -> s {arn = a} :: DescribeSimulationApplicationResponse)++-- | The object that contains the Docker image URI used to create the+-- simulation application.+describeSimulationApplicationResponse_environment :: Lens.Lens' DescribeSimulationApplicationResponse (Prelude.Maybe Environment)+describeSimulationApplicationResponse_environment = Lens.lens (\DescribeSimulationApplicationResponse' {environment} -> environment) (\s@DescribeSimulationApplicationResponse' {} a -> s {environment = a} :: DescribeSimulationApplicationResponse)++-- | A SHA256 identifier for the Docker image that you use for your+-- simulation application.+describeSimulationApplicationResponse_imageDigest :: Lens.Lens' DescribeSimulationApplicationResponse (Prelude.Maybe Prelude.Text)+describeSimulationApplicationResponse_imageDigest = Lens.lens (\DescribeSimulationApplicationResponse' {imageDigest} -> imageDigest) (\s@DescribeSimulationApplicationResponse' {} a -> s {imageDigest = a} :: DescribeSimulationApplicationResponse)++-- | The time, in milliseconds since the epoch, when the simulation+-- application was last updated.+describeSimulationApplicationResponse_lastUpdatedAt :: Lens.Lens' DescribeSimulationApplicationResponse (Prelude.Maybe Prelude.UTCTime)+describeSimulationApplicationResponse_lastUpdatedAt = Lens.lens (\DescribeSimulationApplicationResponse' {lastUpdatedAt} -> lastUpdatedAt) (\s@DescribeSimulationApplicationResponse' {} a -> s {lastUpdatedAt = a} :: DescribeSimulationApplicationResponse) Prelude.. Lens.mapping Data._Time++-- | The name of the simulation application.+describeSimulationApplicationResponse_name :: Lens.Lens' DescribeSimulationApplicationResponse (Prelude.Maybe Prelude.Text)+describeSimulationApplicationResponse_name = Lens.lens (\DescribeSimulationApplicationResponse' {name} -> name) (\s@DescribeSimulationApplicationResponse' {} a -> s {name = a} :: DescribeSimulationApplicationResponse)++-- | The rendering engine for the simulation application.+describeSimulationApplicationResponse_renderingEngine :: Lens.Lens' DescribeSimulationApplicationResponse (Prelude.Maybe RenderingEngine)+describeSimulationApplicationResponse_renderingEngine = Lens.lens (\DescribeSimulationApplicationResponse' {renderingEngine} -> renderingEngine) (\s@DescribeSimulationApplicationResponse' {} a -> s {renderingEngine = a} :: DescribeSimulationApplicationResponse)++-- | The revision id of the simulation application.+describeSimulationApplicationResponse_revisionId :: Lens.Lens' DescribeSimulationApplicationResponse (Prelude.Maybe Prelude.Text)+describeSimulationApplicationResponse_revisionId = Lens.lens (\DescribeSimulationApplicationResponse' {revisionId} -> revisionId) (\s@DescribeSimulationApplicationResponse' {} a -> s {revisionId = a} :: DescribeSimulationApplicationResponse)++-- | Information about the robot software suite (ROS distribution).+describeSimulationApplicationResponse_robotSoftwareSuite :: Lens.Lens' DescribeSimulationApplicationResponse (Prelude.Maybe RobotSoftwareSuite)+describeSimulationApplicationResponse_robotSoftwareSuite = Lens.lens (\DescribeSimulationApplicationResponse' {robotSoftwareSuite} -> robotSoftwareSuite) (\s@DescribeSimulationApplicationResponse' {} a -> s {robotSoftwareSuite = a} :: DescribeSimulationApplicationResponse)++-- | The simulation software suite used by the simulation application.+describeSimulationApplicationResponse_simulationSoftwareSuite :: Lens.Lens' DescribeSimulationApplicationResponse (Prelude.Maybe SimulationSoftwareSuite)+describeSimulationApplicationResponse_simulationSoftwareSuite = Lens.lens (\DescribeSimulationApplicationResponse' {simulationSoftwareSuite} -> simulationSoftwareSuite) (\s@DescribeSimulationApplicationResponse' {} a -> s {simulationSoftwareSuite = a} :: DescribeSimulationApplicationResponse)++-- | The sources of the simulation application.+describeSimulationApplicationResponse_sources :: Lens.Lens' DescribeSimulationApplicationResponse (Prelude.Maybe [Source])+describeSimulationApplicationResponse_sources = Lens.lens (\DescribeSimulationApplicationResponse' {sources} -> sources) (\s@DescribeSimulationApplicationResponse' {} a -> s {sources = a} :: DescribeSimulationApplicationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The list of all tags added to the specified simulation application.+describeSimulationApplicationResponse_tags :: Lens.Lens' DescribeSimulationApplicationResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+describeSimulationApplicationResponse_tags = Lens.lens (\DescribeSimulationApplicationResponse' {tags} -> tags) (\s@DescribeSimulationApplicationResponse' {} a -> s {tags = a} :: DescribeSimulationApplicationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The version of the simulation application.+describeSimulationApplicationResponse_version :: Lens.Lens' DescribeSimulationApplicationResponse (Prelude.Maybe Prelude.Text)+describeSimulationApplicationResponse_version = Lens.lens (\DescribeSimulationApplicationResponse' {version} -> version) (\s@DescribeSimulationApplicationResponse' {} a -> s {version = a} :: DescribeSimulationApplicationResponse)++-- | The response's http status code.+describeSimulationApplicationResponse_httpStatus :: Lens.Lens' DescribeSimulationApplicationResponse Prelude.Int+describeSimulationApplicationResponse_httpStatus = Lens.lens (\DescribeSimulationApplicationResponse' {httpStatus} -> httpStatus) (\s@DescribeSimulationApplicationResponse' {} a -> s {httpStatus = a} :: DescribeSimulationApplicationResponse)++instance+  Prelude.NFData+    DescribeSimulationApplicationResponse+  where+  rnf DescribeSimulationApplicationResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf environment+      `Prelude.seq` Prelude.rnf imageDigest+      `Prelude.seq` Prelude.rnf lastUpdatedAt+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf renderingEngine+      `Prelude.seq` Prelude.rnf revisionId+      `Prelude.seq` Prelude.rnf robotSoftwareSuite+      `Prelude.seq` Prelude.rnf simulationSoftwareSuite+      `Prelude.seq` Prelude.rnf sources+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf version+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/DescribeSimulationJob.hs view
@@ -0,0 +1,566 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.DescribeSimulationJob+-- 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 simulation job.+module Amazonka.RobOMaker.DescribeSimulationJob+  ( -- * Creating a Request+    DescribeSimulationJob (..),+    newDescribeSimulationJob,++    -- * Request Lenses+    describeSimulationJob_job,++    -- * Destructuring the Response+    DescribeSimulationJobResponse (..),+    newDescribeSimulationJobResponse,++    -- * Response Lenses+    describeSimulationJobResponse_arn,+    describeSimulationJobResponse_clientRequestToken,+    describeSimulationJobResponse_compute,+    describeSimulationJobResponse_dataSources,+    describeSimulationJobResponse_failureBehavior,+    describeSimulationJobResponse_failureCode,+    describeSimulationJobResponse_failureReason,+    describeSimulationJobResponse_iamRole,+    describeSimulationJobResponse_lastStartedAt,+    describeSimulationJobResponse_lastUpdatedAt,+    describeSimulationJobResponse_loggingConfig,+    describeSimulationJobResponse_maxJobDurationInSeconds,+    describeSimulationJobResponse_name,+    describeSimulationJobResponse_networkInterface,+    describeSimulationJobResponse_outputLocation,+    describeSimulationJobResponse_robotApplications,+    describeSimulationJobResponse_simulationApplications,+    describeSimulationJobResponse_simulationTimeMillis,+    describeSimulationJobResponse_status,+    describeSimulationJobResponse_tags,+    describeSimulationJobResponse_vpcConfig,+    describeSimulationJobResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newDescribeSimulationJob' smart constructor.+data DescribeSimulationJob = DescribeSimulationJob'+  { -- | The Amazon Resource Name (ARN) of the simulation job to be described.+    job :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeSimulationJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'job', 'describeSimulationJob_job' - The Amazon Resource Name (ARN) of the simulation job to be described.+newDescribeSimulationJob ::+  -- | 'job'+  Prelude.Text ->+  DescribeSimulationJob+newDescribeSimulationJob pJob_ =+  DescribeSimulationJob' {job = pJob_}++-- | The Amazon Resource Name (ARN) of the simulation job to be described.+describeSimulationJob_job :: Lens.Lens' DescribeSimulationJob Prelude.Text+describeSimulationJob_job = Lens.lens (\DescribeSimulationJob' {job} -> job) (\s@DescribeSimulationJob' {} a -> s {job = a} :: DescribeSimulationJob)++instance Core.AWSRequest DescribeSimulationJob where+  type+    AWSResponse DescribeSimulationJob =+      DescribeSimulationJobResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeSimulationJobResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "clientRequestToken")+            Prelude.<*> (x Data..?> "compute")+            Prelude.<*> (x Data..?> "dataSources" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "failureBehavior")+            Prelude.<*> (x Data..?> "failureCode")+            Prelude.<*> (x Data..?> "failureReason")+            Prelude.<*> (x Data..?> "iamRole")+            Prelude.<*> (x Data..?> "lastStartedAt")+            Prelude.<*> (x Data..?> "lastUpdatedAt")+            Prelude.<*> (x Data..?> "loggingConfig")+            Prelude.<*> (x Data..?> "maxJobDurationInSeconds")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (x Data..?> "networkInterface")+            Prelude.<*> (x Data..?> "outputLocation")+            Prelude.<*> (x Data..?> "robotApplications")+            Prelude.<*> (x Data..?> "simulationApplications")+            Prelude.<*> (x Data..?> "simulationTimeMillis")+            Prelude.<*> (x Data..?> "status")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "vpcConfig")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeSimulationJob where+  hashWithSalt _salt DescribeSimulationJob' {..} =+    _salt `Prelude.hashWithSalt` job++instance Prelude.NFData DescribeSimulationJob where+  rnf DescribeSimulationJob' {..} = Prelude.rnf job++instance Data.ToHeaders DescribeSimulationJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeSimulationJob where+  toJSON DescribeSimulationJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("job" Data..= job)]+      )++instance Data.ToPath DescribeSimulationJob where+  toPath = Prelude.const "/describeSimulationJob"++instance Data.ToQuery DescribeSimulationJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeSimulationJobResponse' smart constructor.+data DescribeSimulationJobResponse = DescribeSimulationJobResponse'+  { -- | The Amazon Resource Name (ARN) of the simulation job.+    arn :: Prelude.Maybe Prelude.Text,+    -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request.+    clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | Compute information for the simulation job.+    compute :: Prelude.Maybe ComputeResponse,+    -- | The data sources for the simulation job.+    dataSources :: Prelude.Maybe [DataSource],+    -- | The failure behavior for the simulation job.+    failureBehavior :: Prelude.Maybe FailureBehavior,+    -- | The failure code of the simulation job if it failed:+    --+    -- [InternalServiceError]+    --     Internal service error.+    --+    -- [RobotApplicationCrash]+    --     Robot application exited abnormally.+    --+    -- [SimulationApplicationCrash]+    --     Simulation application exited abnormally.+    --+    -- [BadPermissionsRobotApplication]+    --     Robot application bundle could not be downloaded.+    --+    -- [BadPermissionsSimulationApplication]+    --     Simulation application bundle could not be downloaded.+    --+    -- [BadPermissionsS3Output]+    --     Unable to publish outputs to customer-provided S3 bucket.+    --+    -- [BadPermissionsCloudwatchLogs]+    --     Unable to publish logs to customer-provided CloudWatch Logs+    --     resource.+    --+    -- [SubnetIpLimitExceeded]+    --     Subnet IP limit exceeded.+    --+    -- [ENILimitExceeded]+    --     ENI limit exceeded.+    --+    -- [BadPermissionsUserCredentials]+    --     Unable to use the Role provided.+    --+    -- [InvalidBundleRobotApplication]+    --     Robot bundle cannot be extracted (invalid format, bundling error, or+    --     other issue).+    --+    -- [InvalidBundleSimulationApplication]+    --     Simulation bundle cannot be extracted (invalid format, bundling+    --     error, or other issue).+    --+    -- [RobotApplicationVersionMismatchedEtag]+    --     Etag for RobotApplication does not match value during version+    --     creation.+    --+    -- [SimulationApplicationVersionMismatchedEtag]+    --     Etag for SimulationApplication does not match value during version+    --     creation.+    failureCode :: Prelude.Maybe SimulationJobErrorCode,+    -- | Details about why the simulation job failed. For more information about+    -- troubleshooting, see+    -- <https://docs.aws.amazon.com/robomaker/latest/dg/troubleshooting.html Troubleshooting>.+    failureReason :: Prelude.Maybe Prelude.Text,+    -- | The IAM role that allows the simulation instance to call the AWS APIs+    -- that are specified in its associated policies on your behalf.+    iamRole :: Prelude.Maybe Prelude.Text,+    -- | The time, in milliseconds since the epoch, when the simulation job was+    -- last started.+    lastStartedAt :: Prelude.Maybe Data.POSIX,+    -- | The time, in milliseconds since the epoch, when the simulation job was+    -- last updated.+    lastUpdatedAt :: Prelude.Maybe Data.POSIX,+    -- | The logging configuration.+    loggingConfig :: Prelude.Maybe LoggingConfig,+    -- | The maximum job duration in seconds. The value must be 8 days (691,200+    -- seconds) or less.+    maxJobDurationInSeconds :: Prelude.Maybe Prelude.Integer,+    -- | The name of the simulation job.+    name :: Prelude.Maybe Prelude.Text,+    -- | The network interface information for the simulation job.+    networkInterface :: Prelude.Maybe NetworkInterface,+    -- | Location for output files generated by the simulation job.+    outputLocation :: Prelude.Maybe OutputLocation,+    -- | A list of robot applications.+    robotApplications :: Prelude.Maybe (Prelude.NonEmpty RobotApplicationConfig),+    -- | A list of simulation applications.+    simulationApplications :: Prelude.Maybe (Prelude.NonEmpty SimulationApplicationConfig),+    -- | The simulation job execution duration in milliseconds.+    simulationTimeMillis :: Prelude.Maybe Prelude.Integer,+    -- | The status of the simulation job.+    status :: Prelude.Maybe SimulationJobStatus,+    -- | The list of all tags added to the specified simulation job.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The VPC configuration.+    vpcConfig :: Prelude.Maybe VPCConfigResponse,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeSimulationJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'describeSimulationJobResponse_arn' - The Amazon Resource Name (ARN) of the simulation job.+--+-- 'clientRequestToken', 'describeSimulationJobResponse_clientRequestToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+--+-- 'compute', 'describeSimulationJobResponse_compute' - Compute information for the simulation job.+--+-- 'dataSources', 'describeSimulationJobResponse_dataSources' - The data sources for the simulation job.+--+-- 'failureBehavior', 'describeSimulationJobResponse_failureBehavior' - The failure behavior for the simulation job.+--+-- 'failureCode', 'describeSimulationJobResponse_failureCode' - The failure code of the simulation job if it failed:+--+-- [InternalServiceError]+--     Internal service error.+--+-- [RobotApplicationCrash]+--     Robot application exited abnormally.+--+-- [SimulationApplicationCrash]+--     Simulation application exited abnormally.+--+-- [BadPermissionsRobotApplication]+--     Robot application bundle could not be downloaded.+--+-- [BadPermissionsSimulationApplication]+--     Simulation application bundle could not be downloaded.+--+-- [BadPermissionsS3Output]+--     Unable to publish outputs to customer-provided S3 bucket.+--+-- [BadPermissionsCloudwatchLogs]+--     Unable to publish logs to customer-provided CloudWatch Logs+--     resource.+--+-- [SubnetIpLimitExceeded]+--     Subnet IP limit exceeded.+--+-- [ENILimitExceeded]+--     ENI limit exceeded.+--+-- [BadPermissionsUserCredentials]+--     Unable to use the Role provided.+--+-- [InvalidBundleRobotApplication]+--     Robot bundle cannot be extracted (invalid format, bundling error, or+--     other issue).+--+-- [InvalidBundleSimulationApplication]+--     Simulation bundle cannot be extracted (invalid format, bundling+--     error, or other issue).+--+-- [RobotApplicationVersionMismatchedEtag]+--     Etag for RobotApplication does not match value during version+--     creation.+--+-- [SimulationApplicationVersionMismatchedEtag]+--     Etag for SimulationApplication does not match value during version+--     creation.+--+-- 'failureReason', 'describeSimulationJobResponse_failureReason' - Details about why the simulation job failed. For more information about+-- troubleshooting, see+-- <https://docs.aws.amazon.com/robomaker/latest/dg/troubleshooting.html Troubleshooting>.+--+-- 'iamRole', 'describeSimulationJobResponse_iamRole' - The IAM role that allows the simulation instance to call the AWS APIs+-- that are specified in its associated policies on your behalf.+--+-- 'lastStartedAt', 'describeSimulationJobResponse_lastStartedAt' - The time, in milliseconds since the epoch, when the simulation job was+-- last started.+--+-- 'lastUpdatedAt', 'describeSimulationJobResponse_lastUpdatedAt' - The time, in milliseconds since the epoch, when the simulation job was+-- last updated.+--+-- 'loggingConfig', 'describeSimulationJobResponse_loggingConfig' - The logging configuration.+--+-- 'maxJobDurationInSeconds', 'describeSimulationJobResponse_maxJobDurationInSeconds' - The maximum job duration in seconds. The value must be 8 days (691,200+-- seconds) or less.+--+-- 'name', 'describeSimulationJobResponse_name' - The name of the simulation job.+--+-- 'networkInterface', 'describeSimulationJobResponse_networkInterface' - The network interface information for the simulation job.+--+-- 'outputLocation', 'describeSimulationJobResponse_outputLocation' - Location for output files generated by the simulation job.+--+-- 'robotApplications', 'describeSimulationJobResponse_robotApplications' - A list of robot applications.+--+-- 'simulationApplications', 'describeSimulationJobResponse_simulationApplications' - A list of simulation applications.+--+-- 'simulationTimeMillis', 'describeSimulationJobResponse_simulationTimeMillis' - The simulation job execution duration in milliseconds.+--+-- 'status', 'describeSimulationJobResponse_status' - The status of the simulation job.+--+-- 'tags', 'describeSimulationJobResponse_tags' - The list of all tags added to the specified simulation job.+--+-- 'vpcConfig', 'describeSimulationJobResponse_vpcConfig' - The VPC configuration.+--+-- 'httpStatus', 'describeSimulationJobResponse_httpStatus' - The response's http status code.+newDescribeSimulationJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeSimulationJobResponse+newDescribeSimulationJobResponse pHttpStatus_ =+  DescribeSimulationJobResponse'+    { arn =+        Prelude.Nothing,+      clientRequestToken = Prelude.Nothing,+      compute = Prelude.Nothing,+      dataSources = Prelude.Nothing,+      failureBehavior = Prelude.Nothing,+      failureCode = Prelude.Nothing,+      failureReason = Prelude.Nothing,+      iamRole = Prelude.Nothing,+      lastStartedAt = Prelude.Nothing,+      lastUpdatedAt = Prelude.Nothing,+      loggingConfig = Prelude.Nothing,+      maxJobDurationInSeconds = Prelude.Nothing,+      name = Prelude.Nothing,+      networkInterface = Prelude.Nothing,+      outputLocation = Prelude.Nothing,+      robotApplications = Prelude.Nothing,+      simulationApplications = Prelude.Nothing,+      simulationTimeMillis = Prelude.Nothing,+      status = Prelude.Nothing,+      tags = Prelude.Nothing,+      vpcConfig = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the simulation job.+describeSimulationJobResponse_arn :: Lens.Lens' DescribeSimulationJobResponse (Prelude.Maybe Prelude.Text)+describeSimulationJobResponse_arn = Lens.lens (\DescribeSimulationJobResponse' {arn} -> arn) (\s@DescribeSimulationJobResponse' {} a -> s {arn = a} :: DescribeSimulationJobResponse)++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+describeSimulationJobResponse_clientRequestToken :: Lens.Lens' DescribeSimulationJobResponse (Prelude.Maybe Prelude.Text)+describeSimulationJobResponse_clientRequestToken = Lens.lens (\DescribeSimulationJobResponse' {clientRequestToken} -> clientRequestToken) (\s@DescribeSimulationJobResponse' {} a -> s {clientRequestToken = a} :: DescribeSimulationJobResponse)++-- | Compute information for the simulation job.+describeSimulationJobResponse_compute :: Lens.Lens' DescribeSimulationJobResponse (Prelude.Maybe ComputeResponse)+describeSimulationJobResponse_compute = Lens.lens (\DescribeSimulationJobResponse' {compute} -> compute) (\s@DescribeSimulationJobResponse' {} a -> s {compute = a} :: DescribeSimulationJobResponse)++-- | The data sources for the simulation job.+describeSimulationJobResponse_dataSources :: Lens.Lens' DescribeSimulationJobResponse (Prelude.Maybe [DataSource])+describeSimulationJobResponse_dataSources = Lens.lens (\DescribeSimulationJobResponse' {dataSources} -> dataSources) (\s@DescribeSimulationJobResponse' {} a -> s {dataSources = a} :: DescribeSimulationJobResponse) Prelude.. Lens.mapping Lens.coerced++-- | The failure behavior for the simulation job.+describeSimulationJobResponse_failureBehavior :: Lens.Lens' DescribeSimulationJobResponse (Prelude.Maybe FailureBehavior)+describeSimulationJobResponse_failureBehavior = Lens.lens (\DescribeSimulationJobResponse' {failureBehavior} -> failureBehavior) (\s@DescribeSimulationJobResponse' {} a -> s {failureBehavior = a} :: DescribeSimulationJobResponse)++-- | The failure code of the simulation job if it failed:+--+-- [InternalServiceError]+--     Internal service error.+--+-- [RobotApplicationCrash]+--     Robot application exited abnormally.+--+-- [SimulationApplicationCrash]+--     Simulation application exited abnormally.+--+-- [BadPermissionsRobotApplication]+--     Robot application bundle could not be downloaded.+--+-- [BadPermissionsSimulationApplication]+--     Simulation application bundle could not be downloaded.+--+-- [BadPermissionsS3Output]+--     Unable to publish outputs to customer-provided S3 bucket.+--+-- [BadPermissionsCloudwatchLogs]+--     Unable to publish logs to customer-provided CloudWatch Logs+--     resource.+--+-- [SubnetIpLimitExceeded]+--     Subnet IP limit exceeded.+--+-- [ENILimitExceeded]+--     ENI limit exceeded.+--+-- [BadPermissionsUserCredentials]+--     Unable to use the Role provided.+--+-- [InvalidBundleRobotApplication]+--     Robot bundle cannot be extracted (invalid format, bundling error, or+--     other issue).+--+-- [InvalidBundleSimulationApplication]+--     Simulation bundle cannot be extracted (invalid format, bundling+--     error, or other issue).+--+-- [RobotApplicationVersionMismatchedEtag]+--     Etag for RobotApplication does not match value during version+--     creation.+--+-- [SimulationApplicationVersionMismatchedEtag]+--     Etag for SimulationApplication does not match value during version+--     creation.+describeSimulationJobResponse_failureCode :: Lens.Lens' DescribeSimulationJobResponse (Prelude.Maybe SimulationJobErrorCode)+describeSimulationJobResponse_failureCode = Lens.lens (\DescribeSimulationJobResponse' {failureCode} -> failureCode) (\s@DescribeSimulationJobResponse' {} a -> s {failureCode = a} :: DescribeSimulationJobResponse)++-- | Details about why the simulation job failed. For more information about+-- troubleshooting, see+-- <https://docs.aws.amazon.com/robomaker/latest/dg/troubleshooting.html Troubleshooting>.+describeSimulationJobResponse_failureReason :: Lens.Lens' DescribeSimulationJobResponse (Prelude.Maybe Prelude.Text)+describeSimulationJobResponse_failureReason = Lens.lens (\DescribeSimulationJobResponse' {failureReason} -> failureReason) (\s@DescribeSimulationJobResponse' {} a -> s {failureReason = a} :: DescribeSimulationJobResponse)++-- | The IAM role that allows the simulation instance to call the AWS APIs+-- that are specified in its associated policies on your behalf.+describeSimulationJobResponse_iamRole :: Lens.Lens' DescribeSimulationJobResponse (Prelude.Maybe Prelude.Text)+describeSimulationJobResponse_iamRole = Lens.lens (\DescribeSimulationJobResponse' {iamRole} -> iamRole) (\s@DescribeSimulationJobResponse' {} a -> s {iamRole = a} :: DescribeSimulationJobResponse)++-- | The time, in milliseconds since the epoch, when the simulation job was+-- last started.+describeSimulationJobResponse_lastStartedAt :: Lens.Lens' DescribeSimulationJobResponse (Prelude.Maybe Prelude.UTCTime)+describeSimulationJobResponse_lastStartedAt = Lens.lens (\DescribeSimulationJobResponse' {lastStartedAt} -> lastStartedAt) (\s@DescribeSimulationJobResponse' {} a -> s {lastStartedAt = a} :: DescribeSimulationJobResponse) Prelude.. Lens.mapping Data._Time++-- | The time, in milliseconds since the epoch, when the simulation job was+-- last updated.+describeSimulationJobResponse_lastUpdatedAt :: Lens.Lens' DescribeSimulationJobResponse (Prelude.Maybe Prelude.UTCTime)+describeSimulationJobResponse_lastUpdatedAt = Lens.lens (\DescribeSimulationJobResponse' {lastUpdatedAt} -> lastUpdatedAt) (\s@DescribeSimulationJobResponse' {} a -> s {lastUpdatedAt = a} :: DescribeSimulationJobResponse) Prelude.. Lens.mapping Data._Time++-- | The logging configuration.+describeSimulationJobResponse_loggingConfig :: Lens.Lens' DescribeSimulationJobResponse (Prelude.Maybe LoggingConfig)+describeSimulationJobResponse_loggingConfig = Lens.lens (\DescribeSimulationJobResponse' {loggingConfig} -> loggingConfig) (\s@DescribeSimulationJobResponse' {} a -> s {loggingConfig = a} :: DescribeSimulationJobResponse)++-- | The maximum job duration in seconds. The value must be 8 days (691,200+-- seconds) or less.+describeSimulationJobResponse_maxJobDurationInSeconds :: Lens.Lens' DescribeSimulationJobResponse (Prelude.Maybe Prelude.Integer)+describeSimulationJobResponse_maxJobDurationInSeconds = Lens.lens (\DescribeSimulationJobResponse' {maxJobDurationInSeconds} -> maxJobDurationInSeconds) (\s@DescribeSimulationJobResponse' {} a -> s {maxJobDurationInSeconds = a} :: DescribeSimulationJobResponse)++-- | The name of the simulation job.+describeSimulationJobResponse_name :: Lens.Lens' DescribeSimulationJobResponse (Prelude.Maybe Prelude.Text)+describeSimulationJobResponse_name = Lens.lens (\DescribeSimulationJobResponse' {name} -> name) (\s@DescribeSimulationJobResponse' {} a -> s {name = a} :: DescribeSimulationJobResponse)++-- | The network interface information for the simulation job.+describeSimulationJobResponse_networkInterface :: Lens.Lens' DescribeSimulationJobResponse (Prelude.Maybe NetworkInterface)+describeSimulationJobResponse_networkInterface = Lens.lens (\DescribeSimulationJobResponse' {networkInterface} -> networkInterface) (\s@DescribeSimulationJobResponse' {} a -> s {networkInterface = a} :: DescribeSimulationJobResponse)++-- | Location for output files generated by the simulation job.+describeSimulationJobResponse_outputLocation :: Lens.Lens' DescribeSimulationJobResponse (Prelude.Maybe OutputLocation)+describeSimulationJobResponse_outputLocation = Lens.lens (\DescribeSimulationJobResponse' {outputLocation} -> outputLocation) (\s@DescribeSimulationJobResponse' {} a -> s {outputLocation = a} :: DescribeSimulationJobResponse)++-- | A list of robot applications.+describeSimulationJobResponse_robotApplications :: Lens.Lens' DescribeSimulationJobResponse (Prelude.Maybe (Prelude.NonEmpty RobotApplicationConfig))+describeSimulationJobResponse_robotApplications = Lens.lens (\DescribeSimulationJobResponse' {robotApplications} -> robotApplications) (\s@DescribeSimulationJobResponse' {} a -> s {robotApplications = a} :: DescribeSimulationJobResponse) Prelude.. Lens.mapping Lens.coerced++-- | A list of simulation applications.+describeSimulationJobResponse_simulationApplications :: Lens.Lens' DescribeSimulationJobResponse (Prelude.Maybe (Prelude.NonEmpty SimulationApplicationConfig))+describeSimulationJobResponse_simulationApplications = Lens.lens (\DescribeSimulationJobResponse' {simulationApplications} -> simulationApplications) (\s@DescribeSimulationJobResponse' {} a -> s {simulationApplications = a} :: DescribeSimulationJobResponse) Prelude.. Lens.mapping Lens.coerced++-- | The simulation job execution duration in milliseconds.+describeSimulationJobResponse_simulationTimeMillis :: Lens.Lens' DescribeSimulationJobResponse (Prelude.Maybe Prelude.Integer)+describeSimulationJobResponse_simulationTimeMillis = Lens.lens (\DescribeSimulationJobResponse' {simulationTimeMillis} -> simulationTimeMillis) (\s@DescribeSimulationJobResponse' {} a -> s {simulationTimeMillis = a} :: DescribeSimulationJobResponse)++-- | The status of the simulation job.+describeSimulationJobResponse_status :: Lens.Lens' DescribeSimulationJobResponse (Prelude.Maybe SimulationJobStatus)+describeSimulationJobResponse_status = Lens.lens (\DescribeSimulationJobResponse' {status} -> status) (\s@DescribeSimulationJobResponse' {} a -> s {status = a} :: DescribeSimulationJobResponse)++-- | The list of all tags added to the specified simulation job.+describeSimulationJobResponse_tags :: Lens.Lens' DescribeSimulationJobResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+describeSimulationJobResponse_tags = Lens.lens (\DescribeSimulationJobResponse' {tags} -> tags) (\s@DescribeSimulationJobResponse' {} a -> s {tags = a} :: DescribeSimulationJobResponse) Prelude.. Lens.mapping Lens.coerced++-- | The VPC configuration.+describeSimulationJobResponse_vpcConfig :: Lens.Lens' DescribeSimulationJobResponse (Prelude.Maybe VPCConfigResponse)+describeSimulationJobResponse_vpcConfig = Lens.lens (\DescribeSimulationJobResponse' {vpcConfig} -> vpcConfig) (\s@DescribeSimulationJobResponse' {} a -> s {vpcConfig = a} :: DescribeSimulationJobResponse)++-- | The response's http status code.+describeSimulationJobResponse_httpStatus :: Lens.Lens' DescribeSimulationJobResponse Prelude.Int+describeSimulationJobResponse_httpStatus = Lens.lens (\DescribeSimulationJobResponse' {httpStatus} -> httpStatus) (\s@DescribeSimulationJobResponse' {} a -> s {httpStatus = a} :: DescribeSimulationJobResponse)++instance Prelude.NFData DescribeSimulationJobResponse where+  rnf DescribeSimulationJobResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf compute+      `Prelude.seq` Prelude.rnf dataSources+      `Prelude.seq` Prelude.rnf failureBehavior+      `Prelude.seq` Prelude.rnf failureCode+      `Prelude.seq` Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf iamRole+      `Prelude.seq` Prelude.rnf lastStartedAt+      `Prelude.seq` Prelude.rnf lastUpdatedAt+      `Prelude.seq` Prelude.rnf loggingConfig+      `Prelude.seq` Prelude.rnf maxJobDurationInSeconds+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf networkInterface+      `Prelude.seq` Prelude.rnf outputLocation+      `Prelude.seq` Prelude.rnf robotApplications+      `Prelude.seq` Prelude.rnf simulationApplications+      `Prelude.seq` Prelude.rnf simulationTimeMillis+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf vpcConfig+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/DescribeSimulationJobBatch.hs view
@@ -0,0 +1,441 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.DescribeSimulationJobBatch+-- 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 simulation job batch.+module Amazonka.RobOMaker.DescribeSimulationJobBatch+  ( -- * Creating a Request+    DescribeSimulationJobBatch (..),+    newDescribeSimulationJobBatch,++    -- * Request Lenses+    describeSimulationJobBatch_batch,++    -- * Destructuring the Response+    DescribeSimulationJobBatchResponse (..),+    newDescribeSimulationJobBatchResponse,++    -- * Response Lenses+    describeSimulationJobBatchResponse_arn,+    describeSimulationJobBatchResponse_batchPolicy,+    describeSimulationJobBatchResponse_clientRequestToken,+    describeSimulationJobBatchResponse_createdAt,+    describeSimulationJobBatchResponse_createdRequests,+    describeSimulationJobBatchResponse_failedRequests,+    describeSimulationJobBatchResponse_failureCode,+    describeSimulationJobBatchResponse_failureReason,+    describeSimulationJobBatchResponse_lastUpdatedAt,+    describeSimulationJobBatchResponse_pendingRequests,+    describeSimulationJobBatchResponse_status,+    describeSimulationJobBatchResponse_tags,+    describeSimulationJobBatchResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newDescribeSimulationJobBatch' smart constructor.+data DescribeSimulationJobBatch = DescribeSimulationJobBatch'+  { -- | The id of the batch to describe.+    batch :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeSimulationJobBatch' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'batch', 'describeSimulationJobBatch_batch' - The id of the batch to describe.+newDescribeSimulationJobBatch ::+  -- | 'batch'+  Prelude.Text ->+  DescribeSimulationJobBatch+newDescribeSimulationJobBatch pBatch_ =+  DescribeSimulationJobBatch' {batch = pBatch_}++-- | The id of the batch to describe.+describeSimulationJobBatch_batch :: Lens.Lens' DescribeSimulationJobBatch Prelude.Text+describeSimulationJobBatch_batch = Lens.lens (\DescribeSimulationJobBatch' {batch} -> batch) (\s@DescribeSimulationJobBatch' {} a -> s {batch = a} :: DescribeSimulationJobBatch)++instance Core.AWSRequest DescribeSimulationJobBatch where+  type+    AWSResponse DescribeSimulationJobBatch =+      DescribeSimulationJobBatchResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeSimulationJobBatchResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "batchPolicy")+            Prelude.<*> (x Data..?> "clientRequestToken")+            Prelude.<*> (x Data..?> "createdAt")+            Prelude.<*> ( x+                            Data..?> "createdRequests"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "failedRequests" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "failureCode")+            Prelude.<*> (x Data..?> "failureReason")+            Prelude.<*> (x Data..?> "lastUpdatedAt")+            Prelude.<*> (x Data..?> "pendingRequests")+            Prelude.<*> (x Data..?> "status")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeSimulationJobBatch where+  hashWithSalt _salt DescribeSimulationJobBatch' {..} =+    _salt `Prelude.hashWithSalt` batch++instance Prelude.NFData DescribeSimulationJobBatch where+  rnf DescribeSimulationJobBatch' {..} =+    Prelude.rnf batch++instance Data.ToHeaders DescribeSimulationJobBatch where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeSimulationJobBatch where+  toJSON DescribeSimulationJobBatch' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("batch" Data..= batch)]+      )++instance Data.ToPath DescribeSimulationJobBatch where+  toPath = Prelude.const "/describeSimulationJobBatch"++instance Data.ToQuery DescribeSimulationJobBatch where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeSimulationJobBatchResponse' smart constructor.+data DescribeSimulationJobBatchResponse = DescribeSimulationJobBatchResponse'+  { -- | The Amazon Resource Name (ARN) of the batch.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The batch policy.+    batchPolicy :: Prelude.Maybe BatchPolicy,+    -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request.+    clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | The time, in milliseconds since the epoch, when the simulation job batch+    -- was created.+    createdAt :: Prelude.Maybe Data.POSIX,+    -- | A list of created simulation job summaries.+    createdRequests :: Prelude.Maybe [SimulationJobSummary],+    -- | A list of failed create simulation job requests. The request failed to+    -- be created into a simulation job. Failed requests do not have a+    -- simulation job ID.+    failedRequests :: Prelude.Maybe [FailedCreateSimulationJobRequest],+    -- | The failure code of the simulation job batch.+    failureCode :: Prelude.Maybe SimulationJobBatchErrorCode,+    -- | The reason the simulation job batch failed.+    failureReason :: Prelude.Maybe Prelude.Text,+    -- | The time, in milliseconds since the epoch, when the simulation job batch+    -- was last updated.+    lastUpdatedAt :: Prelude.Maybe Data.POSIX,+    -- | A list of pending simulation job requests. These requests have not yet+    -- been created into simulation jobs.+    pendingRequests :: Prelude.Maybe (Prelude.NonEmpty SimulationJobRequest),+    -- | The status of the batch.+    --+    -- [Pending]+    --     The simulation job batch request is pending.+    --+    -- [InProgress]+    --     The simulation job batch is in progress.+    --+    -- [Failed]+    --     The simulation job batch failed. One or more simulation job requests+    --     could not be completed due to an internal failure (like+    --     @InternalServiceError@). See @failureCode@ and @failureReason@ for+    --     more information.+    --+    -- [Completed]+    --     The simulation batch job completed. A batch is complete when (1)+    --     there are no pending simulation job requests in the batch and none+    --     of the failed simulation job requests are due to+    --     @InternalServiceError@ and (2) when all created simulation jobs have+    --     reached a terminal state (for example, @Completed@ or @Failed@).+    --+    -- [Canceled]+    --     The simulation batch job was cancelled.+    --+    -- [Canceling]+    --     The simulation batch job is being cancelled.+    --+    -- [Completing]+    --     The simulation batch job is completing.+    --+    -- [TimingOut]+    --     The simulation job batch is timing out.+    --+    --     If a batch timing out, and there are pending requests that were+    --     failing due to an internal failure (like @InternalServiceError@),+    --     the batch status will be @Failed@. If there are no such failing+    --     request, the batch status will be @TimedOut@.+    --+    -- [TimedOut]+    --     The simulation batch job timed out.+    status :: Prelude.Maybe SimulationJobBatchStatus,+    -- | A map that contains tag keys and tag values that are attached to the+    -- simulation job batch.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeSimulationJobBatchResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'describeSimulationJobBatchResponse_arn' - The Amazon Resource Name (ARN) of the batch.+--+-- 'batchPolicy', 'describeSimulationJobBatchResponse_batchPolicy' - The batch policy.+--+-- 'clientRequestToken', 'describeSimulationJobBatchResponse_clientRequestToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+--+-- 'createdAt', 'describeSimulationJobBatchResponse_createdAt' - The time, in milliseconds since the epoch, when the simulation job batch+-- was created.+--+-- 'createdRequests', 'describeSimulationJobBatchResponse_createdRequests' - A list of created simulation job summaries.+--+-- 'failedRequests', 'describeSimulationJobBatchResponse_failedRequests' - A list of failed create simulation job requests. The request failed to+-- be created into a simulation job. Failed requests do not have a+-- simulation job ID.+--+-- 'failureCode', 'describeSimulationJobBatchResponse_failureCode' - The failure code of the simulation job batch.+--+-- 'failureReason', 'describeSimulationJobBatchResponse_failureReason' - The reason the simulation job batch failed.+--+-- 'lastUpdatedAt', 'describeSimulationJobBatchResponse_lastUpdatedAt' - The time, in milliseconds since the epoch, when the simulation job batch+-- was last updated.+--+-- 'pendingRequests', 'describeSimulationJobBatchResponse_pendingRequests' - A list of pending simulation job requests. These requests have not yet+-- been created into simulation jobs.+--+-- 'status', 'describeSimulationJobBatchResponse_status' - The status of the batch.+--+-- [Pending]+--     The simulation job batch request is pending.+--+-- [InProgress]+--     The simulation job batch is in progress.+--+-- [Failed]+--     The simulation job batch failed. One or more simulation job requests+--     could not be completed due to an internal failure (like+--     @InternalServiceError@). See @failureCode@ and @failureReason@ for+--     more information.+--+-- [Completed]+--     The simulation batch job completed. A batch is complete when (1)+--     there are no pending simulation job requests in the batch and none+--     of the failed simulation job requests are due to+--     @InternalServiceError@ and (2) when all created simulation jobs have+--     reached a terminal state (for example, @Completed@ or @Failed@).+--+-- [Canceled]+--     The simulation batch job was cancelled.+--+-- [Canceling]+--     The simulation batch job is being cancelled.+--+-- [Completing]+--     The simulation batch job is completing.+--+-- [TimingOut]+--     The simulation job batch is timing out.+--+--     If a batch timing out, and there are pending requests that were+--     failing due to an internal failure (like @InternalServiceError@),+--     the batch status will be @Failed@. If there are no such failing+--     request, the batch status will be @TimedOut@.+--+-- [TimedOut]+--     The simulation batch job timed out.+--+-- 'tags', 'describeSimulationJobBatchResponse_tags' - A map that contains tag keys and tag values that are attached to the+-- simulation job batch.+--+-- 'httpStatus', 'describeSimulationJobBatchResponse_httpStatus' - The response's http status code.+newDescribeSimulationJobBatchResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeSimulationJobBatchResponse+newDescribeSimulationJobBatchResponse pHttpStatus_ =+  DescribeSimulationJobBatchResponse'+    { arn =+        Prelude.Nothing,+      batchPolicy = Prelude.Nothing,+      clientRequestToken = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      createdRequests = Prelude.Nothing,+      failedRequests = Prelude.Nothing,+      failureCode = Prelude.Nothing,+      failureReason = Prelude.Nothing,+      lastUpdatedAt = Prelude.Nothing,+      pendingRequests = Prelude.Nothing,+      status = Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the batch.+describeSimulationJobBatchResponse_arn :: Lens.Lens' DescribeSimulationJobBatchResponse (Prelude.Maybe Prelude.Text)+describeSimulationJobBatchResponse_arn = Lens.lens (\DescribeSimulationJobBatchResponse' {arn} -> arn) (\s@DescribeSimulationJobBatchResponse' {} a -> s {arn = a} :: DescribeSimulationJobBatchResponse)++-- | The batch policy.+describeSimulationJobBatchResponse_batchPolicy :: Lens.Lens' DescribeSimulationJobBatchResponse (Prelude.Maybe BatchPolicy)+describeSimulationJobBatchResponse_batchPolicy = Lens.lens (\DescribeSimulationJobBatchResponse' {batchPolicy} -> batchPolicy) (\s@DescribeSimulationJobBatchResponse' {} a -> s {batchPolicy = a} :: DescribeSimulationJobBatchResponse)++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+describeSimulationJobBatchResponse_clientRequestToken :: Lens.Lens' DescribeSimulationJobBatchResponse (Prelude.Maybe Prelude.Text)+describeSimulationJobBatchResponse_clientRequestToken = Lens.lens (\DescribeSimulationJobBatchResponse' {clientRequestToken} -> clientRequestToken) (\s@DescribeSimulationJobBatchResponse' {} a -> s {clientRequestToken = a} :: DescribeSimulationJobBatchResponse)++-- | The time, in milliseconds since the epoch, when the simulation job batch+-- was created.+describeSimulationJobBatchResponse_createdAt :: Lens.Lens' DescribeSimulationJobBatchResponse (Prelude.Maybe Prelude.UTCTime)+describeSimulationJobBatchResponse_createdAt = Lens.lens (\DescribeSimulationJobBatchResponse' {createdAt} -> createdAt) (\s@DescribeSimulationJobBatchResponse' {} a -> s {createdAt = a} :: DescribeSimulationJobBatchResponse) Prelude.. Lens.mapping Data._Time++-- | A list of created simulation job summaries.+describeSimulationJobBatchResponse_createdRequests :: Lens.Lens' DescribeSimulationJobBatchResponse (Prelude.Maybe [SimulationJobSummary])+describeSimulationJobBatchResponse_createdRequests = Lens.lens (\DescribeSimulationJobBatchResponse' {createdRequests} -> createdRequests) (\s@DescribeSimulationJobBatchResponse' {} a -> s {createdRequests = a} :: DescribeSimulationJobBatchResponse) Prelude.. Lens.mapping Lens.coerced++-- | A list of failed create simulation job requests. The request failed to+-- be created into a simulation job. Failed requests do not have a+-- simulation job ID.+describeSimulationJobBatchResponse_failedRequests :: Lens.Lens' DescribeSimulationJobBatchResponse (Prelude.Maybe [FailedCreateSimulationJobRequest])+describeSimulationJobBatchResponse_failedRequests = Lens.lens (\DescribeSimulationJobBatchResponse' {failedRequests} -> failedRequests) (\s@DescribeSimulationJobBatchResponse' {} a -> s {failedRequests = a} :: DescribeSimulationJobBatchResponse) Prelude.. Lens.mapping Lens.coerced++-- | The failure code of the simulation job batch.+describeSimulationJobBatchResponse_failureCode :: Lens.Lens' DescribeSimulationJobBatchResponse (Prelude.Maybe SimulationJobBatchErrorCode)+describeSimulationJobBatchResponse_failureCode = Lens.lens (\DescribeSimulationJobBatchResponse' {failureCode} -> failureCode) (\s@DescribeSimulationJobBatchResponse' {} a -> s {failureCode = a} :: DescribeSimulationJobBatchResponse)++-- | The reason the simulation job batch failed.+describeSimulationJobBatchResponse_failureReason :: Lens.Lens' DescribeSimulationJobBatchResponse (Prelude.Maybe Prelude.Text)+describeSimulationJobBatchResponse_failureReason = Lens.lens (\DescribeSimulationJobBatchResponse' {failureReason} -> failureReason) (\s@DescribeSimulationJobBatchResponse' {} a -> s {failureReason = a} :: DescribeSimulationJobBatchResponse)++-- | The time, in milliseconds since the epoch, when the simulation job batch+-- was last updated.+describeSimulationJobBatchResponse_lastUpdatedAt :: Lens.Lens' DescribeSimulationJobBatchResponse (Prelude.Maybe Prelude.UTCTime)+describeSimulationJobBatchResponse_lastUpdatedAt = Lens.lens (\DescribeSimulationJobBatchResponse' {lastUpdatedAt} -> lastUpdatedAt) (\s@DescribeSimulationJobBatchResponse' {} a -> s {lastUpdatedAt = a} :: DescribeSimulationJobBatchResponse) Prelude.. Lens.mapping Data._Time++-- | A list of pending simulation job requests. These requests have not yet+-- been created into simulation jobs.+describeSimulationJobBatchResponse_pendingRequests :: Lens.Lens' DescribeSimulationJobBatchResponse (Prelude.Maybe (Prelude.NonEmpty SimulationJobRequest))+describeSimulationJobBatchResponse_pendingRequests = Lens.lens (\DescribeSimulationJobBatchResponse' {pendingRequests} -> pendingRequests) (\s@DescribeSimulationJobBatchResponse' {} a -> s {pendingRequests = a} :: DescribeSimulationJobBatchResponse) Prelude.. Lens.mapping Lens.coerced++-- | The status of the batch.+--+-- [Pending]+--     The simulation job batch request is pending.+--+-- [InProgress]+--     The simulation job batch is in progress.+--+-- [Failed]+--     The simulation job batch failed. One or more simulation job requests+--     could not be completed due to an internal failure (like+--     @InternalServiceError@). See @failureCode@ and @failureReason@ for+--     more information.+--+-- [Completed]+--     The simulation batch job completed. A batch is complete when (1)+--     there are no pending simulation job requests in the batch and none+--     of the failed simulation job requests are due to+--     @InternalServiceError@ and (2) when all created simulation jobs have+--     reached a terminal state (for example, @Completed@ or @Failed@).+--+-- [Canceled]+--     The simulation batch job was cancelled.+--+-- [Canceling]+--     The simulation batch job is being cancelled.+--+-- [Completing]+--     The simulation batch job is completing.+--+-- [TimingOut]+--     The simulation job batch is timing out.+--+--     If a batch timing out, and there are pending requests that were+--     failing due to an internal failure (like @InternalServiceError@),+--     the batch status will be @Failed@. If there are no such failing+--     request, the batch status will be @TimedOut@.+--+-- [TimedOut]+--     The simulation batch job timed out.+describeSimulationJobBatchResponse_status :: Lens.Lens' DescribeSimulationJobBatchResponse (Prelude.Maybe SimulationJobBatchStatus)+describeSimulationJobBatchResponse_status = Lens.lens (\DescribeSimulationJobBatchResponse' {status} -> status) (\s@DescribeSimulationJobBatchResponse' {} a -> s {status = a} :: DescribeSimulationJobBatchResponse)++-- | A map that contains tag keys and tag values that are attached to the+-- simulation job batch.+describeSimulationJobBatchResponse_tags :: Lens.Lens' DescribeSimulationJobBatchResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+describeSimulationJobBatchResponse_tags = Lens.lens (\DescribeSimulationJobBatchResponse' {tags} -> tags) (\s@DescribeSimulationJobBatchResponse' {} a -> s {tags = a} :: DescribeSimulationJobBatchResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeSimulationJobBatchResponse_httpStatus :: Lens.Lens' DescribeSimulationJobBatchResponse Prelude.Int+describeSimulationJobBatchResponse_httpStatus = Lens.lens (\DescribeSimulationJobBatchResponse' {httpStatus} -> httpStatus) (\s@DescribeSimulationJobBatchResponse' {} a -> s {httpStatus = a} :: DescribeSimulationJobBatchResponse)++instance+  Prelude.NFData+    DescribeSimulationJobBatchResponse+  where+  rnf DescribeSimulationJobBatchResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf batchPolicy+      `Prelude.seq` Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf createdRequests+      `Prelude.seq` Prelude.rnf failedRequests+      `Prelude.seq` Prelude.rnf failureCode+      `Prelude.seq` Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf lastUpdatedAt+      `Prelude.seq` Prelude.rnf pendingRequests+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/DescribeWorld.hs view
@@ -0,0 +1,232 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.DescribeWorld+-- 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 world.+module Amazonka.RobOMaker.DescribeWorld+  ( -- * Creating a Request+    DescribeWorld (..),+    newDescribeWorld,++    -- * Request Lenses+    describeWorld_world,++    -- * Destructuring the Response+    DescribeWorldResponse (..),+    newDescribeWorldResponse,++    -- * Response Lenses+    describeWorldResponse_arn,+    describeWorldResponse_createdAt,+    describeWorldResponse_generationJob,+    describeWorldResponse_tags,+    describeWorldResponse_template,+    describeWorldResponse_worldDescriptionBody,+    describeWorldResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newDescribeWorld' smart constructor.+data DescribeWorld = DescribeWorld'+  { -- | The Amazon Resource Name (arn) of the world you want to describe.+    world :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeWorld' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'world', 'describeWorld_world' - The Amazon Resource Name (arn) of the world you want to describe.+newDescribeWorld ::+  -- | 'world'+  Prelude.Text ->+  DescribeWorld+newDescribeWorld pWorld_ =+  DescribeWorld' {world = pWorld_}++-- | The Amazon Resource Name (arn) of the world you want to describe.+describeWorld_world :: Lens.Lens' DescribeWorld Prelude.Text+describeWorld_world = Lens.lens (\DescribeWorld' {world} -> world) (\s@DescribeWorld' {} a -> s {world = a} :: DescribeWorld)++instance Core.AWSRequest DescribeWorld where+  type+    AWSResponse DescribeWorld =+      DescribeWorldResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeWorldResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "createdAt")+            Prelude.<*> (x Data..?> "generationJob")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "template")+            Prelude.<*> (x Data..?> "worldDescriptionBody")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeWorld where+  hashWithSalt _salt DescribeWorld' {..} =+    _salt `Prelude.hashWithSalt` world++instance Prelude.NFData DescribeWorld where+  rnf DescribeWorld' {..} = Prelude.rnf world++instance Data.ToHeaders DescribeWorld where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeWorld where+  toJSON DescribeWorld' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("world" Data..= world)]+      )++instance Data.ToPath DescribeWorld where+  toPath = Prelude.const "/describeWorld"++instance Data.ToQuery DescribeWorld where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeWorldResponse' smart constructor.+data DescribeWorldResponse = DescribeWorldResponse'+  { -- | The Amazon Resource Name (arn) of the world.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The time, in milliseconds since the epoch, when the world was created.+    createdAt :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (arn) of the world generation job that+    -- generated the world.+    generationJob :: Prelude.Maybe Prelude.Text,+    -- | A map that contains tag keys and tag values that are attached to the+    -- world.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The world template.+    template :: Prelude.Maybe Prelude.Text,+    -- | Returns the JSON formatted string that describes the contents of your+    -- world.+    worldDescriptionBody :: 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 'DescribeWorldResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'describeWorldResponse_arn' - The Amazon Resource Name (arn) of the world.+--+-- 'createdAt', 'describeWorldResponse_createdAt' - The time, in milliseconds since the epoch, when the world was created.+--+-- 'generationJob', 'describeWorldResponse_generationJob' - The Amazon Resource Name (arn) of the world generation job that+-- generated the world.+--+-- 'tags', 'describeWorldResponse_tags' - A map that contains tag keys and tag values that are attached to the+-- world.+--+-- 'template', 'describeWorldResponse_template' - The world template.+--+-- 'worldDescriptionBody', 'describeWorldResponse_worldDescriptionBody' - Returns the JSON formatted string that describes the contents of your+-- world.+--+-- 'httpStatus', 'describeWorldResponse_httpStatus' - The response's http status code.+newDescribeWorldResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeWorldResponse+newDescribeWorldResponse pHttpStatus_ =+  DescribeWorldResponse'+    { arn = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      generationJob = Prelude.Nothing,+      tags = Prelude.Nothing,+      template = Prelude.Nothing,+      worldDescriptionBody = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (arn) of the world.+describeWorldResponse_arn :: Lens.Lens' DescribeWorldResponse (Prelude.Maybe Prelude.Text)+describeWorldResponse_arn = Lens.lens (\DescribeWorldResponse' {arn} -> arn) (\s@DescribeWorldResponse' {} a -> s {arn = a} :: DescribeWorldResponse)++-- | The time, in milliseconds since the epoch, when the world was created.+describeWorldResponse_createdAt :: Lens.Lens' DescribeWorldResponse (Prelude.Maybe Prelude.UTCTime)+describeWorldResponse_createdAt = Lens.lens (\DescribeWorldResponse' {createdAt} -> createdAt) (\s@DescribeWorldResponse' {} a -> s {createdAt = a} :: DescribeWorldResponse) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (arn) of the world generation job that+-- generated the world.+describeWorldResponse_generationJob :: Lens.Lens' DescribeWorldResponse (Prelude.Maybe Prelude.Text)+describeWorldResponse_generationJob = Lens.lens (\DescribeWorldResponse' {generationJob} -> generationJob) (\s@DescribeWorldResponse' {} a -> s {generationJob = a} :: DescribeWorldResponse)++-- | A map that contains tag keys and tag values that are attached to the+-- world.+describeWorldResponse_tags :: Lens.Lens' DescribeWorldResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+describeWorldResponse_tags = Lens.lens (\DescribeWorldResponse' {tags} -> tags) (\s@DescribeWorldResponse' {} a -> s {tags = a} :: DescribeWorldResponse) Prelude.. Lens.mapping Lens.coerced++-- | The world template.+describeWorldResponse_template :: Lens.Lens' DescribeWorldResponse (Prelude.Maybe Prelude.Text)+describeWorldResponse_template = Lens.lens (\DescribeWorldResponse' {template} -> template) (\s@DescribeWorldResponse' {} a -> s {template = a} :: DescribeWorldResponse)++-- | Returns the JSON formatted string that describes the contents of your+-- world.+describeWorldResponse_worldDescriptionBody :: Lens.Lens' DescribeWorldResponse (Prelude.Maybe Prelude.Text)+describeWorldResponse_worldDescriptionBody = Lens.lens (\DescribeWorldResponse' {worldDescriptionBody} -> worldDescriptionBody) (\s@DescribeWorldResponse' {} a -> s {worldDescriptionBody = a} :: DescribeWorldResponse)++-- | The response's http status code.+describeWorldResponse_httpStatus :: Lens.Lens' DescribeWorldResponse Prelude.Int+describeWorldResponse_httpStatus = Lens.lens (\DescribeWorldResponse' {httpStatus} -> httpStatus) (\s@DescribeWorldResponse' {} a -> s {httpStatus = a} :: DescribeWorldResponse)++instance Prelude.NFData DescribeWorldResponse where+  rnf DescribeWorldResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf generationJob+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf template+      `Prelude.seq` Prelude.rnf worldDescriptionBody+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/DescribeWorldExportJob.hs view
@@ -0,0 +1,397 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.DescribeWorldExportJob+-- 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 world export job.+module Amazonka.RobOMaker.DescribeWorldExportJob+  ( -- * Creating a Request+    DescribeWorldExportJob (..),+    newDescribeWorldExportJob,++    -- * Request Lenses+    describeWorldExportJob_job,++    -- * Destructuring the Response+    DescribeWorldExportJobResponse (..),+    newDescribeWorldExportJobResponse,++    -- * Response Lenses+    describeWorldExportJobResponse_arn,+    describeWorldExportJobResponse_clientRequestToken,+    describeWorldExportJobResponse_createdAt,+    describeWorldExportJobResponse_failureCode,+    describeWorldExportJobResponse_failureReason,+    describeWorldExportJobResponse_iamRole,+    describeWorldExportJobResponse_outputLocation,+    describeWorldExportJobResponse_status,+    describeWorldExportJobResponse_tags,+    describeWorldExportJobResponse_worlds,+    describeWorldExportJobResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newDescribeWorldExportJob' smart constructor.+data DescribeWorldExportJob = DescribeWorldExportJob'+  { -- | The Amazon Resource Name (arn) of the world export job to describe.+    job :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeWorldExportJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'job', 'describeWorldExportJob_job' - The Amazon Resource Name (arn) of the world export job to describe.+newDescribeWorldExportJob ::+  -- | 'job'+  Prelude.Text ->+  DescribeWorldExportJob+newDescribeWorldExportJob pJob_ =+  DescribeWorldExportJob' {job = pJob_}++-- | The Amazon Resource Name (arn) of the world export job to describe.+describeWorldExportJob_job :: Lens.Lens' DescribeWorldExportJob Prelude.Text+describeWorldExportJob_job = Lens.lens (\DescribeWorldExportJob' {job} -> job) (\s@DescribeWorldExportJob' {} a -> s {job = a} :: DescribeWorldExportJob)++instance Core.AWSRequest DescribeWorldExportJob where+  type+    AWSResponse DescribeWorldExportJob =+      DescribeWorldExportJobResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeWorldExportJobResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "clientRequestToken")+            Prelude.<*> (x Data..?> "createdAt")+            Prelude.<*> (x Data..?> "failureCode")+            Prelude.<*> (x Data..?> "failureReason")+            Prelude.<*> (x Data..?> "iamRole")+            Prelude.<*> (x Data..?> "outputLocation")+            Prelude.<*> (x Data..?> "status")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "worlds")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeWorldExportJob where+  hashWithSalt _salt DescribeWorldExportJob' {..} =+    _salt `Prelude.hashWithSalt` job++instance Prelude.NFData DescribeWorldExportJob where+  rnf DescribeWorldExportJob' {..} = Prelude.rnf job++instance Data.ToHeaders DescribeWorldExportJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeWorldExportJob where+  toJSON DescribeWorldExportJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("job" Data..= job)]+      )++instance Data.ToPath DescribeWorldExportJob where+  toPath = Prelude.const "/describeWorldExportJob"++instance Data.ToQuery DescribeWorldExportJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeWorldExportJobResponse' smart constructor.+data DescribeWorldExportJobResponse = DescribeWorldExportJobResponse'+  { -- | The Amazon Resource Name (ARN) of the world export job.+    arn :: Prelude.Maybe Prelude.Text,+    -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request.+    clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | The time, in milliseconds since the epoch, when the world export job was+    -- created.+    createdAt :: Prelude.Maybe Data.POSIX,+    -- | The failure code of the world export job if it failed:+    --+    -- [InternalServiceError]+    --     Internal service error.+    --+    -- [LimitExceeded]+    --     The requested resource exceeds the maximum number allowed, or the+    --     number of concurrent stream requests exceeds the maximum number+    --     allowed.+    --+    -- [ResourceNotFound]+    --     The specified resource could not be found.+    --+    -- [RequestThrottled]+    --     The request was throttled.+    --+    -- [InvalidInput]+    --     An input parameter in the request is not valid.+    failureCode :: Prelude.Maybe WorldExportJobErrorCode,+    -- | The reason why the world export job failed.+    failureReason :: Prelude.Maybe Prelude.Text,+    -- | The IAM role that the world export process uses to access the Amazon S3+    -- bucket and put the export.+    iamRole :: Prelude.Maybe Prelude.Text,+    outputLocation :: Prelude.Maybe OutputLocation,+    -- | The status of the world export job.+    --+    -- [Pending]+    --     The world export job request is pending.+    --+    -- [Running]+    --     The world export job is running.+    --+    -- [Completed]+    --     The world export job completed.+    --+    -- [Failed]+    --     The world export job failed. See @failureCode@ and @failureReason@+    --     for more information.+    --+    -- [Canceled]+    --     The world export job was cancelled.+    --+    -- [Canceling]+    --     The world export job is being cancelled.+    status :: Prelude.Maybe WorldExportJobStatus,+    -- | A map that contains tag keys and tag values that are attached to the+    -- world export job.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | A list of Amazon Resource Names (arns) that correspond to worlds to be+    -- exported.+    worlds :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeWorldExportJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'describeWorldExportJobResponse_arn' - The Amazon Resource Name (ARN) of the world export job.+--+-- 'clientRequestToken', 'describeWorldExportJobResponse_clientRequestToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+--+-- 'createdAt', 'describeWorldExportJobResponse_createdAt' - The time, in milliseconds since the epoch, when the world export job was+-- created.+--+-- 'failureCode', 'describeWorldExportJobResponse_failureCode' - The failure code of the world export job if it failed:+--+-- [InternalServiceError]+--     Internal service error.+--+-- [LimitExceeded]+--     The requested resource exceeds the maximum number allowed, or the+--     number of concurrent stream requests exceeds the maximum number+--     allowed.+--+-- [ResourceNotFound]+--     The specified resource could not be found.+--+-- [RequestThrottled]+--     The request was throttled.+--+-- [InvalidInput]+--     An input parameter in the request is not valid.+--+-- 'failureReason', 'describeWorldExportJobResponse_failureReason' - The reason why the world export job failed.+--+-- 'iamRole', 'describeWorldExportJobResponse_iamRole' - The IAM role that the world export process uses to access the Amazon S3+-- bucket and put the export.+--+-- 'outputLocation', 'describeWorldExportJobResponse_outputLocation' - Undocumented member.+--+-- 'status', 'describeWorldExportJobResponse_status' - The status of the world export job.+--+-- [Pending]+--     The world export job request is pending.+--+-- [Running]+--     The world export job is running.+--+-- [Completed]+--     The world export job completed.+--+-- [Failed]+--     The world export job failed. See @failureCode@ and @failureReason@+--     for more information.+--+-- [Canceled]+--     The world export job was cancelled.+--+-- [Canceling]+--     The world export job is being cancelled.+--+-- 'tags', 'describeWorldExportJobResponse_tags' - A map that contains tag keys and tag values that are attached to the+-- world export job.+--+-- 'worlds', 'describeWorldExportJobResponse_worlds' - A list of Amazon Resource Names (arns) that correspond to worlds to be+-- exported.+--+-- 'httpStatus', 'describeWorldExportJobResponse_httpStatus' - The response's http status code.+newDescribeWorldExportJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeWorldExportJobResponse+newDescribeWorldExportJobResponse pHttpStatus_ =+  DescribeWorldExportJobResponse'+    { arn =+        Prelude.Nothing,+      clientRequestToken = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      failureCode = Prelude.Nothing,+      failureReason = Prelude.Nothing,+      iamRole = Prelude.Nothing,+      outputLocation = Prelude.Nothing,+      status = Prelude.Nothing,+      tags = Prelude.Nothing,+      worlds = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the world export job.+describeWorldExportJobResponse_arn :: Lens.Lens' DescribeWorldExportJobResponse (Prelude.Maybe Prelude.Text)+describeWorldExportJobResponse_arn = Lens.lens (\DescribeWorldExportJobResponse' {arn} -> arn) (\s@DescribeWorldExportJobResponse' {} a -> s {arn = a} :: DescribeWorldExportJobResponse)++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+describeWorldExportJobResponse_clientRequestToken :: Lens.Lens' DescribeWorldExportJobResponse (Prelude.Maybe Prelude.Text)+describeWorldExportJobResponse_clientRequestToken = Lens.lens (\DescribeWorldExportJobResponse' {clientRequestToken} -> clientRequestToken) (\s@DescribeWorldExportJobResponse' {} a -> s {clientRequestToken = a} :: DescribeWorldExportJobResponse)++-- | The time, in milliseconds since the epoch, when the world export job was+-- created.+describeWorldExportJobResponse_createdAt :: Lens.Lens' DescribeWorldExportJobResponse (Prelude.Maybe Prelude.UTCTime)+describeWorldExportJobResponse_createdAt = Lens.lens (\DescribeWorldExportJobResponse' {createdAt} -> createdAt) (\s@DescribeWorldExportJobResponse' {} a -> s {createdAt = a} :: DescribeWorldExportJobResponse) Prelude.. Lens.mapping Data._Time++-- | The failure code of the world export job if it failed:+--+-- [InternalServiceError]+--     Internal service error.+--+-- [LimitExceeded]+--     The requested resource exceeds the maximum number allowed, or the+--     number of concurrent stream requests exceeds the maximum number+--     allowed.+--+-- [ResourceNotFound]+--     The specified resource could not be found.+--+-- [RequestThrottled]+--     The request was throttled.+--+-- [InvalidInput]+--     An input parameter in the request is not valid.+describeWorldExportJobResponse_failureCode :: Lens.Lens' DescribeWorldExportJobResponse (Prelude.Maybe WorldExportJobErrorCode)+describeWorldExportJobResponse_failureCode = Lens.lens (\DescribeWorldExportJobResponse' {failureCode} -> failureCode) (\s@DescribeWorldExportJobResponse' {} a -> s {failureCode = a} :: DescribeWorldExportJobResponse)++-- | The reason why the world export job failed.+describeWorldExportJobResponse_failureReason :: Lens.Lens' DescribeWorldExportJobResponse (Prelude.Maybe Prelude.Text)+describeWorldExportJobResponse_failureReason = Lens.lens (\DescribeWorldExportJobResponse' {failureReason} -> failureReason) (\s@DescribeWorldExportJobResponse' {} a -> s {failureReason = a} :: DescribeWorldExportJobResponse)++-- | The IAM role that the world export process uses to access the Amazon S3+-- bucket and put the export.+describeWorldExportJobResponse_iamRole :: Lens.Lens' DescribeWorldExportJobResponse (Prelude.Maybe Prelude.Text)+describeWorldExportJobResponse_iamRole = Lens.lens (\DescribeWorldExportJobResponse' {iamRole} -> iamRole) (\s@DescribeWorldExportJobResponse' {} a -> s {iamRole = a} :: DescribeWorldExportJobResponse)++-- | Undocumented member.+describeWorldExportJobResponse_outputLocation :: Lens.Lens' DescribeWorldExportJobResponse (Prelude.Maybe OutputLocation)+describeWorldExportJobResponse_outputLocation = Lens.lens (\DescribeWorldExportJobResponse' {outputLocation} -> outputLocation) (\s@DescribeWorldExportJobResponse' {} a -> s {outputLocation = a} :: DescribeWorldExportJobResponse)++-- | The status of the world export job.+--+-- [Pending]+--     The world export job request is pending.+--+-- [Running]+--     The world export job is running.+--+-- [Completed]+--     The world export job completed.+--+-- [Failed]+--     The world export job failed. See @failureCode@ and @failureReason@+--     for more information.+--+-- [Canceled]+--     The world export job was cancelled.+--+-- [Canceling]+--     The world export job is being cancelled.+describeWorldExportJobResponse_status :: Lens.Lens' DescribeWorldExportJobResponse (Prelude.Maybe WorldExportJobStatus)+describeWorldExportJobResponse_status = Lens.lens (\DescribeWorldExportJobResponse' {status} -> status) (\s@DescribeWorldExportJobResponse' {} a -> s {status = a} :: DescribeWorldExportJobResponse)++-- | A map that contains tag keys and tag values that are attached to the+-- world export job.+describeWorldExportJobResponse_tags :: Lens.Lens' DescribeWorldExportJobResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+describeWorldExportJobResponse_tags = Lens.lens (\DescribeWorldExportJobResponse' {tags} -> tags) (\s@DescribeWorldExportJobResponse' {} a -> s {tags = a} :: DescribeWorldExportJobResponse) Prelude.. Lens.mapping Lens.coerced++-- | A list of Amazon Resource Names (arns) that correspond to worlds to be+-- exported.+describeWorldExportJobResponse_worlds :: Lens.Lens' DescribeWorldExportJobResponse (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+describeWorldExportJobResponse_worlds = Lens.lens (\DescribeWorldExportJobResponse' {worlds} -> worlds) (\s@DescribeWorldExportJobResponse' {} a -> s {worlds = a} :: DescribeWorldExportJobResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeWorldExportJobResponse_httpStatus :: Lens.Lens' DescribeWorldExportJobResponse Prelude.Int+describeWorldExportJobResponse_httpStatus = Lens.lens (\DescribeWorldExportJobResponse' {httpStatus} -> httpStatus) (\s@DescribeWorldExportJobResponse' {} a -> s {httpStatus = a} :: DescribeWorldExportJobResponse)++instance+  Prelude.NFData+    DescribeWorldExportJobResponse+  where+  rnf DescribeWorldExportJobResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf failureCode+      `Prelude.seq` Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf iamRole+      `Prelude.seq` Prelude.rnf outputLocation+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf worlds+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/DescribeWorldGenerationJob.hs view
@@ -0,0 +1,416 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.DescribeWorldGenerationJob+-- 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 world generation job.+module Amazonka.RobOMaker.DescribeWorldGenerationJob+  ( -- * Creating a Request+    DescribeWorldGenerationJob (..),+    newDescribeWorldGenerationJob,++    -- * Request Lenses+    describeWorldGenerationJob_job,++    -- * Destructuring the Response+    DescribeWorldGenerationJobResponse (..),+    newDescribeWorldGenerationJobResponse,++    -- * Response Lenses+    describeWorldGenerationJobResponse_arn,+    describeWorldGenerationJobResponse_clientRequestToken,+    describeWorldGenerationJobResponse_createdAt,+    describeWorldGenerationJobResponse_failureCode,+    describeWorldGenerationJobResponse_failureReason,+    describeWorldGenerationJobResponse_finishedWorldsSummary,+    describeWorldGenerationJobResponse_status,+    describeWorldGenerationJobResponse_tags,+    describeWorldGenerationJobResponse_template,+    describeWorldGenerationJobResponse_worldCount,+    describeWorldGenerationJobResponse_worldTags,+    describeWorldGenerationJobResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newDescribeWorldGenerationJob' smart constructor.+data DescribeWorldGenerationJob = DescribeWorldGenerationJob'+  { -- | The Amazon Resource Name (arn) of the world generation job to describe.+    job :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeWorldGenerationJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'job', 'describeWorldGenerationJob_job' - The Amazon Resource Name (arn) of the world generation job to describe.+newDescribeWorldGenerationJob ::+  -- | 'job'+  Prelude.Text ->+  DescribeWorldGenerationJob+newDescribeWorldGenerationJob pJob_ =+  DescribeWorldGenerationJob' {job = pJob_}++-- | The Amazon Resource Name (arn) of the world generation job to describe.+describeWorldGenerationJob_job :: Lens.Lens' DescribeWorldGenerationJob Prelude.Text+describeWorldGenerationJob_job = Lens.lens (\DescribeWorldGenerationJob' {job} -> job) (\s@DescribeWorldGenerationJob' {} a -> s {job = a} :: DescribeWorldGenerationJob)++instance Core.AWSRequest DescribeWorldGenerationJob where+  type+    AWSResponse DescribeWorldGenerationJob =+      DescribeWorldGenerationJobResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeWorldGenerationJobResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "clientRequestToken")+            Prelude.<*> (x Data..?> "createdAt")+            Prelude.<*> (x Data..?> "failureCode")+            Prelude.<*> (x Data..?> "failureReason")+            Prelude.<*> (x Data..?> "finishedWorldsSummary")+            Prelude.<*> (x Data..?> "status")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "template")+            Prelude.<*> (x Data..?> "worldCount")+            Prelude.<*> (x Data..?> "worldTags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeWorldGenerationJob where+  hashWithSalt _salt DescribeWorldGenerationJob' {..} =+    _salt `Prelude.hashWithSalt` job++instance Prelude.NFData DescribeWorldGenerationJob where+  rnf DescribeWorldGenerationJob' {..} = Prelude.rnf job++instance Data.ToHeaders DescribeWorldGenerationJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeWorldGenerationJob where+  toJSON DescribeWorldGenerationJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("job" Data..= job)]+      )++instance Data.ToPath DescribeWorldGenerationJob where+  toPath = Prelude.const "/describeWorldGenerationJob"++instance Data.ToQuery DescribeWorldGenerationJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeWorldGenerationJobResponse' smart constructor.+data DescribeWorldGenerationJobResponse = DescribeWorldGenerationJobResponse'+  { -- | The Amazon Resource Name (ARN) of the world generation job.+    arn :: Prelude.Maybe Prelude.Text,+    -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request.+    clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | The time, in milliseconds since the epoch, when the world generation job+    -- was created.+    createdAt :: Prelude.Maybe Data.POSIX,+    -- | The failure code of the world generation job if it failed:+    --+    -- [InternalServiceError]+    --     Internal service error.+    --+    -- [LimitExceeded]+    --     The requested resource exceeds the maximum number allowed, or the+    --     number of concurrent stream requests exceeds the maximum number+    --     allowed.+    --+    -- [ResourceNotFound]+    --     The specified resource could not be found.+    --+    -- [RequestThrottled]+    --     The request was throttled.+    --+    -- [InvalidInput]+    --     An input parameter in the request is not valid.+    failureCode :: Prelude.Maybe WorldGenerationJobErrorCode,+    -- | The reason why the world generation job failed.+    failureReason :: Prelude.Maybe Prelude.Text,+    -- | Summary information about finished worlds.+    finishedWorldsSummary :: Prelude.Maybe FinishedWorldsSummary,+    -- | The status of the world generation job:+    --+    -- [Pending]+    --     The world generation job request is pending.+    --+    -- [Running]+    --     The world generation job is running.+    --+    -- [Completed]+    --     The world generation job completed.+    --+    -- [Failed]+    --     The world generation job failed. See @failureCode@ for more+    --     information.+    --+    -- [PartialFailed]+    --     Some worlds did not generate.+    --+    -- [Canceled]+    --     The world generation job was cancelled.+    --+    -- [Canceling]+    --     The world generation job is being cancelled.+    status :: Prelude.Maybe WorldGenerationJobStatus,+    -- | A map that contains tag keys and tag values that are attached to the+    -- world generation job.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The Amazon Resource Name (arn) of the world template.+    template :: Prelude.Maybe Prelude.Text,+    -- | Information about the world count.+    worldCount :: Prelude.Maybe WorldCount,+    -- | A map that contains tag keys and tag values that are attached to the+    -- generated worlds.+    worldTags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeWorldGenerationJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'describeWorldGenerationJobResponse_arn' - The Amazon Resource Name (ARN) of the world generation job.+--+-- 'clientRequestToken', 'describeWorldGenerationJobResponse_clientRequestToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+--+-- 'createdAt', 'describeWorldGenerationJobResponse_createdAt' - The time, in milliseconds since the epoch, when the world generation job+-- was created.+--+-- 'failureCode', 'describeWorldGenerationJobResponse_failureCode' - The failure code of the world generation job if it failed:+--+-- [InternalServiceError]+--     Internal service error.+--+-- [LimitExceeded]+--     The requested resource exceeds the maximum number allowed, or the+--     number of concurrent stream requests exceeds the maximum number+--     allowed.+--+-- [ResourceNotFound]+--     The specified resource could not be found.+--+-- [RequestThrottled]+--     The request was throttled.+--+-- [InvalidInput]+--     An input parameter in the request is not valid.+--+-- 'failureReason', 'describeWorldGenerationJobResponse_failureReason' - The reason why the world generation job failed.+--+-- 'finishedWorldsSummary', 'describeWorldGenerationJobResponse_finishedWorldsSummary' - Summary information about finished worlds.+--+-- 'status', 'describeWorldGenerationJobResponse_status' - The status of the world generation job:+--+-- [Pending]+--     The world generation job request is pending.+--+-- [Running]+--     The world generation job is running.+--+-- [Completed]+--     The world generation job completed.+--+-- [Failed]+--     The world generation job failed. See @failureCode@ for more+--     information.+--+-- [PartialFailed]+--     Some worlds did not generate.+--+-- [Canceled]+--     The world generation job was cancelled.+--+-- [Canceling]+--     The world generation job is being cancelled.+--+-- 'tags', 'describeWorldGenerationJobResponse_tags' - A map that contains tag keys and tag values that are attached to the+-- world generation job.+--+-- 'template', 'describeWorldGenerationJobResponse_template' - The Amazon Resource Name (arn) of the world template.+--+-- 'worldCount', 'describeWorldGenerationJobResponse_worldCount' - Information about the world count.+--+-- 'worldTags', 'describeWorldGenerationJobResponse_worldTags' - A map that contains tag keys and tag values that are attached to the+-- generated worlds.+--+-- 'httpStatus', 'describeWorldGenerationJobResponse_httpStatus' - The response's http status code.+newDescribeWorldGenerationJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeWorldGenerationJobResponse+newDescribeWorldGenerationJobResponse pHttpStatus_ =+  DescribeWorldGenerationJobResponse'+    { arn =+        Prelude.Nothing,+      clientRequestToken = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      failureCode = Prelude.Nothing,+      failureReason = Prelude.Nothing,+      finishedWorldsSummary = Prelude.Nothing,+      status = Prelude.Nothing,+      tags = Prelude.Nothing,+      template = Prelude.Nothing,+      worldCount = Prelude.Nothing,+      worldTags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the world generation job.+describeWorldGenerationJobResponse_arn :: Lens.Lens' DescribeWorldGenerationJobResponse (Prelude.Maybe Prelude.Text)+describeWorldGenerationJobResponse_arn = Lens.lens (\DescribeWorldGenerationJobResponse' {arn} -> arn) (\s@DescribeWorldGenerationJobResponse' {} a -> s {arn = a} :: DescribeWorldGenerationJobResponse)++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+describeWorldGenerationJobResponse_clientRequestToken :: Lens.Lens' DescribeWorldGenerationJobResponse (Prelude.Maybe Prelude.Text)+describeWorldGenerationJobResponse_clientRequestToken = Lens.lens (\DescribeWorldGenerationJobResponse' {clientRequestToken} -> clientRequestToken) (\s@DescribeWorldGenerationJobResponse' {} a -> s {clientRequestToken = a} :: DescribeWorldGenerationJobResponse)++-- | The time, in milliseconds since the epoch, when the world generation job+-- was created.+describeWorldGenerationJobResponse_createdAt :: Lens.Lens' DescribeWorldGenerationJobResponse (Prelude.Maybe Prelude.UTCTime)+describeWorldGenerationJobResponse_createdAt = Lens.lens (\DescribeWorldGenerationJobResponse' {createdAt} -> createdAt) (\s@DescribeWorldGenerationJobResponse' {} a -> s {createdAt = a} :: DescribeWorldGenerationJobResponse) Prelude.. Lens.mapping Data._Time++-- | The failure code of the world generation job if it failed:+--+-- [InternalServiceError]+--     Internal service error.+--+-- [LimitExceeded]+--     The requested resource exceeds the maximum number allowed, or the+--     number of concurrent stream requests exceeds the maximum number+--     allowed.+--+-- [ResourceNotFound]+--     The specified resource could not be found.+--+-- [RequestThrottled]+--     The request was throttled.+--+-- [InvalidInput]+--     An input parameter in the request is not valid.+describeWorldGenerationJobResponse_failureCode :: Lens.Lens' DescribeWorldGenerationJobResponse (Prelude.Maybe WorldGenerationJobErrorCode)+describeWorldGenerationJobResponse_failureCode = Lens.lens (\DescribeWorldGenerationJobResponse' {failureCode} -> failureCode) (\s@DescribeWorldGenerationJobResponse' {} a -> s {failureCode = a} :: DescribeWorldGenerationJobResponse)++-- | The reason why the world generation job failed.+describeWorldGenerationJobResponse_failureReason :: Lens.Lens' DescribeWorldGenerationJobResponse (Prelude.Maybe Prelude.Text)+describeWorldGenerationJobResponse_failureReason = Lens.lens (\DescribeWorldGenerationJobResponse' {failureReason} -> failureReason) (\s@DescribeWorldGenerationJobResponse' {} a -> s {failureReason = a} :: DescribeWorldGenerationJobResponse)++-- | Summary information about finished worlds.+describeWorldGenerationJobResponse_finishedWorldsSummary :: Lens.Lens' DescribeWorldGenerationJobResponse (Prelude.Maybe FinishedWorldsSummary)+describeWorldGenerationJobResponse_finishedWorldsSummary = Lens.lens (\DescribeWorldGenerationJobResponse' {finishedWorldsSummary} -> finishedWorldsSummary) (\s@DescribeWorldGenerationJobResponse' {} a -> s {finishedWorldsSummary = a} :: DescribeWorldGenerationJobResponse)++-- | The status of the world generation job:+--+-- [Pending]+--     The world generation job request is pending.+--+-- [Running]+--     The world generation job is running.+--+-- [Completed]+--     The world generation job completed.+--+-- [Failed]+--     The world generation job failed. See @failureCode@ for more+--     information.+--+-- [PartialFailed]+--     Some worlds did not generate.+--+-- [Canceled]+--     The world generation job was cancelled.+--+-- [Canceling]+--     The world generation job is being cancelled.+describeWorldGenerationJobResponse_status :: Lens.Lens' DescribeWorldGenerationJobResponse (Prelude.Maybe WorldGenerationJobStatus)+describeWorldGenerationJobResponse_status = Lens.lens (\DescribeWorldGenerationJobResponse' {status} -> status) (\s@DescribeWorldGenerationJobResponse' {} a -> s {status = a} :: DescribeWorldGenerationJobResponse)++-- | A map that contains tag keys and tag values that are attached to the+-- world generation job.+describeWorldGenerationJobResponse_tags :: Lens.Lens' DescribeWorldGenerationJobResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+describeWorldGenerationJobResponse_tags = Lens.lens (\DescribeWorldGenerationJobResponse' {tags} -> tags) (\s@DescribeWorldGenerationJobResponse' {} a -> s {tags = a} :: DescribeWorldGenerationJobResponse) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (arn) of the world template.+describeWorldGenerationJobResponse_template :: Lens.Lens' DescribeWorldGenerationJobResponse (Prelude.Maybe Prelude.Text)+describeWorldGenerationJobResponse_template = Lens.lens (\DescribeWorldGenerationJobResponse' {template} -> template) (\s@DescribeWorldGenerationJobResponse' {} a -> s {template = a} :: DescribeWorldGenerationJobResponse)++-- | Information about the world count.+describeWorldGenerationJobResponse_worldCount :: Lens.Lens' DescribeWorldGenerationJobResponse (Prelude.Maybe WorldCount)+describeWorldGenerationJobResponse_worldCount = Lens.lens (\DescribeWorldGenerationJobResponse' {worldCount} -> worldCount) (\s@DescribeWorldGenerationJobResponse' {} a -> s {worldCount = a} :: DescribeWorldGenerationJobResponse)++-- | A map that contains tag keys and tag values that are attached to the+-- generated worlds.+describeWorldGenerationJobResponse_worldTags :: Lens.Lens' DescribeWorldGenerationJobResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+describeWorldGenerationJobResponse_worldTags = Lens.lens (\DescribeWorldGenerationJobResponse' {worldTags} -> worldTags) (\s@DescribeWorldGenerationJobResponse' {} a -> s {worldTags = a} :: DescribeWorldGenerationJobResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeWorldGenerationJobResponse_httpStatus :: Lens.Lens' DescribeWorldGenerationJobResponse Prelude.Int+describeWorldGenerationJobResponse_httpStatus = Lens.lens (\DescribeWorldGenerationJobResponse' {httpStatus} -> httpStatus) (\s@DescribeWorldGenerationJobResponse' {} a -> s {httpStatus = a} :: DescribeWorldGenerationJobResponse)++instance+  Prelude.NFData+    DescribeWorldGenerationJobResponse+  where+  rnf DescribeWorldGenerationJobResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf failureCode+      `Prelude.seq` Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf finishedWorldsSummary+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf template+      `Prelude.seq` Prelude.rnf worldCount+      `Prelude.seq` Prelude.rnf worldTags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/DescribeWorldTemplate.hs view
@@ -0,0 +1,251 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.DescribeWorldTemplate+-- 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 world template.+module Amazonka.RobOMaker.DescribeWorldTemplate+  ( -- * Creating a Request+    DescribeWorldTemplate (..),+    newDescribeWorldTemplate,++    -- * Request Lenses+    describeWorldTemplate_template,++    -- * Destructuring the Response+    DescribeWorldTemplateResponse (..),+    newDescribeWorldTemplateResponse,++    -- * Response Lenses+    describeWorldTemplateResponse_arn,+    describeWorldTemplateResponse_clientRequestToken,+    describeWorldTemplateResponse_createdAt,+    describeWorldTemplateResponse_lastUpdatedAt,+    describeWorldTemplateResponse_name,+    describeWorldTemplateResponse_tags,+    describeWorldTemplateResponse_version,+    describeWorldTemplateResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newDescribeWorldTemplate' smart constructor.+data DescribeWorldTemplate = DescribeWorldTemplate'+  { -- | The Amazon Resource Name (arn) of the world template you want to+    -- describe.+    template :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeWorldTemplate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'template', 'describeWorldTemplate_template' - The Amazon Resource Name (arn) of the world template you want to+-- describe.+newDescribeWorldTemplate ::+  -- | 'template'+  Prelude.Text ->+  DescribeWorldTemplate+newDescribeWorldTemplate pTemplate_ =+  DescribeWorldTemplate' {template = pTemplate_}++-- | The Amazon Resource Name (arn) of the world template you want to+-- describe.+describeWorldTemplate_template :: Lens.Lens' DescribeWorldTemplate Prelude.Text+describeWorldTemplate_template = Lens.lens (\DescribeWorldTemplate' {template} -> template) (\s@DescribeWorldTemplate' {} a -> s {template = a} :: DescribeWorldTemplate)++instance Core.AWSRequest DescribeWorldTemplate where+  type+    AWSResponse DescribeWorldTemplate =+      DescribeWorldTemplateResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeWorldTemplateResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "clientRequestToken")+            Prelude.<*> (x Data..?> "createdAt")+            Prelude.<*> (x Data..?> "lastUpdatedAt")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "version")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeWorldTemplate where+  hashWithSalt _salt DescribeWorldTemplate' {..} =+    _salt `Prelude.hashWithSalt` template++instance Prelude.NFData DescribeWorldTemplate where+  rnf DescribeWorldTemplate' {..} = Prelude.rnf template++instance Data.ToHeaders DescribeWorldTemplate where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeWorldTemplate where+  toJSON DescribeWorldTemplate' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("template" Data..= template)]+      )++instance Data.ToPath DescribeWorldTemplate where+  toPath = Prelude.const "/describeWorldTemplate"++instance Data.ToQuery DescribeWorldTemplate where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeWorldTemplateResponse' smart constructor.+data DescribeWorldTemplateResponse = DescribeWorldTemplateResponse'+  { -- | The Amazon Resource Name (ARN) of the world template.+    arn :: Prelude.Maybe Prelude.Text,+    -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request.+    clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | The time, in milliseconds since the epoch, when the world template was+    -- created.+    createdAt :: Prelude.Maybe Data.POSIX,+    -- | The time, in milliseconds since the epoch, when the world template was+    -- last updated.+    lastUpdatedAt :: Prelude.Maybe Data.POSIX,+    -- | The name of the world template.+    name :: Prelude.Maybe Prelude.Text,+    -- | A map that contains tag keys and tag values that are attached to the+    -- world template.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The version of the world template that you\'re using.+    version :: 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 'DescribeWorldTemplateResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'describeWorldTemplateResponse_arn' - The Amazon Resource Name (ARN) of the world template.+--+-- 'clientRequestToken', 'describeWorldTemplateResponse_clientRequestToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+--+-- 'createdAt', 'describeWorldTemplateResponse_createdAt' - The time, in milliseconds since the epoch, when the world template was+-- created.+--+-- 'lastUpdatedAt', 'describeWorldTemplateResponse_lastUpdatedAt' - The time, in milliseconds since the epoch, when the world template was+-- last updated.+--+-- 'name', 'describeWorldTemplateResponse_name' - The name of the world template.+--+-- 'tags', 'describeWorldTemplateResponse_tags' - A map that contains tag keys and tag values that are attached to the+-- world template.+--+-- 'version', 'describeWorldTemplateResponse_version' - The version of the world template that you\'re using.+--+-- 'httpStatus', 'describeWorldTemplateResponse_httpStatus' - The response's http status code.+newDescribeWorldTemplateResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeWorldTemplateResponse+newDescribeWorldTemplateResponse pHttpStatus_ =+  DescribeWorldTemplateResponse'+    { arn =+        Prelude.Nothing,+      clientRequestToken = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      lastUpdatedAt = Prelude.Nothing,+      name = Prelude.Nothing,+      tags = Prelude.Nothing,+      version = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the world template.+describeWorldTemplateResponse_arn :: Lens.Lens' DescribeWorldTemplateResponse (Prelude.Maybe Prelude.Text)+describeWorldTemplateResponse_arn = Lens.lens (\DescribeWorldTemplateResponse' {arn} -> arn) (\s@DescribeWorldTemplateResponse' {} a -> s {arn = a} :: DescribeWorldTemplateResponse)++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+describeWorldTemplateResponse_clientRequestToken :: Lens.Lens' DescribeWorldTemplateResponse (Prelude.Maybe Prelude.Text)+describeWorldTemplateResponse_clientRequestToken = Lens.lens (\DescribeWorldTemplateResponse' {clientRequestToken} -> clientRequestToken) (\s@DescribeWorldTemplateResponse' {} a -> s {clientRequestToken = a} :: DescribeWorldTemplateResponse)++-- | The time, in milliseconds since the epoch, when the world template was+-- created.+describeWorldTemplateResponse_createdAt :: Lens.Lens' DescribeWorldTemplateResponse (Prelude.Maybe Prelude.UTCTime)+describeWorldTemplateResponse_createdAt = Lens.lens (\DescribeWorldTemplateResponse' {createdAt} -> createdAt) (\s@DescribeWorldTemplateResponse' {} a -> s {createdAt = a} :: DescribeWorldTemplateResponse) Prelude.. Lens.mapping Data._Time++-- | The time, in milliseconds since the epoch, when the world template was+-- last updated.+describeWorldTemplateResponse_lastUpdatedAt :: Lens.Lens' DescribeWorldTemplateResponse (Prelude.Maybe Prelude.UTCTime)+describeWorldTemplateResponse_lastUpdatedAt = Lens.lens (\DescribeWorldTemplateResponse' {lastUpdatedAt} -> lastUpdatedAt) (\s@DescribeWorldTemplateResponse' {} a -> s {lastUpdatedAt = a} :: DescribeWorldTemplateResponse) Prelude.. Lens.mapping Data._Time++-- | The name of the world template.+describeWorldTemplateResponse_name :: Lens.Lens' DescribeWorldTemplateResponse (Prelude.Maybe Prelude.Text)+describeWorldTemplateResponse_name = Lens.lens (\DescribeWorldTemplateResponse' {name} -> name) (\s@DescribeWorldTemplateResponse' {} a -> s {name = a} :: DescribeWorldTemplateResponse)++-- | A map that contains tag keys and tag values that are attached to the+-- world template.+describeWorldTemplateResponse_tags :: Lens.Lens' DescribeWorldTemplateResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+describeWorldTemplateResponse_tags = Lens.lens (\DescribeWorldTemplateResponse' {tags} -> tags) (\s@DescribeWorldTemplateResponse' {} a -> s {tags = a} :: DescribeWorldTemplateResponse) Prelude.. Lens.mapping Lens.coerced++-- | The version of the world template that you\'re using.+describeWorldTemplateResponse_version :: Lens.Lens' DescribeWorldTemplateResponse (Prelude.Maybe Prelude.Text)+describeWorldTemplateResponse_version = Lens.lens (\DescribeWorldTemplateResponse' {version} -> version) (\s@DescribeWorldTemplateResponse' {} a -> s {version = a} :: DescribeWorldTemplateResponse)++-- | The response's http status code.+describeWorldTemplateResponse_httpStatus :: Lens.Lens' DescribeWorldTemplateResponse Prelude.Int+describeWorldTemplateResponse_httpStatus = Lens.lens (\DescribeWorldTemplateResponse' {httpStatus} -> httpStatus) (\s@DescribeWorldTemplateResponse' {} a -> s {httpStatus = a} :: DescribeWorldTemplateResponse)++instance Prelude.NFData DescribeWorldTemplateResponse where+  rnf DescribeWorldTemplateResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf lastUpdatedAt+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf version+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/GetWorldTemplateBody.hs view
@@ -0,0 +1,181 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.GetWorldTemplateBody+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the world template body.+module Amazonka.RobOMaker.GetWorldTemplateBody+  ( -- * Creating a Request+    GetWorldTemplateBody (..),+    newGetWorldTemplateBody,++    -- * Request Lenses+    getWorldTemplateBody_generationJob,+    getWorldTemplateBody_template,++    -- * Destructuring the Response+    GetWorldTemplateBodyResponse (..),+    newGetWorldTemplateBodyResponse,++    -- * Response Lenses+    getWorldTemplateBodyResponse_templateBody,+    getWorldTemplateBodyResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newGetWorldTemplateBody' smart constructor.+data GetWorldTemplateBody = GetWorldTemplateBody'+  { -- | The Amazon Resource Name (arn) of the world generator job.+    generationJob :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (arn) of the world template.+    template :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetWorldTemplateBody' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'generationJob', 'getWorldTemplateBody_generationJob' - The Amazon Resource Name (arn) of the world generator job.+--+-- 'template', 'getWorldTemplateBody_template' - The Amazon Resource Name (arn) of the world template.+newGetWorldTemplateBody ::+  GetWorldTemplateBody+newGetWorldTemplateBody =+  GetWorldTemplateBody'+    { generationJob =+        Prelude.Nothing,+      template = Prelude.Nothing+    }++-- | The Amazon Resource Name (arn) of the world generator job.+getWorldTemplateBody_generationJob :: Lens.Lens' GetWorldTemplateBody (Prelude.Maybe Prelude.Text)+getWorldTemplateBody_generationJob = Lens.lens (\GetWorldTemplateBody' {generationJob} -> generationJob) (\s@GetWorldTemplateBody' {} a -> s {generationJob = a} :: GetWorldTemplateBody)++-- | The Amazon Resource Name (arn) of the world template.+getWorldTemplateBody_template :: Lens.Lens' GetWorldTemplateBody (Prelude.Maybe Prelude.Text)+getWorldTemplateBody_template = Lens.lens (\GetWorldTemplateBody' {template} -> template) (\s@GetWorldTemplateBody' {} a -> s {template = a} :: GetWorldTemplateBody)++instance Core.AWSRequest GetWorldTemplateBody where+  type+    AWSResponse GetWorldTemplateBody =+      GetWorldTemplateBodyResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetWorldTemplateBodyResponse'+            Prelude.<$> (x Data..?> "templateBody")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetWorldTemplateBody where+  hashWithSalt _salt GetWorldTemplateBody' {..} =+    _salt+      `Prelude.hashWithSalt` generationJob+      `Prelude.hashWithSalt` template++instance Prelude.NFData GetWorldTemplateBody where+  rnf GetWorldTemplateBody' {..} =+    Prelude.rnf generationJob+      `Prelude.seq` Prelude.rnf template++instance Data.ToHeaders GetWorldTemplateBody where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetWorldTemplateBody where+  toJSON GetWorldTemplateBody' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("generationJob" Data..=) Prelude.<$> generationJob,+            ("template" Data..=) Prelude.<$> template+          ]+      )++instance Data.ToPath GetWorldTemplateBody where+  toPath = Prelude.const "/getWorldTemplateBody"++instance Data.ToQuery GetWorldTemplateBody where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetWorldTemplateBodyResponse' smart constructor.+data GetWorldTemplateBodyResponse = GetWorldTemplateBodyResponse'+  { -- | The world template body.+    templateBody :: 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 'GetWorldTemplateBodyResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'templateBody', 'getWorldTemplateBodyResponse_templateBody' - The world template body.+--+-- 'httpStatus', 'getWorldTemplateBodyResponse_httpStatus' - The response's http status code.+newGetWorldTemplateBodyResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetWorldTemplateBodyResponse+newGetWorldTemplateBodyResponse pHttpStatus_ =+  GetWorldTemplateBodyResponse'+    { templateBody =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The world template body.+getWorldTemplateBodyResponse_templateBody :: Lens.Lens' GetWorldTemplateBodyResponse (Prelude.Maybe Prelude.Text)+getWorldTemplateBodyResponse_templateBody = Lens.lens (\GetWorldTemplateBodyResponse' {templateBody} -> templateBody) (\s@GetWorldTemplateBodyResponse' {} a -> s {templateBody = a} :: GetWorldTemplateBodyResponse)++-- | The response's http status code.+getWorldTemplateBodyResponse_httpStatus :: Lens.Lens' GetWorldTemplateBodyResponse Prelude.Int+getWorldTemplateBodyResponse_httpStatus = Lens.lens (\GetWorldTemplateBodyResponse' {httpStatus} -> httpStatus) (\s@GetWorldTemplateBodyResponse' {} a -> s {httpStatus = a} :: GetWorldTemplateBodyResponse)++instance Prelude.NFData GetWorldTemplateBodyResponse where+  rnf GetWorldTemplateBodyResponse' {..} =+    Prelude.rnf templateBody+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/Lens.hs view
@@ -0,0 +1,835 @@+{-# 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.RobOMaker.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.RobOMaker.Lens+  ( -- * Operations++    -- ** BatchDeleteWorlds+    batchDeleteWorlds_worlds,+    batchDeleteWorldsResponse_unprocessedWorlds,+    batchDeleteWorldsResponse_httpStatus,++    -- ** BatchDescribeSimulationJob+    batchDescribeSimulationJob_jobs,+    batchDescribeSimulationJobResponse_jobs,+    batchDescribeSimulationJobResponse_unprocessedJobs,+    batchDescribeSimulationJobResponse_httpStatus,++    -- ** CancelSimulationJob+    cancelSimulationJob_job,+    cancelSimulationJobResponse_httpStatus,++    -- ** CancelSimulationJobBatch+    cancelSimulationJobBatch_batch,+    cancelSimulationJobBatchResponse_httpStatus,++    -- ** CancelWorldExportJob+    cancelWorldExportJob_job,+    cancelWorldExportJobResponse_httpStatus,++    -- ** CancelWorldGenerationJob+    cancelWorldGenerationJob_job,+    cancelWorldGenerationJobResponse_httpStatus,++    -- ** CreateRobotApplication+    createRobotApplication_environment,+    createRobotApplication_sources,+    createRobotApplication_tags,+    createRobotApplication_name,+    createRobotApplication_robotSoftwareSuite,+    createRobotApplicationResponse_arn,+    createRobotApplicationResponse_environment,+    createRobotApplicationResponse_lastUpdatedAt,+    createRobotApplicationResponse_name,+    createRobotApplicationResponse_revisionId,+    createRobotApplicationResponse_robotSoftwareSuite,+    createRobotApplicationResponse_sources,+    createRobotApplicationResponse_tags,+    createRobotApplicationResponse_version,+    createRobotApplicationResponse_httpStatus,++    -- ** CreateRobotApplicationVersion+    createRobotApplicationVersion_currentRevisionId,+    createRobotApplicationVersion_imageDigest,+    createRobotApplicationVersion_s3Etags,+    createRobotApplicationVersion_application,+    createRobotApplicationVersionResponse_arn,+    createRobotApplicationVersionResponse_environment,+    createRobotApplicationVersionResponse_lastUpdatedAt,+    createRobotApplicationVersionResponse_name,+    createRobotApplicationVersionResponse_revisionId,+    createRobotApplicationVersionResponse_robotSoftwareSuite,+    createRobotApplicationVersionResponse_sources,+    createRobotApplicationVersionResponse_version,+    createRobotApplicationVersionResponse_httpStatus,++    -- ** CreateSimulationApplication+    createSimulationApplication_environment,+    createSimulationApplication_renderingEngine,+    createSimulationApplication_sources,+    createSimulationApplication_tags,+    createSimulationApplication_name,+    createSimulationApplication_simulationSoftwareSuite,+    createSimulationApplication_robotSoftwareSuite,+    createSimulationApplicationResponse_arn,+    createSimulationApplicationResponse_environment,+    createSimulationApplicationResponse_lastUpdatedAt,+    createSimulationApplicationResponse_name,+    createSimulationApplicationResponse_renderingEngine,+    createSimulationApplicationResponse_revisionId,+    createSimulationApplicationResponse_robotSoftwareSuite,+    createSimulationApplicationResponse_simulationSoftwareSuite,+    createSimulationApplicationResponse_sources,+    createSimulationApplicationResponse_tags,+    createSimulationApplicationResponse_version,+    createSimulationApplicationResponse_httpStatus,++    -- ** CreateSimulationApplicationVersion+    createSimulationApplicationVersion_currentRevisionId,+    createSimulationApplicationVersion_imageDigest,+    createSimulationApplicationVersion_s3Etags,+    createSimulationApplicationVersion_application,+    createSimulationApplicationVersionResponse_arn,+    createSimulationApplicationVersionResponse_environment,+    createSimulationApplicationVersionResponse_lastUpdatedAt,+    createSimulationApplicationVersionResponse_name,+    createSimulationApplicationVersionResponse_renderingEngine,+    createSimulationApplicationVersionResponse_revisionId,+    createSimulationApplicationVersionResponse_robotSoftwareSuite,+    createSimulationApplicationVersionResponse_simulationSoftwareSuite,+    createSimulationApplicationVersionResponse_sources,+    createSimulationApplicationVersionResponse_version,+    createSimulationApplicationVersionResponse_httpStatus,++    -- ** CreateSimulationJob+    createSimulationJob_clientRequestToken,+    createSimulationJob_compute,+    createSimulationJob_dataSources,+    createSimulationJob_failureBehavior,+    createSimulationJob_loggingConfig,+    createSimulationJob_outputLocation,+    createSimulationJob_robotApplications,+    createSimulationJob_simulationApplications,+    createSimulationJob_tags,+    createSimulationJob_vpcConfig,+    createSimulationJob_maxJobDurationInSeconds,+    createSimulationJob_iamRole,+    createSimulationJobResponse_arn,+    createSimulationJobResponse_clientRequestToken,+    createSimulationJobResponse_compute,+    createSimulationJobResponse_dataSources,+    createSimulationJobResponse_failureBehavior,+    createSimulationJobResponse_failureCode,+    createSimulationJobResponse_iamRole,+    createSimulationJobResponse_lastStartedAt,+    createSimulationJobResponse_lastUpdatedAt,+    createSimulationJobResponse_loggingConfig,+    createSimulationJobResponse_maxJobDurationInSeconds,+    createSimulationJobResponse_outputLocation,+    createSimulationJobResponse_robotApplications,+    createSimulationJobResponse_simulationApplications,+    createSimulationJobResponse_simulationTimeMillis,+    createSimulationJobResponse_status,+    createSimulationJobResponse_tags,+    createSimulationJobResponse_vpcConfig,+    createSimulationJobResponse_httpStatus,++    -- ** CreateWorldExportJob+    createWorldExportJob_clientRequestToken,+    createWorldExportJob_tags,+    createWorldExportJob_worlds,+    createWorldExportJob_outputLocation,+    createWorldExportJob_iamRole,+    createWorldExportJobResponse_arn,+    createWorldExportJobResponse_clientRequestToken,+    createWorldExportJobResponse_createdAt,+    createWorldExportJobResponse_failureCode,+    createWorldExportJobResponse_iamRole,+    createWorldExportJobResponse_outputLocation,+    createWorldExportJobResponse_status,+    createWorldExportJobResponse_tags,+    createWorldExportJobResponse_httpStatus,++    -- ** CreateWorldGenerationJob+    createWorldGenerationJob_clientRequestToken,+    createWorldGenerationJob_tags,+    createWorldGenerationJob_worldTags,+    createWorldGenerationJob_template,+    createWorldGenerationJob_worldCount,+    createWorldGenerationJobResponse_arn,+    createWorldGenerationJobResponse_clientRequestToken,+    createWorldGenerationJobResponse_createdAt,+    createWorldGenerationJobResponse_failureCode,+    createWorldGenerationJobResponse_status,+    createWorldGenerationJobResponse_tags,+    createWorldGenerationJobResponse_template,+    createWorldGenerationJobResponse_worldCount,+    createWorldGenerationJobResponse_worldTags,+    createWorldGenerationJobResponse_httpStatus,++    -- ** CreateWorldTemplate+    createWorldTemplate_clientRequestToken,+    createWorldTemplate_name,+    createWorldTemplate_tags,+    createWorldTemplate_templateBody,+    createWorldTemplate_templateLocation,+    createWorldTemplateResponse_arn,+    createWorldTemplateResponse_clientRequestToken,+    createWorldTemplateResponse_createdAt,+    createWorldTemplateResponse_name,+    createWorldTemplateResponse_tags,+    createWorldTemplateResponse_httpStatus,++    -- ** DeleteRobotApplication+    deleteRobotApplication_applicationVersion,+    deleteRobotApplication_application,+    deleteRobotApplicationResponse_httpStatus,++    -- ** DeleteSimulationApplication+    deleteSimulationApplication_applicationVersion,+    deleteSimulationApplication_application,+    deleteSimulationApplicationResponse_httpStatus,++    -- ** DeleteWorldTemplate+    deleteWorldTemplate_template,+    deleteWorldTemplateResponse_httpStatus,++    -- ** DescribeRobotApplication+    describeRobotApplication_applicationVersion,+    describeRobotApplication_application,+    describeRobotApplicationResponse_arn,+    describeRobotApplicationResponse_environment,+    describeRobotApplicationResponse_imageDigest,+    describeRobotApplicationResponse_lastUpdatedAt,+    describeRobotApplicationResponse_name,+    describeRobotApplicationResponse_revisionId,+    describeRobotApplicationResponse_robotSoftwareSuite,+    describeRobotApplicationResponse_sources,+    describeRobotApplicationResponse_tags,+    describeRobotApplicationResponse_version,+    describeRobotApplicationResponse_httpStatus,++    -- ** DescribeSimulationApplication+    describeSimulationApplication_applicationVersion,+    describeSimulationApplication_application,+    describeSimulationApplicationResponse_arn,+    describeSimulationApplicationResponse_environment,+    describeSimulationApplicationResponse_imageDigest,+    describeSimulationApplicationResponse_lastUpdatedAt,+    describeSimulationApplicationResponse_name,+    describeSimulationApplicationResponse_renderingEngine,+    describeSimulationApplicationResponse_revisionId,+    describeSimulationApplicationResponse_robotSoftwareSuite,+    describeSimulationApplicationResponse_simulationSoftwareSuite,+    describeSimulationApplicationResponse_sources,+    describeSimulationApplicationResponse_tags,+    describeSimulationApplicationResponse_version,+    describeSimulationApplicationResponse_httpStatus,++    -- ** DescribeSimulationJob+    describeSimulationJob_job,+    describeSimulationJobResponse_arn,+    describeSimulationJobResponse_clientRequestToken,+    describeSimulationJobResponse_compute,+    describeSimulationJobResponse_dataSources,+    describeSimulationJobResponse_failureBehavior,+    describeSimulationJobResponse_failureCode,+    describeSimulationJobResponse_failureReason,+    describeSimulationJobResponse_iamRole,+    describeSimulationJobResponse_lastStartedAt,+    describeSimulationJobResponse_lastUpdatedAt,+    describeSimulationJobResponse_loggingConfig,+    describeSimulationJobResponse_maxJobDurationInSeconds,+    describeSimulationJobResponse_name,+    describeSimulationJobResponse_networkInterface,+    describeSimulationJobResponse_outputLocation,+    describeSimulationJobResponse_robotApplications,+    describeSimulationJobResponse_simulationApplications,+    describeSimulationJobResponse_simulationTimeMillis,+    describeSimulationJobResponse_status,+    describeSimulationJobResponse_tags,+    describeSimulationJobResponse_vpcConfig,+    describeSimulationJobResponse_httpStatus,++    -- ** DescribeSimulationJobBatch+    describeSimulationJobBatch_batch,+    describeSimulationJobBatchResponse_arn,+    describeSimulationJobBatchResponse_batchPolicy,+    describeSimulationJobBatchResponse_clientRequestToken,+    describeSimulationJobBatchResponse_createdAt,+    describeSimulationJobBatchResponse_createdRequests,+    describeSimulationJobBatchResponse_failedRequests,+    describeSimulationJobBatchResponse_failureCode,+    describeSimulationJobBatchResponse_failureReason,+    describeSimulationJobBatchResponse_lastUpdatedAt,+    describeSimulationJobBatchResponse_pendingRequests,+    describeSimulationJobBatchResponse_status,+    describeSimulationJobBatchResponse_tags,+    describeSimulationJobBatchResponse_httpStatus,++    -- ** DescribeWorld+    describeWorld_world,+    describeWorldResponse_arn,+    describeWorldResponse_createdAt,+    describeWorldResponse_generationJob,+    describeWorldResponse_tags,+    describeWorldResponse_template,+    describeWorldResponse_worldDescriptionBody,+    describeWorldResponse_httpStatus,++    -- ** DescribeWorldExportJob+    describeWorldExportJob_job,+    describeWorldExportJobResponse_arn,+    describeWorldExportJobResponse_clientRequestToken,+    describeWorldExportJobResponse_createdAt,+    describeWorldExportJobResponse_failureCode,+    describeWorldExportJobResponse_failureReason,+    describeWorldExportJobResponse_iamRole,+    describeWorldExportJobResponse_outputLocation,+    describeWorldExportJobResponse_status,+    describeWorldExportJobResponse_tags,+    describeWorldExportJobResponse_worlds,+    describeWorldExportJobResponse_httpStatus,++    -- ** DescribeWorldGenerationJob+    describeWorldGenerationJob_job,+    describeWorldGenerationJobResponse_arn,+    describeWorldGenerationJobResponse_clientRequestToken,+    describeWorldGenerationJobResponse_createdAt,+    describeWorldGenerationJobResponse_failureCode,+    describeWorldGenerationJobResponse_failureReason,+    describeWorldGenerationJobResponse_finishedWorldsSummary,+    describeWorldGenerationJobResponse_status,+    describeWorldGenerationJobResponse_tags,+    describeWorldGenerationJobResponse_template,+    describeWorldGenerationJobResponse_worldCount,+    describeWorldGenerationJobResponse_worldTags,+    describeWorldGenerationJobResponse_httpStatus,++    -- ** DescribeWorldTemplate+    describeWorldTemplate_template,+    describeWorldTemplateResponse_arn,+    describeWorldTemplateResponse_clientRequestToken,+    describeWorldTemplateResponse_createdAt,+    describeWorldTemplateResponse_lastUpdatedAt,+    describeWorldTemplateResponse_name,+    describeWorldTemplateResponse_tags,+    describeWorldTemplateResponse_version,+    describeWorldTemplateResponse_httpStatus,++    -- ** GetWorldTemplateBody+    getWorldTemplateBody_generationJob,+    getWorldTemplateBody_template,+    getWorldTemplateBodyResponse_templateBody,+    getWorldTemplateBodyResponse_httpStatus,++    -- ** ListRobotApplications+    listRobotApplications_filters,+    listRobotApplications_maxResults,+    listRobotApplications_nextToken,+    listRobotApplications_versionQualifier,+    listRobotApplicationsResponse_nextToken,+    listRobotApplicationsResponse_robotApplicationSummaries,+    listRobotApplicationsResponse_httpStatus,++    -- ** ListSimulationApplications+    listSimulationApplications_filters,+    listSimulationApplications_maxResults,+    listSimulationApplications_nextToken,+    listSimulationApplications_versionQualifier,+    listSimulationApplicationsResponse_nextToken,+    listSimulationApplicationsResponse_simulationApplicationSummaries,+    listSimulationApplicationsResponse_httpStatus,++    -- ** ListSimulationJobBatches+    listSimulationJobBatches_filters,+    listSimulationJobBatches_maxResults,+    listSimulationJobBatches_nextToken,+    listSimulationJobBatchesResponse_nextToken,+    listSimulationJobBatchesResponse_simulationJobBatchSummaries,+    listSimulationJobBatchesResponse_httpStatus,++    -- ** ListSimulationJobs+    listSimulationJobs_filters,+    listSimulationJobs_maxResults,+    listSimulationJobs_nextToken,+    listSimulationJobsResponse_nextToken,+    listSimulationJobsResponse_httpStatus,+    listSimulationJobsResponse_simulationJobSummaries,++    -- ** ListTagsForResource+    listTagsForResource_resourceArn,+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,++    -- ** ListWorldExportJobs+    listWorldExportJobs_filters,+    listWorldExportJobs_maxResults,+    listWorldExportJobs_nextToken,+    listWorldExportJobsResponse_nextToken,+    listWorldExportJobsResponse_httpStatus,+    listWorldExportJobsResponse_worldExportJobSummaries,++    -- ** ListWorldGenerationJobs+    listWorldGenerationJobs_filters,+    listWorldGenerationJobs_maxResults,+    listWorldGenerationJobs_nextToken,+    listWorldGenerationJobsResponse_nextToken,+    listWorldGenerationJobsResponse_httpStatus,+    listWorldGenerationJobsResponse_worldGenerationJobSummaries,++    -- ** ListWorldTemplates+    listWorldTemplates_maxResults,+    listWorldTemplates_nextToken,+    listWorldTemplatesResponse_nextToken,+    listWorldTemplatesResponse_templateSummaries,+    listWorldTemplatesResponse_httpStatus,++    -- ** ListWorlds+    listWorlds_filters,+    listWorlds_maxResults,+    listWorlds_nextToken,+    listWorldsResponse_nextToken,+    listWorldsResponse_worldSummaries,+    listWorldsResponse_httpStatus,++    -- ** RestartSimulationJob+    restartSimulationJob_job,+    restartSimulationJobResponse_httpStatus,++    -- ** StartSimulationJobBatch+    startSimulationJobBatch_batchPolicy,+    startSimulationJobBatch_clientRequestToken,+    startSimulationJobBatch_tags,+    startSimulationJobBatch_createSimulationJobRequests,+    startSimulationJobBatchResponse_arn,+    startSimulationJobBatchResponse_batchPolicy,+    startSimulationJobBatchResponse_clientRequestToken,+    startSimulationJobBatchResponse_createdAt,+    startSimulationJobBatchResponse_createdRequests,+    startSimulationJobBatchResponse_failedRequests,+    startSimulationJobBatchResponse_failureCode,+    startSimulationJobBatchResponse_failureReason,+    startSimulationJobBatchResponse_pendingRequests,+    startSimulationJobBatchResponse_status,+    startSimulationJobBatchResponse_tags,+    startSimulationJobBatchResponse_httpStatus,++    -- ** TagResource+    tagResource_resourceArn,+    tagResource_tags,+    tagResourceResponse_httpStatus,++    -- ** UntagResource+    untagResource_resourceArn,+    untagResource_tagKeys,+    untagResourceResponse_httpStatus,++    -- ** UpdateRobotApplication+    updateRobotApplication_currentRevisionId,+    updateRobotApplication_environment,+    updateRobotApplication_sources,+    updateRobotApplication_application,+    updateRobotApplication_robotSoftwareSuite,+    updateRobotApplicationResponse_arn,+    updateRobotApplicationResponse_environment,+    updateRobotApplicationResponse_lastUpdatedAt,+    updateRobotApplicationResponse_name,+    updateRobotApplicationResponse_revisionId,+    updateRobotApplicationResponse_robotSoftwareSuite,+    updateRobotApplicationResponse_sources,+    updateRobotApplicationResponse_version,+    updateRobotApplicationResponse_httpStatus,++    -- ** UpdateSimulationApplication+    updateSimulationApplication_currentRevisionId,+    updateSimulationApplication_environment,+    updateSimulationApplication_renderingEngine,+    updateSimulationApplication_sources,+    updateSimulationApplication_application,+    updateSimulationApplication_simulationSoftwareSuite,+    updateSimulationApplication_robotSoftwareSuite,+    updateSimulationApplicationResponse_arn,+    updateSimulationApplicationResponse_environment,+    updateSimulationApplicationResponse_lastUpdatedAt,+    updateSimulationApplicationResponse_name,+    updateSimulationApplicationResponse_renderingEngine,+    updateSimulationApplicationResponse_revisionId,+    updateSimulationApplicationResponse_robotSoftwareSuite,+    updateSimulationApplicationResponse_simulationSoftwareSuite,+    updateSimulationApplicationResponse_sources,+    updateSimulationApplicationResponse_version,+    updateSimulationApplicationResponse_httpStatus,++    -- ** UpdateWorldTemplate+    updateWorldTemplate_name,+    updateWorldTemplate_templateBody,+    updateWorldTemplate_templateLocation,+    updateWorldTemplate_template,+    updateWorldTemplateResponse_arn,+    updateWorldTemplateResponse_createdAt,+    updateWorldTemplateResponse_lastUpdatedAt,+    updateWorldTemplateResponse_name,+    updateWorldTemplateResponse_httpStatus,++    -- * Types++    -- ** BatchPolicy+    batchPolicy_maxConcurrency,+    batchPolicy_timeoutInSeconds,++    -- ** Compute+    compute_computeType,+    compute_gpuUnitLimit,+    compute_simulationUnitLimit,++    -- ** ComputeResponse+    computeResponse_computeType,+    computeResponse_gpuUnitLimit,+    computeResponse_simulationUnitLimit,++    -- ** DataSource+    dataSource_destination,+    dataSource_name,+    dataSource_s3Bucket,+    dataSource_s3Keys,+    dataSource_type,++    -- ** DataSourceConfig+    dataSourceConfig_destination,+    dataSourceConfig_type,+    dataSourceConfig_name,+    dataSourceConfig_s3Bucket,+    dataSourceConfig_s3Keys,++    -- ** Environment+    environment_uri,++    -- ** FailedCreateSimulationJobRequest+    failedCreateSimulationJobRequest_failedAt,+    failedCreateSimulationJobRequest_failureCode,+    failedCreateSimulationJobRequest_failureReason,+    failedCreateSimulationJobRequest_request,++    -- ** FailureSummary+    failureSummary_failures,+    failureSummary_totalFailureCount,++    -- ** Filter+    filter_name,+    filter_values,++    -- ** FinishedWorldsSummary+    finishedWorldsSummary_failureSummary,+    finishedWorldsSummary_finishedCount,+    finishedWorldsSummary_succeededWorlds,++    -- ** LaunchConfig+    launchConfig_command,+    launchConfig_environmentVariables,+    launchConfig_launchFile,+    launchConfig_packageName,+    launchConfig_portForwardingConfig,+    launchConfig_streamUI,++    -- ** LoggingConfig+    loggingConfig_recordAllRosTopics,++    -- ** NetworkInterface+    networkInterface_networkInterfaceId,+    networkInterface_privateIpAddress,+    networkInterface_publicIpAddress,++    -- ** OutputLocation+    outputLocation_s3Bucket,+    outputLocation_s3Prefix,++    -- ** PortForwardingConfig+    portForwardingConfig_portMappings,++    -- ** PortMapping+    portMapping_enableOnPublicIp,+    portMapping_jobPort,+    portMapping_applicationPort,++    -- ** RenderingEngine+    renderingEngine_name,+    renderingEngine_version,++    -- ** RobotApplicationConfig+    robotApplicationConfig_applicationVersion,+    robotApplicationConfig_tools,+    robotApplicationConfig_uploadConfigurations,+    robotApplicationConfig_useDefaultTools,+    robotApplicationConfig_useDefaultUploadConfigurations,+    robotApplicationConfig_application,+    robotApplicationConfig_launchConfig,++    -- ** RobotApplicationSummary+    robotApplicationSummary_arn,+    robotApplicationSummary_lastUpdatedAt,+    robotApplicationSummary_name,+    robotApplicationSummary_robotSoftwareSuite,+    robotApplicationSummary_version,++    -- ** RobotSoftwareSuite+    robotSoftwareSuite_name,+    robotSoftwareSuite_version,++    -- ** S3KeyOutput+    s3KeyOutput_etag,+    s3KeyOutput_s3Key,++    -- ** SimulationApplicationConfig+    simulationApplicationConfig_applicationVersion,+    simulationApplicationConfig_tools,+    simulationApplicationConfig_uploadConfigurations,+    simulationApplicationConfig_useDefaultTools,+    simulationApplicationConfig_useDefaultUploadConfigurations,+    simulationApplicationConfig_worldConfigs,+    simulationApplicationConfig_application,+    simulationApplicationConfig_launchConfig,++    -- ** SimulationApplicationSummary+    simulationApplicationSummary_arn,+    simulationApplicationSummary_lastUpdatedAt,+    simulationApplicationSummary_name,+    simulationApplicationSummary_robotSoftwareSuite,+    simulationApplicationSummary_simulationSoftwareSuite,+    simulationApplicationSummary_version,++    -- ** SimulationJob+    simulationJob_arn,+    simulationJob_clientRequestToken,+    simulationJob_compute,+    simulationJob_dataSources,+    simulationJob_failureBehavior,+    simulationJob_failureCode,+    simulationJob_failureReason,+    simulationJob_iamRole,+    simulationJob_lastStartedAt,+    simulationJob_lastUpdatedAt,+    simulationJob_loggingConfig,+    simulationJob_maxJobDurationInSeconds,+    simulationJob_name,+    simulationJob_networkInterface,+    simulationJob_outputLocation,+    simulationJob_robotApplications,+    simulationJob_simulationApplications,+    simulationJob_simulationTimeMillis,+    simulationJob_status,+    simulationJob_tags,+    simulationJob_vpcConfig,++    -- ** SimulationJobBatchSummary+    simulationJobBatchSummary_arn,+    simulationJobBatchSummary_createdAt,+    simulationJobBatchSummary_createdRequestCount,+    simulationJobBatchSummary_failedRequestCount,+    simulationJobBatchSummary_lastUpdatedAt,+    simulationJobBatchSummary_pendingRequestCount,+    simulationJobBatchSummary_status,++    -- ** SimulationJobRequest+    simulationJobRequest_compute,+    simulationJobRequest_dataSources,+    simulationJobRequest_failureBehavior,+    simulationJobRequest_iamRole,+    simulationJobRequest_loggingConfig,+    simulationJobRequest_outputLocation,+    simulationJobRequest_robotApplications,+    simulationJobRequest_simulationApplications,+    simulationJobRequest_tags,+    simulationJobRequest_useDefaultApplications,+    simulationJobRequest_vpcConfig,+    simulationJobRequest_maxJobDurationInSeconds,++    -- ** SimulationJobSummary+    simulationJobSummary_arn,+    simulationJobSummary_computeType,+    simulationJobSummary_dataSourceNames,+    simulationJobSummary_lastUpdatedAt,+    simulationJobSummary_name,+    simulationJobSummary_robotApplicationNames,+    simulationJobSummary_simulationApplicationNames,+    simulationJobSummary_status,++    -- ** SimulationSoftwareSuite+    simulationSoftwareSuite_name,+    simulationSoftwareSuite_version,++    -- ** Source+    source_architecture,+    source_etag,+    source_s3Bucket,+    source_s3Key,++    -- ** SourceConfig+    sourceConfig_architecture,+    sourceConfig_s3Bucket,+    sourceConfig_s3Key,++    -- ** TemplateLocation+    templateLocation_s3Bucket,+    templateLocation_s3Key,++    -- ** TemplateSummary+    templateSummary_arn,+    templateSummary_createdAt,+    templateSummary_lastUpdatedAt,+    templateSummary_name,+    templateSummary_version,++    -- ** Tool+    tool_exitBehavior,+    tool_streamOutputToCloudWatch,+    tool_streamUI,+    tool_name,+    tool_command,++    -- ** UploadConfiguration+    uploadConfiguration_name,+    uploadConfiguration_path,+    uploadConfiguration_uploadBehavior,++    -- ** VPCConfig+    vPCConfig_assignPublicIp,+    vPCConfig_securityGroups,+    vPCConfig_subnets,++    -- ** VPCConfigResponse+    vPCConfigResponse_assignPublicIp,+    vPCConfigResponse_securityGroups,+    vPCConfigResponse_subnets,+    vPCConfigResponse_vpcId,++    -- ** WorldConfig+    worldConfig_world,++    -- ** WorldCount+    worldCount_floorplanCount,+    worldCount_interiorCountPerFloorplan,++    -- ** WorldExportJobSummary+    worldExportJobSummary_arn,+    worldExportJobSummary_createdAt,+    worldExportJobSummary_outputLocation,+    worldExportJobSummary_status,+    worldExportJobSummary_worlds,++    -- ** WorldFailure+    worldFailure_failureCode,+    worldFailure_failureCount,+    worldFailure_sampleFailureReason,++    -- ** WorldGenerationJobSummary+    worldGenerationJobSummary_arn,+    worldGenerationJobSummary_createdAt,+    worldGenerationJobSummary_failedWorldCount,+    worldGenerationJobSummary_status,+    worldGenerationJobSummary_succeededWorldCount,+    worldGenerationJobSummary_template,+    worldGenerationJobSummary_worldCount,++    -- ** WorldSummary+    worldSummary_arn,+    worldSummary_createdAt,+    worldSummary_generationJob,+    worldSummary_template,+  )+where++import Amazonka.RobOMaker.BatchDeleteWorlds+import Amazonka.RobOMaker.BatchDescribeSimulationJob+import Amazonka.RobOMaker.CancelSimulationJob+import Amazonka.RobOMaker.CancelSimulationJobBatch+import Amazonka.RobOMaker.CancelWorldExportJob+import Amazonka.RobOMaker.CancelWorldGenerationJob+import Amazonka.RobOMaker.CreateRobotApplication+import Amazonka.RobOMaker.CreateRobotApplicationVersion+import Amazonka.RobOMaker.CreateSimulationApplication+import Amazonka.RobOMaker.CreateSimulationApplicationVersion+import Amazonka.RobOMaker.CreateSimulationJob+import Amazonka.RobOMaker.CreateWorldExportJob+import Amazonka.RobOMaker.CreateWorldGenerationJob+import Amazonka.RobOMaker.CreateWorldTemplate+import Amazonka.RobOMaker.DeleteRobotApplication+import Amazonka.RobOMaker.DeleteSimulationApplication+import Amazonka.RobOMaker.DeleteWorldTemplate+import Amazonka.RobOMaker.DescribeRobotApplication+import Amazonka.RobOMaker.DescribeSimulationApplication+import Amazonka.RobOMaker.DescribeSimulationJob+import Amazonka.RobOMaker.DescribeSimulationJobBatch+import Amazonka.RobOMaker.DescribeWorld+import Amazonka.RobOMaker.DescribeWorldExportJob+import Amazonka.RobOMaker.DescribeWorldGenerationJob+import Amazonka.RobOMaker.DescribeWorldTemplate+import Amazonka.RobOMaker.GetWorldTemplateBody+import Amazonka.RobOMaker.ListRobotApplications+import Amazonka.RobOMaker.ListSimulationApplications+import Amazonka.RobOMaker.ListSimulationJobBatches+import Amazonka.RobOMaker.ListSimulationJobs+import Amazonka.RobOMaker.ListTagsForResource+import Amazonka.RobOMaker.ListWorldExportJobs+import Amazonka.RobOMaker.ListWorldGenerationJobs+import Amazonka.RobOMaker.ListWorldTemplates+import Amazonka.RobOMaker.ListWorlds+import Amazonka.RobOMaker.RestartSimulationJob+import Amazonka.RobOMaker.StartSimulationJobBatch+import Amazonka.RobOMaker.TagResource+import Amazonka.RobOMaker.Types.BatchPolicy+import Amazonka.RobOMaker.Types.Compute+import Amazonka.RobOMaker.Types.ComputeResponse+import Amazonka.RobOMaker.Types.DataSource+import Amazonka.RobOMaker.Types.DataSourceConfig+import Amazonka.RobOMaker.Types.Environment+import Amazonka.RobOMaker.Types.FailedCreateSimulationJobRequest+import Amazonka.RobOMaker.Types.FailureSummary+import Amazonka.RobOMaker.Types.Filter+import Amazonka.RobOMaker.Types.FinishedWorldsSummary+import Amazonka.RobOMaker.Types.LaunchConfig+import Amazonka.RobOMaker.Types.LoggingConfig+import Amazonka.RobOMaker.Types.NetworkInterface+import Amazonka.RobOMaker.Types.OutputLocation+import Amazonka.RobOMaker.Types.PortForwardingConfig+import Amazonka.RobOMaker.Types.PortMapping+import Amazonka.RobOMaker.Types.RenderingEngine+import Amazonka.RobOMaker.Types.RobotApplicationConfig+import Amazonka.RobOMaker.Types.RobotApplicationSummary+import Amazonka.RobOMaker.Types.RobotSoftwareSuite+import Amazonka.RobOMaker.Types.S3KeyOutput+import Amazonka.RobOMaker.Types.SimulationApplicationConfig+import Amazonka.RobOMaker.Types.SimulationApplicationSummary+import Amazonka.RobOMaker.Types.SimulationJob+import Amazonka.RobOMaker.Types.SimulationJobBatchSummary+import Amazonka.RobOMaker.Types.SimulationJobRequest+import Amazonka.RobOMaker.Types.SimulationJobSummary+import Amazonka.RobOMaker.Types.SimulationSoftwareSuite+import Amazonka.RobOMaker.Types.Source+import Amazonka.RobOMaker.Types.SourceConfig+import Amazonka.RobOMaker.Types.TemplateLocation+import Amazonka.RobOMaker.Types.TemplateSummary+import Amazonka.RobOMaker.Types.Tool+import Amazonka.RobOMaker.Types.UploadConfiguration+import Amazonka.RobOMaker.Types.VPCConfig+import Amazonka.RobOMaker.Types.VPCConfigResponse+import Amazonka.RobOMaker.Types.WorldConfig+import Amazonka.RobOMaker.Types.WorldCount+import Amazonka.RobOMaker.Types.WorldExportJobSummary+import Amazonka.RobOMaker.Types.WorldFailure+import Amazonka.RobOMaker.Types.WorldGenerationJobSummary+import Amazonka.RobOMaker.Types.WorldSummary+import Amazonka.RobOMaker.UntagResource+import Amazonka.RobOMaker.UpdateRobotApplication+import Amazonka.RobOMaker.UpdateSimulationApplication+import Amazonka.RobOMaker.UpdateWorldTemplate
+ gen/Amazonka/RobOMaker/ListRobotApplications.hs view
@@ -0,0 +1,307 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.ListRobotApplications+-- 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 robot application. You can optionally provide filters+-- to retrieve specific robot applications.+--+-- This operation returns paginated results.+module Amazonka.RobOMaker.ListRobotApplications+  ( -- * Creating a Request+    ListRobotApplications (..),+    newListRobotApplications,++    -- * Request Lenses+    listRobotApplications_filters,+    listRobotApplications_maxResults,+    listRobotApplications_nextToken,+    listRobotApplications_versionQualifier,++    -- * Destructuring the Response+    ListRobotApplicationsResponse (..),+    newListRobotApplicationsResponse,++    -- * Response Lenses+    listRobotApplicationsResponse_nextToken,+    listRobotApplicationsResponse_robotApplicationSummaries,+    listRobotApplicationsResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newListRobotApplications' smart constructor.+data ListRobotApplications = ListRobotApplications'+  { -- | Optional filters to limit results.+    --+    -- The filter name @name@ is supported. When filtering, you must use the+    -- complete value of the filtered item. You can use up to three filters.+    filters :: Prelude.Maybe (Prelude.NonEmpty Filter),+    -- | When this parameter is used, @ListRobotApplications@ only returns+    -- @maxResults@ results in a single page along with a @nextToken@ response+    -- element. The remaining results of the initial request can be seen by+    -- sending another @ListRobotApplications@ request with the returned+    -- @nextToken@ value. This value can be between 1 and 100. If this+    -- parameter is not used, then @ListRobotApplications@ returns up to 100+    -- results and a @nextToken@ value if applicable.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | If the previous paginated request did not return all of the remaining+    -- results, the response object\'s @nextToken@ parameter value is set to a+    -- token. To retrieve the next set of results, call @ListRobotApplications@+    -- again and assign that token to the request object\'s @nextToken@+    -- parameter. If there are no remaining results, the previous response+    -- object\'s NextToken parameter is set to null.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The version qualifier of the robot application.+    versionQualifier :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListRobotApplications' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'listRobotApplications_filters' - Optional filters to limit results.+--+-- The filter name @name@ is supported. When filtering, you must use the+-- complete value of the filtered item. You can use up to three filters.+--+-- 'maxResults', 'listRobotApplications_maxResults' - When this parameter is used, @ListRobotApplications@ only returns+-- @maxResults@ results in a single page along with a @nextToken@ response+-- element. The remaining results of the initial request can be seen by+-- sending another @ListRobotApplications@ request with the returned+-- @nextToken@ value. This value can be between 1 and 100. If this+-- parameter is not used, then @ListRobotApplications@ returns up to 100+-- results and a @nextToken@ value if applicable.+--+-- 'nextToken', 'listRobotApplications_nextToken' - If the previous paginated request did not return all of the remaining+-- results, the response object\'s @nextToken@ parameter value is set to a+-- token. To retrieve the next set of results, call @ListRobotApplications@+-- again and assign that token to the request object\'s @nextToken@+-- parameter. If there are no remaining results, the previous response+-- object\'s NextToken parameter is set to null.+--+-- 'versionQualifier', 'listRobotApplications_versionQualifier' - The version qualifier of the robot application.+newListRobotApplications ::+  ListRobotApplications+newListRobotApplications =+  ListRobotApplications'+    { filters = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      versionQualifier = Prelude.Nothing+    }++-- | Optional filters to limit results.+--+-- The filter name @name@ is supported. When filtering, you must use the+-- complete value of the filtered item. You can use up to three filters.+listRobotApplications_filters :: Lens.Lens' ListRobotApplications (Prelude.Maybe (Prelude.NonEmpty Filter))+listRobotApplications_filters = Lens.lens (\ListRobotApplications' {filters} -> filters) (\s@ListRobotApplications' {} a -> s {filters = a} :: ListRobotApplications) Prelude.. Lens.mapping Lens.coerced++-- | When this parameter is used, @ListRobotApplications@ only returns+-- @maxResults@ results in a single page along with a @nextToken@ response+-- element. The remaining results of the initial request can be seen by+-- sending another @ListRobotApplications@ request with the returned+-- @nextToken@ value. This value can be between 1 and 100. If this+-- parameter is not used, then @ListRobotApplications@ returns up to 100+-- results and a @nextToken@ value if applicable.+listRobotApplications_maxResults :: Lens.Lens' ListRobotApplications (Prelude.Maybe Prelude.Int)+listRobotApplications_maxResults = Lens.lens (\ListRobotApplications' {maxResults} -> maxResults) (\s@ListRobotApplications' {} a -> s {maxResults = a} :: ListRobotApplications)++-- | If the previous paginated request did not return all of the remaining+-- results, the response object\'s @nextToken@ parameter value is set to a+-- token. To retrieve the next set of results, call @ListRobotApplications@+-- again and assign that token to the request object\'s @nextToken@+-- parameter. If there are no remaining results, the previous response+-- object\'s NextToken parameter is set to null.+listRobotApplications_nextToken :: Lens.Lens' ListRobotApplications (Prelude.Maybe Prelude.Text)+listRobotApplications_nextToken = Lens.lens (\ListRobotApplications' {nextToken} -> nextToken) (\s@ListRobotApplications' {} a -> s {nextToken = a} :: ListRobotApplications)++-- | The version qualifier of the robot application.+listRobotApplications_versionQualifier :: Lens.Lens' ListRobotApplications (Prelude.Maybe Prelude.Text)+listRobotApplications_versionQualifier = Lens.lens (\ListRobotApplications' {versionQualifier} -> versionQualifier) (\s@ListRobotApplications' {} a -> s {versionQualifier = a} :: ListRobotApplications)++instance Core.AWSPager ListRobotApplications where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listRobotApplicationsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listRobotApplicationsResponse_robotApplicationSummaries+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listRobotApplications_nextToken+          Lens..~ rs+          Lens.^? listRobotApplicationsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListRobotApplications where+  type+    AWSResponse ListRobotApplications =+      ListRobotApplicationsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListRobotApplicationsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> ( x+                            Data..?> "robotApplicationSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListRobotApplications where+  hashWithSalt _salt ListRobotApplications' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` versionQualifier++instance Prelude.NFData ListRobotApplications where+  rnf ListRobotApplications' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf versionQualifier++instance Data.ToHeaders ListRobotApplications where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListRobotApplications where+  toJSON ListRobotApplications' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("filters" Data..=) Prelude.<$> filters,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("versionQualifier" Data..=)+              Prelude.<$> versionQualifier+          ]+      )++instance Data.ToPath ListRobotApplications where+  toPath = Prelude.const "/listRobotApplications"++instance Data.ToQuery ListRobotApplications where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListRobotApplicationsResponse' smart constructor.+data ListRobotApplicationsResponse = ListRobotApplicationsResponse'+  { -- | If the previous paginated request did not return all of the remaining+    -- results, the response object\'s @nextToken@ parameter value is set to a+    -- token. To retrieve the next set of results, call @ListRobotApplications@+    -- again and assign that token to the request object\'s @nextToken@+    -- parameter. If there are no remaining results, the previous response+    -- object\'s NextToken parameter is set to null.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A list of robot application summaries that meet the criteria of the+    -- request.+    robotApplicationSummaries :: Prelude.Maybe [RobotApplicationSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListRobotApplicationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listRobotApplicationsResponse_nextToken' - If the previous paginated request did not return all of the remaining+-- results, the response object\'s @nextToken@ parameter value is set to a+-- token. To retrieve the next set of results, call @ListRobotApplications@+-- again and assign that token to the request object\'s @nextToken@+-- parameter. If there are no remaining results, the previous response+-- object\'s NextToken parameter is set to null.+--+-- 'robotApplicationSummaries', 'listRobotApplicationsResponse_robotApplicationSummaries' - A list of robot application summaries that meet the criteria of the+-- request.+--+-- 'httpStatus', 'listRobotApplicationsResponse_httpStatus' - The response's http status code.+newListRobotApplicationsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListRobotApplicationsResponse+newListRobotApplicationsResponse pHttpStatus_ =+  ListRobotApplicationsResponse'+    { nextToken =+        Prelude.Nothing,+      robotApplicationSummaries = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | If the previous paginated request did not return all of the remaining+-- results, the response object\'s @nextToken@ parameter value is set to a+-- token. To retrieve the next set of results, call @ListRobotApplications@+-- again and assign that token to the request object\'s @nextToken@+-- parameter. If there are no remaining results, the previous response+-- object\'s NextToken parameter is set to null.+listRobotApplicationsResponse_nextToken :: Lens.Lens' ListRobotApplicationsResponse (Prelude.Maybe Prelude.Text)+listRobotApplicationsResponse_nextToken = Lens.lens (\ListRobotApplicationsResponse' {nextToken} -> nextToken) (\s@ListRobotApplicationsResponse' {} a -> s {nextToken = a} :: ListRobotApplicationsResponse)++-- | A list of robot application summaries that meet the criteria of the+-- request.+listRobotApplicationsResponse_robotApplicationSummaries :: Lens.Lens' ListRobotApplicationsResponse (Prelude.Maybe [RobotApplicationSummary])+listRobotApplicationsResponse_robotApplicationSummaries = Lens.lens (\ListRobotApplicationsResponse' {robotApplicationSummaries} -> robotApplicationSummaries) (\s@ListRobotApplicationsResponse' {} a -> s {robotApplicationSummaries = a} :: ListRobotApplicationsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listRobotApplicationsResponse_httpStatus :: Lens.Lens' ListRobotApplicationsResponse Prelude.Int+listRobotApplicationsResponse_httpStatus = Lens.lens (\ListRobotApplicationsResponse' {httpStatus} -> httpStatus) (\s@ListRobotApplicationsResponse' {} a -> s {httpStatus = a} :: ListRobotApplicationsResponse)++instance Prelude.NFData ListRobotApplicationsResponse where+  rnf ListRobotApplicationsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf robotApplicationSummaries+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/ListSimulationApplications.hs view
@@ -0,0 +1,312 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.ListSimulationApplications+-- 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 simulation applications. You can optionally provide+-- filters to retrieve specific simulation applications.+--+-- This operation returns paginated results.+module Amazonka.RobOMaker.ListSimulationApplications+  ( -- * Creating a Request+    ListSimulationApplications (..),+    newListSimulationApplications,++    -- * Request Lenses+    listSimulationApplications_filters,+    listSimulationApplications_maxResults,+    listSimulationApplications_nextToken,+    listSimulationApplications_versionQualifier,++    -- * Destructuring the Response+    ListSimulationApplicationsResponse (..),+    newListSimulationApplicationsResponse,++    -- * Response Lenses+    listSimulationApplicationsResponse_nextToken,+    listSimulationApplicationsResponse_simulationApplicationSummaries,+    listSimulationApplicationsResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newListSimulationApplications' smart constructor.+data ListSimulationApplications = ListSimulationApplications'+  { -- | Optional list of filters to limit results.+    --+    -- The filter name @name@ is supported. When filtering, you must use the+    -- complete value of the filtered item. You can use up to three filters.+    filters :: Prelude.Maybe (Prelude.NonEmpty Filter),+    -- | When this parameter is used, @ListSimulationApplications@ only returns+    -- @maxResults@ results in a single page along with a @nextToken@ response+    -- element. The remaining results of the initial request can be seen by+    -- sending another @ListSimulationApplications@ request with the returned+    -- @nextToken@ value. This value can be between 1 and 100. If this+    -- parameter is not used, then @ListSimulationApplications@ returns up to+    -- 100 results and a @nextToken@ value if applicable.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | If the previous paginated request did not return all of the remaining+    -- results, the response object\'s @nextToken@ parameter value is set to a+    -- token. To retrieve the next set of results, call+    -- @ListSimulationApplications@ again and assign that token to the request+    -- object\'s @nextToken@ parameter. If there are no remaining results, the+    -- previous response object\'s NextToken parameter is set to null.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The version qualifier of the simulation application.+    versionQualifier :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSimulationApplications' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'listSimulationApplications_filters' - Optional list of filters to limit results.+--+-- The filter name @name@ is supported. When filtering, you must use the+-- complete value of the filtered item. You can use up to three filters.+--+-- 'maxResults', 'listSimulationApplications_maxResults' - When this parameter is used, @ListSimulationApplications@ only returns+-- @maxResults@ results in a single page along with a @nextToken@ response+-- element. The remaining results of the initial request can be seen by+-- sending another @ListSimulationApplications@ request with the returned+-- @nextToken@ value. This value can be between 1 and 100. If this+-- parameter is not used, then @ListSimulationApplications@ returns up to+-- 100 results and a @nextToken@ value if applicable.+--+-- 'nextToken', 'listSimulationApplications_nextToken' - If the previous paginated request did not return all of the remaining+-- results, the response object\'s @nextToken@ parameter value is set to a+-- token. To retrieve the next set of results, call+-- @ListSimulationApplications@ again and assign that token to the request+-- object\'s @nextToken@ parameter. If there are no remaining results, the+-- previous response object\'s NextToken parameter is set to null.+--+-- 'versionQualifier', 'listSimulationApplications_versionQualifier' - The version qualifier of the simulation application.+newListSimulationApplications ::+  ListSimulationApplications+newListSimulationApplications =+  ListSimulationApplications'+    { filters =+        Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      versionQualifier = Prelude.Nothing+    }++-- | Optional list of filters to limit results.+--+-- The filter name @name@ is supported. When filtering, you must use the+-- complete value of the filtered item. You can use up to three filters.+listSimulationApplications_filters :: Lens.Lens' ListSimulationApplications (Prelude.Maybe (Prelude.NonEmpty Filter))+listSimulationApplications_filters = Lens.lens (\ListSimulationApplications' {filters} -> filters) (\s@ListSimulationApplications' {} a -> s {filters = a} :: ListSimulationApplications) Prelude.. Lens.mapping Lens.coerced++-- | When this parameter is used, @ListSimulationApplications@ only returns+-- @maxResults@ results in a single page along with a @nextToken@ response+-- element. The remaining results of the initial request can be seen by+-- sending another @ListSimulationApplications@ request with the returned+-- @nextToken@ value. This value can be between 1 and 100. If this+-- parameter is not used, then @ListSimulationApplications@ returns up to+-- 100 results and a @nextToken@ value if applicable.+listSimulationApplications_maxResults :: Lens.Lens' ListSimulationApplications (Prelude.Maybe Prelude.Int)+listSimulationApplications_maxResults = Lens.lens (\ListSimulationApplications' {maxResults} -> maxResults) (\s@ListSimulationApplications' {} a -> s {maxResults = a} :: ListSimulationApplications)++-- | If the previous paginated request did not return all of the remaining+-- results, the response object\'s @nextToken@ parameter value is set to a+-- token. To retrieve the next set of results, call+-- @ListSimulationApplications@ again and assign that token to the request+-- object\'s @nextToken@ parameter. If there are no remaining results, the+-- previous response object\'s NextToken parameter is set to null.+listSimulationApplications_nextToken :: Lens.Lens' ListSimulationApplications (Prelude.Maybe Prelude.Text)+listSimulationApplications_nextToken = Lens.lens (\ListSimulationApplications' {nextToken} -> nextToken) (\s@ListSimulationApplications' {} a -> s {nextToken = a} :: ListSimulationApplications)++-- | The version qualifier of the simulation application.+listSimulationApplications_versionQualifier :: Lens.Lens' ListSimulationApplications (Prelude.Maybe Prelude.Text)+listSimulationApplications_versionQualifier = Lens.lens (\ListSimulationApplications' {versionQualifier} -> versionQualifier) (\s@ListSimulationApplications' {} a -> s {versionQualifier = a} :: ListSimulationApplications)++instance Core.AWSPager ListSimulationApplications where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listSimulationApplicationsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listSimulationApplicationsResponse_simulationApplicationSummaries+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listSimulationApplications_nextToken+          Lens..~ rs+          Lens.^? listSimulationApplicationsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListSimulationApplications where+  type+    AWSResponse ListSimulationApplications =+      ListSimulationApplicationsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListSimulationApplicationsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> ( x+                            Data..?> "simulationApplicationSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListSimulationApplications where+  hashWithSalt _salt ListSimulationApplications' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` versionQualifier++instance Prelude.NFData ListSimulationApplications where+  rnf ListSimulationApplications' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf versionQualifier++instance Data.ToHeaders ListSimulationApplications where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListSimulationApplications where+  toJSON ListSimulationApplications' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("filters" Data..=) Prelude.<$> filters,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("versionQualifier" Data..=)+              Prelude.<$> versionQualifier+          ]+      )++instance Data.ToPath ListSimulationApplications where+  toPath = Prelude.const "/listSimulationApplications"++instance Data.ToQuery ListSimulationApplications where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListSimulationApplicationsResponse' smart constructor.+data ListSimulationApplicationsResponse = ListSimulationApplicationsResponse'+  { -- | If the previous paginated request did not return all of the remaining+    -- results, the response object\'s @nextToken@ parameter value is set to a+    -- token. To retrieve the next set of results, call+    -- @ListSimulationApplications@ again and assign that token to the request+    -- object\'s @nextToken@ parameter. If there are no remaining results, the+    -- previous response object\'s NextToken parameter is set to null.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A list of simulation application summaries that meet the criteria of the+    -- request.+    simulationApplicationSummaries :: Prelude.Maybe [SimulationApplicationSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSimulationApplicationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listSimulationApplicationsResponse_nextToken' - If the previous paginated request did not return all of the remaining+-- results, the response object\'s @nextToken@ parameter value is set to a+-- token. To retrieve the next set of results, call+-- @ListSimulationApplications@ again and assign that token to the request+-- object\'s @nextToken@ parameter. If there are no remaining results, the+-- previous response object\'s NextToken parameter is set to null.+--+-- 'simulationApplicationSummaries', 'listSimulationApplicationsResponse_simulationApplicationSummaries' - A list of simulation application summaries that meet the criteria of the+-- request.+--+-- 'httpStatus', 'listSimulationApplicationsResponse_httpStatus' - The response's http status code.+newListSimulationApplicationsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListSimulationApplicationsResponse+newListSimulationApplicationsResponse pHttpStatus_ =+  ListSimulationApplicationsResponse'+    { nextToken =+        Prelude.Nothing,+      simulationApplicationSummaries =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | If the previous paginated request did not return all of the remaining+-- results, the response object\'s @nextToken@ parameter value is set to a+-- token. To retrieve the next set of results, call+-- @ListSimulationApplications@ again and assign that token to the request+-- object\'s @nextToken@ parameter. If there are no remaining results, the+-- previous response object\'s NextToken parameter is set to null.+listSimulationApplicationsResponse_nextToken :: Lens.Lens' ListSimulationApplicationsResponse (Prelude.Maybe Prelude.Text)+listSimulationApplicationsResponse_nextToken = Lens.lens (\ListSimulationApplicationsResponse' {nextToken} -> nextToken) (\s@ListSimulationApplicationsResponse' {} a -> s {nextToken = a} :: ListSimulationApplicationsResponse)++-- | A list of simulation application summaries that meet the criteria of the+-- request.+listSimulationApplicationsResponse_simulationApplicationSummaries :: Lens.Lens' ListSimulationApplicationsResponse (Prelude.Maybe [SimulationApplicationSummary])+listSimulationApplicationsResponse_simulationApplicationSummaries = Lens.lens (\ListSimulationApplicationsResponse' {simulationApplicationSummaries} -> simulationApplicationSummaries) (\s@ListSimulationApplicationsResponse' {} a -> s {simulationApplicationSummaries = a} :: ListSimulationApplicationsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listSimulationApplicationsResponse_httpStatus :: Lens.Lens' ListSimulationApplicationsResponse Prelude.Int+listSimulationApplicationsResponse_httpStatus = Lens.lens (\ListSimulationApplicationsResponse' {httpStatus} -> httpStatus) (\s@ListSimulationApplicationsResponse' {} a -> s {httpStatus = a} :: ListSimulationApplicationsResponse)++instance+  Prelude.NFData+    ListSimulationApplicationsResponse+  where+  rnf ListSimulationApplicationsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf simulationApplicationSummaries+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/ListSimulationJobBatches.hs view
@@ -0,0 +1,280 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.ListSimulationJobBatches+-- 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 simulation job batches. You can optionally provide+-- filters to retrieve specific simulation batch jobs.+--+-- This operation returns paginated results.+module Amazonka.RobOMaker.ListSimulationJobBatches+  ( -- * Creating a Request+    ListSimulationJobBatches (..),+    newListSimulationJobBatches,++    -- * Request Lenses+    listSimulationJobBatches_filters,+    listSimulationJobBatches_maxResults,+    listSimulationJobBatches_nextToken,++    -- * Destructuring the Response+    ListSimulationJobBatchesResponse (..),+    newListSimulationJobBatchesResponse,++    -- * Response Lenses+    listSimulationJobBatchesResponse_nextToken,+    listSimulationJobBatchesResponse_simulationJobBatchSummaries,+    listSimulationJobBatchesResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newListSimulationJobBatches' smart constructor.+data ListSimulationJobBatches = ListSimulationJobBatches'+  { -- | Optional filters to limit results.+    filters :: Prelude.Maybe (Prelude.NonEmpty Filter),+    -- | When this parameter is used, @ListSimulationJobBatches@ only returns+    -- @maxResults@ results in a single page along with a @nextToken@ response+    -- element. The remaining results of the initial request can be seen by+    -- sending another @ListSimulationJobBatches@ request with the returned+    -- @nextToken@ value.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | If the previous paginated request did not return all of the remaining+    -- results, the response object\'s @nextToken@ parameter value is set to a+    -- token. To retrieve the next set of results, call+    -- @ListSimulationJobBatches@ again and assign that token to the request+    -- object\'s @nextToken@ parameter. If there are no remaining results, the+    -- previous response object\'s NextToken parameter is set to null.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSimulationJobBatches' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'listSimulationJobBatches_filters' - Optional filters to limit results.+--+-- 'maxResults', 'listSimulationJobBatches_maxResults' - When this parameter is used, @ListSimulationJobBatches@ only returns+-- @maxResults@ results in a single page along with a @nextToken@ response+-- element. The remaining results of the initial request can be seen by+-- sending another @ListSimulationJobBatches@ request with the returned+-- @nextToken@ value.+--+-- 'nextToken', 'listSimulationJobBatches_nextToken' - If the previous paginated request did not return all of the remaining+-- results, the response object\'s @nextToken@ parameter value is set to a+-- token. To retrieve the next set of results, call+-- @ListSimulationJobBatches@ again and assign that token to the request+-- object\'s @nextToken@ parameter. If there are no remaining results, the+-- previous response object\'s NextToken parameter is set to null.+newListSimulationJobBatches ::+  ListSimulationJobBatches+newListSimulationJobBatches =+  ListSimulationJobBatches'+    { filters =+        Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | Optional filters to limit results.+listSimulationJobBatches_filters :: Lens.Lens' ListSimulationJobBatches (Prelude.Maybe (Prelude.NonEmpty Filter))+listSimulationJobBatches_filters = Lens.lens (\ListSimulationJobBatches' {filters} -> filters) (\s@ListSimulationJobBatches' {} a -> s {filters = a} :: ListSimulationJobBatches) Prelude.. Lens.mapping Lens.coerced++-- | When this parameter is used, @ListSimulationJobBatches@ only returns+-- @maxResults@ results in a single page along with a @nextToken@ response+-- element. The remaining results of the initial request can be seen by+-- sending another @ListSimulationJobBatches@ request with the returned+-- @nextToken@ value.+listSimulationJobBatches_maxResults :: Lens.Lens' ListSimulationJobBatches (Prelude.Maybe Prelude.Int)+listSimulationJobBatches_maxResults = Lens.lens (\ListSimulationJobBatches' {maxResults} -> maxResults) (\s@ListSimulationJobBatches' {} a -> s {maxResults = a} :: ListSimulationJobBatches)++-- | If the previous paginated request did not return all of the remaining+-- results, the response object\'s @nextToken@ parameter value is set to a+-- token. To retrieve the next set of results, call+-- @ListSimulationJobBatches@ again and assign that token to the request+-- object\'s @nextToken@ parameter. If there are no remaining results, the+-- previous response object\'s NextToken parameter is set to null.+listSimulationJobBatches_nextToken :: Lens.Lens' ListSimulationJobBatches (Prelude.Maybe Prelude.Text)+listSimulationJobBatches_nextToken = Lens.lens (\ListSimulationJobBatches' {nextToken} -> nextToken) (\s@ListSimulationJobBatches' {} a -> s {nextToken = a} :: ListSimulationJobBatches)++instance Core.AWSPager ListSimulationJobBatches where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listSimulationJobBatchesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listSimulationJobBatchesResponse_simulationJobBatchSummaries+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listSimulationJobBatches_nextToken+          Lens..~ rs+          Lens.^? listSimulationJobBatchesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListSimulationJobBatches where+  type+    AWSResponse ListSimulationJobBatches =+      ListSimulationJobBatchesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListSimulationJobBatchesResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> ( x+                            Data..?> "simulationJobBatchSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListSimulationJobBatches where+  hashWithSalt _salt ListSimulationJobBatches' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListSimulationJobBatches where+  rnf ListSimulationJobBatches' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListSimulationJobBatches where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListSimulationJobBatches where+  toJSON ListSimulationJobBatches' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("filters" Data..=) Prelude.<$> filters,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListSimulationJobBatches where+  toPath = Prelude.const "/listSimulationJobBatches"++instance Data.ToQuery ListSimulationJobBatches where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListSimulationJobBatchesResponse' smart constructor.+data ListSimulationJobBatchesResponse = ListSimulationJobBatchesResponse'+  { -- | If the previous paginated request did not return all of the remaining+    -- results, the response object\'s @nextToken@ parameter value is set to a+    -- token. To retrieve the next set of results, call+    -- @ListSimulationJobBatches@ again and assign that token to the request+    -- object\'s @nextToken@ parameter. If there are no remaining results, the+    -- previous response object\'s NextToken parameter is set to null.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A list of simulation job batch summaries.+    simulationJobBatchSummaries :: Prelude.Maybe [SimulationJobBatchSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSimulationJobBatchesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listSimulationJobBatchesResponse_nextToken' - If the previous paginated request did not return all of the remaining+-- results, the response object\'s @nextToken@ parameter value is set to a+-- token. To retrieve the next set of results, call+-- @ListSimulationJobBatches@ again and assign that token to the request+-- object\'s @nextToken@ parameter. If there are no remaining results, the+-- previous response object\'s NextToken parameter is set to null.+--+-- 'simulationJobBatchSummaries', 'listSimulationJobBatchesResponse_simulationJobBatchSummaries' - A list of simulation job batch summaries.+--+-- 'httpStatus', 'listSimulationJobBatchesResponse_httpStatus' - The response's http status code.+newListSimulationJobBatchesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListSimulationJobBatchesResponse+newListSimulationJobBatchesResponse pHttpStatus_ =+  ListSimulationJobBatchesResponse'+    { nextToken =+        Prelude.Nothing,+      simulationJobBatchSummaries =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | If the previous paginated request did not return all of the remaining+-- results, the response object\'s @nextToken@ parameter value is set to a+-- token. To retrieve the next set of results, call+-- @ListSimulationJobBatches@ again and assign that token to the request+-- object\'s @nextToken@ parameter. If there are no remaining results, the+-- previous response object\'s NextToken parameter is set to null.+listSimulationJobBatchesResponse_nextToken :: Lens.Lens' ListSimulationJobBatchesResponse (Prelude.Maybe Prelude.Text)+listSimulationJobBatchesResponse_nextToken = Lens.lens (\ListSimulationJobBatchesResponse' {nextToken} -> nextToken) (\s@ListSimulationJobBatchesResponse' {} a -> s {nextToken = a} :: ListSimulationJobBatchesResponse)++-- | A list of simulation job batch summaries.+listSimulationJobBatchesResponse_simulationJobBatchSummaries :: Lens.Lens' ListSimulationJobBatchesResponse (Prelude.Maybe [SimulationJobBatchSummary])+listSimulationJobBatchesResponse_simulationJobBatchSummaries = Lens.lens (\ListSimulationJobBatchesResponse' {simulationJobBatchSummaries} -> simulationJobBatchSummaries) (\s@ListSimulationJobBatchesResponse' {} a -> s {simulationJobBatchSummaries = a} :: ListSimulationJobBatchesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listSimulationJobBatchesResponse_httpStatus :: Lens.Lens' ListSimulationJobBatchesResponse Prelude.Int+listSimulationJobBatchesResponse_httpStatus = Lens.lens (\ListSimulationJobBatchesResponse' {httpStatus} -> httpStatus) (\s@ListSimulationJobBatchesResponse' {} a -> s {httpStatus = a} :: ListSimulationJobBatchesResponse)++instance+  Prelude.NFData+    ListSimulationJobBatchesResponse+  where+  rnf ListSimulationJobBatchesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf simulationJobBatchSummaries+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/ListSimulationJobs.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.RobOMaker.ListSimulationJobs+-- 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 simulation jobs. You can optionally provide filters to+-- retrieve specific simulation jobs.+--+-- This operation returns paginated results.+module Amazonka.RobOMaker.ListSimulationJobs+  ( -- * Creating a Request+    ListSimulationJobs (..),+    newListSimulationJobs,++    -- * Request Lenses+    listSimulationJobs_filters,+    listSimulationJobs_maxResults,+    listSimulationJobs_nextToken,++    -- * Destructuring the Response+    ListSimulationJobsResponse (..),+    newListSimulationJobsResponse,++    -- * Response Lenses+    listSimulationJobsResponse_nextToken,+    listSimulationJobsResponse_httpStatus,+    listSimulationJobsResponse_simulationJobSummaries,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newListSimulationJobs' smart constructor.+data ListSimulationJobs = ListSimulationJobs'+  { -- | Optional filters to limit results.+    --+    -- The filter names @status@ and @simulationApplicationName@ and+    -- @robotApplicationName@ are supported. When filtering, you must use the+    -- complete value of the filtered item. You can use up to three filters,+    -- but they must be for the same named item. For example, if you are+    -- looking for items with the status @Preparing@ or the status @Running@.+    filters :: Prelude.Maybe (Prelude.NonEmpty Filter),+    -- | When this parameter is used, @ListSimulationJobs@ only returns+    -- @maxResults@ results in a single page along with a @nextToken@ response+    -- element. The remaining results of the initial request can be seen by+    -- sending another @ListSimulationJobs@ request with the returned+    -- @nextToken@ value. This value can be between 1 and 1000. If this+    -- parameter is not used, then @ListSimulationJobs@ returns up to 1000+    -- results and a @nextToken@ value if applicable.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | If the previous paginated request did not return all of the remaining+    -- results, the response object\'s @nextToken@ parameter value is set to a+    -- token. To retrieve the next set of results, call @ListSimulationJobs@+    -- again and assign that token to the request object\'s @nextToken@+    -- parameter. If there are no remaining results, the previous response+    -- object\'s NextToken parameter is set to null.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSimulationJobs' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'listSimulationJobs_filters' - Optional filters to limit results.+--+-- The filter names @status@ and @simulationApplicationName@ and+-- @robotApplicationName@ are supported. When filtering, you must use the+-- complete value of the filtered item. You can use up to three filters,+-- but they must be for the same named item. For example, if you are+-- looking for items with the status @Preparing@ or the status @Running@.+--+-- 'maxResults', 'listSimulationJobs_maxResults' - When this parameter is used, @ListSimulationJobs@ only returns+-- @maxResults@ results in a single page along with a @nextToken@ response+-- element. The remaining results of the initial request can be seen by+-- sending another @ListSimulationJobs@ request with the returned+-- @nextToken@ value. This value can be between 1 and 1000. If this+-- parameter is not used, then @ListSimulationJobs@ returns up to 1000+-- results and a @nextToken@ value if applicable.+--+-- 'nextToken', 'listSimulationJobs_nextToken' - If the previous paginated request did not return all of the remaining+-- results, the response object\'s @nextToken@ parameter value is set to a+-- token. To retrieve the next set of results, call @ListSimulationJobs@+-- again and assign that token to the request object\'s @nextToken@+-- parameter. If there are no remaining results, the previous response+-- object\'s NextToken parameter is set to null.+newListSimulationJobs ::+  ListSimulationJobs+newListSimulationJobs =+  ListSimulationJobs'+    { filters = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | Optional filters to limit results.+--+-- The filter names @status@ and @simulationApplicationName@ and+-- @robotApplicationName@ are supported. When filtering, you must use the+-- complete value of the filtered item. You can use up to three filters,+-- but they must be for the same named item. For example, if you are+-- looking for items with the status @Preparing@ or the status @Running@.+listSimulationJobs_filters :: Lens.Lens' ListSimulationJobs (Prelude.Maybe (Prelude.NonEmpty Filter))+listSimulationJobs_filters = Lens.lens (\ListSimulationJobs' {filters} -> filters) (\s@ListSimulationJobs' {} a -> s {filters = a} :: ListSimulationJobs) Prelude.. Lens.mapping Lens.coerced++-- | When this parameter is used, @ListSimulationJobs@ only returns+-- @maxResults@ results in a single page along with a @nextToken@ response+-- element. The remaining results of the initial request can be seen by+-- sending another @ListSimulationJobs@ request with the returned+-- @nextToken@ value. This value can be between 1 and 1000. If this+-- parameter is not used, then @ListSimulationJobs@ returns up to 1000+-- results and a @nextToken@ value if applicable.+listSimulationJobs_maxResults :: Lens.Lens' ListSimulationJobs (Prelude.Maybe Prelude.Int)+listSimulationJobs_maxResults = Lens.lens (\ListSimulationJobs' {maxResults} -> maxResults) (\s@ListSimulationJobs' {} a -> s {maxResults = a} :: ListSimulationJobs)++-- | If the previous paginated request did not return all of the remaining+-- results, the response object\'s @nextToken@ parameter value is set to a+-- token. To retrieve the next set of results, call @ListSimulationJobs@+-- again and assign that token to the request object\'s @nextToken@+-- parameter. If there are no remaining results, the previous response+-- object\'s NextToken parameter is set to null.+listSimulationJobs_nextToken :: Lens.Lens' ListSimulationJobs (Prelude.Maybe Prelude.Text)+listSimulationJobs_nextToken = Lens.lens (\ListSimulationJobs' {nextToken} -> nextToken) (\s@ListSimulationJobs' {} a -> s {nextToken = a} :: ListSimulationJobs)++instance Core.AWSPager ListSimulationJobs where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listSimulationJobsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^. listSimulationJobsResponse_simulationJobSummaries+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listSimulationJobs_nextToken+          Lens..~ rs+          Lens.^? listSimulationJobsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListSimulationJobs where+  type+    AWSResponse ListSimulationJobs =+      ListSimulationJobsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListSimulationJobsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> ( x+                            Data..?> "simulationJobSummaries"+                            Core..!@ Prelude.mempty+                        )+      )++instance Prelude.Hashable ListSimulationJobs where+  hashWithSalt _salt ListSimulationJobs' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListSimulationJobs where+  rnf ListSimulationJobs' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListSimulationJobs where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListSimulationJobs where+  toJSON ListSimulationJobs' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("filters" Data..=) Prelude.<$> filters,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListSimulationJobs where+  toPath = Prelude.const "/listSimulationJobs"++instance Data.ToQuery ListSimulationJobs where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListSimulationJobsResponse' smart constructor.+data ListSimulationJobsResponse = ListSimulationJobsResponse'+  { -- | If the previous paginated request did not return all of the remaining+    -- results, the response object\'s @nextToken@ parameter value is set to a+    -- token. To retrieve the next set of results, call @ListSimulationJobs@+    -- again and assign that token to the request object\'s @nextToken@+    -- parameter. If there are no remaining results, the previous response+    -- object\'s NextToken parameter is set to null.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | A list of simulation job summaries that meet the criteria of the+    -- request.+    simulationJobSummaries :: [SimulationJobSummary]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSimulationJobsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listSimulationJobsResponse_nextToken' - If the previous paginated request did not return all of the remaining+-- results, the response object\'s @nextToken@ parameter value is set to a+-- token. To retrieve the next set of results, call @ListSimulationJobs@+-- again and assign that token to the request object\'s @nextToken@+-- parameter. If there are no remaining results, the previous response+-- object\'s NextToken parameter is set to null.+--+-- 'httpStatus', 'listSimulationJobsResponse_httpStatus' - The response's http status code.+--+-- 'simulationJobSummaries', 'listSimulationJobsResponse_simulationJobSummaries' - A list of simulation job summaries that meet the criteria of the+-- request.+newListSimulationJobsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListSimulationJobsResponse+newListSimulationJobsResponse pHttpStatus_ =+  ListSimulationJobsResponse'+    { nextToken =+        Prelude.Nothing,+      httpStatus = pHttpStatus_,+      simulationJobSummaries = Prelude.mempty+    }++-- | If the previous paginated request did not return all of the remaining+-- results, the response object\'s @nextToken@ parameter value is set to a+-- token. To retrieve the next set of results, call @ListSimulationJobs@+-- again and assign that token to the request object\'s @nextToken@+-- parameter. If there are no remaining results, the previous response+-- object\'s NextToken parameter is set to null.+listSimulationJobsResponse_nextToken :: Lens.Lens' ListSimulationJobsResponse (Prelude.Maybe Prelude.Text)+listSimulationJobsResponse_nextToken = Lens.lens (\ListSimulationJobsResponse' {nextToken} -> nextToken) (\s@ListSimulationJobsResponse' {} a -> s {nextToken = a} :: ListSimulationJobsResponse)++-- | The response's http status code.+listSimulationJobsResponse_httpStatus :: Lens.Lens' ListSimulationJobsResponse Prelude.Int+listSimulationJobsResponse_httpStatus = Lens.lens (\ListSimulationJobsResponse' {httpStatus} -> httpStatus) (\s@ListSimulationJobsResponse' {} a -> s {httpStatus = a} :: ListSimulationJobsResponse)++-- | A list of simulation job summaries that meet the criteria of the+-- request.+listSimulationJobsResponse_simulationJobSummaries :: Lens.Lens' ListSimulationJobsResponse [SimulationJobSummary]+listSimulationJobsResponse_simulationJobSummaries = Lens.lens (\ListSimulationJobsResponse' {simulationJobSummaries} -> simulationJobSummaries) (\s@ListSimulationJobsResponse' {} a -> s {simulationJobSummaries = a} :: ListSimulationJobsResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListSimulationJobsResponse where+  rnf ListSimulationJobsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf simulationJobSummaries
+ gen/Amazonka/RobOMaker/ListTagsForResource.hs view
@@ -0,0 +1,159 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.ListTagsForResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all tags on a AWS RoboMaker resource.+module Amazonka.RobOMaker.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 qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newListTagsForResource' smart constructor.+data ListTagsForResource = ListTagsForResource'+  { -- | The AWS RoboMaker Amazon Resource Name (ARN) with tags to be listed.+    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 AWS RoboMaker Amazon Resource Name (ARN) with tags to be listed.+newListTagsForResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  ListTagsForResource+newListTagsForResource pResourceArn_ =+  ListTagsForResource' {resourceArn = pResourceArn_}++-- | The AWS RoboMaker Amazon Resource Name (ARN) with tags to be listed.+listTagsForResource_resourceArn :: Lens.Lens' ListTagsForResource Prelude.Text+listTagsForResource_resourceArn = Lens.lens (\ListTagsForResource' {resourceArn} -> resourceArn) (\s@ListTagsForResource' {} a -> s {resourceArn = a} :: ListTagsForResource)++instance Core.AWSRequest ListTagsForResource where+  type+    AWSResponse ListTagsForResource =+      ListTagsForResourceResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListTagsForResourceResponse'+            Prelude.<$> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListTagsForResource where+  hashWithSalt _salt ListTagsForResource' {..} =+    _salt `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData ListTagsForResource where+  rnf ListTagsForResource' {..} =+    Prelude.rnf resourceArn++instance Data.ToHeaders ListTagsForResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListTagsForResource where+  toPath ListTagsForResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery ListTagsForResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListTagsForResourceResponse' smart constructor.+data ListTagsForResourceResponse = ListTagsForResourceResponse'+  { -- | The list of all tags added to the specified resource.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tags', 'listTagsForResourceResponse_tags' - The list of all tags added to the specified resource.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+  ListTagsForResourceResponse'+    { tags =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The list of all tags added to the specified resource.+listTagsForResourceResponse_tags :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+listTagsForResourceResponse_tags = Lens.lens (\ListTagsForResourceResponse' {tags} -> tags) (\s@ListTagsForResourceResponse' {} a -> s {tags = a} :: ListTagsForResourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listTagsForResourceResponse_httpStatus :: Lens.Lens' ListTagsForResourceResponse Prelude.Int+listTagsForResourceResponse_httpStatus = Lens.lens (\ListTagsForResourceResponse' {httpStatus} -> httpStatus) (\s@ListTagsForResourceResponse' {} a -> s {httpStatus = a} :: ListTagsForResourceResponse)++instance Prelude.NFData ListTagsForResourceResponse where+  rnf ListTagsForResourceResponse' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/ListWorldExportJobs.hs view
@@ -0,0 +1,282 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.ListWorldExportJobs+-- 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 world export jobs.+--+-- This operation returns paginated results.+module Amazonka.RobOMaker.ListWorldExportJobs+  ( -- * Creating a Request+    ListWorldExportJobs (..),+    newListWorldExportJobs,++    -- * Request Lenses+    listWorldExportJobs_filters,+    listWorldExportJobs_maxResults,+    listWorldExportJobs_nextToken,++    -- * Destructuring the Response+    ListWorldExportJobsResponse (..),+    newListWorldExportJobsResponse,++    -- * Response Lenses+    listWorldExportJobsResponse_nextToken,+    listWorldExportJobsResponse_httpStatus,+    listWorldExportJobsResponse_worldExportJobSummaries,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newListWorldExportJobs' smart constructor.+data ListWorldExportJobs = ListWorldExportJobs'+  { -- | Optional filters to limit results. You can use @generationJobId@ and+    -- @templateId@.+    filters :: Prelude.Maybe (Prelude.NonEmpty Filter),+    -- | When this parameter is used, @ListWorldExportJobs@ only returns+    -- @maxResults@ results in a single page along with a @nextToken@ response+    -- element. The remaining results of the initial request can be seen by+    -- sending another @ListWorldExportJobs@ request with the returned+    -- @nextToken@ value. This value can be between 1 and 100. If this+    -- parameter is not used, then @ListWorldExportJobs@ returns up to 100+    -- results and a @nextToken@ value if applicable.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | If the previous paginated request did not return all of the remaining+    -- results, the response object\'s @nextToken@ parameter value is set to a+    -- token. To retrieve the next set of results, call @ListWorldExportJobs@+    -- again and assign that token to the request object\'s @nextToken@+    -- parameter. If there are no remaining results, the previous response+    -- object\'s NextToken parameter is set to null.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListWorldExportJobs' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'listWorldExportJobs_filters' - Optional filters to limit results. You can use @generationJobId@ and+-- @templateId@.+--+-- 'maxResults', 'listWorldExportJobs_maxResults' - When this parameter is used, @ListWorldExportJobs@ only returns+-- @maxResults@ results in a single page along with a @nextToken@ response+-- element. The remaining results of the initial request can be seen by+-- sending another @ListWorldExportJobs@ request with the returned+-- @nextToken@ value. This value can be between 1 and 100. If this+-- parameter is not used, then @ListWorldExportJobs@ returns up to 100+-- results and a @nextToken@ value if applicable.+--+-- 'nextToken', 'listWorldExportJobs_nextToken' - If the previous paginated request did not return all of the remaining+-- results, the response object\'s @nextToken@ parameter value is set to a+-- token. To retrieve the next set of results, call @ListWorldExportJobs@+-- again and assign that token to the request object\'s @nextToken@+-- parameter. If there are no remaining results, the previous response+-- object\'s NextToken parameter is set to null.+newListWorldExportJobs ::+  ListWorldExportJobs+newListWorldExportJobs =+  ListWorldExportJobs'+    { filters = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | Optional filters to limit results. You can use @generationJobId@ and+-- @templateId@.+listWorldExportJobs_filters :: Lens.Lens' ListWorldExportJobs (Prelude.Maybe (Prelude.NonEmpty Filter))+listWorldExportJobs_filters = Lens.lens (\ListWorldExportJobs' {filters} -> filters) (\s@ListWorldExportJobs' {} a -> s {filters = a} :: ListWorldExportJobs) Prelude.. Lens.mapping Lens.coerced++-- | When this parameter is used, @ListWorldExportJobs@ only returns+-- @maxResults@ results in a single page along with a @nextToken@ response+-- element. The remaining results of the initial request can be seen by+-- sending another @ListWorldExportJobs@ request with the returned+-- @nextToken@ value. This value can be between 1 and 100. If this+-- parameter is not used, then @ListWorldExportJobs@ returns up to 100+-- results and a @nextToken@ value if applicable.+listWorldExportJobs_maxResults :: Lens.Lens' ListWorldExportJobs (Prelude.Maybe Prelude.Int)+listWorldExportJobs_maxResults = Lens.lens (\ListWorldExportJobs' {maxResults} -> maxResults) (\s@ListWorldExportJobs' {} a -> s {maxResults = a} :: ListWorldExportJobs)++-- | If the previous paginated request did not return all of the remaining+-- results, the response object\'s @nextToken@ parameter value is set to a+-- token. To retrieve the next set of results, call @ListWorldExportJobs@+-- again and assign that token to the request object\'s @nextToken@+-- parameter. If there are no remaining results, the previous response+-- object\'s NextToken parameter is set to null.+listWorldExportJobs_nextToken :: Lens.Lens' ListWorldExportJobs (Prelude.Maybe Prelude.Text)+listWorldExportJobs_nextToken = Lens.lens (\ListWorldExportJobs' {nextToken} -> nextToken) (\s@ListWorldExportJobs' {} a -> s {nextToken = a} :: ListWorldExportJobs)++instance Core.AWSPager ListWorldExportJobs where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listWorldExportJobsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^. listWorldExportJobsResponse_worldExportJobSummaries+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listWorldExportJobs_nextToken+          Lens..~ rs+          Lens.^? listWorldExportJobsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListWorldExportJobs where+  type+    AWSResponse ListWorldExportJobs =+      ListWorldExportJobsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListWorldExportJobsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> ( x+                            Data..?> "worldExportJobSummaries"+                            Core..!@ Prelude.mempty+                        )+      )++instance Prelude.Hashable ListWorldExportJobs where+  hashWithSalt _salt ListWorldExportJobs' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListWorldExportJobs where+  rnf ListWorldExportJobs' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListWorldExportJobs where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListWorldExportJobs where+  toJSON ListWorldExportJobs' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("filters" Data..=) Prelude.<$> filters,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListWorldExportJobs where+  toPath = Prelude.const "/listWorldExportJobs"++instance Data.ToQuery ListWorldExportJobs where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListWorldExportJobsResponse' smart constructor.+data ListWorldExportJobsResponse = ListWorldExportJobsResponse'+  { -- | If the previous paginated request did not return all of the remaining+    -- results, the response object\'s @nextToken@ parameter value is set to a+    -- token. To retrieve the next set of results, call+    -- @ListWorldExportJobsRequest@ again and assign that token to the request+    -- object\'s @nextToken@ parameter. If there are no remaining results, the+    -- previous response object\'s NextToken parameter is set to null.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Summary information for world export jobs.+    worldExportJobSummaries :: [WorldExportJobSummary]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListWorldExportJobsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listWorldExportJobsResponse_nextToken' - If the previous paginated request did not return all of the remaining+-- results, the response object\'s @nextToken@ parameter value is set to a+-- token. To retrieve the next set of results, call+-- @ListWorldExportJobsRequest@ again and assign that token to the request+-- object\'s @nextToken@ parameter. If there are no remaining results, the+-- previous response object\'s NextToken parameter is set to null.+--+-- 'httpStatus', 'listWorldExportJobsResponse_httpStatus' - The response's http status code.+--+-- 'worldExportJobSummaries', 'listWorldExportJobsResponse_worldExportJobSummaries' - Summary information for world export jobs.+newListWorldExportJobsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListWorldExportJobsResponse+newListWorldExportJobsResponse pHttpStatus_ =+  ListWorldExportJobsResponse'+    { nextToken =+        Prelude.Nothing,+      httpStatus = pHttpStatus_,+      worldExportJobSummaries = Prelude.mempty+    }++-- | If the previous paginated request did not return all of the remaining+-- results, the response object\'s @nextToken@ parameter value is set to a+-- token. To retrieve the next set of results, call+-- @ListWorldExportJobsRequest@ again and assign that token to the request+-- object\'s @nextToken@ parameter. If there are no remaining results, the+-- previous response object\'s NextToken parameter is set to null.+listWorldExportJobsResponse_nextToken :: Lens.Lens' ListWorldExportJobsResponse (Prelude.Maybe Prelude.Text)+listWorldExportJobsResponse_nextToken = Lens.lens (\ListWorldExportJobsResponse' {nextToken} -> nextToken) (\s@ListWorldExportJobsResponse' {} a -> s {nextToken = a} :: ListWorldExportJobsResponse)++-- | The response's http status code.+listWorldExportJobsResponse_httpStatus :: Lens.Lens' ListWorldExportJobsResponse Prelude.Int+listWorldExportJobsResponse_httpStatus = Lens.lens (\ListWorldExportJobsResponse' {httpStatus} -> httpStatus) (\s@ListWorldExportJobsResponse' {} a -> s {httpStatus = a} :: ListWorldExportJobsResponse)++-- | Summary information for world export jobs.+listWorldExportJobsResponse_worldExportJobSummaries :: Lens.Lens' ListWorldExportJobsResponse [WorldExportJobSummary]+listWorldExportJobsResponse_worldExportJobSummaries = Lens.lens (\ListWorldExportJobsResponse' {worldExportJobSummaries} -> worldExportJobSummaries) (\s@ListWorldExportJobsResponse' {} a -> s {worldExportJobSummaries = a} :: ListWorldExportJobsResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListWorldExportJobsResponse where+  rnf ListWorldExportJobsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf worldExportJobSummaries
+ gen/Amazonka/RobOMaker/ListWorldGenerationJobs.hs view
@@ -0,0 +1,292 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.ListWorldGenerationJobs+-- 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 world generator jobs.+--+-- This operation returns paginated results.+module Amazonka.RobOMaker.ListWorldGenerationJobs+  ( -- * Creating a Request+    ListWorldGenerationJobs (..),+    newListWorldGenerationJobs,++    -- * Request Lenses+    listWorldGenerationJobs_filters,+    listWorldGenerationJobs_maxResults,+    listWorldGenerationJobs_nextToken,++    -- * Destructuring the Response+    ListWorldGenerationJobsResponse (..),+    newListWorldGenerationJobsResponse,++    -- * Response Lenses+    listWorldGenerationJobsResponse_nextToken,+    listWorldGenerationJobsResponse_httpStatus,+    listWorldGenerationJobsResponse_worldGenerationJobSummaries,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newListWorldGenerationJobs' smart constructor.+data ListWorldGenerationJobs = ListWorldGenerationJobs'+  { -- | Optional filters to limit results. You can use @status@ and+    -- @templateId@.+    filters :: Prelude.Maybe (Prelude.NonEmpty Filter),+    -- | When this parameter is used, @ListWorldGeneratorJobs@ only returns+    -- @maxResults@ results in a single page along with a @nextToken@ response+    -- element. The remaining results of the initial request can be seen by+    -- sending another @ListWorldGeneratorJobs@ request with the returned+    -- @nextToken@ value. This value can be between 1 and 100. If this+    -- parameter is not used, then @ListWorldGeneratorJobs@ returns up to 100+    -- results and a @nextToken@ value if applicable.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | If the previous paginated request did not return all of the remaining+    -- results, the response object\'s @nextToken@ parameter value is set to a+    -- token. To retrieve the next set of results, call+    -- @ListWorldGenerationJobsRequest@ again and assign that token to the+    -- request object\'s @nextToken@ parameter. If there are no remaining+    -- results, the previous response object\'s NextToken parameter is set to+    -- null.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListWorldGenerationJobs' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'listWorldGenerationJobs_filters' - Optional filters to limit results. You can use @status@ and+-- @templateId@.+--+-- 'maxResults', 'listWorldGenerationJobs_maxResults' - When this parameter is used, @ListWorldGeneratorJobs@ only returns+-- @maxResults@ results in a single page along with a @nextToken@ response+-- element. The remaining results of the initial request can be seen by+-- sending another @ListWorldGeneratorJobs@ request with the returned+-- @nextToken@ value. This value can be between 1 and 100. If this+-- parameter is not used, then @ListWorldGeneratorJobs@ returns up to 100+-- results and a @nextToken@ value if applicable.+--+-- 'nextToken', 'listWorldGenerationJobs_nextToken' - If the previous paginated request did not return all of the remaining+-- results, the response object\'s @nextToken@ parameter value is set to a+-- token. To retrieve the next set of results, call+-- @ListWorldGenerationJobsRequest@ again and assign that token to the+-- request object\'s @nextToken@ parameter. If there are no remaining+-- results, the previous response object\'s NextToken parameter is set to+-- null.+newListWorldGenerationJobs ::+  ListWorldGenerationJobs+newListWorldGenerationJobs =+  ListWorldGenerationJobs'+    { filters = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | Optional filters to limit results. You can use @status@ and+-- @templateId@.+listWorldGenerationJobs_filters :: Lens.Lens' ListWorldGenerationJobs (Prelude.Maybe (Prelude.NonEmpty Filter))+listWorldGenerationJobs_filters = Lens.lens (\ListWorldGenerationJobs' {filters} -> filters) (\s@ListWorldGenerationJobs' {} a -> s {filters = a} :: ListWorldGenerationJobs) Prelude.. Lens.mapping Lens.coerced++-- | When this parameter is used, @ListWorldGeneratorJobs@ only returns+-- @maxResults@ results in a single page along with a @nextToken@ response+-- element. The remaining results of the initial request can be seen by+-- sending another @ListWorldGeneratorJobs@ request with the returned+-- @nextToken@ value. This value can be between 1 and 100. If this+-- parameter is not used, then @ListWorldGeneratorJobs@ returns up to 100+-- results and a @nextToken@ value if applicable.+listWorldGenerationJobs_maxResults :: Lens.Lens' ListWorldGenerationJobs (Prelude.Maybe Prelude.Int)+listWorldGenerationJobs_maxResults = Lens.lens (\ListWorldGenerationJobs' {maxResults} -> maxResults) (\s@ListWorldGenerationJobs' {} a -> s {maxResults = a} :: ListWorldGenerationJobs)++-- | If the previous paginated request did not return all of the remaining+-- results, the response object\'s @nextToken@ parameter value is set to a+-- token. To retrieve the next set of results, call+-- @ListWorldGenerationJobsRequest@ again and assign that token to the+-- request object\'s @nextToken@ parameter. If there are no remaining+-- results, the previous response object\'s NextToken parameter is set to+-- null.+listWorldGenerationJobs_nextToken :: Lens.Lens' ListWorldGenerationJobs (Prelude.Maybe Prelude.Text)+listWorldGenerationJobs_nextToken = Lens.lens (\ListWorldGenerationJobs' {nextToken} -> nextToken) (\s@ListWorldGenerationJobs' {} a -> s {nextToken = a} :: ListWorldGenerationJobs)++instance Core.AWSPager ListWorldGenerationJobs where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listWorldGenerationJobsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^. listWorldGenerationJobsResponse_worldGenerationJobSummaries+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listWorldGenerationJobs_nextToken+          Lens..~ rs+          Lens.^? listWorldGenerationJobsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListWorldGenerationJobs where+  type+    AWSResponse ListWorldGenerationJobs =+      ListWorldGenerationJobsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListWorldGenerationJobsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> ( x+                            Data..?> "worldGenerationJobSummaries"+                            Core..!@ Prelude.mempty+                        )+      )++instance Prelude.Hashable ListWorldGenerationJobs where+  hashWithSalt _salt ListWorldGenerationJobs' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListWorldGenerationJobs where+  rnf ListWorldGenerationJobs' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListWorldGenerationJobs where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListWorldGenerationJobs where+  toJSON ListWorldGenerationJobs' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("filters" Data..=) Prelude.<$> filters,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListWorldGenerationJobs where+  toPath = Prelude.const "/listWorldGenerationJobs"++instance Data.ToQuery ListWorldGenerationJobs where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListWorldGenerationJobsResponse' smart constructor.+data ListWorldGenerationJobsResponse = ListWorldGenerationJobsResponse'+  { -- | If the previous paginated request did not return all of the remaining+    -- results, the response object\'s @nextToken@ parameter value is set to a+    -- token. To retrieve the next set of results, call+    -- @ListWorldGeneratorJobsRequest@ again and assign that token to the+    -- request object\'s @nextToken@ parameter. If there are no remaining+    -- results, the previous response object\'s NextToken parameter is set to+    -- null.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Summary information for world generator jobs.+    worldGenerationJobSummaries :: [WorldGenerationJobSummary]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListWorldGenerationJobsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listWorldGenerationJobsResponse_nextToken' - If the previous paginated request did not return all of the remaining+-- results, the response object\'s @nextToken@ parameter value is set to a+-- token. To retrieve the next set of results, call+-- @ListWorldGeneratorJobsRequest@ again and assign that token to the+-- request object\'s @nextToken@ parameter. If there are no remaining+-- results, the previous response object\'s NextToken parameter is set to+-- null.+--+-- 'httpStatus', 'listWorldGenerationJobsResponse_httpStatus' - The response's http status code.+--+-- 'worldGenerationJobSummaries', 'listWorldGenerationJobsResponse_worldGenerationJobSummaries' - Summary information for world generator jobs.+newListWorldGenerationJobsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListWorldGenerationJobsResponse+newListWorldGenerationJobsResponse pHttpStatus_ =+  ListWorldGenerationJobsResponse'+    { nextToken =+        Prelude.Nothing,+      httpStatus = pHttpStatus_,+      worldGenerationJobSummaries =+        Prelude.mempty+    }++-- | If the previous paginated request did not return all of the remaining+-- results, the response object\'s @nextToken@ parameter value is set to a+-- token. To retrieve the next set of results, call+-- @ListWorldGeneratorJobsRequest@ again and assign that token to the+-- request object\'s @nextToken@ parameter. If there are no remaining+-- results, the previous response object\'s NextToken parameter is set to+-- null.+listWorldGenerationJobsResponse_nextToken :: Lens.Lens' ListWorldGenerationJobsResponse (Prelude.Maybe Prelude.Text)+listWorldGenerationJobsResponse_nextToken = Lens.lens (\ListWorldGenerationJobsResponse' {nextToken} -> nextToken) (\s@ListWorldGenerationJobsResponse' {} a -> s {nextToken = a} :: ListWorldGenerationJobsResponse)++-- | The response's http status code.+listWorldGenerationJobsResponse_httpStatus :: Lens.Lens' ListWorldGenerationJobsResponse Prelude.Int+listWorldGenerationJobsResponse_httpStatus = Lens.lens (\ListWorldGenerationJobsResponse' {httpStatus} -> httpStatus) (\s@ListWorldGenerationJobsResponse' {} a -> s {httpStatus = a} :: ListWorldGenerationJobsResponse)++-- | Summary information for world generator jobs.+listWorldGenerationJobsResponse_worldGenerationJobSummaries :: Lens.Lens' ListWorldGenerationJobsResponse [WorldGenerationJobSummary]+listWorldGenerationJobsResponse_worldGenerationJobSummaries = Lens.lens (\ListWorldGenerationJobsResponse' {worldGenerationJobSummaries} -> worldGenerationJobSummaries) (\s@ListWorldGenerationJobsResponse' {} a -> s {worldGenerationJobSummaries = a} :: ListWorldGenerationJobsResponse) Prelude.. Lens.coerced++instance+  Prelude.NFData+    ListWorldGenerationJobsResponse+  where+  rnf ListWorldGenerationJobsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf worldGenerationJobSummaries
+ gen/Amazonka/RobOMaker/ListWorldTemplates.hs view
@@ -0,0 +1,267 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.ListWorldTemplates+-- 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 world templates.+--+-- This operation returns paginated results.+module Amazonka.RobOMaker.ListWorldTemplates+  ( -- * Creating a Request+    ListWorldTemplates (..),+    newListWorldTemplates,++    -- * Request Lenses+    listWorldTemplates_maxResults,+    listWorldTemplates_nextToken,++    -- * Destructuring the Response+    ListWorldTemplatesResponse (..),+    newListWorldTemplatesResponse,++    -- * Response Lenses+    listWorldTemplatesResponse_nextToken,+    listWorldTemplatesResponse_templateSummaries,+    listWorldTemplatesResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newListWorldTemplates' smart constructor.+data ListWorldTemplates = ListWorldTemplates'+  { -- | When this parameter is used, @ListWorldTemplates@ only returns+    -- @maxResults@ results in a single page along with a @nextToken@ response+    -- element. The remaining results of the initial request can be seen by+    -- sending another @ListWorldTemplates@ request with the returned+    -- @nextToken@ value. This value can be between 1 and 100. If this+    -- parameter is not used, then @ListWorldTemplates@ returns up to 100+    -- results and a @nextToken@ value if applicable.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | If the previous paginated request did not return all of the remaining+    -- results, the response object\'s @nextToken@ parameter value is set to a+    -- token. To retrieve the next set of results, call @ListWorldTemplates@+    -- again and assign that token to the request object\'s @nextToken@+    -- parameter. If there are no remaining results, the previous response+    -- object\'s NextToken parameter is set to null.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListWorldTemplates' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listWorldTemplates_maxResults' - When this parameter is used, @ListWorldTemplates@ only returns+-- @maxResults@ results in a single page along with a @nextToken@ response+-- element. The remaining results of the initial request can be seen by+-- sending another @ListWorldTemplates@ request with the returned+-- @nextToken@ value. This value can be between 1 and 100. If this+-- parameter is not used, then @ListWorldTemplates@ returns up to 100+-- results and a @nextToken@ value if applicable.+--+-- 'nextToken', 'listWorldTemplates_nextToken' - If the previous paginated request did not return all of the remaining+-- results, the response object\'s @nextToken@ parameter value is set to a+-- token. To retrieve the next set of results, call @ListWorldTemplates@+-- again and assign that token to the request object\'s @nextToken@+-- parameter. If there are no remaining results, the previous response+-- object\'s NextToken parameter is set to null.+newListWorldTemplates ::+  ListWorldTemplates+newListWorldTemplates =+  ListWorldTemplates'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | When this parameter is used, @ListWorldTemplates@ only returns+-- @maxResults@ results in a single page along with a @nextToken@ response+-- element. The remaining results of the initial request can be seen by+-- sending another @ListWorldTemplates@ request with the returned+-- @nextToken@ value. This value can be between 1 and 100. If this+-- parameter is not used, then @ListWorldTemplates@ returns up to 100+-- results and a @nextToken@ value if applicable.+listWorldTemplates_maxResults :: Lens.Lens' ListWorldTemplates (Prelude.Maybe Prelude.Int)+listWorldTemplates_maxResults = Lens.lens (\ListWorldTemplates' {maxResults} -> maxResults) (\s@ListWorldTemplates' {} a -> s {maxResults = a} :: ListWorldTemplates)++-- | If the previous paginated request did not return all of the remaining+-- results, the response object\'s @nextToken@ parameter value is set to a+-- token. To retrieve the next set of results, call @ListWorldTemplates@+-- again and assign that token to the request object\'s @nextToken@+-- parameter. If there are no remaining results, the previous response+-- object\'s NextToken parameter is set to null.+listWorldTemplates_nextToken :: Lens.Lens' ListWorldTemplates (Prelude.Maybe Prelude.Text)+listWorldTemplates_nextToken = Lens.lens (\ListWorldTemplates' {nextToken} -> nextToken) (\s@ListWorldTemplates' {} a -> s {nextToken = a} :: ListWorldTemplates)++instance Core.AWSPager ListWorldTemplates where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listWorldTemplatesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listWorldTemplatesResponse_templateSummaries+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listWorldTemplates_nextToken+          Lens..~ rs+          Lens.^? listWorldTemplatesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListWorldTemplates where+  type+    AWSResponse ListWorldTemplates =+      ListWorldTemplatesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListWorldTemplatesResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> ( x+                            Data..?> "templateSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListWorldTemplates where+  hashWithSalt _salt ListWorldTemplates' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListWorldTemplates where+  rnf ListWorldTemplates' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListWorldTemplates where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListWorldTemplates where+  toJSON ListWorldTemplates' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListWorldTemplates where+  toPath = Prelude.const "/listWorldTemplates"++instance Data.ToQuery ListWorldTemplates where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListWorldTemplatesResponse' smart constructor.+data ListWorldTemplatesResponse = ListWorldTemplatesResponse'+  { -- | If the previous paginated request did not return all of the remaining+    -- results, the response object\'s @nextToken@ parameter value is set to a+    -- token. To retrieve the next set of results, call @ListWorldTemplates@+    -- again and assign that token to the request object\'s @nextToken@+    -- parameter. If there are no remaining results, the previous response+    -- object\'s NextToken parameter is set to null.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Summary information for templates.+    templateSummaries :: Prelude.Maybe [TemplateSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListWorldTemplatesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listWorldTemplatesResponse_nextToken' - If the previous paginated request did not return all of the remaining+-- results, the response object\'s @nextToken@ parameter value is set to a+-- token. To retrieve the next set of results, call @ListWorldTemplates@+-- again and assign that token to the request object\'s @nextToken@+-- parameter. If there are no remaining results, the previous response+-- object\'s NextToken parameter is set to null.+--+-- 'templateSummaries', 'listWorldTemplatesResponse_templateSummaries' - Summary information for templates.+--+-- 'httpStatus', 'listWorldTemplatesResponse_httpStatus' - The response's http status code.+newListWorldTemplatesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListWorldTemplatesResponse+newListWorldTemplatesResponse pHttpStatus_ =+  ListWorldTemplatesResponse'+    { nextToken =+        Prelude.Nothing,+      templateSummaries = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | If the previous paginated request did not return all of the remaining+-- results, the response object\'s @nextToken@ parameter value is set to a+-- token. To retrieve the next set of results, call @ListWorldTemplates@+-- again and assign that token to the request object\'s @nextToken@+-- parameter. If there are no remaining results, the previous response+-- object\'s NextToken parameter is set to null.+listWorldTemplatesResponse_nextToken :: Lens.Lens' ListWorldTemplatesResponse (Prelude.Maybe Prelude.Text)+listWorldTemplatesResponse_nextToken = Lens.lens (\ListWorldTemplatesResponse' {nextToken} -> nextToken) (\s@ListWorldTemplatesResponse' {} a -> s {nextToken = a} :: ListWorldTemplatesResponse)++-- | Summary information for templates.+listWorldTemplatesResponse_templateSummaries :: Lens.Lens' ListWorldTemplatesResponse (Prelude.Maybe [TemplateSummary])+listWorldTemplatesResponse_templateSummaries = Lens.lens (\ListWorldTemplatesResponse' {templateSummaries} -> templateSummaries) (\s@ListWorldTemplatesResponse' {} a -> s {templateSummaries = a} :: ListWorldTemplatesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listWorldTemplatesResponse_httpStatus :: Lens.Lens' ListWorldTemplatesResponse Prelude.Int+listWorldTemplatesResponse_httpStatus = Lens.lens (\ListWorldTemplatesResponse' {httpStatus} -> httpStatus) (\s@ListWorldTemplatesResponse' {} a -> s {httpStatus = a} :: ListWorldTemplatesResponse)++instance Prelude.NFData ListWorldTemplatesResponse where+  rnf ListWorldTemplatesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf templateSummaries+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/ListWorlds.hs view
@@ -0,0 +1,271 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.ListWorlds+-- 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 worlds.+--+-- This operation returns paginated results.+module Amazonka.RobOMaker.ListWorlds+  ( -- * Creating a Request+    ListWorlds (..),+    newListWorlds,++    -- * Request Lenses+    listWorlds_filters,+    listWorlds_maxResults,+    listWorlds_nextToken,++    -- * Destructuring the Response+    ListWorldsResponse (..),+    newListWorldsResponse,++    -- * Response Lenses+    listWorldsResponse_nextToken,+    listWorldsResponse_worldSummaries,+    listWorldsResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newListWorlds' smart constructor.+data ListWorlds = ListWorlds'+  { -- | Optional filters to limit results. You can use @status@.+    filters :: Prelude.Maybe (Prelude.NonEmpty Filter),+    -- | When this parameter is used, @ListWorlds@ only returns @maxResults@+    -- results in a single page along with a @nextToken@ response element. The+    -- remaining results of the initial request can be seen by sending another+    -- @ListWorlds@ request with the returned @nextToken@ value. This value can+    -- be between 1 and 100. If this parameter is not used, then @ListWorlds@+    -- returns up to 100 results and a @nextToken@ value if applicable.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | If the previous paginated request did not return all of the remaining+    -- results, the response object\'s @nextToken@ parameter value is set to a+    -- token. To retrieve the next set of results, call @ListWorlds@ again and+    -- assign that token to the request object\'s @nextToken@ parameter. If+    -- there are no remaining results, the previous response object\'s+    -- NextToken parameter is set to null.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListWorlds' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'listWorlds_filters' - Optional filters to limit results. You can use @status@.+--+-- 'maxResults', 'listWorlds_maxResults' - When this parameter is used, @ListWorlds@ only returns @maxResults@+-- results in a single page along with a @nextToken@ response element. The+-- remaining results of the initial request can be seen by sending another+-- @ListWorlds@ request with the returned @nextToken@ value. This value can+-- be between 1 and 100. If this parameter is not used, then @ListWorlds@+-- returns up to 100 results and a @nextToken@ value if applicable.+--+-- 'nextToken', 'listWorlds_nextToken' - If the previous paginated request did not return all of the remaining+-- results, the response object\'s @nextToken@ parameter value is set to a+-- token. To retrieve the next set of results, call @ListWorlds@ again and+-- assign that token to the request object\'s @nextToken@ parameter. If+-- there are no remaining results, the previous response object\'s+-- NextToken parameter is set to null.+newListWorlds ::+  ListWorlds+newListWorlds =+  ListWorlds'+    { filters = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | Optional filters to limit results. You can use @status@.+listWorlds_filters :: Lens.Lens' ListWorlds (Prelude.Maybe (Prelude.NonEmpty Filter))+listWorlds_filters = Lens.lens (\ListWorlds' {filters} -> filters) (\s@ListWorlds' {} a -> s {filters = a} :: ListWorlds) Prelude.. Lens.mapping Lens.coerced++-- | When this parameter is used, @ListWorlds@ only returns @maxResults@+-- results in a single page along with a @nextToken@ response element. The+-- remaining results of the initial request can be seen by sending another+-- @ListWorlds@ request with the returned @nextToken@ value. This value can+-- be between 1 and 100. If this parameter is not used, then @ListWorlds@+-- returns up to 100 results and a @nextToken@ value if applicable.+listWorlds_maxResults :: Lens.Lens' ListWorlds (Prelude.Maybe Prelude.Int)+listWorlds_maxResults = Lens.lens (\ListWorlds' {maxResults} -> maxResults) (\s@ListWorlds' {} a -> s {maxResults = a} :: ListWorlds)++-- | If the previous paginated request did not return all of the remaining+-- results, the response object\'s @nextToken@ parameter value is set to a+-- token. To retrieve the next set of results, call @ListWorlds@ again and+-- assign that token to the request object\'s @nextToken@ parameter. If+-- there are no remaining results, the previous response object\'s+-- NextToken parameter is set to null.+listWorlds_nextToken :: Lens.Lens' ListWorlds (Prelude.Maybe Prelude.Text)+listWorlds_nextToken = Lens.lens (\ListWorlds' {nextToken} -> nextToken) (\s@ListWorlds' {} a -> s {nextToken = a} :: ListWorlds)++instance Core.AWSPager ListWorlds where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listWorldsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listWorldsResponse_worldSummaries+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listWorlds_nextToken+          Lens..~ rs+          Lens.^? listWorldsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListWorlds where+  type AWSResponse ListWorlds = ListWorldsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListWorldsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (x Data..?> "worldSummaries" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListWorlds where+  hashWithSalt _salt ListWorlds' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListWorlds where+  rnf ListWorlds' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListWorlds where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListWorlds where+  toJSON ListWorlds' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("filters" Data..=) Prelude.<$> filters,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListWorlds where+  toPath = Prelude.const "/listWorlds"++instance Data.ToQuery ListWorlds where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListWorldsResponse' smart constructor.+data ListWorldsResponse = ListWorldsResponse'+  { -- | If the previous paginated request did not return all of the remaining+    -- results, the response object\'s @nextToken@ parameter value is set to a+    -- token. To retrieve the next set of results, call @ListWorlds@ again and+    -- assign that token to the request object\'s @nextToken@ parameter. If+    -- there are no remaining results, the previous response object\'s+    -- NextToken parameter is set to null.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Summary information for worlds.+    worldSummaries :: Prelude.Maybe [WorldSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListWorldsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listWorldsResponse_nextToken' - If the previous paginated request did not return all of the remaining+-- results, the response object\'s @nextToken@ parameter value is set to a+-- token. To retrieve the next set of results, call @ListWorlds@ again and+-- assign that token to the request object\'s @nextToken@ parameter. If+-- there are no remaining results, the previous response object\'s+-- NextToken parameter is set to null.+--+-- 'worldSummaries', 'listWorldsResponse_worldSummaries' - Summary information for worlds.+--+-- 'httpStatus', 'listWorldsResponse_httpStatus' - The response's http status code.+newListWorldsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListWorldsResponse+newListWorldsResponse pHttpStatus_ =+  ListWorldsResponse'+    { nextToken = Prelude.Nothing,+      worldSummaries = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | If the previous paginated request did not return all of the remaining+-- results, the response object\'s @nextToken@ parameter value is set to a+-- token. To retrieve the next set of results, call @ListWorlds@ again and+-- assign that token to the request object\'s @nextToken@ parameter. If+-- there are no remaining results, the previous response object\'s+-- NextToken parameter is set to null.+listWorldsResponse_nextToken :: Lens.Lens' ListWorldsResponse (Prelude.Maybe Prelude.Text)+listWorldsResponse_nextToken = Lens.lens (\ListWorldsResponse' {nextToken} -> nextToken) (\s@ListWorldsResponse' {} a -> s {nextToken = a} :: ListWorldsResponse)++-- | Summary information for worlds.+listWorldsResponse_worldSummaries :: Lens.Lens' ListWorldsResponse (Prelude.Maybe [WorldSummary])+listWorldsResponse_worldSummaries = Lens.lens (\ListWorldsResponse' {worldSummaries} -> worldSummaries) (\s@ListWorldsResponse' {} a -> s {worldSummaries = a} :: ListWorldsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listWorldsResponse_httpStatus :: Lens.Lens' ListWorldsResponse Prelude.Int+listWorldsResponse_httpStatus = Lens.lens (\ListWorldsResponse' {httpStatus} -> httpStatus) (\s@ListWorldsResponse' {} a -> s {httpStatus = a} :: ListWorldsResponse)++instance Prelude.NFData ListWorldsResponse where+  rnf ListWorldsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf worldSummaries+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/RestartSimulationJob.hs view
@@ -0,0 +1,152 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.RestartSimulationJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Restarts a running simulation job.+module Amazonka.RobOMaker.RestartSimulationJob+  ( -- * Creating a Request+    RestartSimulationJob (..),+    newRestartSimulationJob,++    -- * Request Lenses+    restartSimulationJob_job,++    -- * Destructuring the Response+    RestartSimulationJobResponse (..),+    newRestartSimulationJobResponse,++    -- * Response Lenses+    restartSimulationJobResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newRestartSimulationJob' smart constructor.+data RestartSimulationJob = RestartSimulationJob'+  { -- | The Amazon Resource Name (ARN) of the simulation job.+    job :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RestartSimulationJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'job', 'restartSimulationJob_job' - The Amazon Resource Name (ARN) of the simulation job.+newRestartSimulationJob ::+  -- | 'job'+  Prelude.Text ->+  RestartSimulationJob+newRestartSimulationJob pJob_ =+  RestartSimulationJob' {job = pJob_}++-- | The Amazon Resource Name (ARN) of the simulation job.+restartSimulationJob_job :: Lens.Lens' RestartSimulationJob Prelude.Text+restartSimulationJob_job = Lens.lens (\RestartSimulationJob' {job} -> job) (\s@RestartSimulationJob' {} a -> s {job = a} :: RestartSimulationJob)++instance Core.AWSRequest RestartSimulationJob where+  type+    AWSResponse RestartSimulationJob =+      RestartSimulationJobResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          RestartSimulationJobResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable RestartSimulationJob where+  hashWithSalt _salt RestartSimulationJob' {..} =+    _salt `Prelude.hashWithSalt` job++instance Prelude.NFData RestartSimulationJob where+  rnf RestartSimulationJob' {..} = Prelude.rnf job++instance Data.ToHeaders RestartSimulationJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON RestartSimulationJob where+  toJSON RestartSimulationJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("job" Data..= job)]+      )++instance Data.ToPath RestartSimulationJob where+  toPath = Prelude.const "/restartSimulationJob"++instance Data.ToQuery RestartSimulationJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newRestartSimulationJobResponse' smart constructor.+data RestartSimulationJobResponse = RestartSimulationJobResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RestartSimulationJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'restartSimulationJobResponse_httpStatus' - The response's http status code.+newRestartSimulationJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  RestartSimulationJobResponse+newRestartSimulationJobResponse pHttpStatus_ =+  RestartSimulationJobResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+restartSimulationJobResponse_httpStatus :: Lens.Lens' RestartSimulationJobResponse Prelude.Int+restartSimulationJobResponse_httpStatus = Lens.lens (\RestartSimulationJobResponse' {httpStatus} -> httpStatus) (\s@RestartSimulationJobResponse' {} a -> s {httpStatus = a} :: RestartSimulationJobResponse)++instance Prelude.NFData RestartSimulationJobResponse where+  rnf RestartSimulationJobResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/StartSimulationJobBatch.hs view
@@ -0,0 +1,484 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.StartSimulationJobBatch+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Starts a new simulation job batch. The batch is defined using one or+-- more @SimulationJobRequest@ objects.+module Amazonka.RobOMaker.StartSimulationJobBatch+  ( -- * Creating a Request+    StartSimulationJobBatch (..),+    newStartSimulationJobBatch,++    -- * Request Lenses+    startSimulationJobBatch_batchPolicy,+    startSimulationJobBatch_clientRequestToken,+    startSimulationJobBatch_tags,+    startSimulationJobBatch_createSimulationJobRequests,++    -- * Destructuring the Response+    StartSimulationJobBatchResponse (..),+    newStartSimulationJobBatchResponse,++    -- * Response Lenses+    startSimulationJobBatchResponse_arn,+    startSimulationJobBatchResponse_batchPolicy,+    startSimulationJobBatchResponse_clientRequestToken,+    startSimulationJobBatchResponse_createdAt,+    startSimulationJobBatchResponse_createdRequests,+    startSimulationJobBatchResponse_failedRequests,+    startSimulationJobBatchResponse_failureCode,+    startSimulationJobBatchResponse_failureReason,+    startSimulationJobBatchResponse_pendingRequests,+    startSimulationJobBatchResponse_status,+    startSimulationJobBatchResponse_tags,+    startSimulationJobBatchResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newStartSimulationJobBatch' smart constructor.+data StartSimulationJobBatch = StartSimulationJobBatch'+  { -- | The batch policy.+    batchPolicy :: Prelude.Maybe BatchPolicy,+    -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request.+    clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | A map that contains tag keys and tag values that are attached to the+    -- deployment job batch.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | A list of simulation job requests to create in the batch.+    createSimulationJobRequests :: Prelude.NonEmpty SimulationJobRequest+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartSimulationJobBatch' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'batchPolicy', 'startSimulationJobBatch_batchPolicy' - The batch policy.+--+-- 'clientRequestToken', 'startSimulationJobBatch_clientRequestToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+--+-- 'tags', 'startSimulationJobBatch_tags' - A map that contains tag keys and tag values that are attached to the+-- deployment job batch.+--+-- 'createSimulationJobRequests', 'startSimulationJobBatch_createSimulationJobRequests' - A list of simulation job requests to create in the batch.+newStartSimulationJobBatch ::+  -- | 'createSimulationJobRequests'+  Prelude.NonEmpty SimulationJobRequest ->+  StartSimulationJobBatch+newStartSimulationJobBatch+  pCreateSimulationJobRequests_ =+    StartSimulationJobBatch'+      { batchPolicy =+          Prelude.Nothing,+        clientRequestToken = Prelude.Nothing,+        tags = Prelude.Nothing,+        createSimulationJobRequests =+          Lens.coerced+            Lens.# pCreateSimulationJobRequests_+      }++-- | The batch policy.+startSimulationJobBatch_batchPolicy :: Lens.Lens' StartSimulationJobBatch (Prelude.Maybe BatchPolicy)+startSimulationJobBatch_batchPolicy = Lens.lens (\StartSimulationJobBatch' {batchPolicy} -> batchPolicy) (\s@StartSimulationJobBatch' {} a -> s {batchPolicy = a} :: StartSimulationJobBatch)++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+startSimulationJobBatch_clientRequestToken :: Lens.Lens' StartSimulationJobBatch (Prelude.Maybe Prelude.Text)+startSimulationJobBatch_clientRequestToken = Lens.lens (\StartSimulationJobBatch' {clientRequestToken} -> clientRequestToken) (\s@StartSimulationJobBatch' {} a -> s {clientRequestToken = a} :: StartSimulationJobBatch)++-- | A map that contains tag keys and tag values that are attached to the+-- deployment job batch.+startSimulationJobBatch_tags :: Lens.Lens' StartSimulationJobBatch (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+startSimulationJobBatch_tags = Lens.lens (\StartSimulationJobBatch' {tags} -> tags) (\s@StartSimulationJobBatch' {} a -> s {tags = a} :: StartSimulationJobBatch) Prelude.. Lens.mapping Lens.coerced++-- | A list of simulation job requests to create in the batch.+startSimulationJobBatch_createSimulationJobRequests :: Lens.Lens' StartSimulationJobBatch (Prelude.NonEmpty SimulationJobRequest)+startSimulationJobBatch_createSimulationJobRequests = Lens.lens (\StartSimulationJobBatch' {createSimulationJobRequests} -> createSimulationJobRequests) (\s@StartSimulationJobBatch' {} a -> s {createSimulationJobRequests = a} :: StartSimulationJobBatch) Prelude.. Lens.coerced++instance Core.AWSRequest StartSimulationJobBatch where+  type+    AWSResponse StartSimulationJobBatch =+      StartSimulationJobBatchResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          StartSimulationJobBatchResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "batchPolicy")+            Prelude.<*> (x Data..?> "clientRequestToken")+            Prelude.<*> (x Data..?> "createdAt")+            Prelude.<*> ( x+                            Data..?> "createdRequests"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "failedRequests" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "failureCode")+            Prelude.<*> (x Data..?> "failureReason")+            Prelude.<*> (x Data..?> "pendingRequests")+            Prelude.<*> (x Data..?> "status")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable StartSimulationJobBatch where+  hashWithSalt _salt StartSimulationJobBatch' {..} =+    _salt+      `Prelude.hashWithSalt` batchPolicy+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` createSimulationJobRequests++instance Prelude.NFData StartSimulationJobBatch where+  rnf StartSimulationJobBatch' {..} =+    Prelude.rnf batchPolicy+      `Prelude.seq` Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf createSimulationJobRequests++instance Data.ToHeaders StartSimulationJobBatch where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON StartSimulationJobBatch where+  toJSON StartSimulationJobBatch' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("batchPolicy" Data..=) Prelude.<$> batchPolicy,+            ("clientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just+              ( "createSimulationJobRequests"+                  Data..= createSimulationJobRequests+              )+          ]+      )++instance Data.ToPath StartSimulationJobBatch where+  toPath = Prelude.const "/startSimulationJobBatch"++instance Data.ToQuery StartSimulationJobBatch where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStartSimulationJobBatchResponse' smart constructor.+data StartSimulationJobBatchResponse = StartSimulationJobBatchResponse'+  { -- | The Amazon Resource Name (arn) of the batch.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The batch policy.+    batchPolicy :: Prelude.Maybe BatchPolicy,+    -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request.+    clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | The time, in milliseconds since the epoch, when the simulation job batch+    -- was created.+    createdAt :: Prelude.Maybe Data.POSIX,+    -- | A list of created simulation job request summaries.+    createdRequests :: Prelude.Maybe [SimulationJobSummary],+    -- | A list of failed simulation job requests. The request failed to be+    -- created into a simulation job. Failed requests do not have a simulation+    -- job ID.+    failedRequests :: Prelude.Maybe [FailedCreateSimulationJobRequest],+    -- | The failure code if the simulation job batch failed.+    failureCode :: Prelude.Maybe SimulationJobBatchErrorCode,+    -- | The reason the simulation job batch failed.+    failureReason :: Prelude.Maybe Prelude.Text,+    -- | A list of pending simulation job requests. These requests have not yet+    -- been created into simulation jobs.+    pendingRequests :: Prelude.Maybe (Prelude.NonEmpty SimulationJobRequest),+    -- | The status of the simulation job batch.+    --+    -- [Pending]+    --     The simulation job batch request is pending.+    --+    -- [InProgress]+    --     The simulation job batch is in progress.+    --+    -- [Failed]+    --     The simulation job batch failed. One or more simulation job requests+    --     could not be completed due to an internal failure (like+    --     @InternalServiceError@). See @failureCode@ and @failureReason@ for+    --     more information.+    --+    -- [Completed]+    --     The simulation batch job completed. A batch is complete when (1)+    --     there are no pending simulation job requests in the batch and none+    --     of the failed simulation job requests are due to+    --     @InternalServiceError@ and (2) when all created simulation jobs have+    --     reached a terminal state (for example, @Completed@ or @Failed@).+    --+    -- [Canceled]+    --     The simulation batch job was cancelled.+    --+    -- [Canceling]+    --     The simulation batch job is being cancelled.+    --+    -- [Completing]+    --     The simulation batch job is completing.+    --+    -- [TimingOut]+    --     The simulation job batch is timing out.+    --+    --     If a batch timing out, and there are pending requests that were+    --     failing due to an internal failure (like @InternalServiceError@),+    --     the batch status will be @Failed@. If there are no such failing+    --     request, the batch status will be @TimedOut@.+    --+    -- [TimedOut]+    --     The simulation batch job timed out.+    status :: Prelude.Maybe SimulationJobBatchStatus,+    -- | A map that contains tag keys and tag values that are attached to the+    -- deployment job batch.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartSimulationJobBatchResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'startSimulationJobBatchResponse_arn' - The Amazon Resource Name (arn) of the batch.+--+-- 'batchPolicy', 'startSimulationJobBatchResponse_batchPolicy' - The batch policy.+--+-- 'clientRequestToken', 'startSimulationJobBatchResponse_clientRequestToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+--+-- 'createdAt', 'startSimulationJobBatchResponse_createdAt' - The time, in milliseconds since the epoch, when the simulation job batch+-- was created.+--+-- 'createdRequests', 'startSimulationJobBatchResponse_createdRequests' - A list of created simulation job request summaries.+--+-- 'failedRequests', 'startSimulationJobBatchResponse_failedRequests' - A list of failed simulation job requests. The request failed to be+-- created into a simulation job. Failed requests do not have a simulation+-- job ID.+--+-- 'failureCode', 'startSimulationJobBatchResponse_failureCode' - The failure code if the simulation job batch failed.+--+-- 'failureReason', 'startSimulationJobBatchResponse_failureReason' - The reason the simulation job batch failed.+--+-- 'pendingRequests', 'startSimulationJobBatchResponse_pendingRequests' - A list of pending simulation job requests. These requests have not yet+-- been created into simulation jobs.+--+-- 'status', 'startSimulationJobBatchResponse_status' - The status of the simulation job batch.+--+-- [Pending]+--     The simulation job batch request is pending.+--+-- [InProgress]+--     The simulation job batch is in progress.+--+-- [Failed]+--     The simulation job batch failed. One or more simulation job requests+--     could not be completed due to an internal failure (like+--     @InternalServiceError@). See @failureCode@ and @failureReason@ for+--     more information.+--+-- [Completed]+--     The simulation batch job completed. A batch is complete when (1)+--     there are no pending simulation job requests in the batch and none+--     of the failed simulation job requests are due to+--     @InternalServiceError@ and (2) when all created simulation jobs have+--     reached a terminal state (for example, @Completed@ or @Failed@).+--+-- [Canceled]+--     The simulation batch job was cancelled.+--+-- [Canceling]+--     The simulation batch job is being cancelled.+--+-- [Completing]+--     The simulation batch job is completing.+--+-- [TimingOut]+--     The simulation job batch is timing out.+--+--     If a batch timing out, and there are pending requests that were+--     failing due to an internal failure (like @InternalServiceError@),+--     the batch status will be @Failed@. If there are no such failing+--     request, the batch status will be @TimedOut@.+--+-- [TimedOut]+--     The simulation batch job timed out.+--+-- 'tags', 'startSimulationJobBatchResponse_tags' - A map that contains tag keys and tag values that are attached to the+-- deployment job batch.+--+-- 'httpStatus', 'startSimulationJobBatchResponse_httpStatus' - The response's http status code.+newStartSimulationJobBatchResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  StartSimulationJobBatchResponse+newStartSimulationJobBatchResponse pHttpStatus_ =+  StartSimulationJobBatchResponse'+    { arn =+        Prelude.Nothing,+      batchPolicy = Prelude.Nothing,+      clientRequestToken = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      createdRequests = Prelude.Nothing,+      failedRequests = Prelude.Nothing,+      failureCode = Prelude.Nothing,+      failureReason = Prelude.Nothing,+      pendingRequests = Prelude.Nothing,+      status = Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (arn) of the batch.+startSimulationJobBatchResponse_arn :: Lens.Lens' StartSimulationJobBatchResponse (Prelude.Maybe Prelude.Text)+startSimulationJobBatchResponse_arn = Lens.lens (\StartSimulationJobBatchResponse' {arn} -> arn) (\s@StartSimulationJobBatchResponse' {} a -> s {arn = a} :: StartSimulationJobBatchResponse)++-- | The batch policy.+startSimulationJobBatchResponse_batchPolicy :: Lens.Lens' StartSimulationJobBatchResponse (Prelude.Maybe BatchPolicy)+startSimulationJobBatchResponse_batchPolicy = Lens.lens (\StartSimulationJobBatchResponse' {batchPolicy} -> batchPolicy) (\s@StartSimulationJobBatchResponse' {} a -> s {batchPolicy = a} :: StartSimulationJobBatchResponse)++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+startSimulationJobBatchResponse_clientRequestToken :: Lens.Lens' StartSimulationJobBatchResponse (Prelude.Maybe Prelude.Text)+startSimulationJobBatchResponse_clientRequestToken = Lens.lens (\StartSimulationJobBatchResponse' {clientRequestToken} -> clientRequestToken) (\s@StartSimulationJobBatchResponse' {} a -> s {clientRequestToken = a} :: StartSimulationJobBatchResponse)++-- | The time, in milliseconds since the epoch, when the simulation job batch+-- was created.+startSimulationJobBatchResponse_createdAt :: Lens.Lens' StartSimulationJobBatchResponse (Prelude.Maybe Prelude.UTCTime)+startSimulationJobBatchResponse_createdAt = Lens.lens (\StartSimulationJobBatchResponse' {createdAt} -> createdAt) (\s@StartSimulationJobBatchResponse' {} a -> s {createdAt = a} :: StartSimulationJobBatchResponse) Prelude.. Lens.mapping Data._Time++-- | A list of created simulation job request summaries.+startSimulationJobBatchResponse_createdRequests :: Lens.Lens' StartSimulationJobBatchResponse (Prelude.Maybe [SimulationJobSummary])+startSimulationJobBatchResponse_createdRequests = Lens.lens (\StartSimulationJobBatchResponse' {createdRequests} -> createdRequests) (\s@StartSimulationJobBatchResponse' {} a -> s {createdRequests = a} :: StartSimulationJobBatchResponse) Prelude.. Lens.mapping Lens.coerced++-- | A list of failed simulation job requests. The request failed to be+-- created into a simulation job. Failed requests do not have a simulation+-- job ID.+startSimulationJobBatchResponse_failedRequests :: Lens.Lens' StartSimulationJobBatchResponse (Prelude.Maybe [FailedCreateSimulationJobRequest])+startSimulationJobBatchResponse_failedRequests = Lens.lens (\StartSimulationJobBatchResponse' {failedRequests} -> failedRequests) (\s@StartSimulationJobBatchResponse' {} a -> s {failedRequests = a} :: StartSimulationJobBatchResponse) Prelude.. Lens.mapping Lens.coerced++-- | The failure code if the simulation job batch failed.+startSimulationJobBatchResponse_failureCode :: Lens.Lens' StartSimulationJobBatchResponse (Prelude.Maybe SimulationJobBatchErrorCode)+startSimulationJobBatchResponse_failureCode = Lens.lens (\StartSimulationJobBatchResponse' {failureCode} -> failureCode) (\s@StartSimulationJobBatchResponse' {} a -> s {failureCode = a} :: StartSimulationJobBatchResponse)++-- | The reason the simulation job batch failed.+startSimulationJobBatchResponse_failureReason :: Lens.Lens' StartSimulationJobBatchResponse (Prelude.Maybe Prelude.Text)+startSimulationJobBatchResponse_failureReason = Lens.lens (\StartSimulationJobBatchResponse' {failureReason} -> failureReason) (\s@StartSimulationJobBatchResponse' {} a -> s {failureReason = a} :: StartSimulationJobBatchResponse)++-- | A list of pending simulation job requests. These requests have not yet+-- been created into simulation jobs.+startSimulationJobBatchResponse_pendingRequests :: Lens.Lens' StartSimulationJobBatchResponse (Prelude.Maybe (Prelude.NonEmpty SimulationJobRequest))+startSimulationJobBatchResponse_pendingRequests = Lens.lens (\StartSimulationJobBatchResponse' {pendingRequests} -> pendingRequests) (\s@StartSimulationJobBatchResponse' {} a -> s {pendingRequests = a} :: StartSimulationJobBatchResponse) Prelude.. Lens.mapping Lens.coerced++-- | The status of the simulation job batch.+--+-- [Pending]+--     The simulation job batch request is pending.+--+-- [InProgress]+--     The simulation job batch is in progress.+--+-- [Failed]+--     The simulation job batch failed. One or more simulation job requests+--     could not be completed due to an internal failure (like+--     @InternalServiceError@). See @failureCode@ and @failureReason@ for+--     more information.+--+-- [Completed]+--     The simulation batch job completed. A batch is complete when (1)+--     there are no pending simulation job requests in the batch and none+--     of the failed simulation job requests are due to+--     @InternalServiceError@ and (2) when all created simulation jobs have+--     reached a terminal state (for example, @Completed@ or @Failed@).+--+-- [Canceled]+--     The simulation batch job was cancelled.+--+-- [Canceling]+--     The simulation batch job is being cancelled.+--+-- [Completing]+--     The simulation batch job is completing.+--+-- [TimingOut]+--     The simulation job batch is timing out.+--+--     If a batch timing out, and there are pending requests that were+--     failing due to an internal failure (like @InternalServiceError@),+--     the batch status will be @Failed@. If there are no such failing+--     request, the batch status will be @TimedOut@.+--+-- [TimedOut]+--     The simulation batch job timed out.+startSimulationJobBatchResponse_status :: Lens.Lens' StartSimulationJobBatchResponse (Prelude.Maybe SimulationJobBatchStatus)+startSimulationJobBatchResponse_status = Lens.lens (\StartSimulationJobBatchResponse' {status} -> status) (\s@StartSimulationJobBatchResponse' {} a -> s {status = a} :: StartSimulationJobBatchResponse)++-- | A map that contains tag keys and tag values that are attached to the+-- deployment job batch.+startSimulationJobBatchResponse_tags :: Lens.Lens' StartSimulationJobBatchResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+startSimulationJobBatchResponse_tags = Lens.lens (\StartSimulationJobBatchResponse' {tags} -> tags) (\s@StartSimulationJobBatchResponse' {} a -> s {tags = a} :: StartSimulationJobBatchResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+startSimulationJobBatchResponse_httpStatus :: Lens.Lens' StartSimulationJobBatchResponse Prelude.Int+startSimulationJobBatchResponse_httpStatus = Lens.lens (\StartSimulationJobBatchResponse' {httpStatus} -> httpStatus) (\s@StartSimulationJobBatchResponse' {} a -> s {httpStatus = a} :: StartSimulationJobBatchResponse)++instance+  Prelude.NFData+    StartSimulationJobBatchResponse+  where+  rnf StartSimulationJobBatchResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf batchPolicy+      `Prelude.seq` Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf createdRequests+      `Prelude.seq` Prelude.rnf failedRequests+      `Prelude.seq` Prelude.rnf failureCode+      `Prelude.seq` Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf pendingRequests+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/TagResource.hs view
@@ -0,0 +1,177 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.TagResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds or edits tags for a AWS RoboMaker resource.+--+-- Each tag consists of a tag key and a tag value. Tag keys and tag values+-- are both required, but tag values can be empty strings.+--+-- For information about the rules that apply to tag keys and tag values,+-- see+-- <https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html User-Defined Tag Restrictions>+-- in the /AWS Billing and Cost Management User Guide/.+module Amazonka.RobOMaker.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 qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newTagResource' smart constructor.+data TagResource = TagResource'+  { -- | The Amazon Resource Name (ARN) of the AWS RoboMaker resource you are+    -- tagging.+    resourceArn :: Prelude.Text,+    -- | A map that contains tag keys and tag values that are attached to the+    -- resource.+    tags :: Prelude.HashMap Prelude.Text Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'tagResource_resourceArn' - The Amazon Resource Name (ARN) of the AWS RoboMaker resource you are+-- tagging.+--+-- 'tags', 'tagResource_tags' - A map that contains tag keys and tag values that are attached to the+-- resource.+newTagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  TagResource+newTagResource pResourceArn_ =+  TagResource'+    { resourceArn = pResourceArn_,+      tags = Prelude.mempty+    }++-- | The Amazon Resource Name (ARN) of the AWS RoboMaker resource you are+-- tagging.+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++-- | A map that contains tag keys and tag values that are attached to the+-- resource.+tagResource_tags :: Lens.Lens' TagResource (Prelude.HashMap Prelude.Text Prelude.Text)+tagResource_tags = Lens.lens (\TagResource' {tags} -> tags) (\s@TagResource' {} a -> s {tags = a} :: TagResource) Prelude.. Lens.coerced++instance Core.AWSRequest TagResource where+  type AWSResponse TagResource = TagResourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          TagResourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable TagResource where+  hashWithSalt _salt TagResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` tags++instance Prelude.NFData TagResource where+  rnf TagResource' {..} =+    Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf tags++instance Data.ToHeaders TagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON TagResource where+  toJSON TagResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("tags" Data..= tags)]+      )++instance Data.ToPath TagResource where+  toPath TagResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery TagResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newTagResourceResponse' smart constructor.+data TagResourceResponse = TagResourceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'tagResourceResponse_httpStatus' - The response's http status code.+newTagResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  TagResourceResponse+newTagResourceResponse pHttpStatus_ =+  TagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+tagResourceResponse_httpStatus :: Lens.Lens' TagResourceResponse Prelude.Int+tagResourceResponse_httpStatus = Lens.lens (\TagResourceResponse' {httpStatus} -> httpStatus) (\s@TagResourceResponse' {} a -> s {httpStatus = a} :: TagResourceResponse)++instance Prelude.NFData TagResourceResponse where+  rnf TagResourceResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/Types.hs view
@@ -0,0 +1,645 @@+{-# 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.RobOMaker.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.RobOMaker.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _ConcurrentDeploymentException,+    _IdempotentParameterMismatchException,+    _InternalServerException,+    _InvalidParameterException,+    _LimitExceededException,+    _ResourceAlreadyExistsException,+    _ResourceNotFoundException,+    _ServiceUnavailableException,+    _ThrottlingException,++    -- * Architecture+    Architecture (..),++    -- * ComputeType+    ComputeType (..),++    -- * DataSourceType+    DataSourceType (..),++    -- * ExitBehavior+    ExitBehavior (..),++    -- * FailureBehavior+    FailureBehavior (..),++    -- * RenderingEngineType+    RenderingEngineType (..),++    -- * RobotSoftwareSuiteType+    RobotSoftwareSuiteType (..),++    -- * RobotSoftwareSuiteVersionType+    RobotSoftwareSuiteVersionType (..),++    -- * SimulationJobBatchErrorCode+    SimulationJobBatchErrorCode (..),++    -- * SimulationJobBatchStatus+    SimulationJobBatchStatus (..),++    -- * SimulationJobErrorCode+    SimulationJobErrorCode (..),++    -- * SimulationJobStatus+    SimulationJobStatus (..),++    -- * SimulationSoftwareSuiteType+    SimulationSoftwareSuiteType (..),++    -- * UploadBehavior+    UploadBehavior (..),++    -- * WorldExportJobErrorCode+    WorldExportJobErrorCode (..),++    -- * WorldExportJobStatus+    WorldExportJobStatus (..),++    -- * WorldGenerationJobErrorCode+    WorldGenerationJobErrorCode (..),++    -- * WorldGenerationJobStatus+    WorldGenerationJobStatus (..),++    -- * BatchPolicy+    BatchPolicy (..),+    newBatchPolicy,+    batchPolicy_maxConcurrency,+    batchPolicy_timeoutInSeconds,++    -- * Compute+    Compute (..),+    newCompute,+    compute_computeType,+    compute_gpuUnitLimit,+    compute_simulationUnitLimit,++    -- * ComputeResponse+    ComputeResponse (..),+    newComputeResponse,+    computeResponse_computeType,+    computeResponse_gpuUnitLimit,+    computeResponse_simulationUnitLimit,++    -- * DataSource+    DataSource (..),+    newDataSource,+    dataSource_destination,+    dataSource_name,+    dataSource_s3Bucket,+    dataSource_s3Keys,+    dataSource_type,++    -- * DataSourceConfig+    DataSourceConfig (..),+    newDataSourceConfig,+    dataSourceConfig_destination,+    dataSourceConfig_type,+    dataSourceConfig_name,+    dataSourceConfig_s3Bucket,+    dataSourceConfig_s3Keys,++    -- * Environment+    Environment (..),+    newEnvironment,+    environment_uri,++    -- * FailedCreateSimulationJobRequest+    FailedCreateSimulationJobRequest (..),+    newFailedCreateSimulationJobRequest,+    failedCreateSimulationJobRequest_failedAt,+    failedCreateSimulationJobRequest_failureCode,+    failedCreateSimulationJobRequest_failureReason,+    failedCreateSimulationJobRequest_request,++    -- * FailureSummary+    FailureSummary (..),+    newFailureSummary,+    failureSummary_failures,+    failureSummary_totalFailureCount,++    -- * Filter+    Filter (..),+    newFilter,+    filter_name,+    filter_values,++    -- * FinishedWorldsSummary+    FinishedWorldsSummary (..),+    newFinishedWorldsSummary,+    finishedWorldsSummary_failureSummary,+    finishedWorldsSummary_finishedCount,+    finishedWorldsSummary_succeededWorlds,++    -- * LaunchConfig+    LaunchConfig (..),+    newLaunchConfig,+    launchConfig_command,+    launchConfig_environmentVariables,+    launchConfig_launchFile,+    launchConfig_packageName,+    launchConfig_portForwardingConfig,+    launchConfig_streamUI,++    -- * LoggingConfig+    LoggingConfig (..),+    newLoggingConfig,+    loggingConfig_recordAllRosTopics,++    -- * NetworkInterface+    NetworkInterface (..),+    newNetworkInterface,+    networkInterface_networkInterfaceId,+    networkInterface_privateIpAddress,+    networkInterface_publicIpAddress,++    -- * OutputLocation+    OutputLocation (..),+    newOutputLocation,+    outputLocation_s3Bucket,+    outputLocation_s3Prefix,++    -- * PortForwardingConfig+    PortForwardingConfig (..),+    newPortForwardingConfig,+    portForwardingConfig_portMappings,++    -- * PortMapping+    PortMapping (..),+    newPortMapping,+    portMapping_enableOnPublicIp,+    portMapping_jobPort,+    portMapping_applicationPort,++    -- * RenderingEngine+    RenderingEngine (..),+    newRenderingEngine,+    renderingEngine_name,+    renderingEngine_version,++    -- * RobotApplicationConfig+    RobotApplicationConfig (..),+    newRobotApplicationConfig,+    robotApplicationConfig_applicationVersion,+    robotApplicationConfig_tools,+    robotApplicationConfig_uploadConfigurations,+    robotApplicationConfig_useDefaultTools,+    robotApplicationConfig_useDefaultUploadConfigurations,+    robotApplicationConfig_application,+    robotApplicationConfig_launchConfig,++    -- * RobotApplicationSummary+    RobotApplicationSummary (..),+    newRobotApplicationSummary,+    robotApplicationSummary_arn,+    robotApplicationSummary_lastUpdatedAt,+    robotApplicationSummary_name,+    robotApplicationSummary_robotSoftwareSuite,+    robotApplicationSummary_version,++    -- * RobotSoftwareSuite+    RobotSoftwareSuite (..),+    newRobotSoftwareSuite,+    robotSoftwareSuite_name,+    robotSoftwareSuite_version,++    -- * S3KeyOutput+    S3KeyOutput (..),+    newS3KeyOutput,+    s3KeyOutput_etag,+    s3KeyOutput_s3Key,++    -- * SimulationApplicationConfig+    SimulationApplicationConfig (..),+    newSimulationApplicationConfig,+    simulationApplicationConfig_applicationVersion,+    simulationApplicationConfig_tools,+    simulationApplicationConfig_uploadConfigurations,+    simulationApplicationConfig_useDefaultTools,+    simulationApplicationConfig_useDefaultUploadConfigurations,+    simulationApplicationConfig_worldConfigs,+    simulationApplicationConfig_application,+    simulationApplicationConfig_launchConfig,++    -- * SimulationApplicationSummary+    SimulationApplicationSummary (..),+    newSimulationApplicationSummary,+    simulationApplicationSummary_arn,+    simulationApplicationSummary_lastUpdatedAt,+    simulationApplicationSummary_name,+    simulationApplicationSummary_robotSoftwareSuite,+    simulationApplicationSummary_simulationSoftwareSuite,+    simulationApplicationSummary_version,++    -- * SimulationJob+    SimulationJob (..),+    newSimulationJob,+    simulationJob_arn,+    simulationJob_clientRequestToken,+    simulationJob_compute,+    simulationJob_dataSources,+    simulationJob_failureBehavior,+    simulationJob_failureCode,+    simulationJob_failureReason,+    simulationJob_iamRole,+    simulationJob_lastStartedAt,+    simulationJob_lastUpdatedAt,+    simulationJob_loggingConfig,+    simulationJob_maxJobDurationInSeconds,+    simulationJob_name,+    simulationJob_networkInterface,+    simulationJob_outputLocation,+    simulationJob_robotApplications,+    simulationJob_simulationApplications,+    simulationJob_simulationTimeMillis,+    simulationJob_status,+    simulationJob_tags,+    simulationJob_vpcConfig,++    -- * SimulationJobBatchSummary+    SimulationJobBatchSummary (..),+    newSimulationJobBatchSummary,+    simulationJobBatchSummary_arn,+    simulationJobBatchSummary_createdAt,+    simulationJobBatchSummary_createdRequestCount,+    simulationJobBatchSummary_failedRequestCount,+    simulationJobBatchSummary_lastUpdatedAt,+    simulationJobBatchSummary_pendingRequestCount,+    simulationJobBatchSummary_status,++    -- * SimulationJobRequest+    SimulationJobRequest (..),+    newSimulationJobRequest,+    simulationJobRequest_compute,+    simulationJobRequest_dataSources,+    simulationJobRequest_failureBehavior,+    simulationJobRequest_iamRole,+    simulationJobRequest_loggingConfig,+    simulationJobRequest_outputLocation,+    simulationJobRequest_robotApplications,+    simulationJobRequest_simulationApplications,+    simulationJobRequest_tags,+    simulationJobRequest_useDefaultApplications,+    simulationJobRequest_vpcConfig,+    simulationJobRequest_maxJobDurationInSeconds,++    -- * SimulationJobSummary+    SimulationJobSummary (..),+    newSimulationJobSummary,+    simulationJobSummary_arn,+    simulationJobSummary_computeType,+    simulationJobSummary_dataSourceNames,+    simulationJobSummary_lastUpdatedAt,+    simulationJobSummary_name,+    simulationJobSummary_robotApplicationNames,+    simulationJobSummary_simulationApplicationNames,+    simulationJobSummary_status,++    -- * SimulationSoftwareSuite+    SimulationSoftwareSuite (..),+    newSimulationSoftwareSuite,+    simulationSoftwareSuite_name,+    simulationSoftwareSuite_version,++    -- * Source+    Source (..),+    newSource,+    source_architecture,+    source_etag,+    source_s3Bucket,+    source_s3Key,++    -- * SourceConfig+    SourceConfig (..),+    newSourceConfig,+    sourceConfig_architecture,+    sourceConfig_s3Bucket,+    sourceConfig_s3Key,++    -- * TemplateLocation+    TemplateLocation (..),+    newTemplateLocation,+    templateLocation_s3Bucket,+    templateLocation_s3Key,++    -- * TemplateSummary+    TemplateSummary (..),+    newTemplateSummary,+    templateSummary_arn,+    templateSummary_createdAt,+    templateSummary_lastUpdatedAt,+    templateSummary_name,+    templateSummary_version,++    -- * Tool+    Tool (..),+    newTool,+    tool_exitBehavior,+    tool_streamOutputToCloudWatch,+    tool_streamUI,+    tool_name,+    tool_command,++    -- * UploadConfiguration+    UploadConfiguration (..),+    newUploadConfiguration,+    uploadConfiguration_name,+    uploadConfiguration_path,+    uploadConfiguration_uploadBehavior,++    -- * VPCConfig+    VPCConfig (..),+    newVPCConfig,+    vPCConfig_assignPublicIp,+    vPCConfig_securityGroups,+    vPCConfig_subnets,++    -- * VPCConfigResponse+    VPCConfigResponse (..),+    newVPCConfigResponse,+    vPCConfigResponse_assignPublicIp,+    vPCConfigResponse_securityGroups,+    vPCConfigResponse_subnets,+    vPCConfigResponse_vpcId,++    -- * WorldConfig+    WorldConfig (..),+    newWorldConfig,+    worldConfig_world,++    -- * WorldCount+    WorldCount (..),+    newWorldCount,+    worldCount_floorplanCount,+    worldCount_interiorCountPerFloorplan,++    -- * WorldExportJobSummary+    WorldExportJobSummary (..),+    newWorldExportJobSummary,+    worldExportJobSummary_arn,+    worldExportJobSummary_createdAt,+    worldExportJobSummary_outputLocation,+    worldExportJobSummary_status,+    worldExportJobSummary_worlds,++    -- * WorldFailure+    WorldFailure (..),+    newWorldFailure,+    worldFailure_failureCode,+    worldFailure_failureCount,+    worldFailure_sampleFailureReason,++    -- * WorldGenerationJobSummary+    WorldGenerationJobSummary (..),+    newWorldGenerationJobSummary,+    worldGenerationJobSummary_arn,+    worldGenerationJobSummary_createdAt,+    worldGenerationJobSummary_failedWorldCount,+    worldGenerationJobSummary_status,+    worldGenerationJobSummary_succeededWorldCount,+    worldGenerationJobSummary_template,+    worldGenerationJobSummary_worldCount,++    -- * WorldSummary+    WorldSummary (..),+    newWorldSummary,+    worldSummary_arn,+    worldSummary_createdAt,+    worldSummary_generationJob,+    worldSummary_template,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Prelude as Prelude+import Amazonka.RobOMaker.Types.Architecture+import Amazonka.RobOMaker.Types.BatchPolicy+import Amazonka.RobOMaker.Types.Compute+import Amazonka.RobOMaker.Types.ComputeResponse+import Amazonka.RobOMaker.Types.ComputeType+import Amazonka.RobOMaker.Types.DataSource+import Amazonka.RobOMaker.Types.DataSourceConfig+import Amazonka.RobOMaker.Types.DataSourceType+import Amazonka.RobOMaker.Types.Environment+import Amazonka.RobOMaker.Types.ExitBehavior+import Amazonka.RobOMaker.Types.FailedCreateSimulationJobRequest+import Amazonka.RobOMaker.Types.FailureBehavior+import Amazonka.RobOMaker.Types.FailureSummary+import Amazonka.RobOMaker.Types.Filter+import Amazonka.RobOMaker.Types.FinishedWorldsSummary+import Amazonka.RobOMaker.Types.LaunchConfig+import Amazonka.RobOMaker.Types.LoggingConfig+import Amazonka.RobOMaker.Types.NetworkInterface+import Amazonka.RobOMaker.Types.OutputLocation+import Amazonka.RobOMaker.Types.PortForwardingConfig+import Amazonka.RobOMaker.Types.PortMapping+import Amazonka.RobOMaker.Types.RenderingEngine+import Amazonka.RobOMaker.Types.RenderingEngineType+import Amazonka.RobOMaker.Types.RobotApplicationConfig+import Amazonka.RobOMaker.Types.RobotApplicationSummary+import Amazonka.RobOMaker.Types.RobotSoftwareSuite+import Amazonka.RobOMaker.Types.RobotSoftwareSuiteType+import Amazonka.RobOMaker.Types.RobotSoftwareSuiteVersionType+import Amazonka.RobOMaker.Types.S3KeyOutput+import Amazonka.RobOMaker.Types.SimulationApplicationConfig+import Amazonka.RobOMaker.Types.SimulationApplicationSummary+import Amazonka.RobOMaker.Types.SimulationJob+import Amazonka.RobOMaker.Types.SimulationJobBatchErrorCode+import Amazonka.RobOMaker.Types.SimulationJobBatchStatus+import Amazonka.RobOMaker.Types.SimulationJobBatchSummary+import Amazonka.RobOMaker.Types.SimulationJobErrorCode+import Amazonka.RobOMaker.Types.SimulationJobRequest+import Amazonka.RobOMaker.Types.SimulationJobStatus+import Amazonka.RobOMaker.Types.SimulationJobSummary+import Amazonka.RobOMaker.Types.SimulationSoftwareSuite+import Amazonka.RobOMaker.Types.SimulationSoftwareSuiteType+import Amazonka.RobOMaker.Types.Source+import Amazonka.RobOMaker.Types.SourceConfig+import Amazonka.RobOMaker.Types.TemplateLocation+import Amazonka.RobOMaker.Types.TemplateSummary+import Amazonka.RobOMaker.Types.Tool+import Amazonka.RobOMaker.Types.UploadBehavior+import Amazonka.RobOMaker.Types.UploadConfiguration+import Amazonka.RobOMaker.Types.VPCConfig+import Amazonka.RobOMaker.Types.VPCConfigResponse+import Amazonka.RobOMaker.Types.WorldConfig+import Amazonka.RobOMaker.Types.WorldCount+import Amazonka.RobOMaker.Types.WorldExportJobErrorCode+import Amazonka.RobOMaker.Types.WorldExportJobStatus+import Amazonka.RobOMaker.Types.WorldExportJobSummary+import Amazonka.RobOMaker.Types.WorldFailure+import Amazonka.RobOMaker.Types.WorldGenerationJobErrorCode+import Amazonka.RobOMaker.Types.WorldGenerationJobStatus+import Amazonka.RobOMaker.Types.WorldGenerationJobSummary+import Amazonka.RobOMaker.Types.WorldSummary+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2018-06-29@ of the Amazon RoboMaker SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "RobOMaker",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "robomaker",+      Core.signingName = "robomaker",+      Core.version = "2018-06-29",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "RobOMaker",+      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++-- | The failure percentage threshold percentage was met.+_ConcurrentDeploymentException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConcurrentDeploymentException =+  Core._MatchServiceError+    defaultService+    "ConcurrentDeploymentException"+    Prelude.. Core.hasStatus 400++-- | The request uses the same client token as a previous, but non-identical+-- request. Do not reuse a client token with different requests, unless the+-- requests are identical.+_IdempotentParameterMismatchException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_IdempotentParameterMismatchException =+  Core._MatchServiceError+    defaultService+    "IdempotentParameterMismatchException"+    Prelude.. Core.hasStatus 400++-- | AWS RoboMaker 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++-- | A parameter specified in a request is not valid, is unsupported, or+-- cannot be used. The returned message provides an explanation of the+-- error value.+_InvalidParameterException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidParameterException =+  Core._MatchServiceError+    defaultService+    "InvalidParameterException"+    Prelude.. Core.hasStatus 400++-- | The requested resource exceeds the maximum number allowed, or the number+-- of concurrent stream requests exceeds the maximum number allowed.+_LimitExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_LimitExceededException =+  Core._MatchServiceError+    defaultService+    "LimitExceededException"+    Prelude.. Core.hasStatus 400++-- | The specified resource already exists.+_ResourceAlreadyExistsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceAlreadyExistsException =+  Core._MatchServiceError+    defaultService+    "ResourceAlreadyExistsException"+    Prelude.. Core.hasStatus 400++-- | The specified resource does not exist.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+  Core._MatchServiceError+    defaultService+    "ResourceNotFoundException"+    Prelude.. Core.hasStatus 400++-- | The request has failed due to a temporary failure of the server.+_ServiceUnavailableException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceUnavailableException =+  Core._MatchServiceError+    defaultService+    "ServiceUnavailableException"+    Prelude.. Core.hasStatus 503++-- | AWS RoboMaker 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 400
+ gen/Amazonka/RobOMaker/Types/Architecture.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.Architecture+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.Architecture+  ( Architecture+      ( ..,+        Architecture_ARM64,+        Architecture_ARMHF,+        Architecture_X86_64+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Architecture = Architecture'+  { fromArchitecture ::+      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 Architecture_ARM64 :: Architecture+pattern Architecture_ARM64 = Architecture' "ARM64"++pattern Architecture_ARMHF :: Architecture+pattern Architecture_ARMHF = Architecture' "ARMHF"++pattern Architecture_X86_64 :: Architecture+pattern Architecture_X86_64 = Architecture' "X86_64"++{-# COMPLETE+  Architecture_ARM64,+  Architecture_ARMHF,+  Architecture_X86_64,+  Architecture'+  #-}
+ gen/Amazonka/RobOMaker/Types/BatchPolicy.hs view
@@ -0,0 +1,128 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.BatchPolicy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.BatchPolicy 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 batch policy.+--+-- /See:/ 'newBatchPolicy' smart constructor.+data BatchPolicy = BatchPolicy'+  { -- | The number of active simulation jobs create as part of the batch that+    -- can be in an active state at the same time.+    --+    -- Active states include: @Pending@,@Preparing@, @Running@, @Restarting@,+    -- @RunningFailed@ and @Terminating@. All other states are terminal states.+    maxConcurrency :: Prelude.Maybe Prelude.Int,+    -- | The amount of time, in seconds, to wait for the batch to complete.+    --+    -- If a batch times out, and there are pending requests that were failing+    -- due to an internal failure (like @InternalServiceError@), they will be+    -- moved to the failed list and the batch status will be @Failed@. If the+    -- pending requests were failing for any other reason, the failed pending+    -- requests will be moved to the failed list and the batch status will be+    -- @TimedOut@.+    timeoutInSeconds :: Prelude.Maybe Prelude.Integer+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchPolicy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxConcurrency', 'batchPolicy_maxConcurrency' - The number of active simulation jobs create as part of the batch that+-- can be in an active state at the same time.+--+-- Active states include: @Pending@,@Preparing@, @Running@, @Restarting@,+-- @RunningFailed@ and @Terminating@. All other states are terminal states.+--+-- 'timeoutInSeconds', 'batchPolicy_timeoutInSeconds' - The amount of time, in seconds, to wait for the batch to complete.+--+-- If a batch times out, and there are pending requests that were failing+-- due to an internal failure (like @InternalServiceError@), they will be+-- moved to the failed list and the batch status will be @Failed@. If the+-- pending requests were failing for any other reason, the failed pending+-- requests will be moved to the failed list and the batch status will be+-- @TimedOut@.+newBatchPolicy ::+  BatchPolicy+newBatchPolicy =+  BatchPolicy'+    { maxConcurrency = Prelude.Nothing,+      timeoutInSeconds = Prelude.Nothing+    }++-- | The number of active simulation jobs create as part of the batch that+-- can be in an active state at the same time.+--+-- Active states include: @Pending@,@Preparing@, @Running@, @Restarting@,+-- @RunningFailed@ and @Terminating@. All other states are terminal states.+batchPolicy_maxConcurrency :: Lens.Lens' BatchPolicy (Prelude.Maybe Prelude.Int)+batchPolicy_maxConcurrency = Lens.lens (\BatchPolicy' {maxConcurrency} -> maxConcurrency) (\s@BatchPolicy' {} a -> s {maxConcurrency = a} :: BatchPolicy)++-- | The amount of time, in seconds, to wait for the batch to complete.+--+-- If a batch times out, and there are pending requests that were failing+-- due to an internal failure (like @InternalServiceError@), they will be+-- moved to the failed list and the batch status will be @Failed@. If the+-- pending requests were failing for any other reason, the failed pending+-- requests will be moved to the failed list and the batch status will be+-- @TimedOut@.+batchPolicy_timeoutInSeconds :: Lens.Lens' BatchPolicy (Prelude.Maybe Prelude.Integer)+batchPolicy_timeoutInSeconds = Lens.lens (\BatchPolicy' {timeoutInSeconds} -> timeoutInSeconds) (\s@BatchPolicy' {} a -> s {timeoutInSeconds = a} :: BatchPolicy)++instance Data.FromJSON BatchPolicy where+  parseJSON =+    Data.withObject+      "BatchPolicy"+      ( \x ->+          BatchPolicy'+            Prelude.<$> (x Data..:? "maxConcurrency")+            Prelude.<*> (x Data..:? "timeoutInSeconds")+      )++instance Prelude.Hashable BatchPolicy where+  hashWithSalt _salt BatchPolicy' {..} =+    _salt+      `Prelude.hashWithSalt` maxConcurrency+      `Prelude.hashWithSalt` timeoutInSeconds++instance Prelude.NFData BatchPolicy where+  rnf BatchPolicy' {..} =+    Prelude.rnf maxConcurrency+      `Prelude.seq` Prelude.rnf timeoutInSeconds++instance Data.ToJSON BatchPolicy where+  toJSON BatchPolicy' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxConcurrency" Data..=)+              Prelude.<$> maxConcurrency,+            ("timeoutInSeconds" Data..=)+              Prelude.<$> timeoutInSeconds+          ]+      )
+ gen/Amazonka/RobOMaker/Types/Compute.hs view
@@ -0,0 +1,120 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.Compute+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.Compute 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+import Amazonka.RobOMaker.Types.ComputeType++-- | Compute information for the simulation job.+--+-- /See:/ 'newCompute' smart constructor.+data Compute = Compute'+  { -- | Compute type information for the simulation job.+    computeType :: Prelude.Maybe ComputeType,+    -- | Compute GPU unit limit for the simulation job. It is the same as the+    -- number of GPUs allocated to the SimulationJob.+    gpuUnitLimit :: Prelude.Maybe Prelude.Natural,+    -- | The simulation unit limit. Your simulation is allocated CPU and memory+    -- proportional to the supplied simulation unit limit. A simulation unit is+    -- 1 vcpu and 2GB of memory. You are only billed for the SU utilization you+    -- consume up to the maximum value provided. The default is 15.+    simulationUnitLimit :: Prelude.Maybe Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Compute' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'computeType', 'compute_computeType' - Compute type information for the simulation job.+--+-- 'gpuUnitLimit', 'compute_gpuUnitLimit' - Compute GPU unit limit for the simulation job. It is the same as the+-- number of GPUs allocated to the SimulationJob.+--+-- 'simulationUnitLimit', 'compute_simulationUnitLimit' - The simulation unit limit. Your simulation is allocated CPU and memory+-- proportional to the supplied simulation unit limit. A simulation unit is+-- 1 vcpu and 2GB of memory. You are only billed for the SU utilization you+-- consume up to the maximum value provided. The default is 15.+newCompute ::+  Compute+newCompute =+  Compute'+    { computeType = Prelude.Nothing,+      gpuUnitLimit = Prelude.Nothing,+      simulationUnitLimit = Prelude.Nothing+    }++-- | Compute type information for the simulation job.+compute_computeType :: Lens.Lens' Compute (Prelude.Maybe ComputeType)+compute_computeType = Lens.lens (\Compute' {computeType} -> computeType) (\s@Compute' {} a -> s {computeType = a} :: Compute)++-- | Compute GPU unit limit for the simulation job. It is the same as the+-- number of GPUs allocated to the SimulationJob.+compute_gpuUnitLimit :: Lens.Lens' Compute (Prelude.Maybe Prelude.Natural)+compute_gpuUnitLimit = Lens.lens (\Compute' {gpuUnitLimit} -> gpuUnitLimit) (\s@Compute' {} a -> s {gpuUnitLimit = a} :: Compute)++-- | The simulation unit limit. Your simulation is allocated CPU and memory+-- proportional to the supplied simulation unit limit. A simulation unit is+-- 1 vcpu and 2GB of memory. You are only billed for the SU utilization you+-- consume up to the maximum value provided. The default is 15.+compute_simulationUnitLimit :: Lens.Lens' Compute (Prelude.Maybe Prelude.Natural)+compute_simulationUnitLimit = Lens.lens (\Compute' {simulationUnitLimit} -> simulationUnitLimit) (\s@Compute' {} a -> s {simulationUnitLimit = a} :: Compute)++instance Data.FromJSON Compute where+  parseJSON =+    Data.withObject+      "Compute"+      ( \x ->+          Compute'+            Prelude.<$> (x Data..:? "computeType")+            Prelude.<*> (x Data..:? "gpuUnitLimit")+            Prelude.<*> (x Data..:? "simulationUnitLimit")+      )++instance Prelude.Hashable Compute where+  hashWithSalt _salt Compute' {..} =+    _salt+      `Prelude.hashWithSalt` computeType+      `Prelude.hashWithSalt` gpuUnitLimit+      `Prelude.hashWithSalt` simulationUnitLimit++instance Prelude.NFData Compute where+  rnf Compute' {..} =+    Prelude.rnf computeType+      `Prelude.seq` Prelude.rnf gpuUnitLimit+      `Prelude.seq` Prelude.rnf simulationUnitLimit++instance Data.ToJSON Compute where+  toJSON Compute' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("computeType" Data..=) Prelude.<$> computeType,+            ("gpuUnitLimit" Data..=) Prelude.<$> gpuUnitLimit,+            ("simulationUnitLimit" Data..=)+              Prelude.<$> simulationUnitLimit+          ]+      )
+ gen/Amazonka/RobOMaker/Types/ComputeResponse.hs view
@@ -0,0 +1,109 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.ComputeResponse+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.ComputeResponse 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+import Amazonka.RobOMaker.Types.ComputeType++-- | Compute information for the simulation job+--+-- /See:/ 'newComputeResponse' smart constructor.+data ComputeResponse = ComputeResponse'+  { -- | Compute type response information for the simulation job.+    computeType :: Prelude.Maybe ComputeType,+    -- | Compute GPU unit limit for the simulation job. It is the same as the+    -- number of GPUs allocated to the SimulationJob.+    gpuUnitLimit :: Prelude.Maybe Prelude.Natural,+    -- | The simulation unit limit. Your simulation is allocated CPU and memory+    -- proportional to the supplied simulation unit limit. A simulation unit is+    -- 1 vcpu and 2GB of memory. You are only billed for the SU utilization you+    -- consume up to the maximum value provided. The default is 15.+    simulationUnitLimit :: Prelude.Maybe Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ComputeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'computeType', 'computeResponse_computeType' - Compute type response information for the simulation job.+--+-- 'gpuUnitLimit', 'computeResponse_gpuUnitLimit' - Compute GPU unit limit for the simulation job. It is the same as the+-- number of GPUs allocated to the SimulationJob.+--+-- 'simulationUnitLimit', 'computeResponse_simulationUnitLimit' - The simulation unit limit. Your simulation is allocated CPU and memory+-- proportional to the supplied simulation unit limit. A simulation unit is+-- 1 vcpu and 2GB of memory. You are only billed for the SU utilization you+-- consume up to the maximum value provided. The default is 15.+newComputeResponse ::+  ComputeResponse+newComputeResponse =+  ComputeResponse'+    { computeType = Prelude.Nothing,+      gpuUnitLimit = Prelude.Nothing,+      simulationUnitLimit = Prelude.Nothing+    }++-- | Compute type response information for the simulation job.+computeResponse_computeType :: Lens.Lens' ComputeResponse (Prelude.Maybe ComputeType)+computeResponse_computeType = Lens.lens (\ComputeResponse' {computeType} -> computeType) (\s@ComputeResponse' {} a -> s {computeType = a} :: ComputeResponse)++-- | Compute GPU unit limit for the simulation job. It is the same as the+-- number of GPUs allocated to the SimulationJob.+computeResponse_gpuUnitLimit :: Lens.Lens' ComputeResponse (Prelude.Maybe Prelude.Natural)+computeResponse_gpuUnitLimit = Lens.lens (\ComputeResponse' {gpuUnitLimit} -> gpuUnitLimit) (\s@ComputeResponse' {} a -> s {gpuUnitLimit = a} :: ComputeResponse)++-- | The simulation unit limit. Your simulation is allocated CPU and memory+-- proportional to the supplied simulation unit limit. A simulation unit is+-- 1 vcpu and 2GB of memory. You are only billed for the SU utilization you+-- consume up to the maximum value provided. The default is 15.+computeResponse_simulationUnitLimit :: Lens.Lens' ComputeResponse (Prelude.Maybe Prelude.Natural)+computeResponse_simulationUnitLimit = Lens.lens (\ComputeResponse' {simulationUnitLimit} -> simulationUnitLimit) (\s@ComputeResponse' {} a -> s {simulationUnitLimit = a} :: ComputeResponse)++instance Data.FromJSON ComputeResponse where+  parseJSON =+    Data.withObject+      "ComputeResponse"+      ( \x ->+          ComputeResponse'+            Prelude.<$> (x Data..:? "computeType")+            Prelude.<*> (x Data..:? "gpuUnitLimit")+            Prelude.<*> (x Data..:? "simulationUnitLimit")+      )++instance Prelude.Hashable ComputeResponse where+  hashWithSalt _salt ComputeResponse' {..} =+    _salt+      `Prelude.hashWithSalt` computeType+      `Prelude.hashWithSalt` gpuUnitLimit+      `Prelude.hashWithSalt` simulationUnitLimit++instance Prelude.NFData ComputeResponse where+  rnf ComputeResponse' {..} =+    Prelude.rnf computeType+      `Prelude.seq` Prelude.rnf gpuUnitLimit+      `Prelude.seq` Prelude.rnf simulationUnitLimit
+ gen/Amazonka/RobOMaker/Types/ComputeType.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.RobOMaker.Types.ComputeType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.ComputeType+  ( ComputeType+      ( ..,+        ComputeType_CPU,+        ComputeType_GPU_AND_CPU+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ComputeType = ComputeType'+  { fromComputeType ::+      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 ComputeType_CPU :: ComputeType+pattern ComputeType_CPU = ComputeType' "CPU"++pattern ComputeType_GPU_AND_CPU :: ComputeType+pattern ComputeType_GPU_AND_CPU = ComputeType' "GPU_AND_CPU"++{-# COMPLETE+  ComputeType_CPU,+  ComputeType_GPU_AND_CPU,+  ComputeType'+  #-}
+ gen/Amazonka/RobOMaker/Types/DataSource.hs view
@@ -0,0 +1,170 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.DataSource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.DataSource where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.RobOMaker.Types.DataSourceType+import Amazonka.RobOMaker.Types.S3KeyOutput++-- | Information about a data source.+--+-- /See:/ 'newDataSource' smart constructor.+data DataSource = DataSource'+  { -- | The location where your files are mounted in the container image.+    --+    -- If you\'ve specified the @type@ of the data source as an @Archive@, you+    -- must provide an Amazon S3 object key to your archive. The object key+    -- must point to either a @.zip@ or @.tar.gz@ file.+    --+    -- If you\'ve specified the @type@ of the data source as a @Prefix@, you+    -- provide the Amazon S3 prefix that points to the files that you are using+    -- for your data source.+    --+    -- If you\'ve specified the @type@ of the data source as a @File@, you+    -- provide the Amazon S3 path to the file that you\'re using as your data+    -- source.+    destination :: Prelude.Maybe Prelude.Text,+    -- | The name of the data source.+    name :: Prelude.Maybe Prelude.Text,+    -- | The S3 bucket where the data files are located.+    s3Bucket :: Prelude.Maybe Prelude.Text,+    -- | The list of S3 keys identifying the data source files.+    s3Keys :: Prelude.Maybe [S3KeyOutput],+    -- | The data type for the data source that you\'re using for your container+    -- image or simulation job. You can use this field to specify whether your+    -- data source is an Archive, an Amazon S3 prefix, or a file.+    --+    -- If you don\'t specify a field, the default value is @File@.+    type' :: Prelude.Maybe DataSourceType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataSource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'destination', 'dataSource_destination' - The location where your files are mounted in the container image.+--+-- If you\'ve specified the @type@ of the data source as an @Archive@, you+-- must provide an Amazon S3 object key to your archive. The object key+-- must point to either a @.zip@ or @.tar.gz@ file.+--+-- If you\'ve specified the @type@ of the data source as a @Prefix@, you+-- provide the Amazon S3 prefix that points to the files that you are using+-- for your data source.+--+-- If you\'ve specified the @type@ of the data source as a @File@, you+-- provide the Amazon S3 path to the file that you\'re using as your data+-- source.+--+-- 'name', 'dataSource_name' - The name of the data source.+--+-- 's3Bucket', 'dataSource_s3Bucket' - The S3 bucket where the data files are located.+--+-- 's3Keys', 'dataSource_s3Keys' - The list of S3 keys identifying the data source files.+--+-- 'type'', 'dataSource_type' - The data type for the data source that you\'re using for your container+-- image or simulation job. You can use this field to specify whether your+-- data source is an Archive, an Amazon S3 prefix, or a file.+--+-- If you don\'t specify a field, the default value is @File@.+newDataSource ::+  DataSource+newDataSource =+  DataSource'+    { destination = Prelude.Nothing,+      name = Prelude.Nothing,+      s3Bucket = Prelude.Nothing,+      s3Keys = Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | The location where your files are mounted in the container image.+--+-- If you\'ve specified the @type@ of the data source as an @Archive@, you+-- must provide an Amazon S3 object key to your archive. The object key+-- must point to either a @.zip@ or @.tar.gz@ file.+--+-- If you\'ve specified the @type@ of the data source as a @Prefix@, you+-- provide the Amazon S3 prefix that points to the files that you are using+-- for your data source.+--+-- If you\'ve specified the @type@ of the data source as a @File@, you+-- provide the Amazon S3 path to the file that you\'re using as your data+-- source.+dataSource_destination :: Lens.Lens' DataSource (Prelude.Maybe Prelude.Text)+dataSource_destination = Lens.lens (\DataSource' {destination} -> destination) (\s@DataSource' {} a -> s {destination = a} :: DataSource)++-- | The name of the data source.+dataSource_name :: Lens.Lens' DataSource (Prelude.Maybe Prelude.Text)+dataSource_name = Lens.lens (\DataSource' {name} -> name) (\s@DataSource' {} a -> s {name = a} :: DataSource)++-- | The S3 bucket where the data files are located.+dataSource_s3Bucket :: Lens.Lens' DataSource (Prelude.Maybe Prelude.Text)+dataSource_s3Bucket = Lens.lens (\DataSource' {s3Bucket} -> s3Bucket) (\s@DataSource' {} a -> s {s3Bucket = a} :: DataSource)++-- | The list of S3 keys identifying the data source files.+dataSource_s3Keys :: Lens.Lens' DataSource (Prelude.Maybe [S3KeyOutput])+dataSource_s3Keys = Lens.lens (\DataSource' {s3Keys} -> s3Keys) (\s@DataSource' {} a -> s {s3Keys = a} :: DataSource) Prelude.. Lens.mapping Lens.coerced++-- | The data type for the data source that you\'re using for your container+-- image or simulation job. You can use this field to specify whether your+-- data source is an Archive, an Amazon S3 prefix, or a file.+--+-- If you don\'t specify a field, the default value is @File@.+dataSource_type :: Lens.Lens' DataSource (Prelude.Maybe DataSourceType)+dataSource_type = Lens.lens (\DataSource' {type'} -> type') (\s@DataSource' {} a -> s {type' = a} :: DataSource)++instance Data.FromJSON DataSource where+  parseJSON =+    Data.withObject+      "DataSource"+      ( \x ->+          DataSource'+            Prelude.<$> (x Data..:? "destination")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "s3Bucket")+            Prelude.<*> (x Data..:? "s3Keys" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "type")+      )++instance Prelude.Hashable DataSource where+  hashWithSalt _salt DataSource' {..} =+    _salt+      `Prelude.hashWithSalt` destination+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` s3Bucket+      `Prelude.hashWithSalt` s3Keys+      `Prelude.hashWithSalt` type'++instance Prelude.NFData DataSource where+  rnf DataSource' {..} =+    Prelude.rnf destination+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf s3Bucket+      `Prelude.seq` Prelude.rnf s3Keys+      `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/RobOMaker/Types/DataSourceConfig.hs view
@@ -0,0 +1,187 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.DataSourceConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.DataSourceConfig 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+import Amazonka.RobOMaker.Types.DataSourceType++-- | Information about a data source.+--+-- /See:/ 'newDataSourceConfig' smart constructor.+data DataSourceConfig = DataSourceConfig'+  { -- | The location where your files are mounted in the container image.+    --+    -- If you\'ve specified the @type@ of the data source as an @Archive@, you+    -- must provide an Amazon S3 object key to your archive. The object key+    -- must point to either a @.zip@ or @.tar.gz@ file.+    --+    -- If you\'ve specified the @type@ of the data source as a @Prefix@, you+    -- provide the Amazon S3 prefix that points to the files that you are using+    -- for your data source.+    --+    -- If you\'ve specified the @type@ of the data source as a @File@, you+    -- provide the Amazon S3 path to the file that you\'re using as your data+    -- source.+    destination :: Prelude.Maybe Prelude.Text,+    -- | The data type for the data source that you\'re using for your container+    -- image or simulation job. You can use this field to specify whether your+    -- data source is an Archive, an Amazon S3 prefix, or a file.+    --+    -- If you don\'t specify a field, the default value is @File@.+    type' :: Prelude.Maybe DataSourceType,+    -- | The name of the data source.+    name :: Prelude.Text,+    -- | The S3 bucket where the data files are located.+    s3Bucket :: Prelude.Text,+    -- | The list of S3 keys identifying the data source files.+    s3Keys :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataSourceConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'destination', 'dataSourceConfig_destination' - The location where your files are mounted in the container image.+--+-- If you\'ve specified the @type@ of the data source as an @Archive@, you+-- must provide an Amazon S3 object key to your archive. The object key+-- must point to either a @.zip@ or @.tar.gz@ file.+--+-- If you\'ve specified the @type@ of the data source as a @Prefix@, you+-- provide the Amazon S3 prefix that points to the files that you are using+-- for your data source.+--+-- If you\'ve specified the @type@ of the data source as a @File@, you+-- provide the Amazon S3 path to the file that you\'re using as your data+-- source.+--+-- 'type'', 'dataSourceConfig_type' - The data type for the data source that you\'re using for your container+-- image or simulation job. You can use this field to specify whether your+-- data source is an Archive, an Amazon S3 prefix, or a file.+--+-- If you don\'t specify a field, the default value is @File@.+--+-- 'name', 'dataSourceConfig_name' - The name of the data source.+--+-- 's3Bucket', 'dataSourceConfig_s3Bucket' - The S3 bucket where the data files are located.+--+-- 's3Keys', 'dataSourceConfig_s3Keys' - The list of S3 keys identifying the data source files.+newDataSourceConfig ::+  -- | 'name'+  Prelude.Text ->+  -- | 's3Bucket'+  Prelude.Text ->+  -- | 's3Keys'+  Prelude.NonEmpty Prelude.Text ->+  DataSourceConfig+newDataSourceConfig pName_ pS3Bucket_ pS3Keys_ =+  DataSourceConfig'+    { destination = Prelude.Nothing,+      type' = Prelude.Nothing,+      name = pName_,+      s3Bucket = pS3Bucket_,+      s3Keys = Lens.coerced Lens.# pS3Keys_+    }++-- | The location where your files are mounted in the container image.+--+-- If you\'ve specified the @type@ of the data source as an @Archive@, you+-- must provide an Amazon S3 object key to your archive. The object key+-- must point to either a @.zip@ or @.tar.gz@ file.+--+-- If you\'ve specified the @type@ of the data source as a @Prefix@, you+-- provide the Amazon S3 prefix that points to the files that you are using+-- for your data source.+--+-- If you\'ve specified the @type@ of the data source as a @File@, you+-- provide the Amazon S3 path to the file that you\'re using as your data+-- source.+dataSourceConfig_destination :: Lens.Lens' DataSourceConfig (Prelude.Maybe Prelude.Text)+dataSourceConfig_destination = Lens.lens (\DataSourceConfig' {destination} -> destination) (\s@DataSourceConfig' {} a -> s {destination = a} :: DataSourceConfig)++-- | The data type for the data source that you\'re using for your container+-- image or simulation job. You can use this field to specify whether your+-- data source is an Archive, an Amazon S3 prefix, or a file.+--+-- If you don\'t specify a field, the default value is @File@.+dataSourceConfig_type :: Lens.Lens' DataSourceConfig (Prelude.Maybe DataSourceType)+dataSourceConfig_type = Lens.lens (\DataSourceConfig' {type'} -> type') (\s@DataSourceConfig' {} a -> s {type' = a} :: DataSourceConfig)++-- | The name of the data source.+dataSourceConfig_name :: Lens.Lens' DataSourceConfig Prelude.Text+dataSourceConfig_name = Lens.lens (\DataSourceConfig' {name} -> name) (\s@DataSourceConfig' {} a -> s {name = a} :: DataSourceConfig)++-- | The S3 bucket where the data files are located.+dataSourceConfig_s3Bucket :: Lens.Lens' DataSourceConfig Prelude.Text+dataSourceConfig_s3Bucket = Lens.lens (\DataSourceConfig' {s3Bucket} -> s3Bucket) (\s@DataSourceConfig' {} a -> s {s3Bucket = a} :: DataSourceConfig)++-- | The list of S3 keys identifying the data source files.+dataSourceConfig_s3Keys :: Lens.Lens' DataSourceConfig (Prelude.NonEmpty Prelude.Text)+dataSourceConfig_s3Keys = Lens.lens (\DataSourceConfig' {s3Keys} -> s3Keys) (\s@DataSourceConfig' {} a -> s {s3Keys = a} :: DataSourceConfig) Prelude.. Lens.coerced++instance Data.FromJSON DataSourceConfig where+  parseJSON =+    Data.withObject+      "DataSourceConfig"+      ( \x ->+          DataSourceConfig'+            Prelude.<$> (x Data..:? "destination")+            Prelude.<*> (x Data..:? "type")+            Prelude.<*> (x Data..: "name")+            Prelude.<*> (x Data..: "s3Bucket")+            Prelude.<*> (x Data..: "s3Keys")+      )++instance Prelude.Hashable DataSourceConfig where+  hashWithSalt _salt DataSourceConfig' {..} =+    _salt+      `Prelude.hashWithSalt` destination+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` s3Bucket+      `Prelude.hashWithSalt` s3Keys++instance Prelude.NFData DataSourceConfig where+  rnf DataSourceConfig' {..} =+    Prelude.rnf destination+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf s3Bucket+      `Prelude.seq` Prelude.rnf s3Keys++instance Data.ToJSON DataSourceConfig where+  toJSON DataSourceConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("destination" Data..=) Prelude.<$> destination,+            ("type" Data..=) Prelude.<$> type',+            Prelude.Just ("name" Data..= name),+            Prelude.Just ("s3Bucket" Data..= s3Bucket),+            Prelude.Just ("s3Keys" Data..= s3Keys)+          ]+      )
+ gen/Amazonka/RobOMaker/Types/DataSourceType.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.DataSourceType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.DataSourceType+  ( DataSourceType+      ( ..,+        DataSourceType_Archive,+        DataSourceType_File,+        DataSourceType_Prefix+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DataSourceType = DataSourceType'+  { fromDataSourceType ::+      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 DataSourceType_Archive :: DataSourceType+pattern DataSourceType_Archive = DataSourceType' "Archive"++pattern DataSourceType_File :: DataSourceType+pattern DataSourceType_File = DataSourceType' "File"++pattern DataSourceType_Prefix :: DataSourceType+pattern DataSourceType_Prefix = DataSourceType' "Prefix"++{-# COMPLETE+  DataSourceType_Archive,+  DataSourceType_File,+  DataSourceType_Prefix,+  DataSourceType'+  #-}
+ gen/Amazonka/RobOMaker/Types/Environment.hs view
@@ -0,0 +1,70 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.Environment+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.Environment 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 object that contains the Docker image URI for either your robot or+-- simulation applications.+--+-- /See:/ 'newEnvironment' smart constructor.+data Environment = Environment'+  { -- | The Docker image URI for either your robot or simulation applications.+    uri :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Environment' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'uri', 'environment_uri' - The Docker image URI for either your robot or simulation applications.+newEnvironment ::+  Environment+newEnvironment = Environment' {uri = Prelude.Nothing}++-- | The Docker image URI for either your robot or simulation applications.+environment_uri :: Lens.Lens' Environment (Prelude.Maybe Prelude.Text)+environment_uri = Lens.lens (\Environment' {uri} -> uri) (\s@Environment' {} a -> s {uri = a} :: Environment)++instance Data.FromJSON Environment where+  parseJSON =+    Data.withObject+      "Environment"+      (\x -> Environment' Prelude.<$> (x Data..:? "uri"))++instance Prelude.Hashable Environment where+  hashWithSalt _salt Environment' {..} =+    _salt `Prelude.hashWithSalt` uri++instance Prelude.NFData Environment where+  rnf Environment' {..} = Prelude.rnf uri++instance Data.ToJSON Environment where+  toJSON Environment' {..} =+    Data.object+      (Prelude.catMaybes [("uri" Data..=) Prelude.<$> uri])
+ gen/Amazonka/RobOMaker/Types/ExitBehavior.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.RobOMaker.Types.ExitBehavior+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.ExitBehavior+  ( ExitBehavior+      ( ..,+        ExitBehavior_FAIL,+        ExitBehavior_RESTART+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ExitBehavior = ExitBehavior'+  { fromExitBehavior ::+      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 ExitBehavior_FAIL :: ExitBehavior+pattern ExitBehavior_FAIL = ExitBehavior' "FAIL"++pattern ExitBehavior_RESTART :: ExitBehavior+pattern ExitBehavior_RESTART = ExitBehavior' "RESTART"++{-# COMPLETE+  ExitBehavior_FAIL,+  ExitBehavior_RESTART,+  ExitBehavior'+  #-}
+ gen/Amazonka/RobOMaker/Types/FailedCreateSimulationJobRequest.hs view
@@ -0,0 +1,125 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.FailedCreateSimulationJobRequest+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.FailedCreateSimulationJobRequest 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+import Amazonka.RobOMaker.Types.SimulationJobErrorCode+import Amazonka.RobOMaker.Types.SimulationJobRequest++-- | Information about a failed create simulation job request.+--+-- /See:/ 'newFailedCreateSimulationJobRequest' smart constructor.+data FailedCreateSimulationJobRequest = FailedCreateSimulationJobRequest'+  { -- | The time, in milliseconds since the epoch, when the simulation job batch+    -- failed.+    failedAt :: Prelude.Maybe Data.POSIX,+    -- | The failure code.+    failureCode :: Prelude.Maybe SimulationJobErrorCode,+    -- | The failure reason of the simulation job request.+    failureReason :: Prelude.Maybe Prelude.Text,+    -- | The simulation job request.+    request :: Prelude.Maybe SimulationJobRequest+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FailedCreateSimulationJobRequest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'failedAt', 'failedCreateSimulationJobRequest_failedAt' - The time, in milliseconds since the epoch, when the simulation job batch+-- failed.+--+-- 'failureCode', 'failedCreateSimulationJobRequest_failureCode' - The failure code.+--+-- 'failureReason', 'failedCreateSimulationJobRequest_failureReason' - The failure reason of the simulation job request.+--+-- 'request', 'failedCreateSimulationJobRequest_request' - The simulation job request.+newFailedCreateSimulationJobRequest ::+  FailedCreateSimulationJobRequest+newFailedCreateSimulationJobRequest =+  FailedCreateSimulationJobRequest'+    { failedAt =+        Prelude.Nothing,+      failureCode = Prelude.Nothing,+      failureReason = Prelude.Nothing,+      request = Prelude.Nothing+    }++-- | The time, in milliseconds since the epoch, when the simulation job batch+-- failed.+failedCreateSimulationJobRequest_failedAt :: Lens.Lens' FailedCreateSimulationJobRequest (Prelude.Maybe Prelude.UTCTime)+failedCreateSimulationJobRequest_failedAt = Lens.lens (\FailedCreateSimulationJobRequest' {failedAt} -> failedAt) (\s@FailedCreateSimulationJobRequest' {} a -> s {failedAt = a} :: FailedCreateSimulationJobRequest) Prelude.. Lens.mapping Data._Time++-- | The failure code.+failedCreateSimulationJobRequest_failureCode :: Lens.Lens' FailedCreateSimulationJobRequest (Prelude.Maybe SimulationJobErrorCode)+failedCreateSimulationJobRequest_failureCode = Lens.lens (\FailedCreateSimulationJobRequest' {failureCode} -> failureCode) (\s@FailedCreateSimulationJobRequest' {} a -> s {failureCode = a} :: FailedCreateSimulationJobRequest)++-- | The failure reason of the simulation job request.+failedCreateSimulationJobRequest_failureReason :: Lens.Lens' FailedCreateSimulationJobRequest (Prelude.Maybe Prelude.Text)+failedCreateSimulationJobRequest_failureReason = Lens.lens (\FailedCreateSimulationJobRequest' {failureReason} -> failureReason) (\s@FailedCreateSimulationJobRequest' {} a -> s {failureReason = a} :: FailedCreateSimulationJobRequest)++-- | The simulation job request.+failedCreateSimulationJobRequest_request :: Lens.Lens' FailedCreateSimulationJobRequest (Prelude.Maybe SimulationJobRequest)+failedCreateSimulationJobRequest_request = Lens.lens (\FailedCreateSimulationJobRequest' {request} -> request) (\s@FailedCreateSimulationJobRequest' {} a -> s {request = a} :: FailedCreateSimulationJobRequest)++instance+  Data.FromJSON+    FailedCreateSimulationJobRequest+  where+  parseJSON =+    Data.withObject+      "FailedCreateSimulationJobRequest"+      ( \x ->+          FailedCreateSimulationJobRequest'+            Prelude.<$> (x Data..:? "failedAt")+            Prelude.<*> (x Data..:? "failureCode")+            Prelude.<*> (x Data..:? "failureReason")+            Prelude.<*> (x Data..:? "request")+      )++instance+  Prelude.Hashable+    FailedCreateSimulationJobRequest+  where+  hashWithSalt+    _salt+    FailedCreateSimulationJobRequest' {..} =+      _salt+        `Prelude.hashWithSalt` failedAt+        `Prelude.hashWithSalt` failureCode+        `Prelude.hashWithSalt` failureReason+        `Prelude.hashWithSalt` request++instance+  Prelude.NFData+    FailedCreateSimulationJobRequest+  where+  rnf FailedCreateSimulationJobRequest' {..} =+    Prelude.rnf failedAt+      `Prelude.seq` Prelude.rnf failureCode+      `Prelude.seq` Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf request
+ gen/Amazonka/RobOMaker/Types/FailureBehavior.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.RobOMaker.Types.FailureBehavior+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.FailureBehavior+  ( FailureBehavior+      ( ..,+        FailureBehavior_Continue,+        FailureBehavior_Fail+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype FailureBehavior = FailureBehavior'+  { fromFailureBehavior ::+      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 FailureBehavior_Continue :: FailureBehavior+pattern FailureBehavior_Continue = FailureBehavior' "Continue"++pattern FailureBehavior_Fail :: FailureBehavior+pattern FailureBehavior_Fail = FailureBehavior' "Fail"++{-# COMPLETE+  FailureBehavior_Continue,+  FailureBehavior_Fail,+  FailureBehavior'+  #-}
+ gen/Amazonka/RobOMaker/Types/FailureSummary.hs view
@@ -0,0 +1,85 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.FailureSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.FailureSummary 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+import Amazonka.RobOMaker.Types.WorldFailure++-- | Information about worlds that failed.+--+-- /See:/ 'newFailureSummary' smart constructor.+data FailureSummary = FailureSummary'+  { -- | The worlds that failed.+    failures :: Prelude.Maybe [WorldFailure],+    -- | The total number of failures.+    totalFailureCount :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FailureSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'failures', 'failureSummary_failures' - The worlds that failed.+--+-- 'totalFailureCount', 'failureSummary_totalFailureCount' - The total number of failures.+newFailureSummary ::+  FailureSummary+newFailureSummary =+  FailureSummary'+    { failures = Prelude.Nothing,+      totalFailureCount = Prelude.Nothing+    }++-- | The worlds that failed.+failureSummary_failures :: Lens.Lens' FailureSummary (Prelude.Maybe [WorldFailure])+failureSummary_failures = Lens.lens (\FailureSummary' {failures} -> failures) (\s@FailureSummary' {} a -> s {failures = a} :: FailureSummary) Prelude.. Lens.mapping Lens.coerced++-- | The total number of failures.+failureSummary_totalFailureCount :: Lens.Lens' FailureSummary (Prelude.Maybe Prelude.Int)+failureSummary_totalFailureCount = Lens.lens (\FailureSummary' {totalFailureCount} -> totalFailureCount) (\s@FailureSummary' {} a -> s {totalFailureCount = a} :: FailureSummary)++instance Data.FromJSON FailureSummary where+  parseJSON =+    Data.withObject+      "FailureSummary"+      ( \x ->+          FailureSummary'+            Prelude.<$> (x Data..:? "failures" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "totalFailureCount")+      )++instance Prelude.Hashable FailureSummary where+  hashWithSalt _salt FailureSummary' {..} =+    _salt+      `Prelude.hashWithSalt` failures+      `Prelude.hashWithSalt` totalFailureCount++instance Prelude.NFData FailureSummary where+  rnf FailureSummary' {..} =+    Prelude.rnf failures+      `Prelude.seq` Prelude.rnf totalFailureCount
+ gen/Amazonka/RobOMaker/Types/Filter.hs view
@@ -0,0 +1,82 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.Filter+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.Filter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about a filter.+--+-- /See:/ 'newFilter' smart constructor.+data Filter = Filter'+  { -- | The name of the filter.+    name :: Prelude.Maybe Prelude.Text,+    -- | A list of values.+    values :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Filter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'filter_name' - The name of the filter.+--+-- 'values', 'filter_values' - A list of values.+newFilter ::+  Filter+newFilter =+  Filter'+    { name = Prelude.Nothing,+      values = Prelude.Nothing+    }++-- | The name of the filter.+filter_name :: Lens.Lens' Filter (Prelude.Maybe Prelude.Text)+filter_name = Lens.lens (\Filter' {name} -> name) (\s@Filter' {} a -> s {name = a} :: Filter)++-- | A list of values.+filter_values :: Lens.Lens' Filter (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+filter_values = Lens.lens (\Filter' {values} -> values) (\s@Filter' {} a -> s {values = a} :: Filter) Prelude.. Lens.mapping Lens.coerced++instance Prelude.Hashable Filter where+  hashWithSalt _salt Filter' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` values++instance Prelude.NFData Filter where+  rnf Filter' {..} =+    Prelude.rnf name `Prelude.seq` Prelude.rnf values++instance Data.ToJSON Filter where+  toJSON Filter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("name" Data..=) Prelude.<$> name,+            ("values" Data..=) Prelude.<$> values+          ]+      )
+ gen/Amazonka/RobOMaker/Types/FinishedWorldsSummary.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.RobOMaker.Types.FinishedWorldsSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.FinishedWorldsSummary 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+import Amazonka.RobOMaker.Types.FailureSummary++-- | Information about worlds that finished.+--+-- /See:/ 'newFinishedWorldsSummary' smart constructor.+data FinishedWorldsSummary = FinishedWorldsSummary'+  { -- | Information about worlds that failed.+    failureSummary :: Prelude.Maybe FailureSummary,+    -- | The total number of finished worlds.+    finishedCount :: Prelude.Maybe Prelude.Int,+    -- | A list of worlds that succeeded.+    succeededWorlds :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FinishedWorldsSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'failureSummary', 'finishedWorldsSummary_failureSummary' - Information about worlds that failed.+--+-- 'finishedCount', 'finishedWorldsSummary_finishedCount' - The total number of finished worlds.+--+-- 'succeededWorlds', 'finishedWorldsSummary_succeededWorlds' - A list of worlds that succeeded.+newFinishedWorldsSummary ::+  FinishedWorldsSummary+newFinishedWorldsSummary =+  FinishedWorldsSummary'+    { failureSummary =+        Prelude.Nothing,+      finishedCount = Prelude.Nothing,+      succeededWorlds = Prelude.Nothing+    }++-- | Information about worlds that failed.+finishedWorldsSummary_failureSummary :: Lens.Lens' FinishedWorldsSummary (Prelude.Maybe FailureSummary)+finishedWorldsSummary_failureSummary = Lens.lens (\FinishedWorldsSummary' {failureSummary} -> failureSummary) (\s@FinishedWorldsSummary' {} a -> s {failureSummary = a} :: FinishedWorldsSummary)++-- | The total number of finished worlds.+finishedWorldsSummary_finishedCount :: Lens.Lens' FinishedWorldsSummary (Prelude.Maybe Prelude.Int)+finishedWorldsSummary_finishedCount = Lens.lens (\FinishedWorldsSummary' {finishedCount} -> finishedCount) (\s@FinishedWorldsSummary' {} a -> s {finishedCount = a} :: FinishedWorldsSummary)++-- | A list of worlds that succeeded.+finishedWorldsSummary_succeededWorlds :: Lens.Lens' FinishedWorldsSummary (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+finishedWorldsSummary_succeededWorlds = Lens.lens (\FinishedWorldsSummary' {succeededWorlds} -> succeededWorlds) (\s@FinishedWorldsSummary' {} a -> s {succeededWorlds = a} :: FinishedWorldsSummary) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON FinishedWorldsSummary where+  parseJSON =+    Data.withObject+      "FinishedWorldsSummary"+      ( \x ->+          FinishedWorldsSummary'+            Prelude.<$> (x Data..:? "failureSummary")+            Prelude.<*> (x Data..:? "finishedCount")+            Prelude.<*> (x Data..:? "succeededWorlds")+      )++instance Prelude.Hashable FinishedWorldsSummary where+  hashWithSalt _salt FinishedWorldsSummary' {..} =+    _salt+      `Prelude.hashWithSalt` failureSummary+      `Prelude.hashWithSalt` finishedCount+      `Prelude.hashWithSalt` succeededWorlds++instance Prelude.NFData FinishedWorldsSummary where+  rnf FinishedWorldsSummary' {..} =+    Prelude.rnf failureSummary+      `Prelude.seq` Prelude.rnf finishedCount+      `Prelude.seq` Prelude.rnf succeededWorlds
+ gen/Amazonka/RobOMaker/Types/LaunchConfig.hs view
@@ -0,0 +1,181 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.LaunchConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.LaunchConfig 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+import Amazonka.RobOMaker.Types.PortForwardingConfig++-- | Information about a launch configuration.+--+-- /See:/ 'newLaunchConfig' smart constructor.+data LaunchConfig = LaunchConfig'+  { -- | If you\'ve specified @General@ as the value for your+    -- @RobotSoftwareSuite@, you can use this field to specify a list of+    -- commands for your container image.+    --+    -- If you\'ve specified @SimulationRuntime@ as the value for your+    -- @SimulationSoftwareSuite@, you can use this field to specify a list of+    -- commands for your container image.+    command :: Prelude.Maybe [Prelude.Text],+    -- | The environment variables for the application launch.+    environmentVariables :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The launch file name.+    launchFile :: Prelude.Maybe Prelude.Text,+    -- | The package name.+    packageName :: Prelude.Maybe Prelude.Text,+    -- | The port forwarding configuration.+    portForwardingConfig :: Prelude.Maybe PortForwardingConfig,+    -- | Boolean indicating whether a streaming session will be configured for+    -- the application. If @True@, AWS RoboMaker will configure a connection so+    -- you can interact with your application as it is running in the+    -- simulation. You must configure and launch the component. It must have a+    -- graphical user interface.+    streamUI :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LaunchConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'command', 'launchConfig_command' - If you\'ve specified @General@ as the value for your+-- @RobotSoftwareSuite@, you can use this field to specify a list of+-- commands for your container image.+--+-- If you\'ve specified @SimulationRuntime@ as the value for your+-- @SimulationSoftwareSuite@, you can use this field to specify a list of+-- commands for your container image.+--+-- 'environmentVariables', 'launchConfig_environmentVariables' - The environment variables for the application launch.+--+-- 'launchFile', 'launchConfig_launchFile' - The launch file name.+--+-- 'packageName', 'launchConfig_packageName' - The package name.+--+-- 'portForwardingConfig', 'launchConfig_portForwardingConfig' - The port forwarding configuration.+--+-- 'streamUI', 'launchConfig_streamUI' - Boolean indicating whether a streaming session will be configured for+-- the application. If @True@, AWS RoboMaker will configure a connection so+-- you can interact with your application as it is running in the+-- simulation. You must configure and launch the component. It must have a+-- graphical user interface.+newLaunchConfig ::+  LaunchConfig+newLaunchConfig =+  LaunchConfig'+    { command = Prelude.Nothing,+      environmentVariables = Prelude.Nothing,+      launchFile = Prelude.Nothing,+      packageName = Prelude.Nothing,+      portForwardingConfig = Prelude.Nothing,+      streamUI = Prelude.Nothing+    }++-- | If you\'ve specified @General@ as the value for your+-- @RobotSoftwareSuite@, you can use this field to specify a list of+-- commands for your container image.+--+-- If you\'ve specified @SimulationRuntime@ as the value for your+-- @SimulationSoftwareSuite@, you can use this field to specify a list of+-- commands for your container image.+launchConfig_command :: Lens.Lens' LaunchConfig (Prelude.Maybe [Prelude.Text])+launchConfig_command = Lens.lens (\LaunchConfig' {command} -> command) (\s@LaunchConfig' {} a -> s {command = a} :: LaunchConfig) Prelude.. Lens.mapping Lens.coerced++-- | The environment variables for the application launch.+launchConfig_environmentVariables :: Lens.Lens' LaunchConfig (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+launchConfig_environmentVariables = Lens.lens (\LaunchConfig' {environmentVariables} -> environmentVariables) (\s@LaunchConfig' {} a -> s {environmentVariables = a} :: LaunchConfig) Prelude.. Lens.mapping Lens.coerced++-- | The launch file name.+launchConfig_launchFile :: Lens.Lens' LaunchConfig (Prelude.Maybe Prelude.Text)+launchConfig_launchFile = Lens.lens (\LaunchConfig' {launchFile} -> launchFile) (\s@LaunchConfig' {} a -> s {launchFile = a} :: LaunchConfig)++-- | The package name.+launchConfig_packageName :: Lens.Lens' LaunchConfig (Prelude.Maybe Prelude.Text)+launchConfig_packageName = Lens.lens (\LaunchConfig' {packageName} -> packageName) (\s@LaunchConfig' {} a -> s {packageName = a} :: LaunchConfig)++-- | The port forwarding configuration.+launchConfig_portForwardingConfig :: Lens.Lens' LaunchConfig (Prelude.Maybe PortForwardingConfig)+launchConfig_portForwardingConfig = Lens.lens (\LaunchConfig' {portForwardingConfig} -> portForwardingConfig) (\s@LaunchConfig' {} a -> s {portForwardingConfig = a} :: LaunchConfig)++-- | Boolean indicating whether a streaming session will be configured for+-- the application. If @True@, AWS RoboMaker will configure a connection so+-- you can interact with your application as it is running in the+-- simulation. You must configure and launch the component. It must have a+-- graphical user interface.+launchConfig_streamUI :: Lens.Lens' LaunchConfig (Prelude.Maybe Prelude.Bool)+launchConfig_streamUI = Lens.lens (\LaunchConfig' {streamUI} -> streamUI) (\s@LaunchConfig' {} a -> s {streamUI = a} :: LaunchConfig)++instance Data.FromJSON LaunchConfig where+  parseJSON =+    Data.withObject+      "LaunchConfig"+      ( \x ->+          LaunchConfig'+            Prelude.<$> (x Data..:? "command" Data..!= Prelude.mempty)+            Prelude.<*> ( x+                            Data..:? "environmentVariables"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "launchFile")+            Prelude.<*> (x Data..:? "packageName")+            Prelude.<*> (x Data..:? "portForwardingConfig")+            Prelude.<*> (x Data..:? "streamUI")+      )++instance Prelude.Hashable LaunchConfig where+  hashWithSalt _salt LaunchConfig' {..} =+    _salt+      `Prelude.hashWithSalt` command+      `Prelude.hashWithSalt` environmentVariables+      `Prelude.hashWithSalt` launchFile+      `Prelude.hashWithSalt` packageName+      `Prelude.hashWithSalt` portForwardingConfig+      `Prelude.hashWithSalt` streamUI++instance Prelude.NFData LaunchConfig where+  rnf LaunchConfig' {..} =+    Prelude.rnf command+      `Prelude.seq` Prelude.rnf environmentVariables+      `Prelude.seq` Prelude.rnf launchFile+      `Prelude.seq` Prelude.rnf packageName+      `Prelude.seq` Prelude.rnf portForwardingConfig+      `Prelude.seq` Prelude.rnf streamUI++instance Data.ToJSON LaunchConfig where+  toJSON LaunchConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("command" Data..=) Prelude.<$> command,+            ("environmentVariables" Data..=)+              Prelude.<$> environmentVariables,+            ("launchFile" Data..=) Prelude.<$> launchFile,+            ("packageName" Data..=) Prelude.<$> packageName,+            ("portForwardingConfig" Data..=)+              Prelude.<$> portForwardingConfig,+            ("streamUI" Data..=) Prelude.<$> streamUI+          ]+      )
+ gen/Amazonka/RobOMaker/Types/LoggingConfig.hs view
@@ -0,0 +1,87 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.LoggingConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.LoggingConfig 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 logging configuration.+--+-- /See:/ 'newLoggingConfig' smart constructor.+data LoggingConfig = LoggingConfig'+  { -- | A boolean indicating whether to record all ROS topics.+    --+    -- This API is no longer supported and will throw an error if used.+    recordAllRosTopics :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LoggingConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'recordAllRosTopics', 'loggingConfig_recordAllRosTopics' - A boolean indicating whether to record all ROS topics.+--+-- This API is no longer supported and will throw an error if used.+newLoggingConfig ::+  LoggingConfig+newLoggingConfig =+  LoggingConfig'+    { recordAllRosTopics =+        Prelude.Nothing+    }++-- | A boolean indicating whether to record all ROS topics.+--+-- This API is no longer supported and will throw an error if used.+loggingConfig_recordAllRosTopics :: Lens.Lens' LoggingConfig (Prelude.Maybe Prelude.Bool)+loggingConfig_recordAllRosTopics = Lens.lens (\LoggingConfig' {recordAllRosTopics} -> recordAllRosTopics) (\s@LoggingConfig' {} a -> s {recordAllRosTopics = a} :: LoggingConfig)++instance Data.FromJSON LoggingConfig where+  parseJSON =+    Data.withObject+      "LoggingConfig"+      ( \x ->+          LoggingConfig'+            Prelude.<$> (x Data..:? "recordAllRosTopics")+      )++instance Prelude.Hashable LoggingConfig where+  hashWithSalt _salt LoggingConfig' {..} =+    _salt `Prelude.hashWithSalt` recordAllRosTopics++instance Prelude.NFData LoggingConfig where+  rnf LoggingConfig' {..} =+    Prelude.rnf recordAllRosTopics++instance Data.ToJSON LoggingConfig where+  toJSON LoggingConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("recordAllRosTopics" Data..=)+              Prelude.<$> recordAllRosTopics+          ]+      )
+ gen/Amazonka/RobOMaker/Types/NetworkInterface.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.RobOMaker.Types.NetworkInterface+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.NetworkInterface where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Describes a network interface.+--+-- /See:/ 'newNetworkInterface' smart constructor.+data NetworkInterface = NetworkInterface'+  { -- | The ID of the network interface.+    networkInterfaceId :: Prelude.Maybe Prelude.Text,+    -- | The IPv4 address of the network interface within the subnet.+    privateIpAddress :: Prelude.Maybe Prelude.Text,+    -- | The IPv4 public address of the network interface.+    publicIpAddress :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NetworkInterface' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'networkInterfaceId', 'networkInterface_networkInterfaceId' - The ID of the network interface.+--+-- 'privateIpAddress', 'networkInterface_privateIpAddress' - The IPv4 address of the network interface within the subnet.+--+-- 'publicIpAddress', 'networkInterface_publicIpAddress' - The IPv4 public address of the network interface.+newNetworkInterface ::+  NetworkInterface+newNetworkInterface =+  NetworkInterface'+    { networkInterfaceId =+        Prelude.Nothing,+      privateIpAddress = Prelude.Nothing,+      publicIpAddress = Prelude.Nothing+    }++-- | The ID of the network interface.+networkInterface_networkInterfaceId :: Lens.Lens' NetworkInterface (Prelude.Maybe Prelude.Text)+networkInterface_networkInterfaceId = Lens.lens (\NetworkInterface' {networkInterfaceId} -> networkInterfaceId) (\s@NetworkInterface' {} a -> s {networkInterfaceId = a} :: NetworkInterface)++-- | The IPv4 address of the network interface within the subnet.+networkInterface_privateIpAddress :: Lens.Lens' NetworkInterface (Prelude.Maybe Prelude.Text)+networkInterface_privateIpAddress = Lens.lens (\NetworkInterface' {privateIpAddress} -> privateIpAddress) (\s@NetworkInterface' {} a -> s {privateIpAddress = a} :: NetworkInterface)++-- | The IPv4 public address of the network interface.+networkInterface_publicIpAddress :: Lens.Lens' NetworkInterface (Prelude.Maybe Prelude.Text)+networkInterface_publicIpAddress = Lens.lens (\NetworkInterface' {publicIpAddress} -> publicIpAddress) (\s@NetworkInterface' {} a -> s {publicIpAddress = a} :: NetworkInterface)++instance Data.FromJSON NetworkInterface where+  parseJSON =+    Data.withObject+      "NetworkInterface"+      ( \x ->+          NetworkInterface'+            Prelude.<$> (x Data..:? "networkInterfaceId")+            Prelude.<*> (x Data..:? "privateIpAddress")+            Prelude.<*> (x Data..:? "publicIpAddress")+      )++instance Prelude.Hashable NetworkInterface where+  hashWithSalt _salt NetworkInterface' {..} =+    _salt+      `Prelude.hashWithSalt` networkInterfaceId+      `Prelude.hashWithSalt` privateIpAddress+      `Prelude.hashWithSalt` publicIpAddress++instance Prelude.NFData NetworkInterface where+  rnf NetworkInterface' {..} =+    Prelude.rnf networkInterfaceId+      `Prelude.seq` Prelude.rnf privateIpAddress+      `Prelude.seq` Prelude.rnf publicIpAddress
+ gen/Amazonka/RobOMaker/Types/OutputLocation.hs view
@@ -0,0 +1,93 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.OutputLocation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.OutputLocation 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 output location.+--+-- /See:/ 'newOutputLocation' smart constructor.+data OutputLocation = OutputLocation'+  { -- | The S3 bucket for output.+    s3Bucket :: Prelude.Maybe Prelude.Text,+    -- | The S3 folder in the @s3Bucket@ where output files will be placed.+    s3Prefix :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OutputLocation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 's3Bucket', 'outputLocation_s3Bucket' - The S3 bucket for output.+--+-- 's3Prefix', 'outputLocation_s3Prefix' - The S3 folder in the @s3Bucket@ where output files will be placed.+newOutputLocation ::+  OutputLocation+newOutputLocation =+  OutputLocation'+    { s3Bucket = Prelude.Nothing,+      s3Prefix = Prelude.Nothing+    }++-- | The S3 bucket for output.+outputLocation_s3Bucket :: Lens.Lens' OutputLocation (Prelude.Maybe Prelude.Text)+outputLocation_s3Bucket = Lens.lens (\OutputLocation' {s3Bucket} -> s3Bucket) (\s@OutputLocation' {} a -> s {s3Bucket = a} :: OutputLocation)++-- | The S3 folder in the @s3Bucket@ where output files will be placed.+outputLocation_s3Prefix :: Lens.Lens' OutputLocation (Prelude.Maybe Prelude.Text)+outputLocation_s3Prefix = Lens.lens (\OutputLocation' {s3Prefix} -> s3Prefix) (\s@OutputLocation' {} a -> s {s3Prefix = a} :: OutputLocation)++instance Data.FromJSON OutputLocation where+  parseJSON =+    Data.withObject+      "OutputLocation"+      ( \x ->+          OutputLocation'+            Prelude.<$> (x Data..:? "s3Bucket")+            Prelude.<*> (x Data..:? "s3Prefix")+      )++instance Prelude.Hashable OutputLocation where+  hashWithSalt _salt OutputLocation' {..} =+    _salt+      `Prelude.hashWithSalt` s3Bucket+      `Prelude.hashWithSalt` s3Prefix++instance Prelude.NFData OutputLocation where+  rnf OutputLocation' {..} =+    Prelude.rnf s3Bucket+      `Prelude.seq` Prelude.rnf s3Prefix++instance Data.ToJSON OutputLocation where+  toJSON OutputLocation' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("s3Bucket" Data..=) Prelude.<$> s3Bucket,+            ("s3Prefix" Data..=) Prelude.<$> s3Prefix+          ]+      )
+ gen/Amazonka/RobOMaker/Types/PortForwardingConfig.hs view
@@ -0,0 +1,80 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.PortForwardingConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.PortForwardingConfig 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+import Amazonka.RobOMaker.Types.PortMapping++-- | Configuration information for port forwarding.+--+-- /See:/ 'newPortForwardingConfig' smart constructor.+data PortForwardingConfig = PortForwardingConfig'+  { -- | The port mappings for the configuration.+    portMappings :: Prelude.Maybe [PortMapping]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PortForwardingConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'portMappings', 'portForwardingConfig_portMappings' - The port mappings for the configuration.+newPortForwardingConfig ::+  PortForwardingConfig+newPortForwardingConfig =+  PortForwardingConfig'+    { portMappings =+        Prelude.Nothing+    }++-- | The port mappings for the configuration.+portForwardingConfig_portMappings :: Lens.Lens' PortForwardingConfig (Prelude.Maybe [PortMapping])+portForwardingConfig_portMappings = Lens.lens (\PortForwardingConfig' {portMappings} -> portMappings) (\s@PortForwardingConfig' {} a -> s {portMappings = a} :: PortForwardingConfig) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON PortForwardingConfig where+  parseJSON =+    Data.withObject+      "PortForwardingConfig"+      ( \x ->+          PortForwardingConfig'+            Prelude.<$> (x Data..:? "portMappings" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable PortForwardingConfig where+  hashWithSalt _salt PortForwardingConfig' {..} =+    _salt `Prelude.hashWithSalt` portMappings++instance Prelude.NFData PortForwardingConfig where+  rnf PortForwardingConfig' {..} =+    Prelude.rnf portMappings++instance Data.ToJSON PortForwardingConfig where+  toJSON PortForwardingConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [("portMappings" Data..=) Prelude.<$> portMappings]+      )
+ gen/Amazonka/RobOMaker/Types/PortMapping.hs view
@@ -0,0 +1,115 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.PortMapping+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.PortMapping where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | An object representing a port mapping.+--+-- /See:/ 'newPortMapping' smart constructor.+data PortMapping = PortMapping'+  { -- | A Boolean indicating whether to enable this port mapping on public IP.+    enableOnPublicIp :: Prelude.Maybe Prelude.Bool,+    -- | The port number on the simulation job instance to use as a remote+    -- connection point.+    jobPort :: Prelude.Natural,+    -- | The port number on the application.+    applicationPort :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PortMapping' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'enableOnPublicIp', 'portMapping_enableOnPublicIp' - A Boolean indicating whether to enable this port mapping on public IP.+--+-- 'jobPort', 'portMapping_jobPort' - The port number on the simulation job instance to use as a remote+-- connection point.+--+-- 'applicationPort', 'portMapping_applicationPort' - The port number on the application.+newPortMapping ::+  -- | 'jobPort'+  Prelude.Natural ->+  -- | 'applicationPort'+  Prelude.Natural ->+  PortMapping+newPortMapping pJobPort_ pApplicationPort_ =+  PortMapping'+    { enableOnPublicIp = Prelude.Nothing,+      jobPort = pJobPort_,+      applicationPort = pApplicationPort_+    }++-- | A Boolean indicating whether to enable this port mapping on public IP.+portMapping_enableOnPublicIp :: Lens.Lens' PortMapping (Prelude.Maybe Prelude.Bool)+portMapping_enableOnPublicIp = Lens.lens (\PortMapping' {enableOnPublicIp} -> enableOnPublicIp) (\s@PortMapping' {} a -> s {enableOnPublicIp = a} :: PortMapping)++-- | The port number on the simulation job instance to use as a remote+-- connection point.+portMapping_jobPort :: Lens.Lens' PortMapping Prelude.Natural+portMapping_jobPort = Lens.lens (\PortMapping' {jobPort} -> jobPort) (\s@PortMapping' {} a -> s {jobPort = a} :: PortMapping)++-- | The port number on the application.+portMapping_applicationPort :: Lens.Lens' PortMapping Prelude.Natural+portMapping_applicationPort = Lens.lens (\PortMapping' {applicationPort} -> applicationPort) (\s@PortMapping' {} a -> s {applicationPort = a} :: PortMapping)++instance Data.FromJSON PortMapping where+  parseJSON =+    Data.withObject+      "PortMapping"+      ( \x ->+          PortMapping'+            Prelude.<$> (x Data..:? "enableOnPublicIp")+            Prelude.<*> (x Data..: "jobPort")+            Prelude.<*> (x Data..: "applicationPort")+      )++instance Prelude.Hashable PortMapping where+  hashWithSalt _salt PortMapping' {..} =+    _salt+      `Prelude.hashWithSalt` enableOnPublicIp+      `Prelude.hashWithSalt` jobPort+      `Prelude.hashWithSalt` applicationPort++instance Prelude.NFData PortMapping where+  rnf PortMapping' {..} =+    Prelude.rnf enableOnPublicIp+      `Prelude.seq` Prelude.rnf jobPort+      `Prelude.seq` Prelude.rnf applicationPort++instance Data.ToJSON PortMapping where+  toJSON PortMapping' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("enableOnPublicIp" Data..=)+              Prelude.<$> enableOnPublicIp,+            Prelude.Just ("jobPort" Data..= jobPort),+            Prelude.Just+              ("applicationPort" Data..= applicationPort)+          ]+      )
+ gen/Amazonka/RobOMaker/Types/RenderingEngine.hs view
@@ -0,0 +1,93 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.RenderingEngine+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.RenderingEngine 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+import Amazonka.RobOMaker.Types.RenderingEngineType++-- | Information about a rendering engine.+--+-- /See:/ 'newRenderingEngine' smart constructor.+data RenderingEngine = RenderingEngine'+  { -- | The name of the rendering engine.+    name :: Prelude.Maybe RenderingEngineType,+    -- | The version of the rendering engine.+    version :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RenderingEngine' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'renderingEngine_name' - The name of the rendering engine.+--+-- 'version', 'renderingEngine_version' - The version of the rendering engine.+newRenderingEngine ::+  RenderingEngine+newRenderingEngine =+  RenderingEngine'+    { name = Prelude.Nothing,+      version = Prelude.Nothing+    }++-- | The name of the rendering engine.+renderingEngine_name :: Lens.Lens' RenderingEngine (Prelude.Maybe RenderingEngineType)+renderingEngine_name = Lens.lens (\RenderingEngine' {name} -> name) (\s@RenderingEngine' {} a -> s {name = a} :: RenderingEngine)++-- | The version of the rendering engine.+renderingEngine_version :: Lens.Lens' RenderingEngine (Prelude.Maybe Prelude.Text)+renderingEngine_version = Lens.lens (\RenderingEngine' {version} -> version) (\s@RenderingEngine' {} a -> s {version = a} :: RenderingEngine)++instance Data.FromJSON RenderingEngine where+  parseJSON =+    Data.withObject+      "RenderingEngine"+      ( \x ->+          RenderingEngine'+            Prelude.<$> (x Data..:? "name")+            Prelude.<*> (x Data..:? "version")+      )++instance Prelude.Hashable RenderingEngine where+  hashWithSalt _salt RenderingEngine' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` version++instance Prelude.NFData RenderingEngine where+  rnf RenderingEngine' {..} =+    Prelude.rnf name `Prelude.seq` Prelude.rnf version++instance Data.ToJSON RenderingEngine where+  toJSON RenderingEngine' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("name" Data..=) Prelude.<$> name,+            ("version" Data..=) Prelude.<$> version+          ]+      )
+ gen/Amazonka/RobOMaker/Types/RenderingEngineType.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.RobOMaker.Types.RenderingEngineType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.RenderingEngineType+  ( RenderingEngineType+      ( ..,+        RenderingEngineType_OGRE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype RenderingEngineType = RenderingEngineType'+  { fromRenderingEngineType ::+      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 RenderingEngineType_OGRE :: RenderingEngineType+pattern RenderingEngineType_OGRE = RenderingEngineType' "OGRE"++{-# COMPLETE+  RenderingEngineType_OGRE,+  RenderingEngineType'+  #-}
+ gen/Amazonka/RobOMaker/Types/RobotApplicationConfig.hs view
@@ -0,0 +1,205 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.RobotApplicationConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.RobotApplicationConfig 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+import Amazonka.RobOMaker.Types.LaunchConfig+import Amazonka.RobOMaker.Types.Tool+import Amazonka.RobOMaker.Types.UploadConfiguration++-- | Application configuration information for a robot.+--+-- /See:/ 'newRobotApplicationConfig' smart constructor.+data RobotApplicationConfig = RobotApplicationConfig'+  { -- | The version of the robot application.+    applicationVersion :: Prelude.Maybe Prelude.Text,+    -- | Information about tools configured for the robot application.+    tools :: Prelude.Maybe [Tool],+    -- | The upload configurations for the robot application.+    uploadConfigurations :: Prelude.Maybe [UploadConfiguration],+    -- | A Boolean indicating whether to use default robot application tools. The+    -- default tools are rviz, rqt, terminal and rosbag record. The default is+    -- @False@.+    --+    -- This API is no longer supported and will throw an error if used.+    useDefaultTools :: Prelude.Maybe Prelude.Bool,+    -- | A Boolean indicating whether to use default upload configurations. By+    -- default, @.ros@ and @.gazebo@ files are uploaded when the application+    -- terminates and all ROS topics will be recorded.+    --+    -- If you set this value, you must specify an @outputLocation@.+    --+    -- This API is no longer supported and will throw an error if used.+    useDefaultUploadConfigurations :: Prelude.Maybe Prelude.Bool,+    -- | The application information for the robot application.+    application :: Prelude.Text,+    -- | The launch configuration for the robot application.+    launchConfig :: LaunchConfig+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RobotApplicationConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'applicationVersion', 'robotApplicationConfig_applicationVersion' - The version of the robot application.+--+-- 'tools', 'robotApplicationConfig_tools' - Information about tools configured for the robot application.+--+-- 'uploadConfigurations', 'robotApplicationConfig_uploadConfigurations' - The upload configurations for the robot application.+--+-- 'useDefaultTools', 'robotApplicationConfig_useDefaultTools' - A Boolean indicating whether to use default robot application tools. The+-- default tools are rviz, rqt, terminal and rosbag record. The default is+-- @False@.+--+-- This API is no longer supported and will throw an error if used.+--+-- 'useDefaultUploadConfigurations', 'robotApplicationConfig_useDefaultUploadConfigurations' - A Boolean indicating whether to use default upload configurations. By+-- default, @.ros@ and @.gazebo@ files are uploaded when the application+-- terminates and all ROS topics will be recorded.+--+-- If you set this value, you must specify an @outputLocation@.+--+-- This API is no longer supported and will throw an error if used.+--+-- 'application', 'robotApplicationConfig_application' - The application information for the robot application.+--+-- 'launchConfig', 'robotApplicationConfig_launchConfig' - The launch configuration for the robot application.+newRobotApplicationConfig ::+  -- | 'application'+  Prelude.Text ->+  -- | 'launchConfig'+  LaunchConfig ->+  RobotApplicationConfig+newRobotApplicationConfig+  pApplication_+  pLaunchConfig_ =+    RobotApplicationConfig'+      { applicationVersion =+          Prelude.Nothing,+        tools = Prelude.Nothing,+        uploadConfigurations = Prelude.Nothing,+        useDefaultTools = Prelude.Nothing,+        useDefaultUploadConfigurations = Prelude.Nothing,+        application = pApplication_,+        launchConfig = pLaunchConfig_+      }++-- | The version of the robot application.+robotApplicationConfig_applicationVersion :: Lens.Lens' RobotApplicationConfig (Prelude.Maybe Prelude.Text)+robotApplicationConfig_applicationVersion = Lens.lens (\RobotApplicationConfig' {applicationVersion} -> applicationVersion) (\s@RobotApplicationConfig' {} a -> s {applicationVersion = a} :: RobotApplicationConfig)++-- | Information about tools configured for the robot application.+robotApplicationConfig_tools :: Lens.Lens' RobotApplicationConfig (Prelude.Maybe [Tool])+robotApplicationConfig_tools = Lens.lens (\RobotApplicationConfig' {tools} -> tools) (\s@RobotApplicationConfig' {} a -> s {tools = a} :: RobotApplicationConfig) Prelude.. Lens.mapping Lens.coerced++-- | The upload configurations for the robot application.+robotApplicationConfig_uploadConfigurations :: Lens.Lens' RobotApplicationConfig (Prelude.Maybe [UploadConfiguration])+robotApplicationConfig_uploadConfigurations = Lens.lens (\RobotApplicationConfig' {uploadConfigurations} -> uploadConfigurations) (\s@RobotApplicationConfig' {} a -> s {uploadConfigurations = a} :: RobotApplicationConfig) Prelude.. Lens.mapping Lens.coerced++-- | A Boolean indicating whether to use default robot application tools. The+-- default tools are rviz, rqt, terminal and rosbag record. The default is+-- @False@.+--+-- This API is no longer supported and will throw an error if used.+robotApplicationConfig_useDefaultTools :: Lens.Lens' RobotApplicationConfig (Prelude.Maybe Prelude.Bool)+robotApplicationConfig_useDefaultTools = Lens.lens (\RobotApplicationConfig' {useDefaultTools} -> useDefaultTools) (\s@RobotApplicationConfig' {} a -> s {useDefaultTools = a} :: RobotApplicationConfig)++-- | A Boolean indicating whether to use default upload configurations. By+-- default, @.ros@ and @.gazebo@ files are uploaded when the application+-- terminates and all ROS topics will be recorded.+--+-- If you set this value, you must specify an @outputLocation@.+--+-- This API is no longer supported and will throw an error if used.+robotApplicationConfig_useDefaultUploadConfigurations :: Lens.Lens' RobotApplicationConfig (Prelude.Maybe Prelude.Bool)+robotApplicationConfig_useDefaultUploadConfigurations = Lens.lens (\RobotApplicationConfig' {useDefaultUploadConfigurations} -> useDefaultUploadConfigurations) (\s@RobotApplicationConfig' {} a -> s {useDefaultUploadConfigurations = a} :: RobotApplicationConfig)++-- | The application information for the robot application.+robotApplicationConfig_application :: Lens.Lens' RobotApplicationConfig Prelude.Text+robotApplicationConfig_application = Lens.lens (\RobotApplicationConfig' {application} -> application) (\s@RobotApplicationConfig' {} a -> s {application = a} :: RobotApplicationConfig)++-- | The launch configuration for the robot application.+robotApplicationConfig_launchConfig :: Lens.Lens' RobotApplicationConfig LaunchConfig+robotApplicationConfig_launchConfig = Lens.lens (\RobotApplicationConfig' {launchConfig} -> launchConfig) (\s@RobotApplicationConfig' {} a -> s {launchConfig = a} :: RobotApplicationConfig)++instance Data.FromJSON RobotApplicationConfig where+  parseJSON =+    Data.withObject+      "RobotApplicationConfig"+      ( \x ->+          RobotApplicationConfig'+            Prelude.<$> (x Data..:? "applicationVersion")+            Prelude.<*> (x Data..:? "tools" Data..!= Prelude.mempty)+            Prelude.<*> ( x+                            Data..:? "uploadConfigurations"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "useDefaultTools")+            Prelude.<*> (x Data..:? "useDefaultUploadConfigurations")+            Prelude.<*> (x Data..: "application")+            Prelude.<*> (x Data..: "launchConfig")+      )++instance Prelude.Hashable RobotApplicationConfig where+  hashWithSalt _salt RobotApplicationConfig' {..} =+    _salt+      `Prelude.hashWithSalt` applicationVersion+      `Prelude.hashWithSalt` tools+      `Prelude.hashWithSalt` uploadConfigurations+      `Prelude.hashWithSalt` useDefaultTools+      `Prelude.hashWithSalt` useDefaultUploadConfigurations+      `Prelude.hashWithSalt` application+      `Prelude.hashWithSalt` launchConfig++instance Prelude.NFData RobotApplicationConfig where+  rnf RobotApplicationConfig' {..} =+    Prelude.rnf applicationVersion+      `Prelude.seq` Prelude.rnf tools+      `Prelude.seq` Prelude.rnf uploadConfigurations+      `Prelude.seq` Prelude.rnf useDefaultTools+      `Prelude.seq` Prelude.rnf useDefaultUploadConfigurations+      `Prelude.seq` Prelude.rnf application+      `Prelude.seq` Prelude.rnf launchConfig++instance Data.ToJSON RobotApplicationConfig where+  toJSON RobotApplicationConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("applicationVersion" Data..=)+              Prelude.<$> applicationVersion,+            ("tools" Data..=) Prelude.<$> tools,+            ("uploadConfigurations" Data..=)+              Prelude.<$> uploadConfigurations,+            ("useDefaultTools" Data..=)+              Prelude.<$> useDefaultTools,+            ("useDefaultUploadConfigurations" Data..=)+              Prelude.<$> useDefaultUploadConfigurations,+            Prelude.Just ("application" Data..= application),+            Prelude.Just ("launchConfig" Data..= launchConfig)+          ]+      )
+ gen/Amazonka/RobOMaker/Types/RobotApplicationSummary.hs view
@@ -0,0 +1,124 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.RobotApplicationSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.RobotApplicationSummary 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+import Amazonka.RobOMaker.Types.RobotSoftwareSuite++-- | Summary information for a robot application.+--+-- /See:/ 'newRobotApplicationSummary' smart constructor.+data RobotApplicationSummary = RobotApplicationSummary'+  { -- | The Amazon Resource Name (ARN) of the robot.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The time, in milliseconds since the epoch, when the robot application+    -- was last updated.+    lastUpdatedAt :: Prelude.Maybe Data.POSIX,+    -- | The name of the robot application.+    name :: Prelude.Maybe Prelude.Text,+    -- | Information about a robot software suite (ROS distribution).+    robotSoftwareSuite :: Prelude.Maybe RobotSoftwareSuite,+    -- | The version of the robot application.+    version :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RobotApplicationSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'robotApplicationSummary_arn' - The Amazon Resource Name (ARN) of the robot.+--+-- 'lastUpdatedAt', 'robotApplicationSummary_lastUpdatedAt' - The time, in milliseconds since the epoch, when the robot application+-- was last updated.+--+-- 'name', 'robotApplicationSummary_name' - The name of the robot application.+--+-- 'robotSoftwareSuite', 'robotApplicationSummary_robotSoftwareSuite' - Information about a robot software suite (ROS distribution).+--+-- 'version', 'robotApplicationSummary_version' - The version of the robot application.+newRobotApplicationSummary ::+  RobotApplicationSummary+newRobotApplicationSummary =+  RobotApplicationSummary'+    { arn = Prelude.Nothing,+      lastUpdatedAt = Prelude.Nothing,+      name = Prelude.Nothing,+      robotSoftwareSuite = Prelude.Nothing,+      version = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the robot.+robotApplicationSummary_arn :: Lens.Lens' RobotApplicationSummary (Prelude.Maybe Prelude.Text)+robotApplicationSummary_arn = Lens.lens (\RobotApplicationSummary' {arn} -> arn) (\s@RobotApplicationSummary' {} a -> s {arn = a} :: RobotApplicationSummary)++-- | The time, in milliseconds since the epoch, when the robot application+-- was last updated.+robotApplicationSummary_lastUpdatedAt :: Lens.Lens' RobotApplicationSummary (Prelude.Maybe Prelude.UTCTime)+robotApplicationSummary_lastUpdatedAt = Lens.lens (\RobotApplicationSummary' {lastUpdatedAt} -> lastUpdatedAt) (\s@RobotApplicationSummary' {} a -> s {lastUpdatedAt = a} :: RobotApplicationSummary) Prelude.. Lens.mapping Data._Time++-- | The name of the robot application.+robotApplicationSummary_name :: Lens.Lens' RobotApplicationSummary (Prelude.Maybe Prelude.Text)+robotApplicationSummary_name = Lens.lens (\RobotApplicationSummary' {name} -> name) (\s@RobotApplicationSummary' {} a -> s {name = a} :: RobotApplicationSummary)++-- | Information about a robot software suite (ROS distribution).+robotApplicationSummary_robotSoftwareSuite :: Lens.Lens' RobotApplicationSummary (Prelude.Maybe RobotSoftwareSuite)+robotApplicationSummary_robotSoftwareSuite = Lens.lens (\RobotApplicationSummary' {robotSoftwareSuite} -> robotSoftwareSuite) (\s@RobotApplicationSummary' {} a -> s {robotSoftwareSuite = a} :: RobotApplicationSummary)++-- | The version of the robot application.+robotApplicationSummary_version :: Lens.Lens' RobotApplicationSummary (Prelude.Maybe Prelude.Text)+robotApplicationSummary_version = Lens.lens (\RobotApplicationSummary' {version} -> version) (\s@RobotApplicationSummary' {} a -> s {version = a} :: RobotApplicationSummary)++instance Data.FromJSON RobotApplicationSummary where+  parseJSON =+    Data.withObject+      "RobotApplicationSummary"+      ( \x ->+          RobotApplicationSummary'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "lastUpdatedAt")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "robotSoftwareSuite")+            Prelude.<*> (x Data..:? "version")+      )++instance Prelude.Hashable RobotApplicationSummary where+  hashWithSalt _salt RobotApplicationSummary' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` lastUpdatedAt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` robotSoftwareSuite+      `Prelude.hashWithSalt` version++instance Prelude.NFData RobotApplicationSummary where+  rnf RobotApplicationSummary' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf lastUpdatedAt+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf robotSoftwareSuite+      `Prelude.seq` Prelude.rnf version
+ gen/Amazonka/RobOMaker/Types/RobotSoftwareSuite.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.RobOMaker.Types.RobotSoftwareSuite+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.RobotSoftwareSuite 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+import Amazonka.RobOMaker.Types.RobotSoftwareSuiteType+import Amazonka.RobOMaker.Types.RobotSoftwareSuiteVersionType++-- | Information about a robot software suite (ROS distribution).+--+-- /See:/ 'newRobotSoftwareSuite' smart constructor.+data RobotSoftwareSuite = RobotSoftwareSuite'+  { -- | The name of the robot software suite (ROS distribution).+    name :: Prelude.Maybe RobotSoftwareSuiteType,+    -- | The version of the robot software suite (ROS distribution).+    version :: Prelude.Maybe RobotSoftwareSuiteVersionType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RobotSoftwareSuite' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'robotSoftwareSuite_name' - The name of the robot software suite (ROS distribution).+--+-- 'version', 'robotSoftwareSuite_version' - The version of the robot software suite (ROS distribution).+newRobotSoftwareSuite ::+  RobotSoftwareSuite+newRobotSoftwareSuite =+  RobotSoftwareSuite'+    { name = Prelude.Nothing,+      version = Prelude.Nothing+    }++-- | The name of the robot software suite (ROS distribution).+robotSoftwareSuite_name :: Lens.Lens' RobotSoftwareSuite (Prelude.Maybe RobotSoftwareSuiteType)+robotSoftwareSuite_name = Lens.lens (\RobotSoftwareSuite' {name} -> name) (\s@RobotSoftwareSuite' {} a -> s {name = a} :: RobotSoftwareSuite)++-- | The version of the robot software suite (ROS distribution).+robotSoftwareSuite_version :: Lens.Lens' RobotSoftwareSuite (Prelude.Maybe RobotSoftwareSuiteVersionType)+robotSoftwareSuite_version = Lens.lens (\RobotSoftwareSuite' {version} -> version) (\s@RobotSoftwareSuite' {} a -> s {version = a} :: RobotSoftwareSuite)++instance Data.FromJSON RobotSoftwareSuite where+  parseJSON =+    Data.withObject+      "RobotSoftwareSuite"+      ( \x ->+          RobotSoftwareSuite'+            Prelude.<$> (x Data..:? "name")+            Prelude.<*> (x Data..:? "version")+      )++instance Prelude.Hashable RobotSoftwareSuite where+  hashWithSalt _salt RobotSoftwareSuite' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` version++instance Prelude.NFData RobotSoftwareSuite where+  rnf RobotSoftwareSuite' {..} =+    Prelude.rnf name `Prelude.seq` Prelude.rnf version++instance Data.ToJSON RobotSoftwareSuite where+  toJSON RobotSoftwareSuite' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("name" Data..=) Prelude.<$> name,+            ("version" Data..=) Prelude.<$> version+          ]+      )
+ gen/Amazonka/RobOMaker/Types/RobotSoftwareSuiteType.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.RobotSoftwareSuiteType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.RobotSoftwareSuiteType+  ( RobotSoftwareSuiteType+      ( ..,+        RobotSoftwareSuiteType_General,+        RobotSoftwareSuiteType_ROS,+        RobotSoftwareSuiteType_ROS2+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype RobotSoftwareSuiteType = RobotSoftwareSuiteType'+  { fromRobotSoftwareSuiteType ::+      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 RobotSoftwareSuiteType_General :: RobotSoftwareSuiteType+pattern RobotSoftwareSuiteType_General = RobotSoftwareSuiteType' "General"++pattern RobotSoftwareSuiteType_ROS :: RobotSoftwareSuiteType+pattern RobotSoftwareSuiteType_ROS = RobotSoftwareSuiteType' "ROS"++pattern RobotSoftwareSuiteType_ROS2 :: RobotSoftwareSuiteType+pattern RobotSoftwareSuiteType_ROS2 = RobotSoftwareSuiteType' "ROS2"++{-# COMPLETE+  RobotSoftwareSuiteType_General,+  RobotSoftwareSuiteType_ROS,+  RobotSoftwareSuiteType_ROS2,+  RobotSoftwareSuiteType'+  #-}
+ gen/Amazonka/RobOMaker/Types/RobotSoftwareSuiteVersionType.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.RobOMaker.Types.RobotSoftwareSuiteVersionType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.RobotSoftwareSuiteVersionType+  ( RobotSoftwareSuiteVersionType+      ( ..,+        RobotSoftwareSuiteVersionType_Dashing,+        RobotSoftwareSuiteVersionType_Foxy,+        RobotSoftwareSuiteVersionType_Kinetic,+        RobotSoftwareSuiteVersionType_Melodic+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype RobotSoftwareSuiteVersionType = RobotSoftwareSuiteVersionType'+  { fromRobotSoftwareSuiteVersionType ::+      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 RobotSoftwareSuiteVersionType_Dashing :: RobotSoftwareSuiteVersionType+pattern RobotSoftwareSuiteVersionType_Dashing = RobotSoftwareSuiteVersionType' "Dashing"++pattern RobotSoftwareSuiteVersionType_Foxy :: RobotSoftwareSuiteVersionType+pattern RobotSoftwareSuiteVersionType_Foxy = RobotSoftwareSuiteVersionType' "Foxy"++pattern RobotSoftwareSuiteVersionType_Kinetic :: RobotSoftwareSuiteVersionType+pattern RobotSoftwareSuiteVersionType_Kinetic = RobotSoftwareSuiteVersionType' "Kinetic"++pattern RobotSoftwareSuiteVersionType_Melodic :: RobotSoftwareSuiteVersionType+pattern RobotSoftwareSuiteVersionType_Melodic = RobotSoftwareSuiteVersionType' "Melodic"++{-# COMPLETE+  RobotSoftwareSuiteVersionType_Dashing,+  RobotSoftwareSuiteVersionType_Foxy,+  RobotSoftwareSuiteVersionType_Kinetic,+  RobotSoftwareSuiteVersionType_Melodic,+  RobotSoftwareSuiteVersionType'+  #-}
+ gen/Amazonka/RobOMaker/Types/S3KeyOutput.hs view
@@ -0,0 +1,83 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.S3KeyOutput+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.S3KeyOutput 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 S3 keys.+--+-- /See:/ 'newS3KeyOutput' smart constructor.+data S3KeyOutput = S3KeyOutput'+  { -- | The etag for the object.+    etag :: Prelude.Maybe Prelude.Text,+    -- | The S3 key.+    s3Key :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3KeyOutput' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'etag', 's3KeyOutput_etag' - The etag for the object.+--+-- 's3Key', 's3KeyOutput_s3Key' - The S3 key.+newS3KeyOutput ::+  S3KeyOutput+newS3KeyOutput =+  S3KeyOutput'+    { etag = Prelude.Nothing,+      s3Key = Prelude.Nothing+    }++-- | The etag for the object.+s3KeyOutput_etag :: Lens.Lens' S3KeyOutput (Prelude.Maybe Prelude.Text)+s3KeyOutput_etag = Lens.lens (\S3KeyOutput' {etag} -> etag) (\s@S3KeyOutput' {} a -> s {etag = a} :: S3KeyOutput)++-- | The S3 key.+s3KeyOutput_s3Key :: Lens.Lens' S3KeyOutput (Prelude.Maybe Prelude.Text)+s3KeyOutput_s3Key = Lens.lens (\S3KeyOutput' {s3Key} -> s3Key) (\s@S3KeyOutput' {} a -> s {s3Key = a} :: S3KeyOutput)++instance Data.FromJSON S3KeyOutput where+  parseJSON =+    Data.withObject+      "S3KeyOutput"+      ( \x ->+          S3KeyOutput'+            Prelude.<$> (x Data..:? "etag")+            Prelude.<*> (x Data..:? "s3Key")+      )++instance Prelude.Hashable S3KeyOutput where+  hashWithSalt _salt S3KeyOutput' {..} =+    _salt+      `Prelude.hashWithSalt` etag+      `Prelude.hashWithSalt` s3Key++instance Prelude.NFData S3KeyOutput where+  rnf S3KeyOutput' {..} =+    Prelude.rnf etag `Prelude.seq` Prelude.rnf s3Key
+ gen/Amazonka/RobOMaker/Types/SimulationApplicationConfig.hs view
@@ -0,0 +1,220 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.SimulationApplicationConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.SimulationApplicationConfig 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+import Amazonka.RobOMaker.Types.LaunchConfig+import Amazonka.RobOMaker.Types.Tool+import Amazonka.RobOMaker.Types.UploadConfiguration+import Amazonka.RobOMaker.Types.WorldConfig++-- | Information about a simulation application configuration.+--+-- /See:/ 'newSimulationApplicationConfig' smart constructor.+data SimulationApplicationConfig = SimulationApplicationConfig'+  { -- | The version of the simulation application.+    applicationVersion :: Prelude.Maybe Prelude.Text,+    -- | Information about tools configured for the simulation application.+    tools :: Prelude.Maybe [Tool],+    -- | Information about upload configurations for the simulation application.+    uploadConfigurations :: Prelude.Maybe [UploadConfiguration],+    -- | A Boolean indicating whether to use default simulation application+    -- tools. The default tools are rviz, rqt, terminal and rosbag record. The+    -- default is @False@.+    --+    -- This API is no longer supported and will throw an error if used.+    useDefaultTools :: Prelude.Maybe Prelude.Bool,+    -- | A Boolean indicating whether to use default upload configurations. By+    -- default, @.ros@ and @.gazebo@ files are uploaded when the application+    -- terminates and all ROS topics will be recorded.+    --+    -- If you set this value, you must specify an @outputLocation@.+    --+    -- This API is no longer supported and will throw an error if used.+    useDefaultUploadConfigurations :: Prelude.Maybe Prelude.Bool,+    -- | A list of world configurations.+    worldConfigs :: Prelude.Maybe [WorldConfig],+    -- | The application information for the simulation application.+    application :: Prelude.Text,+    -- | The launch configuration for the simulation application.+    launchConfig :: LaunchConfig+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SimulationApplicationConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'applicationVersion', 'simulationApplicationConfig_applicationVersion' - The version of the simulation application.+--+-- 'tools', 'simulationApplicationConfig_tools' - Information about tools configured for the simulation application.+--+-- 'uploadConfigurations', 'simulationApplicationConfig_uploadConfigurations' - Information about upload configurations for the simulation application.+--+-- 'useDefaultTools', 'simulationApplicationConfig_useDefaultTools' - A Boolean indicating whether to use default simulation application+-- tools. The default tools are rviz, rqt, terminal and rosbag record. The+-- default is @False@.+--+-- This API is no longer supported and will throw an error if used.+--+-- 'useDefaultUploadConfigurations', 'simulationApplicationConfig_useDefaultUploadConfigurations' - A Boolean indicating whether to use default upload configurations. By+-- default, @.ros@ and @.gazebo@ files are uploaded when the application+-- terminates and all ROS topics will be recorded.+--+-- If you set this value, you must specify an @outputLocation@.+--+-- This API is no longer supported and will throw an error if used.+--+-- 'worldConfigs', 'simulationApplicationConfig_worldConfigs' - A list of world configurations.+--+-- 'application', 'simulationApplicationConfig_application' - The application information for the simulation application.+--+-- 'launchConfig', 'simulationApplicationConfig_launchConfig' - The launch configuration for the simulation application.+newSimulationApplicationConfig ::+  -- | 'application'+  Prelude.Text ->+  -- | 'launchConfig'+  LaunchConfig ->+  SimulationApplicationConfig+newSimulationApplicationConfig+  pApplication_+  pLaunchConfig_ =+    SimulationApplicationConfig'+      { applicationVersion =+          Prelude.Nothing,+        tools = Prelude.Nothing,+        uploadConfigurations = Prelude.Nothing,+        useDefaultTools = Prelude.Nothing,+        useDefaultUploadConfigurations =+          Prelude.Nothing,+        worldConfigs = Prelude.Nothing,+        application = pApplication_,+        launchConfig = pLaunchConfig_+      }++-- | The version of the simulation application.+simulationApplicationConfig_applicationVersion :: Lens.Lens' SimulationApplicationConfig (Prelude.Maybe Prelude.Text)+simulationApplicationConfig_applicationVersion = Lens.lens (\SimulationApplicationConfig' {applicationVersion} -> applicationVersion) (\s@SimulationApplicationConfig' {} a -> s {applicationVersion = a} :: SimulationApplicationConfig)++-- | Information about tools configured for the simulation application.+simulationApplicationConfig_tools :: Lens.Lens' SimulationApplicationConfig (Prelude.Maybe [Tool])+simulationApplicationConfig_tools = Lens.lens (\SimulationApplicationConfig' {tools} -> tools) (\s@SimulationApplicationConfig' {} a -> s {tools = a} :: SimulationApplicationConfig) Prelude.. Lens.mapping Lens.coerced++-- | Information about upload configurations for the simulation application.+simulationApplicationConfig_uploadConfigurations :: Lens.Lens' SimulationApplicationConfig (Prelude.Maybe [UploadConfiguration])+simulationApplicationConfig_uploadConfigurations = Lens.lens (\SimulationApplicationConfig' {uploadConfigurations} -> uploadConfigurations) (\s@SimulationApplicationConfig' {} a -> s {uploadConfigurations = a} :: SimulationApplicationConfig) Prelude.. Lens.mapping Lens.coerced++-- | A Boolean indicating whether to use default simulation application+-- tools. The default tools are rviz, rqt, terminal and rosbag record. The+-- default is @False@.+--+-- This API is no longer supported and will throw an error if used.+simulationApplicationConfig_useDefaultTools :: Lens.Lens' SimulationApplicationConfig (Prelude.Maybe Prelude.Bool)+simulationApplicationConfig_useDefaultTools = Lens.lens (\SimulationApplicationConfig' {useDefaultTools} -> useDefaultTools) (\s@SimulationApplicationConfig' {} a -> s {useDefaultTools = a} :: SimulationApplicationConfig)++-- | A Boolean indicating whether to use default upload configurations. By+-- default, @.ros@ and @.gazebo@ files are uploaded when the application+-- terminates and all ROS topics will be recorded.+--+-- If you set this value, you must specify an @outputLocation@.+--+-- This API is no longer supported and will throw an error if used.+simulationApplicationConfig_useDefaultUploadConfigurations :: Lens.Lens' SimulationApplicationConfig (Prelude.Maybe Prelude.Bool)+simulationApplicationConfig_useDefaultUploadConfigurations = Lens.lens (\SimulationApplicationConfig' {useDefaultUploadConfigurations} -> useDefaultUploadConfigurations) (\s@SimulationApplicationConfig' {} a -> s {useDefaultUploadConfigurations = a} :: SimulationApplicationConfig)++-- | A list of world configurations.+simulationApplicationConfig_worldConfigs :: Lens.Lens' SimulationApplicationConfig (Prelude.Maybe [WorldConfig])+simulationApplicationConfig_worldConfigs = Lens.lens (\SimulationApplicationConfig' {worldConfigs} -> worldConfigs) (\s@SimulationApplicationConfig' {} a -> s {worldConfigs = a} :: SimulationApplicationConfig) Prelude.. Lens.mapping Lens.coerced++-- | The application information for the simulation application.+simulationApplicationConfig_application :: Lens.Lens' SimulationApplicationConfig Prelude.Text+simulationApplicationConfig_application = Lens.lens (\SimulationApplicationConfig' {application} -> application) (\s@SimulationApplicationConfig' {} a -> s {application = a} :: SimulationApplicationConfig)++-- | The launch configuration for the simulation application.+simulationApplicationConfig_launchConfig :: Lens.Lens' SimulationApplicationConfig LaunchConfig+simulationApplicationConfig_launchConfig = Lens.lens (\SimulationApplicationConfig' {launchConfig} -> launchConfig) (\s@SimulationApplicationConfig' {} a -> s {launchConfig = a} :: SimulationApplicationConfig)++instance Data.FromJSON SimulationApplicationConfig where+  parseJSON =+    Data.withObject+      "SimulationApplicationConfig"+      ( \x ->+          SimulationApplicationConfig'+            Prelude.<$> (x Data..:? "applicationVersion")+            Prelude.<*> (x Data..:? "tools" Data..!= Prelude.mempty)+            Prelude.<*> ( x+                            Data..:? "uploadConfigurations"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "useDefaultTools")+            Prelude.<*> (x Data..:? "useDefaultUploadConfigurations")+            Prelude.<*> (x Data..:? "worldConfigs" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "application")+            Prelude.<*> (x Data..: "launchConfig")+      )++instance Prelude.Hashable SimulationApplicationConfig where+  hashWithSalt _salt SimulationApplicationConfig' {..} =+    _salt+      `Prelude.hashWithSalt` applicationVersion+      `Prelude.hashWithSalt` tools+      `Prelude.hashWithSalt` uploadConfigurations+      `Prelude.hashWithSalt` useDefaultTools+      `Prelude.hashWithSalt` useDefaultUploadConfigurations+      `Prelude.hashWithSalt` worldConfigs+      `Prelude.hashWithSalt` application+      `Prelude.hashWithSalt` launchConfig++instance Prelude.NFData SimulationApplicationConfig where+  rnf SimulationApplicationConfig' {..} =+    Prelude.rnf applicationVersion+      `Prelude.seq` Prelude.rnf tools+      `Prelude.seq` Prelude.rnf uploadConfigurations+      `Prelude.seq` Prelude.rnf useDefaultTools+      `Prelude.seq` Prelude.rnf useDefaultUploadConfigurations+      `Prelude.seq` Prelude.rnf worldConfigs+      `Prelude.seq` Prelude.rnf application+      `Prelude.seq` Prelude.rnf launchConfig++instance Data.ToJSON SimulationApplicationConfig where+  toJSON SimulationApplicationConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("applicationVersion" Data..=)+              Prelude.<$> applicationVersion,+            ("tools" Data..=) Prelude.<$> tools,+            ("uploadConfigurations" Data..=)+              Prelude.<$> uploadConfigurations,+            ("useDefaultTools" Data..=)+              Prelude.<$> useDefaultTools,+            ("useDefaultUploadConfigurations" Data..=)+              Prelude.<$> useDefaultUploadConfigurations,+            ("worldConfigs" Data..=) Prelude.<$> worldConfigs,+            Prelude.Just ("application" Data..= application),+            Prelude.Just ("launchConfig" Data..= launchConfig)+          ]+      )
+ gen/Amazonka/RobOMaker/Types/SimulationApplicationSummary.hs view
@@ -0,0 +1,141 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.SimulationApplicationSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.SimulationApplicationSummary 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+import Amazonka.RobOMaker.Types.RobotSoftwareSuite+import Amazonka.RobOMaker.Types.SimulationSoftwareSuite++-- | Summary information for a simulation application.+--+-- /See:/ 'newSimulationApplicationSummary' smart constructor.+data SimulationApplicationSummary = SimulationApplicationSummary'+  { -- | The Amazon Resource Name (ARN) of the simulation application.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The time, in milliseconds since the epoch, when the simulation+    -- application was last updated.+    lastUpdatedAt :: Prelude.Maybe Data.POSIX,+    -- | The name of the simulation application.+    name :: Prelude.Maybe Prelude.Text,+    -- | Information about a robot software suite (ROS distribution).+    robotSoftwareSuite :: Prelude.Maybe RobotSoftwareSuite,+    -- | Information about a simulation software suite.+    simulationSoftwareSuite :: Prelude.Maybe SimulationSoftwareSuite,+    -- | The version of the simulation application.+    version :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SimulationApplicationSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'simulationApplicationSummary_arn' - The Amazon Resource Name (ARN) of the simulation application.+--+-- 'lastUpdatedAt', 'simulationApplicationSummary_lastUpdatedAt' - The time, in milliseconds since the epoch, when the simulation+-- application was last updated.+--+-- 'name', 'simulationApplicationSummary_name' - The name of the simulation application.+--+-- 'robotSoftwareSuite', 'simulationApplicationSummary_robotSoftwareSuite' - Information about a robot software suite (ROS distribution).+--+-- 'simulationSoftwareSuite', 'simulationApplicationSummary_simulationSoftwareSuite' - Information about a simulation software suite.+--+-- 'version', 'simulationApplicationSummary_version' - The version of the simulation application.+newSimulationApplicationSummary ::+  SimulationApplicationSummary+newSimulationApplicationSummary =+  SimulationApplicationSummary'+    { arn =+        Prelude.Nothing,+      lastUpdatedAt = Prelude.Nothing,+      name = Prelude.Nothing,+      robotSoftwareSuite = Prelude.Nothing,+      simulationSoftwareSuite = Prelude.Nothing,+      version = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the simulation application.+simulationApplicationSummary_arn :: Lens.Lens' SimulationApplicationSummary (Prelude.Maybe Prelude.Text)+simulationApplicationSummary_arn = Lens.lens (\SimulationApplicationSummary' {arn} -> arn) (\s@SimulationApplicationSummary' {} a -> s {arn = a} :: SimulationApplicationSummary)++-- | The time, in milliseconds since the epoch, when the simulation+-- application was last updated.+simulationApplicationSummary_lastUpdatedAt :: Lens.Lens' SimulationApplicationSummary (Prelude.Maybe Prelude.UTCTime)+simulationApplicationSummary_lastUpdatedAt = Lens.lens (\SimulationApplicationSummary' {lastUpdatedAt} -> lastUpdatedAt) (\s@SimulationApplicationSummary' {} a -> s {lastUpdatedAt = a} :: SimulationApplicationSummary) Prelude.. Lens.mapping Data._Time++-- | The name of the simulation application.+simulationApplicationSummary_name :: Lens.Lens' SimulationApplicationSummary (Prelude.Maybe Prelude.Text)+simulationApplicationSummary_name = Lens.lens (\SimulationApplicationSummary' {name} -> name) (\s@SimulationApplicationSummary' {} a -> s {name = a} :: SimulationApplicationSummary)++-- | Information about a robot software suite (ROS distribution).+simulationApplicationSummary_robotSoftwareSuite :: Lens.Lens' SimulationApplicationSummary (Prelude.Maybe RobotSoftwareSuite)+simulationApplicationSummary_robotSoftwareSuite = Lens.lens (\SimulationApplicationSummary' {robotSoftwareSuite} -> robotSoftwareSuite) (\s@SimulationApplicationSummary' {} a -> s {robotSoftwareSuite = a} :: SimulationApplicationSummary)++-- | Information about a simulation software suite.+simulationApplicationSummary_simulationSoftwareSuite :: Lens.Lens' SimulationApplicationSummary (Prelude.Maybe SimulationSoftwareSuite)+simulationApplicationSummary_simulationSoftwareSuite = Lens.lens (\SimulationApplicationSummary' {simulationSoftwareSuite} -> simulationSoftwareSuite) (\s@SimulationApplicationSummary' {} a -> s {simulationSoftwareSuite = a} :: SimulationApplicationSummary)++-- | The version of the simulation application.+simulationApplicationSummary_version :: Lens.Lens' SimulationApplicationSummary (Prelude.Maybe Prelude.Text)+simulationApplicationSummary_version = Lens.lens (\SimulationApplicationSummary' {version} -> version) (\s@SimulationApplicationSummary' {} a -> s {version = a} :: SimulationApplicationSummary)++instance Data.FromJSON SimulationApplicationSummary where+  parseJSON =+    Data.withObject+      "SimulationApplicationSummary"+      ( \x ->+          SimulationApplicationSummary'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "lastUpdatedAt")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "robotSoftwareSuite")+            Prelude.<*> (x Data..:? "simulationSoftwareSuite")+            Prelude.<*> (x Data..:? "version")+      )++instance+  Prelude.Hashable+    SimulationApplicationSummary+  where+  hashWithSalt _salt SimulationApplicationSummary' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` lastUpdatedAt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` robotSoftwareSuite+      `Prelude.hashWithSalt` simulationSoftwareSuite+      `Prelude.hashWithSalt` version++instance Prelude.NFData SimulationApplicationSummary where+  rnf SimulationApplicationSummary' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf lastUpdatedAt+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf robotSoftwareSuite+      `Prelude.seq` Prelude.rnf simulationSoftwareSuite+      `Prelude.seq` Prelude.rnf version
+ gen/Amazonka/RobOMaker/Types/SimulationJob.hs view
@@ -0,0 +1,362 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.SimulationJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.SimulationJob 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+import Amazonka.RobOMaker.Types.ComputeResponse+import Amazonka.RobOMaker.Types.DataSource+import Amazonka.RobOMaker.Types.FailureBehavior+import Amazonka.RobOMaker.Types.LoggingConfig+import Amazonka.RobOMaker.Types.NetworkInterface+import Amazonka.RobOMaker.Types.OutputLocation+import Amazonka.RobOMaker.Types.RobotApplicationConfig+import Amazonka.RobOMaker.Types.SimulationApplicationConfig+import Amazonka.RobOMaker.Types.SimulationJobErrorCode+import Amazonka.RobOMaker.Types.SimulationJobStatus+import Amazonka.RobOMaker.Types.VPCConfigResponse++-- | Information about a simulation job.+--+-- /See:/ 'newSimulationJob' smart constructor.+data SimulationJob = SimulationJob'+  { -- | The Amazon Resource Name (ARN) of the simulation job.+    arn :: Prelude.Maybe Prelude.Text,+    -- | A unique identifier for this @SimulationJob@ request.+    clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | Compute information for the simulation job+    compute :: Prelude.Maybe ComputeResponse,+    -- | The data sources for the simulation job.+    dataSources :: Prelude.Maybe [DataSource],+    -- | The failure behavior the simulation job.+    --+    -- [Continue]+    --     Leaves the host running for its maximum timeout duration after a+    --     @4XX@ error code.+    --+    -- [Fail]+    --     Stop the simulation job and terminate the instance.+    failureBehavior :: Prelude.Maybe FailureBehavior,+    -- | The failure code of the simulation job if it failed.+    failureCode :: Prelude.Maybe SimulationJobErrorCode,+    -- | The reason why the simulation job failed.+    failureReason :: Prelude.Maybe Prelude.Text,+    -- | The IAM role that allows the simulation instance to call the AWS APIs+    -- that are specified in its associated policies on your behalf. This is+    -- how credentials are passed in to your simulation job.+    iamRole :: Prelude.Maybe Prelude.Text,+    -- | The time, in milliseconds since the epoch, when the simulation job was+    -- last started.+    lastStartedAt :: Prelude.Maybe Data.POSIX,+    -- | The time, in milliseconds since the epoch, when the simulation job was+    -- last updated.+    lastUpdatedAt :: Prelude.Maybe Data.POSIX,+    -- | The logging configuration.+    loggingConfig :: Prelude.Maybe LoggingConfig,+    -- | The maximum simulation job duration in seconds. The value must be 8 days+    -- (691,200 seconds) or less.+    maxJobDurationInSeconds :: Prelude.Maybe Prelude.Integer,+    -- | The name of the simulation job.+    name :: Prelude.Maybe Prelude.Text,+    -- | Information about a network interface.+    networkInterface :: Prelude.Maybe NetworkInterface,+    -- | Location for output files generated by the simulation job.+    outputLocation :: Prelude.Maybe OutputLocation,+    -- | A list of robot applications.+    robotApplications :: Prelude.Maybe (Prelude.NonEmpty RobotApplicationConfig),+    -- | A list of simulation applications.+    simulationApplications :: Prelude.Maybe (Prelude.NonEmpty SimulationApplicationConfig),+    -- | The simulation job execution duration in milliseconds.+    simulationTimeMillis :: Prelude.Maybe Prelude.Integer,+    -- | Status of the simulation job.+    status :: Prelude.Maybe SimulationJobStatus,+    -- | A map that contains tag keys and tag values that are attached to the+    -- simulation job.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | VPC configuration information.+    vpcConfig :: Prelude.Maybe VPCConfigResponse+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SimulationJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'simulationJob_arn' - The Amazon Resource Name (ARN) of the simulation job.+--+-- 'clientRequestToken', 'simulationJob_clientRequestToken' - A unique identifier for this @SimulationJob@ request.+--+-- 'compute', 'simulationJob_compute' - Compute information for the simulation job+--+-- 'dataSources', 'simulationJob_dataSources' - The data sources for the simulation job.+--+-- 'failureBehavior', 'simulationJob_failureBehavior' - The failure behavior the simulation job.+--+-- [Continue]+--     Leaves the host running for its maximum timeout duration after a+--     @4XX@ error code.+--+-- [Fail]+--     Stop the simulation job and terminate the instance.+--+-- 'failureCode', 'simulationJob_failureCode' - The failure code of the simulation job if it failed.+--+-- 'failureReason', 'simulationJob_failureReason' - The reason why the simulation job failed.+--+-- 'iamRole', 'simulationJob_iamRole' - The IAM role that allows the simulation instance to call the AWS APIs+-- that are specified in its associated policies on your behalf. This is+-- how credentials are passed in to your simulation job.+--+-- 'lastStartedAt', 'simulationJob_lastStartedAt' - The time, in milliseconds since the epoch, when the simulation job was+-- last started.+--+-- 'lastUpdatedAt', 'simulationJob_lastUpdatedAt' - The time, in milliseconds since the epoch, when the simulation job was+-- last updated.+--+-- 'loggingConfig', 'simulationJob_loggingConfig' - The logging configuration.+--+-- 'maxJobDurationInSeconds', 'simulationJob_maxJobDurationInSeconds' - The maximum simulation job duration in seconds. The value must be 8 days+-- (691,200 seconds) or less.+--+-- 'name', 'simulationJob_name' - The name of the simulation job.+--+-- 'networkInterface', 'simulationJob_networkInterface' - Information about a network interface.+--+-- 'outputLocation', 'simulationJob_outputLocation' - Location for output files generated by the simulation job.+--+-- 'robotApplications', 'simulationJob_robotApplications' - A list of robot applications.+--+-- 'simulationApplications', 'simulationJob_simulationApplications' - A list of simulation applications.+--+-- 'simulationTimeMillis', 'simulationJob_simulationTimeMillis' - The simulation job execution duration in milliseconds.+--+-- 'status', 'simulationJob_status' - Status of the simulation job.+--+-- 'tags', 'simulationJob_tags' - A map that contains tag keys and tag values that are attached to the+-- simulation job.+--+-- 'vpcConfig', 'simulationJob_vpcConfig' - VPC configuration information.+newSimulationJob ::+  SimulationJob+newSimulationJob =+  SimulationJob'+    { arn = Prelude.Nothing,+      clientRequestToken = Prelude.Nothing,+      compute = Prelude.Nothing,+      dataSources = Prelude.Nothing,+      failureBehavior = Prelude.Nothing,+      failureCode = Prelude.Nothing,+      failureReason = Prelude.Nothing,+      iamRole = Prelude.Nothing,+      lastStartedAt = Prelude.Nothing,+      lastUpdatedAt = Prelude.Nothing,+      loggingConfig = Prelude.Nothing,+      maxJobDurationInSeconds = Prelude.Nothing,+      name = Prelude.Nothing,+      networkInterface = Prelude.Nothing,+      outputLocation = Prelude.Nothing,+      robotApplications = Prelude.Nothing,+      simulationApplications = Prelude.Nothing,+      simulationTimeMillis = Prelude.Nothing,+      status = Prelude.Nothing,+      tags = Prelude.Nothing,+      vpcConfig = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the simulation job.+simulationJob_arn :: Lens.Lens' SimulationJob (Prelude.Maybe Prelude.Text)+simulationJob_arn = Lens.lens (\SimulationJob' {arn} -> arn) (\s@SimulationJob' {} a -> s {arn = a} :: SimulationJob)++-- | A unique identifier for this @SimulationJob@ request.+simulationJob_clientRequestToken :: Lens.Lens' SimulationJob (Prelude.Maybe Prelude.Text)+simulationJob_clientRequestToken = Lens.lens (\SimulationJob' {clientRequestToken} -> clientRequestToken) (\s@SimulationJob' {} a -> s {clientRequestToken = a} :: SimulationJob)++-- | Compute information for the simulation job+simulationJob_compute :: Lens.Lens' SimulationJob (Prelude.Maybe ComputeResponse)+simulationJob_compute = Lens.lens (\SimulationJob' {compute} -> compute) (\s@SimulationJob' {} a -> s {compute = a} :: SimulationJob)++-- | The data sources for the simulation job.+simulationJob_dataSources :: Lens.Lens' SimulationJob (Prelude.Maybe [DataSource])+simulationJob_dataSources = Lens.lens (\SimulationJob' {dataSources} -> dataSources) (\s@SimulationJob' {} a -> s {dataSources = a} :: SimulationJob) Prelude.. Lens.mapping Lens.coerced++-- | The failure behavior the simulation job.+--+-- [Continue]+--     Leaves the host running for its maximum timeout duration after a+--     @4XX@ error code.+--+-- [Fail]+--     Stop the simulation job and terminate the instance.+simulationJob_failureBehavior :: Lens.Lens' SimulationJob (Prelude.Maybe FailureBehavior)+simulationJob_failureBehavior = Lens.lens (\SimulationJob' {failureBehavior} -> failureBehavior) (\s@SimulationJob' {} a -> s {failureBehavior = a} :: SimulationJob)++-- | The failure code of the simulation job if it failed.+simulationJob_failureCode :: Lens.Lens' SimulationJob (Prelude.Maybe SimulationJobErrorCode)+simulationJob_failureCode = Lens.lens (\SimulationJob' {failureCode} -> failureCode) (\s@SimulationJob' {} a -> s {failureCode = a} :: SimulationJob)++-- | The reason why the simulation job failed.+simulationJob_failureReason :: Lens.Lens' SimulationJob (Prelude.Maybe Prelude.Text)+simulationJob_failureReason = Lens.lens (\SimulationJob' {failureReason} -> failureReason) (\s@SimulationJob' {} a -> s {failureReason = a} :: SimulationJob)++-- | The IAM role that allows the simulation instance to call the AWS APIs+-- that are specified in its associated policies on your behalf. This is+-- how credentials are passed in to your simulation job.+simulationJob_iamRole :: Lens.Lens' SimulationJob (Prelude.Maybe Prelude.Text)+simulationJob_iamRole = Lens.lens (\SimulationJob' {iamRole} -> iamRole) (\s@SimulationJob' {} a -> s {iamRole = a} :: SimulationJob)++-- | The time, in milliseconds since the epoch, when the simulation job was+-- last started.+simulationJob_lastStartedAt :: Lens.Lens' SimulationJob (Prelude.Maybe Prelude.UTCTime)+simulationJob_lastStartedAt = Lens.lens (\SimulationJob' {lastStartedAt} -> lastStartedAt) (\s@SimulationJob' {} a -> s {lastStartedAt = a} :: SimulationJob) Prelude.. Lens.mapping Data._Time++-- | The time, in milliseconds since the epoch, when the simulation job was+-- last updated.+simulationJob_lastUpdatedAt :: Lens.Lens' SimulationJob (Prelude.Maybe Prelude.UTCTime)+simulationJob_lastUpdatedAt = Lens.lens (\SimulationJob' {lastUpdatedAt} -> lastUpdatedAt) (\s@SimulationJob' {} a -> s {lastUpdatedAt = a} :: SimulationJob) Prelude.. Lens.mapping Data._Time++-- | The logging configuration.+simulationJob_loggingConfig :: Lens.Lens' SimulationJob (Prelude.Maybe LoggingConfig)+simulationJob_loggingConfig = Lens.lens (\SimulationJob' {loggingConfig} -> loggingConfig) (\s@SimulationJob' {} a -> s {loggingConfig = a} :: SimulationJob)++-- | The maximum simulation job duration in seconds. The value must be 8 days+-- (691,200 seconds) or less.+simulationJob_maxJobDurationInSeconds :: Lens.Lens' SimulationJob (Prelude.Maybe Prelude.Integer)+simulationJob_maxJobDurationInSeconds = Lens.lens (\SimulationJob' {maxJobDurationInSeconds} -> maxJobDurationInSeconds) (\s@SimulationJob' {} a -> s {maxJobDurationInSeconds = a} :: SimulationJob)++-- | The name of the simulation job.+simulationJob_name :: Lens.Lens' SimulationJob (Prelude.Maybe Prelude.Text)+simulationJob_name = Lens.lens (\SimulationJob' {name} -> name) (\s@SimulationJob' {} a -> s {name = a} :: SimulationJob)++-- | Information about a network interface.+simulationJob_networkInterface :: Lens.Lens' SimulationJob (Prelude.Maybe NetworkInterface)+simulationJob_networkInterface = Lens.lens (\SimulationJob' {networkInterface} -> networkInterface) (\s@SimulationJob' {} a -> s {networkInterface = a} :: SimulationJob)++-- | Location for output files generated by the simulation job.+simulationJob_outputLocation :: Lens.Lens' SimulationJob (Prelude.Maybe OutputLocation)+simulationJob_outputLocation = Lens.lens (\SimulationJob' {outputLocation} -> outputLocation) (\s@SimulationJob' {} a -> s {outputLocation = a} :: SimulationJob)++-- | A list of robot applications.+simulationJob_robotApplications :: Lens.Lens' SimulationJob (Prelude.Maybe (Prelude.NonEmpty RobotApplicationConfig))+simulationJob_robotApplications = Lens.lens (\SimulationJob' {robotApplications} -> robotApplications) (\s@SimulationJob' {} a -> s {robotApplications = a} :: SimulationJob) Prelude.. Lens.mapping Lens.coerced++-- | A list of simulation applications.+simulationJob_simulationApplications :: Lens.Lens' SimulationJob (Prelude.Maybe (Prelude.NonEmpty SimulationApplicationConfig))+simulationJob_simulationApplications = Lens.lens (\SimulationJob' {simulationApplications} -> simulationApplications) (\s@SimulationJob' {} a -> s {simulationApplications = a} :: SimulationJob) Prelude.. Lens.mapping Lens.coerced++-- | The simulation job execution duration in milliseconds.+simulationJob_simulationTimeMillis :: Lens.Lens' SimulationJob (Prelude.Maybe Prelude.Integer)+simulationJob_simulationTimeMillis = Lens.lens (\SimulationJob' {simulationTimeMillis} -> simulationTimeMillis) (\s@SimulationJob' {} a -> s {simulationTimeMillis = a} :: SimulationJob)++-- | Status of the simulation job.+simulationJob_status :: Lens.Lens' SimulationJob (Prelude.Maybe SimulationJobStatus)+simulationJob_status = Lens.lens (\SimulationJob' {status} -> status) (\s@SimulationJob' {} a -> s {status = a} :: SimulationJob)++-- | A map that contains tag keys and tag values that are attached to the+-- simulation job.+simulationJob_tags :: Lens.Lens' SimulationJob (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+simulationJob_tags = Lens.lens (\SimulationJob' {tags} -> tags) (\s@SimulationJob' {} a -> s {tags = a} :: SimulationJob) Prelude.. Lens.mapping Lens.coerced++-- | VPC configuration information.+simulationJob_vpcConfig :: Lens.Lens' SimulationJob (Prelude.Maybe VPCConfigResponse)+simulationJob_vpcConfig = Lens.lens (\SimulationJob' {vpcConfig} -> vpcConfig) (\s@SimulationJob' {} a -> s {vpcConfig = a} :: SimulationJob)++instance Data.FromJSON SimulationJob where+  parseJSON =+    Data.withObject+      "SimulationJob"+      ( \x ->+          SimulationJob'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "clientRequestToken")+            Prelude.<*> (x Data..:? "compute")+            Prelude.<*> (x Data..:? "dataSources" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "failureBehavior")+            Prelude.<*> (x Data..:? "failureCode")+            Prelude.<*> (x Data..:? "failureReason")+            Prelude.<*> (x Data..:? "iamRole")+            Prelude.<*> (x Data..:? "lastStartedAt")+            Prelude.<*> (x Data..:? "lastUpdatedAt")+            Prelude.<*> (x Data..:? "loggingConfig")+            Prelude.<*> (x Data..:? "maxJobDurationInSeconds")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "networkInterface")+            Prelude.<*> (x Data..:? "outputLocation")+            Prelude.<*> (x Data..:? "robotApplications")+            Prelude.<*> (x Data..:? "simulationApplications")+            Prelude.<*> (x Data..:? "simulationTimeMillis")+            Prelude.<*> (x Data..:? "status")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "vpcConfig")+      )++instance Prelude.Hashable SimulationJob where+  hashWithSalt _salt SimulationJob' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` compute+      `Prelude.hashWithSalt` dataSources+      `Prelude.hashWithSalt` failureBehavior+      `Prelude.hashWithSalt` failureCode+      `Prelude.hashWithSalt` failureReason+      `Prelude.hashWithSalt` iamRole+      `Prelude.hashWithSalt` lastStartedAt+      `Prelude.hashWithSalt` lastUpdatedAt+      `Prelude.hashWithSalt` loggingConfig+      `Prelude.hashWithSalt` maxJobDurationInSeconds+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` networkInterface+      `Prelude.hashWithSalt` outputLocation+      `Prelude.hashWithSalt` robotApplications+      `Prelude.hashWithSalt` simulationApplications+      `Prelude.hashWithSalt` simulationTimeMillis+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` vpcConfig++instance Prelude.NFData SimulationJob where+  rnf SimulationJob' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf compute+      `Prelude.seq` Prelude.rnf dataSources+      `Prelude.seq` Prelude.rnf failureBehavior+      `Prelude.seq` Prelude.rnf failureCode+      `Prelude.seq` Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf iamRole+      `Prelude.seq` Prelude.rnf lastStartedAt+      `Prelude.seq` Prelude.rnf lastUpdatedAt+      `Prelude.seq` Prelude.rnf loggingConfig+      `Prelude.seq` Prelude.rnf maxJobDurationInSeconds+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf networkInterface+      `Prelude.seq` Prelude.rnf outputLocation+      `Prelude.seq` Prelude.rnf robotApplications+      `Prelude.seq` Prelude.rnf simulationApplications+      `Prelude.seq` Prelude.rnf simulationTimeMillis+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf vpcConfig
+ gen/Amazonka/RobOMaker/Types/SimulationJobBatchErrorCode.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.RobOMaker.Types.SimulationJobBatchErrorCode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.SimulationJobBatchErrorCode+  ( SimulationJobBatchErrorCode+      ( ..,+        SimulationJobBatchErrorCode_InternalServiceError+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SimulationJobBatchErrorCode = SimulationJobBatchErrorCode'+  { fromSimulationJobBatchErrorCode ::+      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 SimulationJobBatchErrorCode_InternalServiceError :: SimulationJobBatchErrorCode+pattern SimulationJobBatchErrorCode_InternalServiceError = SimulationJobBatchErrorCode' "InternalServiceError"++{-# COMPLETE+  SimulationJobBatchErrorCode_InternalServiceError,+  SimulationJobBatchErrorCode'+  #-}
+ gen/Amazonka/RobOMaker/Types/SimulationJobBatchStatus.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.RobOMaker.Types.SimulationJobBatchStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.SimulationJobBatchStatus+  ( SimulationJobBatchStatus+      ( ..,+        SimulationJobBatchStatus_Canceled,+        SimulationJobBatchStatus_Canceling,+        SimulationJobBatchStatus_Completed,+        SimulationJobBatchStatus_Completing,+        SimulationJobBatchStatus_Failed,+        SimulationJobBatchStatus_InProgress,+        SimulationJobBatchStatus_Pending,+        SimulationJobBatchStatus_TimedOut,+        SimulationJobBatchStatus_TimingOut+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SimulationJobBatchStatus = SimulationJobBatchStatus'+  { fromSimulationJobBatchStatus ::+      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 SimulationJobBatchStatus_Canceled :: SimulationJobBatchStatus+pattern SimulationJobBatchStatus_Canceled = SimulationJobBatchStatus' "Canceled"++pattern SimulationJobBatchStatus_Canceling :: SimulationJobBatchStatus+pattern SimulationJobBatchStatus_Canceling = SimulationJobBatchStatus' "Canceling"++pattern SimulationJobBatchStatus_Completed :: SimulationJobBatchStatus+pattern SimulationJobBatchStatus_Completed = SimulationJobBatchStatus' "Completed"++pattern SimulationJobBatchStatus_Completing :: SimulationJobBatchStatus+pattern SimulationJobBatchStatus_Completing = SimulationJobBatchStatus' "Completing"++pattern SimulationJobBatchStatus_Failed :: SimulationJobBatchStatus+pattern SimulationJobBatchStatus_Failed = SimulationJobBatchStatus' "Failed"++pattern SimulationJobBatchStatus_InProgress :: SimulationJobBatchStatus+pattern SimulationJobBatchStatus_InProgress = SimulationJobBatchStatus' "InProgress"++pattern SimulationJobBatchStatus_Pending :: SimulationJobBatchStatus+pattern SimulationJobBatchStatus_Pending = SimulationJobBatchStatus' "Pending"++pattern SimulationJobBatchStatus_TimedOut :: SimulationJobBatchStatus+pattern SimulationJobBatchStatus_TimedOut = SimulationJobBatchStatus' "TimedOut"++pattern SimulationJobBatchStatus_TimingOut :: SimulationJobBatchStatus+pattern SimulationJobBatchStatus_TimingOut = SimulationJobBatchStatus' "TimingOut"++{-# COMPLETE+  SimulationJobBatchStatus_Canceled,+  SimulationJobBatchStatus_Canceling,+  SimulationJobBatchStatus_Completed,+  SimulationJobBatchStatus_Completing,+  SimulationJobBatchStatus_Failed,+  SimulationJobBatchStatus_InProgress,+  SimulationJobBatchStatus_Pending,+  SimulationJobBatchStatus_TimedOut,+  SimulationJobBatchStatus_TimingOut,+  SimulationJobBatchStatus'+  #-}
+ gen/Amazonka/RobOMaker/Types/SimulationJobBatchSummary.hs view
@@ -0,0 +1,268 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.SimulationJobBatchSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.SimulationJobBatchSummary 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+import Amazonka.RobOMaker.Types.SimulationJobBatchStatus++-- | Information about a simulation job batch.+--+-- /See:/ 'newSimulationJobBatchSummary' smart constructor.+data SimulationJobBatchSummary = SimulationJobBatchSummary'+  { -- | The Amazon Resource Name (ARN) of the batch.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The time, in milliseconds since the epoch, when the simulation job batch+    -- was created.+    createdAt :: Prelude.Maybe Data.POSIX,+    -- | The number of created simulation job requests.+    createdRequestCount :: Prelude.Maybe Prelude.Int,+    -- | The number of failed simulation job requests.+    failedRequestCount :: Prelude.Maybe Prelude.Int,+    -- | The time, in milliseconds since the epoch, when the simulation job batch+    -- was last updated.+    lastUpdatedAt :: Prelude.Maybe Data.POSIX,+    -- | The number of pending simulation job requests.+    pendingRequestCount :: Prelude.Maybe Prelude.Int,+    -- | The status of the simulation job batch.+    --+    -- [Pending]+    --     The simulation job batch request is pending.+    --+    -- [InProgress]+    --     The simulation job batch is in progress.+    --+    -- [Failed]+    --     The simulation job batch failed. One or more simulation job requests+    --     could not be completed due to an internal failure (like+    --     @InternalServiceError@). See @failureCode@ and @failureReason@ for+    --     more information.+    --+    -- [Completed]+    --     The simulation batch job completed. A batch is complete when (1)+    --     there are no pending simulation job requests in the batch and none+    --     of the failed simulation job requests are due to+    --     @InternalServiceError@ and (2) when all created simulation jobs have+    --     reached a terminal state (for example, @Completed@ or @Failed@).+    --+    -- [Canceled]+    --     The simulation batch job was cancelled.+    --+    -- [Canceling]+    --     The simulation batch job is being cancelled.+    --+    -- [Completing]+    --     The simulation batch job is completing.+    --+    -- [TimingOut]+    --     The simulation job batch is timing out.+    --+    --     If a batch timing out, and there are pending requests that were+    --     failing due to an internal failure (like @InternalServiceError@),+    --     the batch status will be @Failed@. If there are no such failing+    --     request, the batch status will be @TimedOut@.+    --+    -- [TimedOut]+    --     The simulation batch job timed out.+    status :: Prelude.Maybe SimulationJobBatchStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SimulationJobBatchSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'simulationJobBatchSummary_arn' - The Amazon Resource Name (ARN) of the batch.+--+-- 'createdAt', 'simulationJobBatchSummary_createdAt' - The time, in milliseconds since the epoch, when the simulation job batch+-- was created.+--+-- 'createdRequestCount', 'simulationJobBatchSummary_createdRequestCount' - The number of created simulation job requests.+--+-- 'failedRequestCount', 'simulationJobBatchSummary_failedRequestCount' - The number of failed simulation job requests.+--+-- 'lastUpdatedAt', 'simulationJobBatchSummary_lastUpdatedAt' - The time, in milliseconds since the epoch, when the simulation job batch+-- was last updated.+--+-- 'pendingRequestCount', 'simulationJobBatchSummary_pendingRequestCount' - The number of pending simulation job requests.+--+-- 'status', 'simulationJobBatchSummary_status' - The status of the simulation job batch.+--+-- [Pending]+--     The simulation job batch request is pending.+--+-- [InProgress]+--     The simulation job batch is in progress.+--+-- [Failed]+--     The simulation job batch failed. One or more simulation job requests+--     could not be completed due to an internal failure (like+--     @InternalServiceError@). See @failureCode@ and @failureReason@ for+--     more information.+--+-- [Completed]+--     The simulation batch job completed. A batch is complete when (1)+--     there are no pending simulation job requests in the batch and none+--     of the failed simulation job requests are due to+--     @InternalServiceError@ and (2) when all created simulation jobs have+--     reached a terminal state (for example, @Completed@ or @Failed@).+--+-- [Canceled]+--     The simulation batch job was cancelled.+--+-- [Canceling]+--     The simulation batch job is being cancelled.+--+-- [Completing]+--     The simulation batch job is completing.+--+-- [TimingOut]+--     The simulation job batch is timing out.+--+--     If a batch timing out, and there are pending requests that were+--     failing due to an internal failure (like @InternalServiceError@),+--     the batch status will be @Failed@. If there are no such failing+--     request, the batch status will be @TimedOut@.+--+-- [TimedOut]+--     The simulation batch job timed out.+newSimulationJobBatchSummary ::+  SimulationJobBatchSummary+newSimulationJobBatchSummary =+  SimulationJobBatchSummary'+    { arn = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      createdRequestCount = Prelude.Nothing,+      failedRequestCount = Prelude.Nothing,+      lastUpdatedAt = Prelude.Nothing,+      pendingRequestCount = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the batch.+simulationJobBatchSummary_arn :: Lens.Lens' SimulationJobBatchSummary (Prelude.Maybe Prelude.Text)+simulationJobBatchSummary_arn = Lens.lens (\SimulationJobBatchSummary' {arn} -> arn) (\s@SimulationJobBatchSummary' {} a -> s {arn = a} :: SimulationJobBatchSummary)++-- | The time, in milliseconds since the epoch, when the simulation job batch+-- was created.+simulationJobBatchSummary_createdAt :: Lens.Lens' SimulationJobBatchSummary (Prelude.Maybe Prelude.UTCTime)+simulationJobBatchSummary_createdAt = Lens.lens (\SimulationJobBatchSummary' {createdAt} -> createdAt) (\s@SimulationJobBatchSummary' {} a -> s {createdAt = a} :: SimulationJobBatchSummary) Prelude.. Lens.mapping Data._Time++-- | The number of created simulation job requests.+simulationJobBatchSummary_createdRequestCount :: Lens.Lens' SimulationJobBatchSummary (Prelude.Maybe Prelude.Int)+simulationJobBatchSummary_createdRequestCount = Lens.lens (\SimulationJobBatchSummary' {createdRequestCount} -> createdRequestCount) (\s@SimulationJobBatchSummary' {} a -> s {createdRequestCount = a} :: SimulationJobBatchSummary)++-- | The number of failed simulation job requests.+simulationJobBatchSummary_failedRequestCount :: Lens.Lens' SimulationJobBatchSummary (Prelude.Maybe Prelude.Int)+simulationJobBatchSummary_failedRequestCount = Lens.lens (\SimulationJobBatchSummary' {failedRequestCount} -> failedRequestCount) (\s@SimulationJobBatchSummary' {} a -> s {failedRequestCount = a} :: SimulationJobBatchSummary)++-- | The time, in milliseconds since the epoch, when the simulation job batch+-- was last updated.+simulationJobBatchSummary_lastUpdatedAt :: Lens.Lens' SimulationJobBatchSummary (Prelude.Maybe Prelude.UTCTime)+simulationJobBatchSummary_lastUpdatedAt = Lens.lens (\SimulationJobBatchSummary' {lastUpdatedAt} -> lastUpdatedAt) (\s@SimulationJobBatchSummary' {} a -> s {lastUpdatedAt = a} :: SimulationJobBatchSummary) Prelude.. Lens.mapping Data._Time++-- | The number of pending simulation job requests.+simulationJobBatchSummary_pendingRequestCount :: Lens.Lens' SimulationJobBatchSummary (Prelude.Maybe Prelude.Int)+simulationJobBatchSummary_pendingRequestCount = Lens.lens (\SimulationJobBatchSummary' {pendingRequestCount} -> pendingRequestCount) (\s@SimulationJobBatchSummary' {} a -> s {pendingRequestCount = a} :: SimulationJobBatchSummary)++-- | The status of the simulation job batch.+--+-- [Pending]+--     The simulation job batch request is pending.+--+-- [InProgress]+--     The simulation job batch is in progress.+--+-- [Failed]+--     The simulation job batch failed. One or more simulation job requests+--     could not be completed due to an internal failure (like+--     @InternalServiceError@). See @failureCode@ and @failureReason@ for+--     more information.+--+-- [Completed]+--     The simulation batch job completed. A batch is complete when (1)+--     there are no pending simulation job requests in the batch and none+--     of the failed simulation job requests are due to+--     @InternalServiceError@ and (2) when all created simulation jobs have+--     reached a terminal state (for example, @Completed@ or @Failed@).+--+-- [Canceled]+--     The simulation batch job was cancelled.+--+-- [Canceling]+--     The simulation batch job is being cancelled.+--+-- [Completing]+--     The simulation batch job is completing.+--+-- [TimingOut]+--     The simulation job batch is timing out.+--+--     If a batch timing out, and there are pending requests that were+--     failing due to an internal failure (like @InternalServiceError@),+--     the batch status will be @Failed@. If there are no such failing+--     request, the batch status will be @TimedOut@.+--+-- [TimedOut]+--     The simulation batch job timed out.+simulationJobBatchSummary_status :: Lens.Lens' SimulationJobBatchSummary (Prelude.Maybe SimulationJobBatchStatus)+simulationJobBatchSummary_status = Lens.lens (\SimulationJobBatchSummary' {status} -> status) (\s@SimulationJobBatchSummary' {} a -> s {status = a} :: SimulationJobBatchSummary)++instance Data.FromJSON SimulationJobBatchSummary where+  parseJSON =+    Data.withObject+      "SimulationJobBatchSummary"+      ( \x ->+          SimulationJobBatchSummary'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "createdAt")+            Prelude.<*> (x Data..:? "createdRequestCount")+            Prelude.<*> (x Data..:? "failedRequestCount")+            Prelude.<*> (x Data..:? "lastUpdatedAt")+            Prelude.<*> (x Data..:? "pendingRequestCount")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable SimulationJobBatchSummary where+  hashWithSalt _salt SimulationJobBatchSummary' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` createdRequestCount+      `Prelude.hashWithSalt` failedRequestCount+      `Prelude.hashWithSalt` lastUpdatedAt+      `Prelude.hashWithSalt` pendingRequestCount+      `Prelude.hashWithSalt` status++instance Prelude.NFData SimulationJobBatchSummary where+  rnf SimulationJobBatchSummary' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf createdRequestCount+      `Prelude.seq` Prelude.rnf failedRequestCount+      `Prelude.seq` Prelude.rnf lastUpdatedAt+      `Prelude.seq` Prelude.rnf pendingRequestCount+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/RobOMaker/Types/SimulationJobErrorCode.hs view
@@ -0,0 +1,216 @@+{-# 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.RobOMaker.Types.SimulationJobErrorCode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.SimulationJobErrorCode+  ( SimulationJobErrorCode+      ( ..,+        SimulationJobErrorCode_BadPermissionsCloudwatchLogs,+        SimulationJobErrorCode_BadPermissionsRobotApplication,+        SimulationJobErrorCode_BadPermissionsS3Object,+        SimulationJobErrorCode_BadPermissionsS3Output,+        SimulationJobErrorCode_BadPermissionsSimulationApplication,+        SimulationJobErrorCode_BadPermissionsUserCredentials,+        SimulationJobErrorCode_BatchCanceled,+        SimulationJobErrorCode_BatchTimedOut,+        SimulationJobErrorCode_ENILimitExceeded,+        SimulationJobErrorCode_InternalServiceError,+        SimulationJobErrorCode_InvalidBundleRobotApplication,+        SimulationJobErrorCode_InvalidBundleSimulationApplication,+        SimulationJobErrorCode_InvalidInput,+        SimulationJobErrorCode_InvalidS3Resource,+        SimulationJobErrorCode_LimitExceeded,+        SimulationJobErrorCode_MismatchedEtag,+        SimulationJobErrorCode_RequestThrottled,+        SimulationJobErrorCode_ResourceNotFound,+        SimulationJobErrorCode_RobotApplicationCrash,+        SimulationJobErrorCode_RobotApplicationHealthCheckFailure,+        SimulationJobErrorCode_RobotApplicationVersionMismatchedEtag,+        SimulationJobErrorCode_SimulationApplicationCrash,+        SimulationJobErrorCode_SimulationApplicationHealthCheckFailure,+        SimulationJobErrorCode_SimulationApplicationVersionMismatchedEtag,+        SimulationJobErrorCode_SubnetIpLimitExceeded,+        SimulationJobErrorCode_ThrottlingError,+        SimulationJobErrorCode_UploadContentMismatchError,+        SimulationJobErrorCode_WrongRegionRobotApplication,+        SimulationJobErrorCode_WrongRegionS3Bucket,+        SimulationJobErrorCode_WrongRegionS3Output,+        SimulationJobErrorCode_WrongRegionSimulationApplication+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SimulationJobErrorCode = SimulationJobErrorCode'+  { fromSimulationJobErrorCode ::+      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 SimulationJobErrorCode_BadPermissionsCloudwatchLogs :: SimulationJobErrorCode+pattern SimulationJobErrorCode_BadPermissionsCloudwatchLogs = SimulationJobErrorCode' "BadPermissionsCloudwatchLogs"++pattern SimulationJobErrorCode_BadPermissionsRobotApplication :: SimulationJobErrorCode+pattern SimulationJobErrorCode_BadPermissionsRobotApplication = SimulationJobErrorCode' "BadPermissionsRobotApplication"++pattern SimulationJobErrorCode_BadPermissionsS3Object :: SimulationJobErrorCode+pattern SimulationJobErrorCode_BadPermissionsS3Object = SimulationJobErrorCode' "BadPermissionsS3Object"++pattern SimulationJobErrorCode_BadPermissionsS3Output :: SimulationJobErrorCode+pattern SimulationJobErrorCode_BadPermissionsS3Output = SimulationJobErrorCode' "BadPermissionsS3Output"++pattern SimulationJobErrorCode_BadPermissionsSimulationApplication :: SimulationJobErrorCode+pattern SimulationJobErrorCode_BadPermissionsSimulationApplication = SimulationJobErrorCode' "BadPermissionsSimulationApplication"++pattern SimulationJobErrorCode_BadPermissionsUserCredentials :: SimulationJobErrorCode+pattern SimulationJobErrorCode_BadPermissionsUserCredentials = SimulationJobErrorCode' "BadPermissionsUserCredentials"++pattern SimulationJobErrorCode_BatchCanceled :: SimulationJobErrorCode+pattern SimulationJobErrorCode_BatchCanceled = SimulationJobErrorCode' "BatchCanceled"++pattern SimulationJobErrorCode_BatchTimedOut :: SimulationJobErrorCode+pattern SimulationJobErrorCode_BatchTimedOut = SimulationJobErrorCode' "BatchTimedOut"++pattern SimulationJobErrorCode_ENILimitExceeded :: SimulationJobErrorCode+pattern SimulationJobErrorCode_ENILimitExceeded = SimulationJobErrorCode' "ENILimitExceeded"++pattern SimulationJobErrorCode_InternalServiceError :: SimulationJobErrorCode+pattern SimulationJobErrorCode_InternalServiceError = SimulationJobErrorCode' "InternalServiceError"++pattern SimulationJobErrorCode_InvalidBundleRobotApplication :: SimulationJobErrorCode+pattern SimulationJobErrorCode_InvalidBundleRobotApplication = SimulationJobErrorCode' "InvalidBundleRobotApplication"++pattern SimulationJobErrorCode_InvalidBundleSimulationApplication :: SimulationJobErrorCode+pattern SimulationJobErrorCode_InvalidBundleSimulationApplication = SimulationJobErrorCode' "InvalidBundleSimulationApplication"++pattern SimulationJobErrorCode_InvalidInput :: SimulationJobErrorCode+pattern SimulationJobErrorCode_InvalidInput = SimulationJobErrorCode' "InvalidInput"++pattern SimulationJobErrorCode_InvalidS3Resource :: SimulationJobErrorCode+pattern SimulationJobErrorCode_InvalidS3Resource = SimulationJobErrorCode' "InvalidS3Resource"++pattern SimulationJobErrorCode_LimitExceeded :: SimulationJobErrorCode+pattern SimulationJobErrorCode_LimitExceeded = SimulationJobErrorCode' "LimitExceeded"++pattern SimulationJobErrorCode_MismatchedEtag :: SimulationJobErrorCode+pattern SimulationJobErrorCode_MismatchedEtag = SimulationJobErrorCode' "MismatchedEtag"++pattern SimulationJobErrorCode_RequestThrottled :: SimulationJobErrorCode+pattern SimulationJobErrorCode_RequestThrottled = SimulationJobErrorCode' "RequestThrottled"++pattern SimulationJobErrorCode_ResourceNotFound :: SimulationJobErrorCode+pattern SimulationJobErrorCode_ResourceNotFound = SimulationJobErrorCode' "ResourceNotFound"++pattern SimulationJobErrorCode_RobotApplicationCrash :: SimulationJobErrorCode+pattern SimulationJobErrorCode_RobotApplicationCrash = SimulationJobErrorCode' "RobotApplicationCrash"++pattern SimulationJobErrorCode_RobotApplicationHealthCheckFailure :: SimulationJobErrorCode+pattern SimulationJobErrorCode_RobotApplicationHealthCheckFailure = SimulationJobErrorCode' "RobotApplicationHealthCheckFailure"++pattern SimulationJobErrorCode_RobotApplicationVersionMismatchedEtag :: SimulationJobErrorCode+pattern SimulationJobErrorCode_RobotApplicationVersionMismatchedEtag = SimulationJobErrorCode' "RobotApplicationVersionMismatchedEtag"++pattern SimulationJobErrorCode_SimulationApplicationCrash :: SimulationJobErrorCode+pattern SimulationJobErrorCode_SimulationApplicationCrash = SimulationJobErrorCode' "SimulationApplicationCrash"++pattern SimulationJobErrorCode_SimulationApplicationHealthCheckFailure :: SimulationJobErrorCode+pattern SimulationJobErrorCode_SimulationApplicationHealthCheckFailure = SimulationJobErrorCode' "SimulationApplicationHealthCheckFailure"++pattern SimulationJobErrorCode_SimulationApplicationVersionMismatchedEtag :: SimulationJobErrorCode+pattern SimulationJobErrorCode_SimulationApplicationVersionMismatchedEtag = SimulationJobErrorCode' "SimulationApplicationVersionMismatchedEtag"++pattern SimulationJobErrorCode_SubnetIpLimitExceeded :: SimulationJobErrorCode+pattern SimulationJobErrorCode_SubnetIpLimitExceeded = SimulationJobErrorCode' "SubnetIpLimitExceeded"++pattern SimulationJobErrorCode_ThrottlingError :: SimulationJobErrorCode+pattern SimulationJobErrorCode_ThrottlingError = SimulationJobErrorCode' "ThrottlingError"++pattern SimulationJobErrorCode_UploadContentMismatchError :: SimulationJobErrorCode+pattern SimulationJobErrorCode_UploadContentMismatchError = SimulationJobErrorCode' "UploadContentMismatchError"++pattern SimulationJobErrorCode_WrongRegionRobotApplication :: SimulationJobErrorCode+pattern SimulationJobErrorCode_WrongRegionRobotApplication = SimulationJobErrorCode' "WrongRegionRobotApplication"++pattern SimulationJobErrorCode_WrongRegionS3Bucket :: SimulationJobErrorCode+pattern SimulationJobErrorCode_WrongRegionS3Bucket = SimulationJobErrorCode' "WrongRegionS3Bucket"++pattern SimulationJobErrorCode_WrongRegionS3Output :: SimulationJobErrorCode+pattern SimulationJobErrorCode_WrongRegionS3Output = SimulationJobErrorCode' "WrongRegionS3Output"++pattern SimulationJobErrorCode_WrongRegionSimulationApplication :: SimulationJobErrorCode+pattern SimulationJobErrorCode_WrongRegionSimulationApplication = SimulationJobErrorCode' "WrongRegionSimulationApplication"++{-# COMPLETE+  SimulationJobErrorCode_BadPermissionsCloudwatchLogs,+  SimulationJobErrorCode_BadPermissionsRobotApplication,+  SimulationJobErrorCode_BadPermissionsS3Object,+  SimulationJobErrorCode_BadPermissionsS3Output,+  SimulationJobErrorCode_BadPermissionsSimulationApplication,+  SimulationJobErrorCode_BadPermissionsUserCredentials,+  SimulationJobErrorCode_BatchCanceled,+  SimulationJobErrorCode_BatchTimedOut,+  SimulationJobErrorCode_ENILimitExceeded,+  SimulationJobErrorCode_InternalServiceError,+  SimulationJobErrorCode_InvalidBundleRobotApplication,+  SimulationJobErrorCode_InvalidBundleSimulationApplication,+  SimulationJobErrorCode_InvalidInput,+  SimulationJobErrorCode_InvalidS3Resource,+  SimulationJobErrorCode_LimitExceeded,+  SimulationJobErrorCode_MismatchedEtag,+  SimulationJobErrorCode_RequestThrottled,+  SimulationJobErrorCode_ResourceNotFound,+  SimulationJobErrorCode_RobotApplicationCrash,+  SimulationJobErrorCode_RobotApplicationHealthCheckFailure,+  SimulationJobErrorCode_RobotApplicationVersionMismatchedEtag,+  SimulationJobErrorCode_SimulationApplicationCrash,+  SimulationJobErrorCode_SimulationApplicationHealthCheckFailure,+  SimulationJobErrorCode_SimulationApplicationVersionMismatchedEtag,+  SimulationJobErrorCode_SubnetIpLimitExceeded,+  SimulationJobErrorCode_ThrottlingError,+  SimulationJobErrorCode_UploadContentMismatchError,+  SimulationJobErrorCode_WrongRegionRobotApplication,+  SimulationJobErrorCode_WrongRegionS3Bucket,+  SimulationJobErrorCode_WrongRegionS3Output,+  SimulationJobErrorCode_WrongRegionSimulationApplication,+  SimulationJobErrorCode'+  #-}
+ gen/Amazonka/RobOMaker/Types/SimulationJobRequest.hs view
@@ -0,0 +1,292 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.SimulationJobRequest+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.SimulationJobRequest 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+import Amazonka.RobOMaker.Types.Compute+import Amazonka.RobOMaker.Types.DataSourceConfig+import Amazonka.RobOMaker.Types.FailureBehavior+import Amazonka.RobOMaker.Types.LoggingConfig+import Amazonka.RobOMaker.Types.OutputLocation+import Amazonka.RobOMaker.Types.RobotApplicationConfig+import Amazonka.RobOMaker.Types.SimulationApplicationConfig+import Amazonka.RobOMaker.Types.VPCConfig++-- | Information about a simulation job request.+--+-- /See:/ 'newSimulationJobRequest' smart constructor.+data SimulationJobRequest = SimulationJobRequest'+  { -- | Compute information for the simulation job+    compute :: Prelude.Maybe Compute,+    -- | Specify data sources to mount read-only files from S3 into your+    -- simulation. These files are available under+    -- @\/opt\/robomaker\/datasources\/data_source_name@.+    --+    -- There is a limit of 100 files and a combined size of 25GB for all+    -- @DataSourceConfig@ objects.+    dataSources :: Prelude.Maybe (Prelude.NonEmpty DataSourceConfig),+    -- | The failure behavior the simulation job.+    --+    -- [Continue]+    --     Leaves the host running for its maximum timeout duration after a+    --     @4XX@ error code.+    --+    -- [Fail]+    --     Stop the simulation job and terminate the instance.+    failureBehavior :: Prelude.Maybe FailureBehavior,+    -- | The IAM role name that allows the simulation instance to call the AWS+    -- APIs that are specified in its associated policies on your behalf. This+    -- is how credentials are passed in to your simulation job.+    iamRole :: Prelude.Maybe Prelude.Text,+    loggingConfig :: Prelude.Maybe LoggingConfig,+    outputLocation :: Prelude.Maybe OutputLocation,+    -- | The robot applications to use in the simulation job.+    robotApplications :: Prelude.Maybe (Prelude.NonEmpty RobotApplicationConfig),+    -- | The simulation applications to use in the simulation job.+    simulationApplications :: Prelude.Maybe (Prelude.NonEmpty SimulationApplicationConfig),+    -- | A map that contains tag keys and tag values that are attached to the+    -- simulation job request.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | A Boolean indicating whether to use default applications in the+    -- simulation job. Default applications include Gazebo, rqt, rviz and+    -- terminal access.+    useDefaultApplications :: Prelude.Maybe Prelude.Bool,+    vpcConfig :: Prelude.Maybe VPCConfig,+    -- | The maximum simulation job duration in seconds. The value must be 8 days+    -- (691,200 seconds) or less.+    maxJobDurationInSeconds :: Prelude.Integer+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SimulationJobRequest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'compute', 'simulationJobRequest_compute' - Compute information for the simulation job+--+-- 'dataSources', 'simulationJobRequest_dataSources' - Specify data sources to mount read-only files from S3 into your+-- simulation. These files are available under+-- @\/opt\/robomaker\/datasources\/data_source_name@.+--+-- There is a limit of 100 files and a combined size of 25GB for all+-- @DataSourceConfig@ objects.+--+-- 'failureBehavior', 'simulationJobRequest_failureBehavior' - The failure behavior the simulation job.+--+-- [Continue]+--     Leaves the host running for its maximum timeout duration after a+--     @4XX@ error code.+--+-- [Fail]+--     Stop the simulation job and terminate the instance.+--+-- 'iamRole', 'simulationJobRequest_iamRole' - The IAM role name that allows the simulation instance to call the AWS+-- APIs that are specified in its associated policies on your behalf. This+-- is how credentials are passed in to your simulation job.+--+-- 'loggingConfig', 'simulationJobRequest_loggingConfig' - Undocumented member.+--+-- 'outputLocation', 'simulationJobRequest_outputLocation' - Undocumented member.+--+-- 'robotApplications', 'simulationJobRequest_robotApplications' - The robot applications to use in the simulation job.+--+-- 'simulationApplications', 'simulationJobRequest_simulationApplications' - The simulation applications to use in the simulation job.+--+-- 'tags', 'simulationJobRequest_tags' - A map that contains tag keys and tag values that are attached to the+-- simulation job request.+--+-- 'useDefaultApplications', 'simulationJobRequest_useDefaultApplications' - A Boolean indicating whether to use default applications in the+-- simulation job. Default applications include Gazebo, rqt, rviz and+-- terminal access.+--+-- 'vpcConfig', 'simulationJobRequest_vpcConfig' - Undocumented member.+--+-- 'maxJobDurationInSeconds', 'simulationJobRequest_maxJobDurationInSeconds' - The maximum simulation job duration in seconds. The value must be 8 days+-- (691,200 seconds) or less.+newSimulationJobRequest ::+  -- | 'maxJobDurationInSeconds'+  Prelude.Integer ->+  SimulationJobRequest+newSimulationJobRequest pMaxJobDurationInSeconds_ =+  SimulationJobRequest'+    { compute = Prelude.Nothing,+      dataSources = Prelude.Nothing,+      failureBehavior = Prelude.Nothing,+      iamRole = Prelude.Nothing,+      loggingConfig = Prelude.Nothing,+      outputLocation = Prelude.Nothing,+      robotApplications = Prelude.Nothing,+      simulationApplications = Prelude.Nothing,+      tags = Prelude.Nothing,+      useDefaultApplications = Prelude.Nothing,+      vpcConfig = Prelude.Nothing,+      maxJobDurationInSeconds = pMaxJobDurationInSeconds_+    }++-- | Compute information for the simulation job+simulationJobRequest_compute :: Lens.Lens' SimulationJobRequest (Prelude.Maybe Compute)+simulationJobRequest_compute = Lens.lens (\SimulationJobRequest' {compute} -> compute) (\s@SimulationJobRequest' {} a -> s {compute = a} :: SimulationJobRequest)++-- | Specify data sources to mount read-only files from S3 into your+-- simulation. These files are available under+-- @\/opt\/robomaker\/datasources\/data_source_name@.+--+-- There is a limit of 100 files and a combined size of 25GB for all+-- @DataSourceConfig@ objects.+simulationJobRequest_dataSources :: Lens.Lens' SimulationJobRequest (Prelude.Maybe (Prelude.NonEmpty DataSourceConfig))+simulationJobRequest_dataSources = Lens.lens (\SimulationJobRequest' {dataSources} -> dataSources) (\s@SimulationJobRequest' {} a -> s {dataSources = a} :: SimulationJobRequest) Prelude.. Lens.mapping Lens.coerced++-- | The failure behavior the simulation job.+--+-- [Continue]+--     Leaves the host running for its maximum timeout duration after a+--     @4XX@ error code.+--+-- [Fail]+--     Stop the simulation job and terminate the instance.+simulationJobRequest_failureBehavior :: Lens.Lens' SimulationJobRequest (Prelude.Maybe FailureBehavior)+simulationJobRequest_failureBehavior = Lens.lens (\SimulationJobRequest' {failureBehavior} -> failureBehavior) (\s@SimulationJobRequest' {} a -> s {failureBehavior = a} :: SimulationJobRequest)++-- | The IAM role name that allows the simulation instance to call the AWS+-- APIs that are specified in its associated policies on your behalf. This+-- is how credentials are passed in to your simulation job.+simulationJobRequest_iamRole :: Lens.Lens' SimulationJobRequest (Prelude.Maybe Prelude.Text)+simulationJobRequest_iamRole = Lens.lens (\SimulationJobRequest' {iamRole} -> iamRole) (\s@SimulationJobRequest' {} a -> s {iamRole = a} :: SimulationJobRequest)++-- | Undocumented member.+simulationJobRequest_loggingConfig :: Lens.Lens' SimulationJobRequest (Prelude.Maybe LoggingConfig)+simulationJobRequest_loggingConfig = Lens.lens (\SimulationJobRequest' {loggingConfig} -> loggingConfig) (\s@SimulationJobRequest' {} a -> s {loggingConfig = a} :: SimulationJobRequest)++-- | Undocumented member.+simulationJobRequest_outputLocation :: Lens.Lens' SimulationJobRequest (Prelude.Maybe OutputLocation)+simulationJobRequest_outputLocation = Lens.lens (\SimulationJobRequest' {outputLocation} -> outputLocation) (\s@SimulationJobRequest' {} a -> s {outputLocation = a} :: SimulationJobRequest)++-- | The robot applications to use in the simulation job.+simulationJobRequest_robotApplications :: Lens.Lens' SimulationJobRequest (Prelude.Maybe (Prelude.NonEmpty RobotApplicationConfig))+simulationJobRequest_robotApplications = Lens.lens (\SimulationJobRequest' {robotApplications} -> robotApplications) (\s@SimulationJobRequest' {} a -> s {robotApplications = a} :: SimulationJobRequest) Prelude.. Lens.mapping Lens.coerced++-- | The simulation applications to use in the simulation job.+simulationJobRequest_simulationApplications :: Lens.Lens' SimulationJobRequest (Prelude.Maybe (Prelude.NonEmpty SimulationApplicationConfig))+simulationJobRequest_simulationApplications = Lens.lens (\SimulationJobRequest' {simulationApplications} -> simulationApplications) (\s@SimulationJobRequest' {} a -> s {simulationApplications = a} :: SimulationJobRequest) Prelude.. Lens.mapping Lens.coerced++-- | A map that contains tag keys and tag values that are attached to the+-- simulation job request.+simulationJobRequest_tags :: Lens.Lens' SimulationJobRequest (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+simulationJobRequest_tags = Lens.lens (\SimulationJobRequest' {tags} -> tags) (\s@SimulationJobRequest' {} a -> s {tags = a} :: SimulationJobRequest) Prelude.. Lens.mapping Lens.coerced++-- | A Boolean indicating whether to use default applications in the+-- simulation job. Default applications include Gazebo, rqt, rviz and+-- terminal access.+simulationJobRequest_useDefaultApplications :: Lens.Lens' SimulationJobRequest (Prelude.Maybe Prelude.Bool)+simulationJobRequest_useDefaultApplications = Lens.lens (\SimulationJobRequest' {useDefaultApplications} -> useDefaultApplications) (\s@SimulationJobRequest' {} a -> s {useDefaultApplications = a} :: SimulationJobRequest)++-- | Undocumented member.+simulationJobRequest_vpcConfig :: Lens.Lens' SimulationJobRequest (Prelude.Maybe VPCConfig)+simulationJobRequest_vpcConfig = Lens.lens (\SimulationJobRequest' {vpcConfig} -> vpcConfig) (\s@SimulationJobRequest' {} a -> s {vpcConfig = a} :: SimulationJobRequest)++-- | The maximum simulation job duration in seconds. The value must be 8 days+-- (691,200 seconds) or less.+simulationJobRequest_maxJobDurationInSeconds :: Lens.Lens' SimulationJobRequest Prelude.Integer+simulationJobRequest_maxJobDurationInSeconds = Lens.lens (\SimulationJobRequest' {maxJobDurationInSeconds} -> maxJobDurationInSeconds) (\s@SimulationJobRequest' {} a -> s {maxJobDurationInSeconds = a} :: SimulationJobRequest)++instance Data.FromJSON SimulationJobRequest where+  parseJSON =+    Data.withObject+      "SimulationJobRequest"+      ( \x ->+          SimulationJobRequest'+            Prelude.<$> (x Data..:? "compute")+            Prelude.<*> (x Data..:? "dataSources")+            Prelude.<*> (x Data..:? "failureBehavior")+            Prelude.<*> (x Data..:? "iamRole")+            Prelude.<*> (x Data..:? "loggingConfig")+            Prelude.<*> (x Data..:? "outputLocation")+            Prelude.<*> (x Data..:? "robotApplications")+            Prelude.<*> (x Data..:? "simulationApplications")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "useDefaultApplications")+            Prelude.<*> (x Data..:? "vpcConfig")+            Prelude.<*> (x Data..: "maxJobDurationInSeconds")+      )++instance Prelude.Hashable SimulationJobRequest where+  hashWithSalt _salt SimulationJobRequest' {..} =+    _salt+      `Prelude.hashWithSalt` compute+      `Prelude.hashWithSalt` dataSources+      `Prelude.hashWithSalt` failureBehavior+      `Prelude.hashWithSalt` iamRole+      `Prelude.hashWithSalt` loggingConfig+      `Prelude.hashWithSalt` outputLocation+      `Prelude.hashWithSalt` robotApplications+      `Prelude.hashWithSalt` simulationApplications+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` useDefaultApplications+      `Prelude.hashWithSalt` vpcConfig+      `Prelude.hashWithSalt` maxJobDurationInSeconds++instance Prelude.NFData SimulationJobRequest where+  rnf SimulationJobRequest' {..} =+    Prelude.rnf compute+      `Prelude.seq` Prelude.rnf dataSources+      `Prelude.seq` Prelude.rnf failureBehavior+      `Prelude.seq` Prelude.rnf iamRole+      `Prelude.seq` Prelude.rnf loggingConfig+      `Prelude.seq` Prelude.rnf outputLocation+      `Prelude.seq` Prelude.rnf robotApplications+      `Prelude.seq` Prelude.rnf simulationApplications+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf useDefaultApplications+      `Prelude.seq` Prelude.rnf vpcConfig+      `Prelude.seq` Prelude.rnf maxJobDurationInSeconds++instance Data.ToJSON SimulationJobRequest where+  toJSON SimulationJobRequest' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("compute" Data..=) Prelude.<$> compute,+            ("dataSources" Data..=) Prelude.<$> dataSources,+            ("failureBehavior" Data..=)+              Prelude.<$> failureBehavior,+            ("iamRole" Data..=) Prelude.<$> iamRole,+            ("loggingConfig" Data..=) Prelude.<$> loggingConfig,+            ("outputLocation" Data..=)+              Prelude.<$> outputLocation,+            ("robotApplications" Data..=)+              Prelude.<$> robotApplications,+            ("simulationApplications" Data..=)+              Prelude.<$> simulationApplications,+            ("tags" Data..=) Prelude.<$> tags,+            ("useDefaultApplications" Data..=)+              Prelude.<$> useDefaultApplications,+            ("vpcConfig" Data..=) Prelude.<$> vpcConfig,+            Prelude.Just+              ( "maxJobDurationInSeconds"+                  Data..= maxJobDurationInSeconds+              )+          ]+      )
+ gen/Amazonka/RobOMaker/Types/SimulationJobStatus.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.RobOMaker.Types.SimulationJobStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.SimulationJobStatus+  ( SimulationJobStatus+      ( ..,+        SimulationJobStatus_Canceled,+        SimulationJobStatus_Completed,+        SimulationJobStatus_Failed,+        SimulationJobStatus_Pending,+        SimulationJobStatus_Preparing,+        SimulationJobStatus_Restarting,+        SimulationJobStatus_Running,+        SimulationJobStatus_RunningFailed,+        SimulationJobStatus_Terminated,+        SimulationJobStatus_Terminating+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SimulationJobStatus = SimulationJobStatus'+  { fromSimulationJobStatus ::+      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 SimulationJobStatus_Canceled :: SimulationJobStatus+pattern SimulationJobStatus_Canceled = SimulationJobStatus' "Canceled"++pattern SimulationJobStatus_Completed :: SimulationJobStatus+pattern SimulationJobStatus_Completed = SimulationJobStatus' "Completed"++pattern SimulationJobStatus_Failed :: SimulationJobStatus+pattern SimulationJobStatus_Failed = SimulationJobStatus' "Failed"++pattern SimulationJobStatus_Pending :: SimulationJobStatus+pattern SimulationJobStatus_Pending = SimulationJobStatus' "Pending"++pattern SimulationJobStatus_Preparing :: SimulationJobStatus+pattern SimulationJobStatus_Preparing = SimulationJobStatus' "Preparing"++pattern SimulationJobStatus_Restarting :: SimulationJobStatus+pattern SimulationJobStatus_Restarting = SimulationJobStatus' "Restarting"++pattern SimulationJobStatus_Running :: SimulationJobStatus+pattern SimulationJobStatus_Running = SimulationJobStatus' "Running"++pattern SimulationJobStatus_RunningFailed :: SimulationJobStatus+pattern SimulationJobStatus_RunningFailed = SimulationJobStatus' "RunningFailed"++pattern SimulationJobStatus_Terminated :: SimulationJobStatus+pattern SimulationJobStatus_Terminated = SimulationJobStatus' "Terminated"++pattern SimulationJobStatus_Terminating :: SimulationJobStatus+pattern SimulationJobStatus_Terminating = SimulationJobStatus' "Terminating"++{-# COMPLETE+  SimulationJobStatus_Canceled,+  SimulationJobStatus_Completed,+  SimulationJobStatus_Failed,+  SimulationJobStatus_Pending,+  SimulationJobStatus_Preparing,+  SimulationJobStatus_Restarting,+  SimulationJobStatus_Running,+  SimulationJobStatus_RunningFailed,+  SimulationJobStatus_Terminated,+  SimulationJobStatus_Terminating,+  SimulationJobStatus'+  #-}
+ gen/Amazonka/RobOMaker/Types/SimulationJobSummary.hs view
@@ -0,0 +1,170 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.SimulationJobSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.SimulationJobSummary 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+import Amazonka.RobOMaker.Types.ComputeType+import Amazonka.RobOMaker.Types.SimulationJobStatus++-- | Summary information for a simulation job.+--+-- /See:/ 'newSimulationJobSummary' smart constructor.+data SimulationJobSummary = SimulationJobSummary'+  { -- | The Amazon Resource Name (ARN) of the simulation job.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The compute type for the simulation job summary.+    computeType :: Prelude.Maybe ComputeType,+    -- | The names of the data sources.+    dataSourceNames :: Prelude.Maybe [Prelude.Text],+    -- | The time, in milliseconds since the epoch, when the simulation job was+    -- last updated.+    lastUpdatedAt :: Prelude.Maybe Data.POSIX,+    -- | The name of the simulation job.+    name :: Prelude.Maybe Prelude.Text,+    -- | A list of simulation job robot application names.+    robotApplicationNames :: Prelude.Maybe [Prelude.Text],+    -- | A list of simulation job simulation application names.+    simulationApplicationNames :: Prelude.Maybe [Prelude.Text],+    -- | The status of the simulation job.+    status :: Prelude.Maybe SimulationJobStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SimulationJobSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'simulationJobSummary_arn' - The Amazon Resource Name (ARN) of the simulation job.+--+-- 'computeType', 'simulationJobSummary_computeType' - The compute type for the simulation job summary.+--+-- 'dataSourceNames', 'simulationJobSummary_dataSourceNames' - The names of the data sources.+--+-- 'lastUpdatedAt', 'simulationJobSummary_lastUpdatedAt' - The time, in milliseconds since the epoch, when the simulation job was+-- last updated.+--+-- 'name', 'simulationJobSummary_name' - The name of the simulation job.+--+-- 'robotApplicationNames', 'simulationJobSummary_robotApplicationNames' - A list of simulation job robot application names.+--+-- 'simulationApplicationNames', 'simulationJobSummary_simulationApplicationNames' - A list of simulation job simulation application names.+--+-- 'status', 'simulationJobSummary_status' - The status of the simulation job.+newSimulationJobSummary ::+  SimulationJobSummary+newSimulationJobSummary =+  SimulationJobSummary'+    { arn = Prelude.Nothing,+      computeType = Prelude.Nothing,+      dataSourceNames = Prelude.Nothing,+      lastUpdatedAt = Prelude.Nothing,+      name = Prelude.Nothing,+      robotApplicationNames = Prelude.Nothing,+      simulationApplicationNames = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the simulation job.+simulationJobSummary_arn :: Lens.Lens' SimulationJobSummary (Prelude.Maybe Prelude.Text)+simulationJobSummary_arn = Lens.lens (\SimulationJobSummary' {arn} -> arn) (\s@SimulationJobSummary' {} a -> s {arn = a} :: SimulationJobSummary)++-- | The compute type for the simulation job summary.+simulationJobSummary_computeType :: Lens.Lens' SimulationJobSummary (Prelude.Maybe ComputeType)+simulationJobSummary_computeType = Lens.lens (\SimulationJobSummary' {computeType} -> computeType) (\s@SimulationJobSummary' {} a -> s {computeType = a} :: SimulationJobSummary)++-- | The names of the data sources.+simulationJobSummary_dataSourceNames :: Lens.Lens' SimulationJobSummary (Prelude.Maybe [Prelude.Text])+simulationJobSummary_dataSourceNames = Lens.lens (\SimulationJobSummary' {dataSourceNames} -> dataSourceNames) (\s@SimulationJobSummary' {} a -> s {dataSourceNames = a} :: SimulationJobSummary) Prelude.. Lens.mapping Lens.coerced++-- | The time, in milliseconds since the epoch, when the simulation job was+-- last updated.+simulationJobSummary_lastUpdatedAt :: Lens.Lens' SimulationJobSummary (Prelude.Maybe Prelude.UTCTime)+simulationJobSummary_lastUpdatedAt = Lens.lens (\SimulationJobSummary' {lastUpdatedAt} -> lastUpdatedAt) (\s@SimulationJobSummary' {} a -> s {lastUpdatedAt = a} :: SimulationJobSummary) Prelude.. Lens.mapping Data._Time++-- | The name of the simulation job.+simulationJobSummary_name :: Lens.Lens' SimulationJobSummary (Prelude.Maybe Prelude.Text)+simulationJobSummary_name = Lens.lens (\SimulationJobSummary' {name} -> name) (\s@SimulationJobSummary' {} a -> s {name = a} :: SimulationJobSummary)++-- | A list of simulation job robot application names.+simulationJobSummary_robotApplicationNames :: Lens.Lens' SimulationJobSummary (Prelude.Maybe [Prelude.Text])+simulationJobSummary_robotApplicationNames = Lens.lens (\SimulationJobSummary' {robotApplicationNames} -> robotApplicationNames) (\s@SimulationJobSummary' {} a -> s {robotApplicationNames = a} :: SimulationJobSummary) Prelude.. Lens.mapping Lens.coerced++-- | A list of simulation job simulation application names.+simulationJobSummary_simulationApplicationNames :: Lens.Lens' SimulationJobSummary (Prelude.Maybe [Prelude.Text])+simulationJobSummary_simulationApplicationNames = Lens.lens (\SimulationJobSummary' {simulationApplicationNames} -> simulationApplicationNames) (\s@SimulationJobSummary' {} a -> s {simulationApplicationNames = a} :: SimulationJobSummary) Prelude.. Lens.mapping Lens.coerced++-- | The status of the simulation job.+simulationJobSummary_status :: Lens.Lens' SimulationJobSummary (Prelude.Maybe SimulationJobStatus)+simulationJobSummary_status = Lens.lens (\SimulationJobSummary' {status} -> status) (\s@SimulationJobSummary' {} a -> s {status = a} :: SimulationJobSummary)++instance Data.FromJSON SimulationJobSummary where+  parseJSON =+    Data.withObject+      "SimulationJobSummary"+      ( \x ->+          SimulationJobSummary'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "computeType")+            Prelude.<*> ( x+                            Data..:? "dataSourceNames"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "lastUpdatedAt")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> ( x+                            Data..:? "robotApplicationNames"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "simulationApplicationNames"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable SimulationJobSummary where+  hashWithSalt _salt SimulationJobSummary' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` computeType+      `Prelude.hashWithSalt` dataSourceNames+      `Prelude.hashWithSalt` lastUpdatedAt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` robotApplicationNames+      `Prelude.hashWithSalt` simulationApplicationNames+      `Prelude.hashWithSalt` status++instance Prelude.NFData SimulationJobSummary where+  rnf SimulationJobSummary' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf computeType+      `Prelude.seq` Prelude.rnf dataSourceNames+      `Prelude.seq` Prelude.rnf lastUpdatedAt+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf robotApplicationNames+      `Prelude.seq` Prelude.rnf simulationApplicationNames+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/RobOMaker/Types/SimulationSoftwareSuite.hs view
@@ -0,0 +1,93 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.SimulationSoftwareSuite+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.SimulationSoftwareSuite 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+import Amazonka.RobOMaker.Types.SimulationSoftwareSuiteType++-- | Information about a simulation software suite.+--+-- /See:/ 'newSimulationSoftwareSuite' smart constructor.+data SimulationSoftwareSuite = SimulationSoftwareSuite'+  { -- | The name of the simulation software suite.+    name :: Prelude.Maybe SimulationSoftwareSuiteType,+    -- | The version of the simulation software suite.+    version :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SimulationSoftwareSuite' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'simulationSoftwareSuite_name' - The name of the simulation software suite.+--+-- 'version', 'simulationSoftwareSuite_version' - The version of the simulation software suite.+newSimulationSoftwareSuite ::+  SimulationSoftwareSuite+newSimulationSoftwareSuite =+  SimulationSoftwareSuite'+    { name = Prelude.Nothing,+      version = Prelude.Nothing+    }++-- | The name of the simulation software suite.+simulationSoftwareSuite_name :: Lens.Lens' SimulationSoftwareSuite (Prelude.Maybe SimulationSoftwareSuiteType)+simulationSoftwareSuite_name = Lens.lens (\SimulationSoftwareSuite' {name} -> name) (\s@SimulationSoftwareSuite' {} a -> s {name = a} :: SimulationSoftwareSuite)++-- | The version of the simulation software suite.+simulationSoftwareSuite_version :: Lens.Lens' SimulationSoftwareSuite (Prelude.Maybe Prelude.Text)+simulationSoftwareSuite_version = Lens.lens (\SimulationSoftwareSuite' {version} -> version) (\s@SimulationSoftwareSuite' {} a -> s {version = a} :: SimulationSoftwareSuite)++instance Data.FromJSON SimulationSoftwareSuite where+  parseJSON =+    Data.withObject+      "SimulationSoftwareSuite"+      ( \x ->+          SimulationSoftwareSuite'+            Prelude.<$> (x Data..:? "name")+            Prelude.<*> (x Data..:? "version")+      )++instance Prelude.Hashable SimulationSoftwareSuite where+  hashWithSalt _salt SimulationSoftwareSuite' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` version++instance Prelude.NFData SimulationSoftwareSuite where+  rnf SimulationSoftwareSuite' {..} =+    Prelude.rnf name `Prelude.seq` Prelude.rnf version++instance Data.ToJSON SimulationSoftwareSuite where+  toJSON SimulationSoftwareSuite' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("name" Data..=) Prelude.<$> name,+            ("version" Data..=) Prelude.<$> version+          ]+      )
+ gen/Amazonka/RobOMaker/Types/SimulationSoftwareSuiteType.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.SimulationSoftwareSuiteType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.SimulationSoftwareSuiteType+  ( SimulationSoftwareSuiteType+      ( ..,+        SimulationSoftwareSuiteType_Gazebo,+        SimulationSoftwareSuiteType_RosbagPlay,+        SimulationSoftwareSuiteType_SimulationRuntime+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SimulationSoftwareSuiteType = SimulationSoftwareSuiteType'+  { fromSimulationSoftwareSuiteType ::+      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 SimulationSoftwareSuiteType_Gazebo :: SimulationSoftwareSuiteType+pattern SimulationSoftwareSuiteType_Gazebo = SimulationSoftwareSuiteType' "Gazebo"++pattern SimulationSoftwareSuiteType_RosbagPlay :: SimulationSoftwareSuiteType+pattern SimulationSoftwareSuiteType_RosbagPlay = SimulationSoftwareSuiteType' "RosbagPlay"++pattern SimulationSoftwareSuiteType_SimulationRuntime :: SimulationSoftwareSuiteType+pattern SimulationSoftwareSuiteType_SimulationRuntime = SimulationSoftwareSuiteType' "SimulationRuntime"++{-# COMPLETE+  SimulationSoftwareSuiteType_Gazebo,+  SimulationSoftwareSuiteType_RosbagPlay,+  SimulationSoftwareSuiteType_SimulationRuntime,+  SimulationSoftwareSuiteType'+  #-}
+ gen/Amazonka/RobOMaker/Types/Source.hs view
@@ -0,0 +1,109 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.Source+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.Source 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+import Amazonka.RobOMaker.Types.Architecture++-- | Information about a source.+--+-- /See:/ 'newSource' smart constructor.+data Source = Source'+  { -- | The taget processor architecture for the application.+    architecture :: Prelude.Maybe Architecture,+    -- | A hash of the object specified by @s3Bucket@ and @s3Key@.+    etag :: Prelude.Maybe Prelude.Text,+    -- | The s3 bucket name.+    s3Bucket :: Prelude.Maybe Prelude.Text,+    -- | The s3 object key.+    s3Key :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Source' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'architecture', 'source_architecture' - The taget processor architecture for the application.+--+-- 'etag', 'source_etag' - A hash of the object specified by @s3Bucket@ and @s3Key@.+--+-- 's3Bucket', 'source_s3Bucket' - The s3 bucket name.+--+-- 's3Key', 'source_s3Key' - The s3 object key.+newSource ::+  Source+newSource =+  Source'+    { architecture = Prelude.Nothing,+      etag = Prelude.Nothing,+      s3Bucket = Prelude.Nothing,+      s3Key = Prelude.Nothing+    }++-- | The taget processor architecture for the application.+source_architecture :: Lens.Lens' Source (Prelude.Maybe Architecture)+source_architecture = Lens.lens (\Source' {architecture} -> architecture) (\s@Source' {} a -> s {architecture = a} :: Source)++-- | A hash of the object specified by @s3Bucket@ and @s3Key@.+source_etag :: Lens.Lens' Source (Prelude.Maybe Prelude.Text)+source_etag = Lens.lens (\Source' {etag} -> etag) (\s@Source' {} a -> s {etag = a} :: Source)++-- | The s3 bucket name.+source_s3Bucket :: Lens.Lens' Source (Prelude.Maybe Prelude.Text)+source_s3Bucket = Lens.lens (\Source' {s3Bucket} -> s3Bucket) (\s@Source' {} a -> s {s3Bucket = a} :: Source)++-- | The s3 object key.+source_s3Key :: Lens.Lens' Source (Prelude.Maybe Prelude.Text)+source_s3Key = Lens.lens (\Source' {s3Key} -> s3Key) (\s@Source' {} a -> s {s3Key = a} :: Source)++instance Data.FromJSON Source where+  parseJSON =+    Data.withObject+      "Source"+      ( \x ->+          Source'+            Prelude.<$> (x Data..:? "architecture")+            Prelude.<*> (x Data..:? "etag")+            Prelude.<*> (x Data..:? "s3Bucket")+            Prelude.<*> (x Data..:? "s3Key")+      )++instance Prelude.Hashable Source where+  hashWithSalt _salt Source' {..} =+    _salt+      `Prelude.hashWithSalt` architecture+      `Prelude.hashWithSalt` etag+      `Prelude.hashWithSalt` s3Bucket+      `Prelude.hashWithSalt` s3Key++instance Prelude.NFData Source where+  rnf Source' {..} =+    Prelude.rnf architecture+      `Prelude.seq` Prelude.rnf etag+      `Prelude.seq` Prelude.rnf s3Bucket+      `Prelude.seq` Prelude.rnf s3Key
+ gen/Amazonka/RobOMaker/Types/SourceConfig.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.RobOMaker.Types.SourceConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.SourceConfig 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+import Amazonka.RobOMaker.Types.Architecture++-- | Information about a source configuration.+--+-- /See:/ 'newSourceConfig' smart constructor.+data SourceConfig = SourceConfig'+  { -- | The target processor architecture for the application.+    architecture :: Prelude.Maybe Architecture,+    -- | The Amazon S3 bucket name.+    s3Bucket :: Prelude.Maybe Prelude.Text,+    -- | The s3 object key.+    s3Key :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SourceConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'architecture', 'sourceConfig_architecture' - The target processor architecture for the application.+--+-- 's3Bucket', 'sourceConfig_s3Bucket' - The Amazon S3 bucket name.+--+-- 's3Key', 'sourceConfig_s3Key' - The s3 object key.+newSourceConfig ::+  SourceConfig+newSourceConfig =+  SourceConfig'+    { architecture = Prelude.Nothing,+      s3Bucket = Prelude.Nothing,+      s3Key = Prelude.Nothing+    }++-- | The target processor architecture for the application.+sourceConfig_architecture :: Lens.Lens' SourceConfig (Prelude.Maybe Architecture)+sourceConfig_architecture = Lens.lens (\SourceConfig' {architecture} -> architecture) (\s@SourceConfig' {} a -> s {architecture = a} :: SourceConfig)++-- | The Amazon S3 bucket name.+sourceConfig_s3Bucket :: Lens.Lens' SourceConfig (Prelude.Maybe Prelude.Text)+sourceConfig_s3Bucket = Lens.lens (\SourceConfig' {s3Bucket} -> s3Bucket) (\s@SourceConfig' {} a -> s {s3Bucket = a} :: SourceConfig)++-- | The s3 object key.+sourceConfig_s3Key :: Lens.Lens' SourceConfig (Prelude.Maybe Prelude.Text)+sourceConfig_s3Key = Lens.lens (\SourceConfig' {s3Key} -> s3Key) (\s@SourceConfig' {} a -> s {s3Key = a} :: SourceConfig)++instance Prelude.Hashable SourceConfig where+  hashWithSalt _salt SourceConfig' {..} =+    _salt+      `Prelude.hashWithSalt` architecture+      `Prelude.hashWithSalt` s3Bucket+      `Prelude.hashWithSalt` s3Key++instance Prelude.NFData SourceConfig where+  rnf SourceConfig' {..} =+    Prelude.rnf architecture+      `Prelude.seq` Prelude.rnf s3Bucket+      `Prelude.seq` Prelude.rnf s3Key++instance Data.ToJSON SourceConfig where+  toJSON SourceConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("architecture" Data..=) Prelude.<$> architecture,+            ("s3Bucket" Data..=) Prelude.<$> s3Bucket,+            ("s3Key" Data..=) Prelude.<$> s3Key+          ]+      )
+ gen/Amazonka/RobOMaker/Types/TemplateLocation.hs view
@@ -0,0 +1,87 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.TemplateLocation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.TemplateLocation 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 a template location.+--+-- /See:/ 'newTemplateLocation' smart constructor.+data TemplateLocation = TemplateLocation'+  { -- | The Amazon S3 bucket name.+    s3Bucket :: Prelude.Text,+    -- | The list of S3 keys identifying the data source files.+    s3Key :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TemplateLocation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 's3Bucket', 'templateLocation_s3Bucket' - The Amazon S3 bucket name.+--+-- 's3Key', 'templateLocation_s3Key' - The list of S3 keys identifying the data source files.+newTemplateLocation ::+  -- | 's3Bucket'+  Prelude.Text ->+  -- | 's3Key'+  Prelude.Text ->+  TemplateLocation+newTemplateLocation pS3Bucket_ pS3Key_ =+  TemplateLocation'+    { s3Bucket = pS3Bucket_,+      s3Key = pS3Key_+    }++-- | The Amazon S3 bucket name.+templateLocation_s3Bucket :: Lens.Lens' TemplateLocation Prelude.Text+templateLocation_s3Bucket = Lens.lens (\TemplateLocation' {s3Bucket} -> s3Bucket) (\s@TemplateLocation' {} a -> s {s3Bucket = a} :: TemplateLocation)++-- | The list of S3 keys identifying the data source files.+templateLocation_s3Key :: Lens.Lens' TemplateLocation Prelude.Text+templateLocation_s3Key = Lens.lens (\TemplateLocation' {s3Key} -> s3Key) (\s@TemplateLocation' {} a -> s {s3Key = a} :: TemplateLocation)++instance Prelude.Hashable TemplateLocation where+  hashWithSalt _salt TemplateLocation' {..} =+    _salt+      `Prelude.hashWithSalt` s3Bucket+      `Prelude.hashWithSalt` s3Key++instance Prelude.NFData TemplateLocation where+  rnf TemplateLocation' {..} =+    Prelude.rnf s3Bucket+      `Prelude.seq` Prelude.rnf s3Key++instance Data.ToJSON TemplateLocation where+  toJSON TemplateLocation' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("s3Bucket" Data..= s3Bucket),+            Prelude.Just ("s3Key" Data..= s3Key)+          ]+      )
+ gen/Amazonka/RobOMaker/Types/TemplateSummary.hs view
@@ -0,0 +1,126 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.TemplateSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.TemplateSummary 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++-- | Summary information for a template.+--+-- /See:/ 'newTemplateSummary' smart constructor.+data TemplateSummary = TemplateSummary'+  { -- | The Amazon Resource Name (ARN) of the template.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The time, in milliseconds since the epoch, when the template was+    -- created.+    createdAt :: Prelude.Maybe Data.POSIX,+    -- | The time, in milliseconds since the epoch, when the template was last+    -- updated.+    lastUpdatedAt :: Prelude.Maybe Data.POSIX,+    -- | The name of the template.+    name :: Prelude.Maybe Prelude.Text,+    -- | The version of the template that you\'re using.+    version :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TemplateSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'templateSummary_arn' - The Amazon Resource Name (ARN) of the template.+--+-- 'createdAt', 'templateSummary_createdAt' - The time, in milliseconds since the epoch, when the template was+-- created.+--+-- 'lastUpdatedAt', 'templateSummary_lastUpdatedAt' - The time, in milliseconds since the epoch, when the template was last+-- updated.+--+-- 'name', 'templateSummary_name' - The name of the template.+--+-- 'version', 'templateSummary_version' - The version of the template that you\'re using.+newTemplateSummary ::+  TemplateSummary+newTemplateSummary =+  TemplateSummary'+    { arn = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      lastUpdatedAt = Prelude.Nothing,+      name = Prelude.Nothing,+      version = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the template.+templateSummary_arn :: Lens.Lens' TemplateSummary (Prelude.Maybe Prelude.Text)+templateSummary_arn = Lens.lens (\TemplateSummary' {arn} -> arn) (\s@TemplateSummary' {} a -> s {arn = a} :: TemplateSummary)++-- | The time, in milliseconds since the epoch, when the template was+-- created.+templateSummary_createdAt :: Lens.Lens' TemplateSummary (Prelude.Maybe Prelude.UTCTime)+templateSummary_createdAt = Lens.lens (\TemplateSummary' {createdAt} -> createdAt) (\s@TemplateSummary' {} a -> s {createdAt = a} :: TemplateSummary) Prelude.. Lens.mapping Data._Time++-- | The time, in milliseconds since the epoch, when the template was last+-- updated.+templateSummary_lastUpdatedAt :: Lens.Lens' TemplateSummary (Prelude.Maybe Prelude.UTCTime)+templateSummary_lastUpdatedAt = Lens.lens (\TemplateSummary' {lastUpdatedAt} -> lastUpdatedAt) (\s@TemplateSummary' {} a -> s {lastUpdatedAt = a} :: TemplateSummary) Prelude.. Lens.mapping Data._Time++-- | The name of the template.+templateSummary_name :: Lens.Lens' TemplateSummary (Prelude.Maybe Prelude.Text)+templateSummary_name = Lens.lens (\TemplateSummary' {name} -> name) (\s@TemplateSummary' {} a -> s {name = a} :: TemplateSummary)++-- | The version of the template that you\'re using.+templateSummary_version :: Lens.Lens' TemplateSummary (Prelude.Maybe Prelude.Text)+templateSummary_version = Lens.lens (\TemplateSummary' {version} -> version) (\s@TemplateSummary' {} a -> s {version = a} :: TemplateSummary)++instance Data.FromJSON TemplateSummary where+  parseJSON =+    Data.withObject+      "TemplateSummary"+      ( \x ->+          TemplateSummary'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "createdAt")+            Prelude.<*> (x Data..:? "lastUpdatedAt")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "version")+      )++instance Prelude.Hashable TemplateSummary where+  hashWithSalt _salt TemplateSummary' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` lastUpdatedAt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` version++instance Prelude.NFData TemplateSummary where+  rnf TemplateSummary' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf lastUpdatedAt+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf version
+ gen/Amazonka/RobOMaker/Types/Tool.hs view
@@ -0,0 +1,159 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.Tool+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.Tool 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+import Amazonka.RobOMaker.Types.ExitBehavior++-- | Information about a tool. Tools are used in a simulation job.+--+-- /See:/ 'newTool' smart constructor.+data Tool = Tool'+  { -- | Exit behavior determines what happens when your tool quits running.+    -- @RESTART@ will cause your tool to be restarted. @FAIL@ will cause your+    -- job to exit. The default is @RESTART@.+    exitBehavior :: Prelude.Maybe ExitBehavior,+    -- | Boolean indicating whether logs will be recorded in CloudWatch for the+    -- tool. The default is @False@.+    streamOutputToCloudWatch :: Prelude.Maybe Prelude.Bool,+    -- | Boolean indicating whether a streaming session will be configured for+    -- the tool. If @True@, AWS RoboMaker will configure a connection so you+    -- can interact with the tool as it is running in the simulation. It must+    -- have a graphical user interface. The default is @False@.+    streamUI :: Prelude.Maybe Prelude.Bool,+    -- | The name of the tool.+    name :: Prelude.Text,+    -- | Command-line arguments for the tool. It must include the tool executable+    -- name.+    command :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Tool' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'exitBehavior', 'tool_exitBehavior' - Exit behavior determines what happens when your tool quits running.+-- @RESTART@ will cause your tool to be restarted. @FAIL@ will cause your+-- job to exit. The default is @RESTART@.+--+-- 'streamOutputToCloudWatch', 'tool_streamOutputToCloudWatch' - Boolean indicating whether logs will be recorded in CloudWatch for the+-- tool. The default is @False@.+--+-- 'streamUI', 'tool_streamUI' - Boolean indicating whether a streaming session will be configured for+-- the tool. If @True@, AWS RoboMaker will configure a connection so you+-- can interact with the tool as it is running in the simulation. It must+-- have a graphical user interface. The default is @False@.+--+-- 'name', 'tool_name' - The name of the tool.+--+-- 'command', 'tool_command' - Command-line arguments for the tool. It must include the tool executable+-- name.+newTool ::+  -- | 'name'+  Prelude.Text ->+  -- | 'command'+  Prelude.Text ->+  Tool+newTool pName_ pCommand_ =+  Tool'+    { exitBehavior = Prelude.Nothing,+      streamOutputToCloudWatch = Prelude.Nothing,+      streamUI = Prelude.Nothing,+      name = pName_,+      command = pCommand_+    }++-- | Exit behavior determines what happens when your tool quits running.+-- @RESTART@ will cause your tool to be restarted. @FAIL@ will cause your+-- job to exit. The default is @RESTART@.+tool_exitBehavior :: Lens.Lens' Tool (Prelude.Maybe ExitBehavior)+tool_exitBehavior = Lens.lens (\Tool' {exitBehavior} -> exitBehavior) (\s@Tool' {} a -> s {exitBehavior = a} :: Tool)++-- | Boolean indicating whether logs will be recorded in CloudWatch for the+-- tool. The default is @False@.+tool_streamOutputToCloudWatch :: Lens.Lens' Tool (Prelude.Maybe Prelude.Bool)+tool_streamOutputToCloudWatch = Lens.lens (\Tool' {streamOutputToCloudWatch} -> streamOutputToCloudWatch) (\s@Tool' {} a -> s {streamOutputToCloudWatch = a} :: Tool)++-- | Boolean indicating whether a streaming session will be configured for+-- the tool. If @True@, AWS RoboMaker will configure a connection so you+-- can interact with the tool as it is running in the simulation. It must+-- have a graphical user interface. The default is @False@.+tool_streamUI :: Lens.Lens' Tool (Prelude.Maybe Prelude.Bool)+tool_streamUI = Lens.lens (\Tool' {streamUI} -> streamUI) (\s@Tool' {} a -> s {streamUI = a} :: Tool)++-- | The name of the tool.+tool_name :: Lens.Lens' Tool Prelude.Text+tool_name = Lens.lens (\Tool' {name} -> name) (\s@Tool' {} a -> s {name = a} :: Tool)++-- | Command-line arguments for the tool. It must include the tool executable+-- name.+tool_command :: Lens.Lens' Tool Prelude.Text+tool_command = Lens.lens (\Tool' {command} -> command) (\s@Tool' {} a -> s {command = a} :: Tool)++instance Data.FromJSON Tool where+  parseJSON =+    Data.withObject+      "Tool"+      ( \x ->+          Tool'+            Prelude.<$> (x Data..:? "exitBehavior")+            Prelude.<*> (x Data..:? "streamOutputToCloudWatch")+            Prelude.<*> (x Data..:? "streamUI")+            Prelude.<*> (x Data..: "name")+            Prelude.<*> (x Data..: "command")+      )++instance Prelude.Hashable Tool where+  hashWithSalt _salt Tool' {..} =+    _salt+      `Prelude.hashWithSalt` exitBehavior+      `Prelude.hashWithSalt` streamOutputToCloudWatch+      `Prelude.hashWithSalt` streamUI+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` command++instance Prelude.NFData Tool where+  rnf Tool' {..} =+    Prelude.rnf exitBehavior+      `Prelude.seq` Prelude.rnf streamOutputToCloudWatch+      `Prelude.seq` Prelude.rnf streamUI+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf command++instance Data.ToJSON Tool where+  toJSON Tool' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("exitBehavior" Data..=) Prelude.<$> exitBehavior,+            ("streamOutputToCloudWatch" Data..=)+              Prelude.<$> streamOutputToCloudWatch,+            ("streamUI" Data..=) Prelude.<$> streamUI,+            Prelude.Just ("name" Data..= name),+            Prelude.Just ("command" Data..= command)+          ]+      )
+ gen/Amazonka/RobOMaker/Types/UploadBehavior.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.RobOMaker.Types.UploadBehavior+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.UploadBehavior+  ( UploadBehavior+      ( ..,+        UploadBehavior_UPLOAD_ON_TERMINATE,+        UploadBehavior_UPLOAD_ROLLING_AUTO_REMOVE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype UploadBehavior = UploadBehavior'+  { fromUploadBehavior ::+      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 UploadBehavior_UPLOAD_ON_TERMINATE :: UploadBehavior+pattern UploadBehavior_UPLOAD_ON_TERMINATE = UploadBehavior' "UPLOAD_ON_TERMINATE"++pattern UploadBehavior_UPLOAD_ROLLING_AUTO_REMOVE :: UploadBehavior+pattern UploadBehavior_UPLOAD_ROLLING_AUTO_REMOVE = UploadBehavior' "UPLOAD_ROLLING_AUTO_REMOVE"++{-# COMPLETE+  UploadBehavior_UPLOAD_ON_TERMINATE,+  UploadBehavior_UPLOAD_ROLLING_AUTO_REMOVE,+  UploadBehavior'+  #-}
+ gen/Amazonka/RobOMaker/Types/UploadConfiguration.hs view
@@ -0,0 +1,184 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.UploadConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.UploadConfiguration 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+import Amazonka.RobOMaker.Types.UploadBehavior++-- | Provides upload configuration information. Files are uploaded from the+-- simulation job to a location you specify.+--+-- /See:/ 'newUploadConfiguration' smart constructor.+data UploadConfiguration = UploadConfiguration'+  { -- | A prefix that specifies where files will be uploaded in Amazon S3. It is+    -- appended to the simulation output location to determine the final path.+    --+    -- For example, if your simulation output location is @s3:\/\/my-bucket@+    -- and your upload configuration name is @robot-test@, your files will be+    -- uploaded to @s3:\/\/my-bucket\/\<simid>\/\<runid>\/robot-test@.+    name :: Prelude.Text,+    -- | Specifies the path of the file(s) to upload. Standard Unix glob matching+    -- rules are accepted, with the addition of @**@ as a /super asterisk/. For+    -- example, specifying @\/var\/log\/**.log@ causes all .log files in the+    -- @\/var\/log@ directory tree to be collected. For more examples, see+    -- <https://github.com/gobwas/glob Glob Library>.+    path :: Prelude.Text,+    -- | Specifies when to upload the files:+    --+    -- [UPLOAD_ON_TERMINATE]+    --     Matching files are uploaded once the simulation enters the+    --     @TERMINATING@ state. Matching files are not uploaded until all of+    --     your code (including tools) have stopped.+    --+    --     If there is a problem uploading a file, the upload is retried. If+    --     problems persist, no further upload attempts will be made.+    --+    -- [UPLOAD_ROLLING_AUTO_REMOVE]+    --     Matching files are uploaded as they are created. They are deleted+    --     after they are uploaded. The specified path is checked every 5+    --     seconds. A final check is made when all of your code (including+    --     tools) have stopped.+    uploadBehavior :: UploadBehavior+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UploadConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'uploadConfiguration_name' - A prefix that specifies where files will be uploaded in Amazon S3. It is+-- appended to the simulation output location to determine the final path.+--+-- For example, if your simulation output location is @s3:\/\/my-bucket@+-- and your upload configuration name is @robot-test@, your files will be+-- uploaded to @s3:\/\/my-bucket\/\<simid>\/\<runid>\/robot-test@.+--+-- 'path', 'uploadConfiguration_path' - Specifies the path of the file(s) to upload. Standard Unix glob matching+-- rules are accepted, with the addition of @**@ as a /super asterisk/. For+-- example, specifying @\/var\/log\/**.log@ causes all .log files in the+-- @\/var\/log@ directory tree to be collected. For more examples, see+-- <https://github.com/gobwas/glob Glob Library>.+--+-- 'uploadBehavior', 'uploadConfiguration_uploadBehavior' - Specifies when to upload the files:+--+-- [UPLOAD_ON_TERMINATE]+--     Matching files are uploaded once the simulation enters the+--     @TERMINATING@ state. Matching files are not uploaded until all of+--     your code (including tools) have stopped.+--+--     If there is a problem uploading a file, the upload is retried. If+--     problems persist, no further upload attempts will be made.+--+-- [UPLOAD_ROLLING_AUTO_REMOVE]+--     Matching files are uploaded as they are created. They are deleted+--     after they are uploaded. The specified path is checked every 5+--     seconds. A final check is made when all of your code (including+--     tools) have stopped.+newUploadConfiguration ::+  -- | 'name'+  Prelude.Text ->+  -- | 'path'+  Prelude.Text ->+  -- | 'uploadBehavior'+  UploadBehavior ->+  UploadConfiguration+newUploadConfiguration pName_ pPath_ pUploadBehavior_ =+  UploadConfiguration'+    { name = pName_,+      path = pPath_,+      uploadBehavior = pUploadBehavior_+    }++-- | A prefix that specifies where files will be uploaded in Amazon S3. It is+-- appended to the simulation output location to determine the final path.+--+-- For example, if your simulation output location is @s3:\/\/my-bucket@+-- and your upload configuration name is @robot-test@, your files will be+-- uploaded to @s3:\/\/my-bucket\/\<simid>\/\<runid>\/robot-test@.+uploadConfiguration_name :: Lens.Lens' UploadConfiguration Prelude.Text+uploadConfiguration_name = Lens.lens (\UploadConfiguration' {name} -> name) (\s@UploadConfiguration' {} a -> s {name = a} :: UploadConfiguration)++-- | Specifies the path of the file(s) to upload. Standard Unix glob matching+-- rules are accepted, with the addition of @**@ as a /super asterisk/. For+-- example, specifying @\/var\/log\/**.log@ causes all .log files in the+-- @\/var\/log@ directory tree to be collected. For more examples, see+-- <https://github.com/gobwas/glob Glob Library>.+uploadConfiguration_path :: Lens.Lens' UploadConfiguration Prelude.Text+uploadConfiguration_path = Lens.lens (\UploadConfiguration' {path} -> path) (\s@UploadConfiguration' {} a -> s {path = a} :: UploadConfiguration)++-- | Specifies when to upload the files:+--+-- [UPLOAD_ON_TERMINATE]+--     Matching files are uploaded once the simulation enters the+--     @TERMINATING@ state. Matching files are not uploaded until all of+--     your code (including tools) have stopped.+--+--     If there is a problem uploading a file, the upload is retried. If+--     problems persist, no further upload attempts will be made.+--+-- [UPLOAD_ROLLING_AUTO_REMOVE]+--     Matching files are uploaded as they are created. They are deleted+--     after they are uploaded. The specified path is checked every 5+--     seconds. A final check is made when all of your code (including+--     tools) have stopped.+uploadConfiguration_uploadBehavior :: Lens.Lens' UploadConfiguration UploadBehavior+uploadConfiguration_uploadBehavior = Lens.lens (\UploadConfiguration' {uploadBehavior} -> uploadBehavior) (\s@UploadConfiguration' {} a -> s {uploadBehavior = a} :: UploadConfiguration)++instance Data.FromJSON UploadConfiguration where+  parseJSON =+    Data.withObject+      "UploadConfiguration"+      ( \x ->+          UploadConfiguration'+            Prelude.<$> (x Data..: "name")+            Prelude.<*> (x Data..: "path")+            Prelude.<*> (x Data..: "uploadBehavior")+      )++instance Prelude.Hashable UploadConfiguration where+  hashWithSalt _salt UploadConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` path+      `Prelude.hashWithSalt` uploadBehavior++instance Prelude.NFData UploadConfiguration where+  rnf UploadConfiguration' {..} =+    Prelude.rnf name+      `Prelude.seq` Prelude.rnf path+      `Prelude.seq` Prelude.rnf uploadBehavior++instance Data.ToJSON UploadConfiguration where+  toJSON UploadConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("name" Data..= name),+            Prelude.Just ("path" Data..= path),+            Prelude.Just+              ("uploadBehavior" Data..= uploadBehavior)+          ]+      )
+ gen/Amazonka/RobOMaker/Types/VPCConfig.hs view
@@ -0,0 +1,113 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.VPCConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.VPCConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | If your simulation job accesses resources in a VPC, you provide this+-- parameter identifying the list of security group IDs and subnet IDs.+-- These must belong to the same VPC. You must provide at least one+-- security group and two subnet IDs.+--+-- /See:/ 'newVPCConfig' smart constructor.+data VPCConfig = VPCConfig'+  { -- | A boolean indicating whether to assign a public IP address.+    assignPublicIp :: Prelude.Maybe Prelude.Bool,+    -- | A list of one or more security groups IDs in your VPC.+    securityGroups :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | A list of one or more subnet IDs in your VPC.+    subnets :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VPCConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'assignPublicIp', 'vPCConfig_assignPublicIp' - A boolean indicating whether to assign a public IP address.+--+-- 'securityGroups', 'vPCConfig_securityGroups' - A list of one or more security groups IDs in your VPC.+--+-- 'subnets', 'vPCConfig_subnets' - A list of one or more subnet IDs in your VPC.+newVPCConfig ::+  -- | 'subnets'+  Prelude.NonEmpty Prelude.Text ->+  VPCConfig+newVPCConfig pSubnets_ =+  VPCConfig'+    { assignPublicIp = Prelude.Nothing,+      securityGroups = Prelude.Nothing,+      subnets = Lens.coerced Lens.# pSubnets_+    }++-- | A boolean indicating whether to assign a public IP address.+vPCConfig_assignPublicIp :: Lens.Lens' VPCConfig (Prelude.Maybe Prelude.Bool)+vPCConfig_assignPublicIp = Lens.lens (\VPCConfig' {assignPublicIp} -> assignPublicIp) (\s@VPCConfig' {} a -> s {assignPublicIp = a} :: VPCConfig)++-- | A list of one or more security groups IDs in your VPC.+vPCConfig_securityGroups :: Lens.Lens' VPCConfig (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+vPCConfig_securityGroups = Lens.lens (\VPCConfig' {securityGroups} -> securityGroups) (\s@VPCConfig' {} a -> s {securityGroups = a} :: VPCConfig) Prelude.. Lens.mapping Lens.coerced++-- | A list of one or more subnet IDs in your VPC.+vPCConfig_subnets :: Lens.Lens' VPCConfig (Prelude.NonEmpty Prelude.Text)+vPCConfig_subnets = Lens.lens (\VPCConfig' {subnets} -> subnets) (\s@VPCConfig' {} a -> s {subnets = a} :: VPCConfig) Prelude.. Lens.coerced++instance Data.FromJSON VPCConfig where+  parseJSON =+    Data.withObject+      "VPCConfig"+      ( \x ->+          VPCConfig'+            Prelude.<$> (x Data..:? "assignPublicIp")+            Prelude.<*> (x Data..:? "securityGroups")+            Prelude.<*> (x Data..: "subnets")+      )++instance Prelude.Hashable VPCConfig where+  hashWithSalt _salt VPCConfig' {..} =+    _salt+      `Prelude.hashWithSalt` assignPublicIp+      `Prelude.hashWithSalt` securityGroups+      `Prelude.hashWithSalt` subnets++instance Prelude.NFData VPCConfig where+  rnf VPCConfig' {..} =+    Prelude.rnf assignPublicIp+      `Prelude.seq` Prelude.rnf securityGroups+      `Prelude.seq` Prelude.rnf subnets++instance Data.ToJSON VPCConfig where+  toJSON VPCConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("assignPublicIp" Data..=)+              Prelude.<$> assignPublicIp,+            ("securityGroups" Data..=)+              Prelude.<$> securityGroups,+            Prelude.Just ("subnets" Data..= subnets)+          ]+      )
+ gen/Amazonka/RobOMaker/Types/VPCConfigResponse.hs view
@@ -0,0 +1,109 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.VPCConfigResponse+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.VPCConfigResponse 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++-- | VPC configuration associated with your simulation job.+--+-- /See:/ 'newVPCConfigResponse' smart constructor.+data VPCConfigResponse = VPCConfigResponse'+  { -- | A boolean indicating if a public IP was assigned.+    assignPublicIp :: Prelude.Maybe Prelude.Bool,+    -- | A list of security group IDs associated with the simulation job.+    securityGroups :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | A list of subnet IDs associated with the simulation job.+    subnets :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The VPC ID associated with your simulation job.+    vpcId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VPCConfigResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'assignPublicIp', 'vPCConfigResponse_assignPublicIp' - A boolean indicating if a public IP was assigned.+--+-- 'securityGroups', 'vPCConfigResponse_securityGroups' - A list of security group IDs associated with the simulation job.+--+-- 'subnets', 'vPCConfigResponse_subnets' - A list of subnet IDs associated with the simulation job.+--+-- 'vpcId', 'vPCConfigResponse_vpcId' - The VPC ID associated with your simulation job.+newVPCConfigResponse ::+  VPCConfigResponse+newVPCConfigResponse =+  VPCConfigResponse'+    { assignPublicIp =+        Prelude.Nothing,+      securityGroups = Prelude.Nothing,+      subnets = Prelude.Nothing,+      vpcId = Prelude.Nothing+    }++-- | A boolean indicating if a public IP was assigned.+vPCConfigResponse_assignPublicIp :: Lens.Lens' VPCConfigResponse (Prelude.Maybe Prelude.Bool)+vPCConfigResponse_assignPublicIp = Lens.lens (\VPCConfigResponse' {assignPublicIp} -> assignPublicIp) (\s@VPCConfigResponse' {} a -> s {assignPublicIp = a} :: VPCConfigResponse)++-- | A list of security group IDs associated with the simulation job.+vPCConfigResponse_securityGroups :: Lens.Lens' VPCConfigResponse (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+vPCConfigResponse_securityGroups = Lens.lens (\VPCConfigResponse' {securityGroups} -> securityGroups) (\s@VPCConfigResponse' {} a -> s {securityGroups = a} :: VPCConfigResponse) Prelude.. Lens.mapping Lens.coerced++-- | A list of subnet IDs associated with the simulation job.+vPCConfigResponse_subnets :: Lens.Lens' VPCConfigResponse (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+vPCConfigResponse_subnets = Lens.lens (\VPCConfigResponse' {subnets} -> subnets) (\s@VPCConfigResponse' {} a -> s {subnets = a} :: VPCConfigResponse) Prelude.. Lens.mapping Lens.coerced++-- | The VPC ID associated with your simulation job.+vPCConfigResponse_vpcId :: Lens.Lens' VPCConfigResponse (Prelude.Maybe Prelude.Text)+vPCConfigResponse_vpcId = Lens.lens (\VPCConfigResponse' {vpcId} -> vpcId) (\s@VPCConfigResponse' {} a -> s {vpcId = a} :: VPCConfigResponse)++instance Data.FromJSON VPCConfigResponse where+  parseJSON =+    Data.withObject+      "VPCConfigResponse"+      ( \x ->+          VPCConfigResponse'+            Prelude.<$> (x Data..:? "assignPublicIp")+            Prelude.<*> (x Data..:? "securityGroups")+            Prelude.<*> (x Data..:? "subnets")+            Prelude.<*> (x Data..:? "vpcId")+      )++instance Prelude.Hashable VPCConfigResponse where+  hashWithSalt _salt VPCConfigResponse' {..} =+    _salt+      `Prelude.hashWithSalt` assignPublicIp+      `Prelude.hashWithSalt` securityGroups+      `Prelude.hashWithSalt` subnets+      `Prelude.hashWithSalt` vpcId++instance Prelude.NFData VPCConfigResponse where+  rnf VPCConfigResponse' {..} =+    Prelude.rnf assignPublicIp+      `Prelude.seq` Prelude.rnf securityGroups+      `Prelude.seq` Prelude.rnf subnets+      `Prelude.seq` Prelude.rnf vpcId
+ gen/Amazonka/RobOMaker/Types/WorldConfig.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.RobOMaker.Types.WorldConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.WorldConfig 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++-- | Configuration information for a world.+--+-- /See:/ 'newWorldConfig' smart constructor.+data WorldConfig = WorldConfig'+  { -- | The world generated by Simulation WorldForge.+    world :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'WorldConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'world', 'worldConfig_world' - The world generated by Simulation WorldForge.+newWorldConfig ::+  WorldConfig+newWorldConfig =+  WorldConfig' {world = Prelude.Nothing}++-- | The world generated by Simulation WorldForge.+worldConfig_world :: Lens.Lens' WorldConfig (Prelude.Maybe Prelude.Text)+worldConfig_world = Lens.lens (\WorldConfig' {world} -> world) (\s@WorldConfig' {} a -> s {world = a} :: WorldConfig)++instance Data.FromJSON WorldConfig where+  parseJSON =+    Data.withObject+      "WorldConfig"+      ( \x ->+          WorldConfig' Prelude.<$> (x Data..:? "world")+      )++instance Prelude.Hashable WorldConfig where+  hashWithSalt _salt WorldConfig' {..} =+    _salt `Prelude.hashWithSalt` world++instance Prelude.NFData WorldConfig where+  rnf WorldConfig' {..} = Prelude.rnf world++instance Data.ToJSON WorldConfig where+  toJSON WorldConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [("world" Data..=) Prelude.<$> world]+      )
+ gen/Amazonka/RobOMaker/Types/WorldCount.hs view
@@ -0,0 +1,102 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.WorldCount+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.WorldCount 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 number of worlds that will be created. You can configure the number+-- of unique floorplans and the number of unique interiors for each floor+-- plan. For example, if you want 1 world with 20 unique interiors, you set+-- @floorplanCount = 1@ and @interiorCountPerFloorplan = 20@. This will+-- result in 20 worlds (@floorplanCount@ * @interiorCountPerFloorplan)@.+--+-- If you set @floorplanCount = 4@ and @interiorCountPerFloorplan = 5@,+-- there will be 20 worlds with 5 unique floor plans.+--+-- /See:/ 'newWorldCount' smart constructor.+data WorldCount = WorldCount'+  { -- | The number of unique floorplans.+    floorplanCount :: Prelude.Maybe Prelude.Int,+    -- | The number of unique interiors per floorplan.+    interiorCountPerFloorplan :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'WorldCount' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'floorplanCount', 'worldCount_floorplanCount' - The number of unique floorplans.+--+-- 'interiorCountPerFloorplan', 'worldCount_interiorCountPerFloorplan' - The number of unique interiors per floorplan.+newWorldCount ::+  WorldCount+newWorldCount =+  WorldCount'+    { floorplanCount = Prelude.Nothing,+      interiorCountPerFloorplan = Prelude.Nothing+    }++-- | The number of unique floorplans.+worldCount_floorplanCount :: Lens.Lens' WorldCount (Prelude.Maybe Prelude.Int)+worldCount_floorplanCount = Lens.lens (\WorldCount' {floorplanCount} -> floorplanCount) (\s@WorldCount' {} a -> s {floorplanCount = a} :: WorldCount)++-- | The number of unique interiors per floorplan.+worldCount_interiorCountPerFloorplan :: Lens.Lens' WorldCount (Prelude.Maybe Prelude.Int)+worldCount_interiorCountPerFloorplan = Lens.lens (\WorldCount' {interiorCountPerFloorplan} -> interiorCountPerFloorplan) (\s@WorldCount' {} a -> s {interiorCountPerFloorplan = a} :: WorldCount)++instance Data.FromJSON WorldCount where+  parseJSON =+    Data.withObject+      "WorldCount"+      ( \x ->+          WorldCount'+            Prelude.<$> (x Data..:? "floorplanCount")+            Prelude.<*> (x Data..:? "interiorCountPerFloorplan")+      )++instance Prelude.Hashable WorldCount where+  hashWithSalt _salt WorldCount' {..} =+    _salt+      `Prelude.hashWithSalt` floorplanCount+      `Prelude.hashWithSalt` interiorCountPerFloorplan++instance Prelude.NFData WorldCount where+  rnf WorldCount' {..} =+    Prelude.rnf floorplanCount+      `Prelude.seq` Prelude.rnf interiorCountPerFloorplan++instance Data.ToJSON WorldCount where+  toJSON WorldCount' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("floorplanCount" Data..=)+              Prelude.<$> floorplanCount,+            ("interiorCountPerFloorplan" Data..=)+              Prelude.<$> interiorCountPerFloorplan+          ]+      )
+ gen/Amazonka/RobOMaker/Types/WorldExportJobErrorCode.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.WorldExportJobErrorCode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.WorldExportJobErrorCode+  ( WorldExportJobErrorCode+      ( ..,+        WorldExportJobErrorCode_AccessDenied,+        WorldExportJobErrorCode_InternalServiceError,+        WorldExportJobErrorCode_InvalidInput,+        WorldExportJobErrorCode_LimitExceeded,+        WorldExportJobErrorCode_RequestThrottled,+        WorldExportJobErrorCode_ResourceNotFound+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype WorldExportJobErrorCode = WorldExportJobErrorCode'+  { fromWorldExportJobErrorCode ::+      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 WorldExportJobErrorCode_AccessDenied :: WorldExportJobErrorCode+pattern WorldExportJobErrorCode_AccessDenied = WorldExportJobErrorCode' "AccessDenied"++pattern WorldExportJobErrorCode_InternalServiceError :: WorldExportJobErrorCode+pattern WorldExportJobErrorCode_InternalServiceError = WorldExportJobErrorCode' "InternalServiceError"++pattern WorldExportJobErrorCode_InvalidInput :: WorldExportJobErrorCode+pattern WorldExportJobErrorCode_InvalidInput = WorldExportJobErrorCode' "InvalidInput"++pattern WorldExportJobErrorCode_LimitExceeded :: WorldExportJobErrorCode+pattern WorldExportJobErrorCode_LimitExceeded = WorldExportJobErrorCode' "LimitExceeded"++pattern WorldExportJobErrorCode_RequestThrottled :: WorldExportJobErrorCode+pattern WorldExportJobErrorCode_RequestThrottled = WorldExportJobErrorCode' "RequestThrottled"++pattern WorldExportJobErrorCode_ResourceNotFound :: WorldExportJobErrorCode+pattern WorldExportJobErrorCode_ResourceNotFound = WorldExportJobErrorCode' "ResourceNotFound"++{-# COMPLETE+  WorldExportJobErrorCode_AccessDenied,+  WorldExportJobErrorCode_InternalServiceError,+  WorldExportJobErrorCode_InvalidInput,+  WorldExportJobErrorCode_LimitExceeded,+  WorldExportJobErrorCode_RequestThrottled,+  WorldExportJobErrorCode_ResourceNotFound,+  WorldExportJobErrorCode'+  #-}
+ gen/Amazonka/RobOMaker/Types/WorldExportJobStatus.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.WorldExportJobStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.WorldExportJobStatus+  ( WorldExportJobStatus+      ( ..,+        WorldExportJobStatus_Canceled,+        WorldExportJobStatus_Canceling,+        WorldExportJobStatus_Completed,+        WorldExportJobStatus_Failed,+        WorldExportJobStatus_Pending,+        WorldExportJobStatus_Running+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype WorldExportJobStatus = WorldExportJobStatus'+  { fromWorldExportJobStatus ::+      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 WorldExportJobStatus_Canceled :: WorldExportJobStatus+pattern WorldExportJobStatus_Canceled = WorldExportJobStatus' "Canceled"++pattern WorldExportJobStatus_Canceling :: WorldExportJobStatus+pattern WorldExportJobStatus_Canceling = WorldExportJobStatus' "Canceling"++pattern WorldExportJobStatus_Completed :: WorldExportJobStatus+pattern WorldExportJobStatus_Completed = WorldExportJobStatus' "Completed"++pattern WorldExportJobStatus_Failed :: WorldExportJobStatus+pattern WorldExportJobStatus_Failed = WorldExportJobStatus' "Failed"++pattern WorldExportJobStatus_Pending :: WorldExportJobStatus+pattern WorldExportJobStatus_Pending = WorldExportJobStatus' "Pending"++pattern WorldExportJobStatus_Running :: WorldExportJobStatus+pattern WorldExportJobStatus_Running = WorldExportJobStatus' "Running"++{-# COMPLETE+  WorldExportJobStatus_Canceled,+  WorldExportJobStatus_Canceling,+  WorldExportJobStatus_Completed,+  WorldExportJobStatus_Failed,+  WorldExportJobStatus_Pending,+  WorldExportJobStatus_Running,+  WorldExportJobStatus'+  #-}
+ gen/Amazonka/RobOMaker/Types/WorldExportJobSummary.hs view
@@ -0,0 +1,178 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.WorldExportJobSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.WorldExportJobSummary 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+import Amazonka.RobOMaker.Types.OutputLocation+import Amazonka.RobOMaker.Types.WorldExportJobStatus++-- | Information about a world export job.+--+-- /See:/ 'newWorldExportJobSummary' smart constructor.+data WorldExportJobSummary = WorldExportJobSummary'+  { -- | The Amazon Resource Name (ARN) of the world export job.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The time, in milliseconds since the epoch, when the world export job was+    -- created.+    createdAt :: Prelude.Maybe Data.POSIX,+    outputLocation :: Prelude.Maybe OutputLocation,+    -- | The status of the world export job.+    --+    -- [Pending]+    --     The world export job request is pending.+    --+    -- [Running]+    --     The world export job is running.+    --+    -- [Completed]+    --     The world export job completed.+    --+    -- [Failed]+    --     The world export job failed. See @failureCode@ for more information.+    --+    -- [Canceled]+    --     The world export job was cancelled.+    --+    -- [Canceling]+    --     The world export job is being cancelled.+    status :: Prelude.Maybe WorldExportJobStatus,+    -- | A list of worlds.+    worlds :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'WorldExportJobSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'worldExportJobSummary_arn' - The Amazon Resource Name (ARN) of the world export job.+--+-- 'createdAt', 'worldExportJobSummary_createdAt' - The time, in milliseconds since the epoch, when the world export job was+-- created.+--+-- 'outputLocation', 'worldExportJobSummary_outputLocation' - Undocumented member.+--+-- 'status', 'worldExportJobSummary_status' - The status of the world export job.+--+-- [Pending]+--     The world export job request is pending.+--+-- [Running]+--     The world export job is running.+--+-- [Completed]+--     The world export job completed.+--+-- [Failed]+--     The world export job failed. See @failureCode@ for more information.+--+-- [Canceled]+--     The world export job was cancelled.+--+-- [Canceling]+--     The world export job is being cancelled.+--+-- 'worlds', 'worldExportJobSummary_worlds' - A list of worlds.+newWorldExportJobSummary ::+  WorldExportJobSummary+newWorldExportJobSummary =+  WorldExportJobSummary'+    { arn = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      outputLocation = Prelude.Nothing,+      status = Prelude.Nothing,+      worlds = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the world export job.+worldExportJobSummary_arn :: Lens.Lens' WorldExportJobSummary (Prelude.Maybe Prelude.Text)+worldExportJobSummary_arn = Lens.lens (\WorldExportJobSummary' {arn} -> arn) (\s@WorldExportJobSummary' {} a -> s {arn = a} :: WorldExportJobSummary)++-- | The time, in milliseconds since the epoch, when the world export job was+-- created.+worldExportJobSummary_createdAt :: Lens.Lens' WorldExportJobSummary (Prelude.Maybe Prelude.UTCTime)+worldExportJobSummary_createdAt = Lens.lens (\WorldExportJobSummary' {createdAt} -> createdAt) (\s@WorldExportJobSummary' {} a -> s {createdAt = a} :: WorldExportJobSummary) Prelude.. Lens.mapping Data._Time++-- | Undocumented member.+worldExportJobSummary_outputLocation :: Lens.Lens' WorldExportJobSummary (Prelude.Maybe OutputLocation)+worldExportJobSummary_outputLocation = Lens.lens (\WorldExportJobSummary' {outputLocation} -> outputLocation) (\s@WorldExportJobSummary' {} a -> s {outputLocation = a} :: WorldExportJobSummary)++-- | The status of the world export job.+--+-- [Pending]+--     The world export job request is pending.+--+-- [Running]+--     The world export job is running.+--+-- [Completed]+--     The world export job completed.+--+-- [Failed]+--     The world export job failed. See @failureCode@ for more information.+--+-- [Canceled]+--     The world export job was cancelled.+--+-- [Canceling]+--     The world export job is being cancelled.+worldExportJobSummary_status :: Lens.Lens' WorldExportJobSummary (Prelude.Maybe WorldExportJobStatus)+worldExportJobSummary_status = Lens.lens (\WorldExportJobSummary' {status} -> status) (\s@WorldExportJobSummary' {} a -> s {status = a} :: WorldExportJobSummary)++-- | A list of worlds.+worldExportJobSummary_worlds :: Lens.Lens' WorldExportJobSummary (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+worldExportJobSummary_worlds = Lens.lens (\WorldExportJobSummary' {worlds} -> worlds) (\s@WorldExportJobSummary' {} a -> s {worlds = a} :: WorldExportJobSummary) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON WorldExportJobSummary where+  parseJSON =+    Data.withObject+      "WorldExportJobSummary"+      ( \x ->+          WorldExportJobSummary'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "createdAt")+            Prelude.<*> (x Data..:? "outputLocation")+            Prelude.<*> (x Data..:? "status")+            Prelude.<*> (x Data..:? "worlds")+      )++instance Prelude.Hashable WorldExportJobSummary where+  hashWithSalt _salt WorldExportJobSummary' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` outputLocation+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` worlds++instance Prelude.NFData WorldExportJobSummary where+  rnf WorldExportJobSummary' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf outputLocation+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf worlds
+ gen/Amazonka/RobOMaker/Types/WorldFailure.hs view
@@ -0,0 +1,151 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.WorldFailure+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.WorldFailure 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+import Amazonka.RobOMaker.Types.WorldGenerationJobErrorCode++-- | Information about a failed world.+--+-- /See:/ 'newWorldFailure' smart constructor.+data WorldFailure = WorldFailure'+  { -- | The failure code of the world export job if it failed:+    --+    -- [InternalServiceError]+    --     Internal service error.+    --+    -- [LimitExceeded]+    --     The requested resource exceeds the maximum number allowed, or the+    --     number of concurrent stream requests exceeds the maximum number+    --     allowed.+    --+    -- [ResourceNotFound]+    --     The specified resource could not be found.+    --+    -- [RequestThrottled]+    --     The request was throttled.+    --+    -- [InvalidInput]+    --     An input parameter in the request is not valid.+    failureCode :: Prelude.Maybe WorldGenerationJobErrorCode,+    -- | The number of failed worlds.+    failureCount :: Prelude.Maybe Prelude.Int,+    -- | The sample reason why the world failed. World errors are aggregated. A+    -- sample is used as the @sampleFailureReason@.+    sampleFailureReason :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'WorldFailure' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'failureCode', 'worldFailure_failureCode' - The failure code of the world export job if it failed:+--+-- [InternalServiceError]+--     Internal service error.+--+-- [LimitExceeded]+--     The requested resource exceeds the maximum number allowed, or the+--     number of concurrent stream requests exceeds the maximum number+--     allowed.+--+-- [ResourceNotFound]+--     The specified resource could not be found.+--+-- [RequestThrottled]+--     The request was throttled.+--+-- [InvalidInput]+--     An input parameter in the request is not valid.+--+-- 'failureCount', 'worldFailure_failureCount' - The number of failed worlds.+--+-- 'sampleFailureReason', 'worldFailure_sampleFailureReason' - The sample reason why the world failed. World errors are aggregated. A+-- sample is used as the @sampleFailureReason@.+newWorldFailure ::+  WorldFailure+newWorldFailure =+  WorldFailure'+    { failureCode = Prelude.Nothing,+      failureCount = Prelude.Nothing,+      sampleFailureReason = Prelude.Nothing+    }++-- | The failure code of the world export job if it failed:+--+-- [InternalServiceError]+--     Internal service error.+--+-- [LimitExceeded]+--     The requested resource exceeds the maximum number allowed, or the+--     number of concurrent stream requests exceeds the maximum number+--     allowed.+--+-- [ResourceNotFound]+--     The specified resource could not be found.+--+-- [RequestThrottled]+--     The request was throttled.+--+-- [InvalidInput]+--     An input parameter in the request is not valid.+worldFailure_failureCode :: Lens.Lens' WorldFailure (Prelude.Maybe WorldGenerationJobErrorCode)+worldFailure_failureCode = Lens.lens (\WorldFailure' {failureCode} -> failureCode) (\s@WorldFailure' {} a -> s {failureCode = a} :: WorldFailure)++-- | The number of failed worlds.+worldFailure_failureCount :: Lens.Lens' WorldFailure (Prelude.Maybe Prelude.Int)+worldFailure_failureCount = Lens.lens (\WorldFailure' {failureCount} -> failureCount) (\s@WorldFailure' {} a -> s {failureCount = a} :: WorldFailure)++-- | The sample reason why the world failed. World errors are aggregated. A+-- sample is used as the @sampleFailureReason@.+worldFailure_sampleFailureReason :: Lens.Lens' WorldFailure (Prelude.Maybe Prelude.Text)+worldFailure_sampleFailureReason = Lens.lens (\WorldFailure' {sampleFailureReason} -> sampleFailureReason) (\s@WorldFailure' {} a -> s {sampleFailureReason = a} :: WorldFailure)++instance Data.FromJSON WorldFailure where+  parseJSON =+    Data.withObject+      "WorldFailure"+      ( \x ->+          WorldFailure'+            Prelude.<$> (x Data..:? "failureCode")+            Prelude.<*> (x Data..:? "failureCount")+            Prelude.<*> (x Data..:? "sampleFailureReason")+      )++instance Prelude.Hashable WorldFailure where+  hashWithSalt _salt WorldFailure' {..} =+    _salt+      `Prelude.hashWithSalt` failureCode+      `Prelude.hashWithSalt` failureCount+      `Prelude.hashWithSalt` sampleFailureReason++instance Prelude.NFData WorldFailure where+  rnf WorldFailure' {..} =+    Prelude.rnf failureCode+      `Prelude.seq` Prelude.rnf failureCount+      `Prelude.seq` Prelude.rnf sampleFailureReason
+ gen/Amazonka/RobOMaker/Types/WorldGenerationJobErrorCode.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.WorldGenerationJobErrorCode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.WorldGenerationJobErrorCode+  ( WorldGenerationJobErrorCode+      ( ..,+        WorldGenerationJobErrorCode_AllWorldGenerationFailed,+        WorldGenerationJobErrorCode_InternalServiceError,+        WorldGenerationJobErrorCode_InvalidInput,+        WorldGenerationJobErrorCode_LimitExceeded,+        WorldGenerationJobErrorCode_RequestThrottled,+        WorldGenerationJobErrorCode_ResourceNotFound+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype WorldGenerationJobErrorCode = WorldGenerationJobErrorCode'+  { fromWorldGenerationJobErrorCode ::+      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 WorldGenerationJobErrorCode_AllWorldGenerationFailed :: WorldGenerationJobErrorCode+pattern WorldGenerationJobErrorCode_AllWorldGenerationFailed = WorldGenerationJobErrorCode' "AllWorldGenerationFailed"++pattern WorldGenerationJobErrorCode_InternalServiceError :: WorldGenerationJobErrorCode+pattern WorldGenerationJobErrorCode_InternalServiceError = WorldGenerationJobErrorCode' "InternalServiceError"++pattern WorldGenerationJobErrorCode_InvalidInput :: WorldGenerationJobErrorCode+pattern WorldGenerationJobErrorCode_InvalidInput = WorldGenerationJobErrorCode' "InvalidInput"++pattern WorldGenerationJobErrorCode_LimitExceeded :: WorldGenerationJobErrorCode+pattern WorldGenerationJobErrorCode_LimitExceeded = WorldGenerationJobErrorCode' "LimitExceeded"++pattern WorldGenerationJobErrorCode_RequestThrottled :: WorldGenerationJobErrorCode+pattern WorldGenerationJobErrorCode_RequestThrottled = WorldGenerationJobErrorCode' "RequestThrottled"++pattern WorldGenerationJobErrorCode_ResourceNotFound :: WorldGenerationJobErrorCode+pattern WorldGenerationJobErrorCode_ResourceNotFound = WorldGenerationJobErrorCode' "ResourceNotFound"++{-# COMPLETE+  WorldGenerationJobErrorCode_AllWorldGenerationFailed,+  WorldGenerationJobErrorCode_InternalServiceError,+  WorldGenerationJobErrorCode_InvalidInput,+  WorldGenerationJobErrorCode_LimitExceeded,+  WorldGenerationJobErrorCode_RequestThrottled,+  WorldGenerationJobErrorCode_ResourceNotFound,+  WorldGenerationJobErrorCode'+  #-}
+ gen/Amazonka/RobOMaker/Types/WorldGenerationJobStatus.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.WorldGenerationJobStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.WorldGenerationJobStatus+  ( WorldGenerationJobStatus+      ( ..,+        WorldGenerationJobStatus_Canceled,+        WorldGenerationJobStatus_Canceling,+        WorldGenerationJobStatus_Completed,+        WorldGenerationJobStatus_Failed,+        WorldGenerationJobStatus_PartialFailed,+        WorldGenerationJobStatus_Pending,+        WorldGenerationJobStatus_Running+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype WorldGenerationJobStatus = WorldGenerationJobStatus'+  { fromWorldGenerationJobStatus ::+      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 WorldGenerationJobStatus_Canceled :: WorldGenerationJobStatus+pattern WorldGenerationJobStatus_Canceled = WorldGenerationJobStatus' "Canceled"++pattern WorldGenerationJobStatus_Canceling :: WorldGenerationJobStatus+pattern WorldGenerationJobStatus_Canceling = WorldGenerationJobStatus' "Canceling"++pattern WorldGenerationJobStatus_Completed :: WorldGenerationJobStatus+pattern WorldGenerationJobStatus_Completed = WorldGenerationJobStatus' "Completed"++pattern WorldGenerationJobStatus_Failed :: WorldGenerationJobStatus+pattern WorldGenerationJobStatus_Failed = WorldGenerationJobStatus' "Failed"++pattern WorldGenerationJobStatus_PartialFailed :: WorldGenerationJobStatus+pattern WorldGenerationJobStatus_PartialFailed = WorldGenerationJobStatus' "PartialFailed"++pattern WorldGenerationJobStatus_Pending :: WorldGenerationJobStatus+pattern WorldGenerationJobStatus_Pending = WorldGenerationJobStatus' "Pending"++pattern WorldGenerationJobStatus_Running :: WorldGenerationJobStatus+pattern WorldGenerationJobStatus_Running = WorldGenerationJobStatus' "Running"++{-# COMPLETE+  WorldGenerationJobStatus_Canceled,+  WorldGenerationJobStatus_Canceling,+  WorldGenerationJobStatus_Completed,+  WorldGenerationJobStatus_Failed,+  WorldGenerationJobStatus_PartialFailed,+  WorldGenerationJobStatus_Pending,+  WorldGenerationJobStatus_Running,+  WorldGenerationJobStatus'+  #-}
+ gen/Amazonka/RobOMaker/Types/WorldGenerationJobSummary.hs view
@@ -0,0 +1,215 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.Types.WorldGenerationJobSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.WorldGenerationJobSummary 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+import Amazonka.RobOMaker.Types.WorldCount+import Amazonka.RobOMaker.Types.WorldGenerationJobStatus++-- | Information about a world generator job.+--+-- /See:/ 'newWorldGenerationJobSummary' smart constructor.+data WorldGenerationJobSummary = WorldGenerationJobSummary'+  { -- | The Amazon Resource Name (ARN) of the world generator job.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The time, in milliseconds since the epoch, when the world generator job+    -- was created.+    createdAt :: Prelude.Maybe Data.POSIX,+    -- | The number of worlds that failed.+    failedWorldCount :: Prelude.Maybe Prelude.Int,+    -- | The status of the world generator job:+    --+    -- [Pending]+    --     The world generator job request is pending.+    --+    -- [Running]+    --     The world generator job is running.+    --+    -- [Completed]+    --     The world generator job completed.+    --+    -- [Failed]+    --     The world generator job failed. See @failureCode@ for more+    --     information.+    --+    -- [PartialFailed]+    --     Some worlds did not generate.+    --+    -- [Canceled]+    --     The world generator job was cancelled.+    --+    -- [Canceling]+    --     The world generator job is being cancelled.+    status :: Prelude.Maybe WorldGenerationJobStatus,+    -- | The number of worlds that were generated.+    succeededWorldCount :: Prelude.Maybe Prelude.Int,+    -- | The Amazon Resource Name (arn) of the world template.+    template :: Prelude.Maybe Prelude.Text,+    -- | Information about the world count.+    worldCount :: Prelude.Maybe WorldCount+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'WorldGenerationJobSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'worldGenerationJobSummary_arn' - The Amazon Resource Name (ARN) of the world generator job.+--+-- 'createdAt', 'worldGenerationJobSummary_createdAt' - The time, in milliseconds since the epoch, when the world generator job+-- was created.+--+-- 'failedWorldCount', 'worldGenerationJobSummary_failedWorldCount' - The number of worlds that failed.+--+-- 'status', 'worldGenerationJobSummary_status' - The status of the world generator job:+--+-- [Pending]+--     The world generator job request is pending.+--+-- [Running]+--     The world generator job is running.+--+-- [Completed]+--     The world generator job completed.+--+-- [Failed]+--     The world generator job failed. See @failureCode@ for more+--     information.+--+-- [PartialFailed]+--     Some worlds did not generate.+--+-- [Canceled]+--     The world generator job was cancelled.+--+-- [Canceling]+--     The world generator job is being cancelled.+--+-- 'succeededWorldCount', 'worldGenerationJobSummary_succeededWorldCount' - The number of worlds that were generated.+--+-- 'template', 'worldGenerationJobSummary_template' - The Amazon Resource Name (arn) of the world template.+--+-- 'worldCount', 'worldGenerationJobSummary_worldCount' - Information about the world count.+newWorldGenerationJobSummary ::+  WorldGenerationJobSummary+newWorldGenerationJobSummary =+  WorldGenerationJobSummary'+    { arn = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      failedWorldCount = Prelude.Nothing,+      status = Prelude.Nothing,+      succeededWorldCount = Prelude.Nothing,+      template = Prelude.Nothing,+      worldCount = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the world generator job.+worldGenerationJobSummary_arn :: Lens.Lens' WorldGenerationJobSummary (Prelude.Maybe Prelude.Text)+worldGenerationJobSummary_arn = Lens.lens (\WorldGenerationJobSummary' {arn} -> arn) (\s@WorldGenerationJobSummary' {} a -> s {arn = a} :: WorldGenerationJobSummary)++-- | The time, in milliseconds since the epoch, when the world generator job+-- was created.+worldGenerationJobSummary_createdAt :: Lens.Lens' WorldGenerationJobSummary (Prelude.Maybe Prelude.UTCTime)+worldGenerationJobSummary_createdAt = Lens.lens (\WorldGenerationJobSummary' {createdAt} -> createdAt) (\s@WorldGenerationJobSummary' {} a -> s {createdAt = a} :: WorldGenerationJobSummary) Prelude.. Lens.mapping Data._Time++-- | The number of worlds that failed.+worldGenerationJobSummary_failedWorldCount :: Lens.Lens' WorldGenerationJobSummary (Prelude.Maybe Prelude.Int)+worldGenerationJobSummary_failedWorldCount = Lens.lens (\WorldGenerationJobSummary' {failedWorldCount} -> failedWorldCount) (\s@WorldGenerationJobSummary' {} a -> s {failedWorldCount = a} :: WorldGenerationJobSummary)++-- | The status of the world generator job:+--+-- [Pending]+--     The world generator job request is pending.+--+-- [Running]+--     The world generator job is running.+--+-- [Completed]+--     The world generator job completed.+--+-- [Failed]+--     The world generator job failed. See @failureCode@ for more+--     information.+--+-- [PartialFailed]+--     Some worlds did not generate.+--+-- [Canceled]+--     The world generator job was cancelled.+--+-- [Canceling]+--     The world generator job is being cancelled.+worldGenerationJobSummary_status :: Lens.Lens' WorldGenerationJobSummary (Prelude.Maybe WorldGenerationJobStatus)+worldGenerationJobSummary_status = Lens.lens (\WorldGenerationJobSummary' {status} -> status) (\s@WorldGenerationJobSummary' {} a -> s {status = a} :: WorldGenerationJobSummary)++-- | The number of worlds that were generated.+worldGenerationJobSummary_succeededWorldCount :: Lens.Lens' WorldGenerationJobSummary (Prelude.Maybe Prelude.Int)+worldGenerationJobSummary_succeededWorldCount = Lens.lens (\WorldGenerationJobSummary' {succeededWorldCount} -> succeededWorldCount) (\s@WorldGenerationJobSummary' {} a -> s {succeededWorldCount = a} :: WorldGenerationJobSummary)++-- | The Amazon Resource Name (arn) of the world template.+worldGenerationJobSummary_template :: Lens.Lens' WorldGenerationJobSummary (Prelude.Maybe Prelude.Text)+worldGenerationJobSummary_template = Lens.lens (\WorldGenerationJobSummary' {template} -> template) (\s@WorldGenerationJobSummary' {} a -> s {template = a} :: WorldGenerationJobSummary)++-- | Information about the world count.+worldGenerationJobSummary_worldCount :: Lens.Lens' WorldGenerationJobSummary (Prelude.Maybe WorldCount)+worldGenerationJobSummary_worldCount = Lens.lens (\WorldGenerationJobSummary' {worldCount} -> worldCount) (\s@WorldGenerationJobSummary' {} a -> s {worldCount = a} :: WorldGenerationJobSummary)++instance Data.FromJSON WorldGenerationJobSummary where+  parseJSON =+    Data.withObject+      "WorldGenerationJobSummary"+      ( \x ->+          WorldGenerationJobSummary'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "createdAt")+            Prelude.<*> (x Data..:? "failedWorldCount")+            Prelude.<*> (x Data..:? "status")+            Prelude.<*> (x Data..:? "succeededWorldCount")+            Prelude.<*> (x Data..:? "template")+            Prelude.<*> (x Data..:? "worldCount")+      )++instance Prelude.Hashable WorldGenerationJobSummary where+  hashWithSalt _salt WorldGenerationJobSummary' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` failedWorldCount+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` succeededWorldCount+      `Prelude.hashWithSalt` template+      `Prelude.hashWithSalt` worldCount++instance Prelude.NFData WorldGenerationJobSummary where+  rnf WorldGenerationJobSummary' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf failedWorldCount+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf succeededWorldCount+      `Prelude.seq` Prelude.rnf template+      `Prelude.seq` Prelude.rnf worldCount
+ gen/Amazonka/RobOMaker/Types/WorldSummary.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.RobOMaker.Types.WorldSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.RobOMaker.Types.WorldSummary 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 a world.+--+-- /See:/ 'newWorldSummary' smart constructor.+data WorldSummary = WorldSummary'+  { -- | The Amazon Resource Name (ARN) of the world.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The time, in milliseconds since the epoch, when the world was created.+    createdAt :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (arn) of the world generation job.+    generationJob :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (arn) of the world template.+    template :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'WorldSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'worldSummary_arn' - The Amazon Resource Name (ARN) of the world.+--+-- 'createdAt', 'worldSummary_createdAt' - The time, in milliseconds since the epoch, when the world was created.+--+-- 'generationJob', 'worldSummary_generationJob' - The Amazon Resource Name (arn) of the world generation job.+--+-- 'template', 'worldSummary_template' - The Amazon Resource Name (arn) of the world template.+newWorldSummary ::+  WorldSummary+newWorldSummary =+  WorldSummary'+    { arn = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      generationJob = Prelude.Nothing,+      template = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the world.+worldSummary_arn :: Lens.Lens' WorldSummary (Prelude.Maybe Prelude.Text)+worldSummary_arn = Lens.lens (\WorldSummary' {arn} -> arn) (\s@WorldSummary' {} a -> s {arn = a} :: WorldSummary)++-- | The time, in milliseconds since the epoch, when the world was created.+worldSummary_createdAt :: Lens.Lens' WorldSummary (Prelude.Maybe Prelude.UTCTime)+worldSummary_createdAt = Lens.lens (\WorldSummary' {createdAt} -> createdAt) (\s@WorldSummary' {} a -> s {createdAt = a} :: WorldSummary) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (arn) of the world generation job.+worldSummary_generationJob :: Lens.Lens' WorldSummary (Prelude.Maybe Prelude.Text)+worldSummary_generationJob = Lens.lens (\WorldSummary' {generationJob} -> generationJob) (\s@WorldSummary' {} a -> s {generationJob = a} :: WorldSummary)++-- | The Amazon Resource Name (arn) of the world template.+worldSummary_template :: Lens.Lens' WorldSummary (Prelude.Maybe Prelude.Text)+worldSummary_template = Lens.lens (\WorldSummary' {template} -> template) (\s@WorldSummary' {} a -> s {template = a} :: WorldSummary)++instance Data.FromJSON WorldSummary where+  parseJSON =+    Data.withObject+      "WorldSummary"+      ( \x ->+          WorldSummary'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "createdAt")+            Prelude.<*> (x Data..:? "generationJob")+            Prelude.<*> (x Data..:? "template")+      )++instance Prelude.Hashable WorldSummary where+  hashWithSalt _salt WorldSummary' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` generationJob+      `Prelude.hashWithSalt` template++instance Prelude.NFData WorldSummary where+  rnf WorldSummary' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf generationJob+      `Prelude.seq` Prelude.rnf template
+ gen/Amazonka/RobOMaker/UntagResource.hs view
@@ -0,0 +1,172 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.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 the specified tags from the specified AWS RoboMaker resource.+--+-- To remove a tag, specify the tag key. To change the tag value of an+-- existing tag key, use+-- <https://docs.aws.amazon.com/robomaker/latest/dg/API_TagResource.html TagResource>+-- .+module Amazonka.RobOMaker.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 qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newUntagResource' smart constructor.+data UntagResource = UntagResource'+  { -- | The Amazon Resource Name (ARN) of the AWS RoboMaker resource you are+    -- removing tags.+    resourceArn :: Prelude.Text,+    -- | A map that contains tag keys and tag values that will be unattached from+    -- the resource.+    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 AWS RoboMaker resource you are+-- removing tags.+--+-- 'tagKeys', 'untagResource_tagKeys' - A map that contains tag keys and tag values that will be unattached from+-- the resource.+newUntagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  UntagResource+newUntagResource pResourceArn_ =+  UntagResource'+    { resourceArn = pResourceArn_,+      tagKeys = Prelude.mempty+    }++-- | The Amazon Resource Name (ARN) of the AWS RoboMaker resource you are+-- removing tags.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | A map that contains tag keys and tag values that will be unattached from+-- the resource.+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 ["/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/RobOMaker/UpdateRobotApplication.hs view
@@ -0,0 +1,330 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.UpdateRobotApplication+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a robot application.+module Amazonka.RobOMaker.UpdateRobotApplication+  ( -- * Creating a Request+    UpdateRobotApplication (..),+    newUpdateRobotApplication,++    -- * Request Lenses+    updateRobotApplication_currentRevisionId,+    updateRobotApplication_environment,+    updateRobotApplication_sources,+    updateRobotApplication_application,+    updateRobotApplication_robotSoftwareSuite,++    -- * Destructuring the Response+    UpdateRobotApplicationResponse (..),+    newUpdateRobotApplicationResponse,++    -- * Response Lenses+    updateRobotApplicationResponse_arn,+    updateRobotApplicationResponse_environment,+    updateRobotApplicationResponse_lastUpdatedAt,+    updateRobotApplicationResponse_name,+    updateRobotApplicationResponse_revisionId,+    updateRobotApplicationResponse_robotSoftwareSuite,+    updateRobotApplicationResponse_sources,+    updateRobotApplicationResponse_version,+    updateRobotApplicationResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newUpdateRobotApplication' smart constructor.+data UpdateRobotApplication = UpdateRobotApplication'+  { -- | The revision id for the robot application.+    currentRevisionId :: Prelude.Maybe Prelude.Text,+    -- | The object that contains the Docker image URI for your robot+    -- application.+    environment :: Prelude.Maybe Environment,+    -- | The sources of the robot application.+    sources :: Prelude.Maybe [SourceConfig],+    -- | The application information for the robot application.+    application :: Prelude.Text,+    -- | The robot software suite (ROS distribution) used by the robot+    -- application.+    robotSoftwareSuite :: RobotSoftwareSuite+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateRobotApplication' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'currentRevisionId', 'updateRobotApplication_currentRevisionId' - The revision id for the robot application.+--+-- 'environment', 'updateRobotApplication_environment' - The object that contains the Docker image URI for your robot+-- application.+--+-- 'sources', 'updateRobotApplication_sources' - The sources of the robot application.+--+-- 'application', 'updateRobotApplication_application' - The application information for the robot application.+--+-- 'robotSoftwareSuite', 'updateRobotApplication_robotSoftwareSuite' - The robot software suite (ROS distribution) used by the robot+-- application.+newUpdateRobotApplication ::+  -- | 'application'+  Prelude.Text ->+  -- | 'robotSoftwareSuite'+  RobotSoftwareSuite ->+  UpdateRobotApplication+newUpdateRobotApplication+  pApplication_+  pRobotSoftwareSuite_ =+    UpdateRobotApplication'+      { currentRevisionId =+          Prelude.Nothing,+        environment = Prelude.Nothing,+        sources = Prelude.Nothing,+        application = pApplication_,+        robotSoftwareSuite = pRobotSoftwareSuite_+      }++-- | The revision id for the robot application.+updateRobotApplication_currentRevisionId :: Lens.Lens' UpdateRobotApplication (Prelude.Maybe Prelude.Text)+updateRobotApplication_currentRevisionId = Lens.lens (\UpdateRobotApplication' {currentRevisionId} -> currentRevisionId) (\s@UpdateRobotApplication' {} a -> s {currentRevisionId = a} :: UpdateRobotApplication)++-- | The object that contains the Docker image URI for your robot+-- application.+updateRobotApplication_environment :: Lens.Lens' UpdateRobotApplication (Prelude.Maybe Environment)+updateRobotApplication_environment = Lens.lens (\UpdateRobotApplication' {environment} -> environment) (\s@UpdateRobotApplication' {} a -> s {environment = a} :: UpdateRobotApplication)++-- | The sources of the robot application.+updateRobotApplication_sources :: Lens.Lens' UpdateRobotApplication (Prelude.Maybe [SourceConfig])+updateRobotApplication_sources = Lens.lens (\UpdateRobotApplication' {sources} -> sources) (\s@UpdateRobotApplication' {} a -> s {sources = a} :: UpdateRobotApplication) Prelude.. Lens.mapping Lens.coerced++-- | The application information for the robot application.+updateRobotApplication_application :: Lens.Lens' UpdateRobotApplication Prelude.Text+updateRobotApplication_application = Lens.lens (\UpdateRobotApplication' {application} -> application) (\s@UpdateRobotApplication' {} a -> s {application = a} :: UpdateRobotApplication)++-- | The robot software suite (ROS distribution) used by the robot+-- application.+updateRobotApplication_robotSoftwareSuite :: Lens.Lens' UpdateRobotApplication RobotSoftwareSuite+updateRobotApplication_robotSoftwareSuite = Lens.lens (\UpdateRobotApplication' {robotSoftwareSuite} -> robotSoftwareSuite) (\s@UpdateRobotApplication' {} a -> s {robotSoftwareSuite = a} :: UpdateRobotApplication)++instance Core.AWSRequest UpdateRobotApplication where+  type+    AWSResponse UpdateRobotApplication =+      UpdateRobotApplicationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateRobotApplicationResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "environment")+            Prelude.<*> (x Data..?> "lastUpdatedAt")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (x Data..?> "revisionId")+            Prelude.<*> (x Data..?> "robotSoftwareSuite")+            Prelude.<*> (x Data..?> "sources" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "version")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateRobotApplication where+  hashWithSalt _salt UpdateRobotApplication' {..} =+    _salt+      `Prelude.hashWithSalt` currentRevisionId+      `Prelude.hashWithSalt` environment+      `Prelude.hashWithSalt` sources+      `Prelude.hashWithSalt` application+      `Prelude.hashWithSalt` robotSoftwareSuite++instance Prelude.NFData UpdateRobotApplication where+  rnf UpdateRobotApplication' {..} =+    Prelude.rnf currentRevisionId+      `Prelude.seq` Prelude.rnf environment+      `Prelude.seq` Prelude.rnf sources+      `Prelude.seq` Prelude.rnf application+      `Prelude.seq` Prelude.rnf robotSoftwareSuite++instance Data.ToHeaders UpdateRobotApplication where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateRobotApplication where+  toJSON UpdateRobotApplication' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("currentRevisionId" Data..=)+              Prelude.<$> currentRevisionId,+            ("environment" Data..=) Prelude.<$> environment,+            ("sources" Data..=) Prelude.<$> sources,+            Prelude.Just ("application" Data..= application),+            Prelude.Just+              ("robotSoftwareSuite" Data..= robotSoftwareSuite)+          ]+      )++instance Data.ToPath UpdateRobotApplication where+  toPath = Prelude.const "/updateRobotApplication"++instance Data.ToQuery UpdateRobotApplication where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateRobotApplicationResponse' smart constructor.+data UpdateRobotApplicationResponse = UpdateRobotApplicationResponse'+  { -- | The Amazon Resource Name (ARN) of the updated robot application.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The object that contains the Docker image URI for your robot+    -- application.+    environment :: Prelude.Maybe Environment,+    -- | The time, in milliseconds since the epoch, when the robot application+    -- was last updated.+    lastUpdatedAt :: Prelude.Maybe Data.POSIX,+    -- | The name of the robot application.+    name :: Prelude.Maybe Prelude.Text,+    -- | The revision id of the robot application.+    revisionId :: Prelude.Maybe Prelude.Text,+    -- | The robot software suite (ROS distribution) used by the robot+    -- application.+    robotSoftwareSuite :: Prelude.Maybe RobotSoftwareSuite,+    -- | The sources of the robot application.+    sources :: Prelude.Maybe [Source],+    -- | The version of the robot application.+    version :: 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 'UpdateRobotApplicationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'updateRobotApplicationResponse_arn' - The Amazon Resource Name (ARN) of the updated robot application.+--+-- 'environment', 'updateRobotApplicationResponse_environment' - The object that contains the Docker image URI for your robot+-- application.+--+-- 'lastUpdatedAt', 'updateRobotApplicationResponse_lastUpdatedAt' - The time, in milliseconds since the epoch, when the robot application+-- was last updated.+--+-- 'name', 'updateRobotApplicationResponse_name' - The name of the robot application.+--+-- 'revisionId', 'updateRobotApplicationResponse_revisionId' - The revision id of the robot application.+--+-- 'robotSoftwareSuite', 'updateRobotApplicationResponse_robotSoftwareSuite' - The robot software suite (ROS distribution) used by the robot+-- application.+--+-- 'sources', 'updateRobotApplicationResponse_sources' - The sources of the robot application.+--+-- 'version', 'updateRobotApplicationResponse_version' - The version of the robot application.+--+-- 'httpStatus', 'updateRobotApplicationResponse_httpStatus' - The response's http status code.+newUpdateRobotApplicationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateRobotApplicationResponse+newUpdateRobotApplicationResponse pHttpStatus_ =+  UpdateRobotApplicationResponse'+    { arn =+        Prelude.Nothing,+      environment = Prelude.Nothing,+      lastUpdatedAt = Prelude.Nothing,+      name = Prelude.Nothing,+      revisionId = Prelude.Nothing,+      robotSoftwareSuite = Prelude.Nothing,+      sources = Prelude.Nothing,+      version = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the updated robot application.+updateRobotApplicationResponse_arn :: Lens.Lens' UpdateRobotApplicationResponse (Prelude.Maybe Prelude.Text)+updateRobotApplicationResponse_arn = Lens.lens (\UpdateRobotApplicationResponse' {arn} -> arn) (\s@UpdateRobotApplicationResponse' {} a -> s {arn = a} :: UpdateRobotApplicationResponse)++-- | The object that contains the Docker image URI for your robot+-- application.+updateRobotApplicationResponse_environment :: Lens.Lens' UpdateRobotApplicationResponse (Prelude.Maybe Environment)+updateRobotApplicationResponse_environment = Lens.lens (\UpdateRobotApplicationResponse' {environment} -> environment) (\s@UpdateRobotApplicationResponse' {} a -> s {environment = a} :: UpdateRobotApplicationResponse)++-- | The time, in milliseconds since the epoch, when the robot application+-- was last updated.+updateRobotApplicationResponse_lastUpdatedAt :: Lens.Lens' UpdateRobotApplicationResponse (Prelude.Maybe Prelude.UTCTime)+updateRobotApplicationResponse_lastUpdatedAt = Lens.lens (\UpdateRobotApplicationResponse' {lastUpdatedAt} -> lastUpdatedAt) (\s@UpdateRobotApplicationResponse' {} a -> s {lastUpdatedAt = a} :: UpdateRobotApplicationResponse) Prelude.. Lens.mapping Data._Time++-- | The name of the robot application.+updateRobotApplicationResponse_name :: Lens.Lens' UpdateRobotApplicationResponse (Prelude.Maybe Prelude.Text)+updateRobotApplicationResponse_name = Lens.lens (\UpdateRobotApplicationResponse' {name} -> name) (\s@UpdateRobotApplicationResponse' {} a -> s {name = a} :: UpdateRobotApplicationResponse)++-- | The revision id of the robot application.+updateRobotApplicationResponse_revisionId :: Lens.Lens' UpdateRobotApplicationResponse (Prelude.Maybe Prelude.Text)+updateRobotApplicationResponse_revisionId = Lens.lens (\UpdateRobotApplicationResponse' {revisionId} -> revisionId) (\s@UpdateRobotApplicationResponse' {} a -> s {revisionId = a} :: UpdateRobotApplicationResponse)++-- | The robot software suite (ROS distribution) used by the robot+-- application.+updateRobotApplicationResponse_robotSoftwareSuite :: Lens.Lens' UpdateRobotApplicationResponse (Prelude.Maybe RobotSoftwareSuite)+updateRobotApplicationResponse_robotSoftwareSuite = Lens.lens (\UpdateRobotApplicationResponse' {robotSoftwareSuite} -> robotSoftwareSuite) (\s@UpdateRobotApplicationResponse' {} a -> s {robotSoftwareSuite = a} :: UpdateRobotApplicationResponse)++-- | The sources of the robot application.+updateRobotApplicationResponse_sources :: Lens.Lens' UpdateRobotApplicationResponse (Prelude.Maybe [Source])+updateRobotApplicationResponse_sources = Lens.lens (\UpdateRobotApplicationResponse' {sources} -> sources) (\s@UpdateRobotApplicationResponse' {} a -> s {sources = a} :: UpdateRobotApplicationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The version of the robot application.+updateRobotApplicationResponse_version :: Lens.Lens' UpdateRobotApplicationResponse (Prelude.Maybe Prelude.Text)+updateRobotApplicationResponse_version = Lens.lens (\UpdateRobotApplicationResponse' {version} -> version) (\s@UpdateRobotApplicationResponse' {} a -> s {version = a} :: UpdateRobotApplicationResponse)++-- | The response's http status code.+updateRobotApplicationResponse_httpStatus :: Lens.Lens' UpdateRobotApplicationResponse Prelude.Int+updateRobotApplicationResponse_httpStatus = Lens.lens (\UpdateRobotApplicationResponse' {httpStatus} -> httpStatus) (\s@UpdateRobotApplicationResponse' {} a -> s {httpStatus = a} :: UpdateRobotApplicationResponse)++instance+  Prelude.NFData+    UpdateRobotApplicationResponse+  where+  rnf UpdateRobotApplicationResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf environment+      `Prelude.seq` Prelude.rnf lastUpdatedAt+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf revisionId+      `Prelude.seq` Prelude.rnf robotSoftwareSuite+      `Prelude.seq` Prelude.rnf sources+      `Prelude.seq` Prelude.rnf version+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/UpdateSimulationApplication.hs view
@@ -0,0 +1,383 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.UpdateSimulationApplication+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a simulation application.+module Amazonka.RobOMaker.UpdateSimulationApplication+  ( -- * Creating a Request+    UpdateSimulationApplication (..),+    newUpdateSimulationApplication,++    -- * Request Lenses+    updateSimulationApplication_currentRevisionId,+    updateSimulationApplication_environment,+    updateSimulationApplication_renderingEngine,+    updateSimulationApplication_sources,+    updateSimulationApplication_application,+    updateSimulationApplication_simulationSoftwareSuite,+    updateSimulationApplication_robotSoftwareSuite,++    -- * Destructuring the Response+    UpdateSimulationApplicationResponse (..),+    newUpdateSimulationApplicationResponse,++    -- * Response Lenses+    updateSimulationApplicationResponse_arn,+    updateSimulationApplicationResponse_environment,+    updateSimulationApplicationResponse_lastUpdatedAt,+    updateSimulationApplicationResponse_name,+    updateSimulationApplicationResponse_renderingEngine,+    updateSimulationApplicationResponse_revisionId,+    updateSimulationApplicationResponse_robotSoftwareSuite,+    updateSimulationApplicationResponse_simulationSoftwareSuite,+    updateSimulationApplicationResponse_sources,+    updateSimulationApplicationResponse_version,+    updateSimulationApplicationResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newUpdateSimulationApplication' smart constructor.+data UpdateSimulationApplication = UpdateSimulationApplication'+  { -- | The revision id for the robot application.+    currentRevisionId :: Prelude.Maybe Prelude.Text,+    -- | The object that contains the Docker image URI for your simulation+    -- application.+    environment :: Prelude.Maybe Environment,+    -- | The rendering engine for the simulation application.+    renderingEngine :: Prelude.Maybe RenderingEngine,+    -- | The sources of the simulation application.+    sources :: Prelude.Maybe [SourceConfig],+    -- | The application information for the simulation application.+    application :: Prelude.Text,+    -- | The simulation software suite used by the simulation application.+    simulationSoftwareSuite :: SimulationSoftwareSuite,+    -- | Information about the robot software suite (ROS distribution).+    robotSoftwareSuite :: RobotSoftwareSuite+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateSimulationApplication' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'currentRevisionId', 'updateSimulationApplication_currentRevisionId' - The revision id for the robot application.+--+-- 'environment', 'updateSimulationApplication_environment' - The object that contains the Docker image URI for your simulation+-- application.+--+-- 'renderingEngine', 'updateSimulationApplication_renderingEngine' - The rendering engine for the simulation application.+--+-- 'sources', 'updateSimulationApplication_sources' - The sources of the simulation application.+--+-- 'application', 'updateSimulationApplication_application' - The application information for the simulation application.+--+-- 'simulationSoftwareSuite', 'updateSimulationApplication_simulationSoftwareSuite' - The simulation software suite used by the simulation application.+--+-- 'robotSoftwareSuite', 'updateSimulationApplication_robotSoftwareSuite' - Information about the robot software suite (ROS distribution).+newUpdateSimulationApplication ::+  -- | 'application'+  Prelude.Text ->+  -- | 'simulationSoftwareSuite'+  SimulationSoftwareSuite ->+  -- | 'robotSoftwareSuite'+  RobotSoftwareSuite ->+  UpdateSimulationApplication+newUpdateSimulationApplication+  pApplication_+  pSimulationSoftwareSuite_+  pRobotSoftwareSuite_ =+    UpdateSimulationApplication'+      { currentRevisionId =+          Prelude.Nothing,+        environment = Prelude.Nothing,+        renderingEngine = Prelude.Nothing,+        sources = Prelude.Nothing,+        application = pApplication_,+        simulationSoftwareSuite =+          pSimulationSoftwareSuite_,+        robotSoftwareSuite = pRobotSoftwareSuite_+      }++-- | The revision id for the robot application.+updateSimulationApplication_currentRevisionId :: Lens.Lens' UpdateSimulationApplication (Prelude.Maybe Prelude.Text)+updateSimulationApplication_currentRevisionId = Lens.lens (\UpdateSimulationApplication' {currentRevisionId} -> currentRevisionId) (\s@UpdateSimulationApplication' {} a -> s {currentRevisionId = a} :: UpdateSimulationApplication)++-- | The object that contains the Docker image URI for your simulation+-- application.+updateSimulationApplication_environment :: Lens.Lens' UpdateSimulationApplication (Prelude.Maybe Environment)+updateSimulationApplication_environment = Lens.lens (\UpdateSimulationApplication' {environment} -> environment) (\s@UpdateSimulationApplication' {} a -> s {environment = a} :: UpdateSimulationApplication)++-- | The rendering engine for the simulation application.+updateSimulationApplication_renderingEngine :: Lens.Lens' UpdateSimulationApplication (Prelude.Maybe RenderingEngine)+updateSimulationApplication_renderingEngine = Lens.lens (\UpdateSimulationApplication' {renderingEngine} -> renderingEngine) (\s@UpdateSimulationApplication' {} a -> s {renderingEngine = a} :: UpdateSimulationApplication)++-- | The sources of the simulation application.+updateSimulationApplication_sources :: Lens.Lens' UpdateSimulationApplication (Prelude.Maybe [SourceConfig])+updateSimulationApplication_sources = Lens.lens (\UpdateSimulationApplication' {sources} -> sources) (\s@UpdateSimulationApplication' {} a -> s {sources = a} :: UpdateSimulationApplication) Prelude.. Lens.mapping Lens.coerced++-- | The application information for the simulation application.+updateSimulationApplication_application :: Lens.Lens' UpdateSimulationApplication Prelude.Text+updateSimulationApplication_application = Lens.lens (\UpdateSimulationApplication' {application} -> application) (\s@UpdateSimulationApplication' {} a -> s {application = a} :: UpdateSimulationApplication)++-- | The simulation software suite used by the simulation application.+updateSimulationApplication_simulationSoftwareSuite :: Lens.Lens' UpdateSimulationApplication SimulationSoftwareSuite+updateSimulationApplication_simulationSoftwareSuite = Lens.lens (\UpdateSimulationApplication' {simulationSoftwareSuite} -> simulationSoftwareSuite) (\s@UpdateSimulationApplication' {} a -> s {simulationSoftwareSuite = a} :: UpdateSimulationApplication)++-- | Information about the robot software suite (ROS distribution).+updateSimulationApplication_robotSoftwareSuite :: Lens.Lens' UpdateSimulationApplication RobotSoftwareSuite+updateSimulationApplication_robotSoftwareSuite = Lens.lens (\UpdateSimulationApplication' {robotSoftwareSuite} -> robotSoftwareSuite) (\s@UpdateSimulationApplication' {} a -> s {robotSoftwareSuite = a} :: UpdateSimulationApplication)++instance Core.AWSRequest UpdateSimulationApplication where+  type+    AWSResponse UpdateSimulationApplication =+      UpdateSimulationApplicationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateSimulationApplicationResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "environment")+            Prelude.<*> (x Data..?> "lastUpdatedAt")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (x Data..?> "renderingEngine")+            Prelude.<*> (x Data..?> "revisionId")+            Prelude.<*> (x Data..?> "robotSoftwareSuite")+            Prelude.<*> (x Data..?> "simulationSoftwareSuite")+            Prelude.<*> (x Data..?> "sources" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "version")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateSimulationApplication where+  hashWithSalt _salt UpdateSimulationApplication' {..} =+    _salt+      `Prelude.hashWithSalt` currentRevisionId+      `Prelude.hashWithSalt` environment+      `Prelude.hashWithSalt` renderingEngine+      `Prelude.hashWithSalt` sources+      `Prelude.hashWithSalt` application+      `Prelude.hashWithSalt` simulationSoftwareSuite+      `Prelude.hashWithSalt` robotSoftwareSuite++instance Prelude.NFData UpdateSimulationApplication where+  rnf UpdateSimulationApplication' {..} =+    Prelude.rnf currentRevisionId+      `Prelude.seq` Prelude.rnf environment+      `Prelude.seq` Prelude.rnf renderingEngine+      `Prelude.seq` Prelude.rnf sources+      `Prelude.seq` Prelude.rnf application+      `Prelude.seq` Prelude.rnf simulationSoftwareSuite+      `Prelude.seq` Prelude.rnf robotSoftwareSuite++instance Data.ToHeaders UpdateSimulationApplication where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateSimulationApplication where+  toJSON UpdateSimulationApplication' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("currentRevisionId" Data..=)+              Prelude.<$> currentRevisionId,+            ("environment" Data..=) Prelude.<$> environment,+            ("renderingEngine" Data..=)+              Prelude.<$> renderingEngine,+            ("sources" Data..=) Prelude.<$> sources,+            Prelude.Just ("application" Data..= application),+            Prelude.Just+              ( "simulationSoftwareSuite"+                  Data..= simulationSoftwareSuite+              ),+            Prelude.Just+              ("robotSoftwareSuite" Data..= robotSoftwareSuite)+          ]+      )++instance Data.ToPath UpdateSimulationApplication where+  toPath = Prelude.const "/updateSimulationApplication"++instance Data.ToQuery UpdateSimulationApplication where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateSimulationApplicationResponse' smart constructor.+data UpdateSimulationApplicationResponse = UpdateSimulationApplicationResponse'+  { -- | The Amazon Resource Name (ARN) of the updated simulation application.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The object that contains the Docker image URI used for your simulation+    -- application.+    environment :: Prelude.Maybe Environment,+    -- | The time, in milliseconds since the epoch, when the simulation+    -- application was last updated.+    lastUpdatedAt :: Prelude.Maybe Data.POSIX,+    -- | The name of the simulation application.+    name :: Prelude.Maybe Prelude.Text,+    -- | The rendering engine for the simulation application.+    renderingEngine :: Prelude.Maybe RenderingEngine,+    -- | The revision id of the simulation application.+    revisionId :: Prelude.Maybe Prelude.Text,+    -- | Information about the robot software suite (ROS distribution).+    robotSoftwareSuite :: Prelude.Maybe RobotSoftwareSuite,+    -- | The simulation software suite used by the simulation application.+    simulationSoftwareSuite :: Prelude.Maybe SimulationSoftwareSuite,+    -- | The sources of the simulation application.+    sources :: Prelude.Maybe [Source],+    -- | The version of the robot application.+    version :: 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 'UpdateSimulationApplicationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'updateSimulationApplicationResponse_arn' - The Amazon Resource Name (ARN) of the updated simulation application.+--+-- 'environment', 'updateSimulationApplicationResponse_environment' - The object that contains the Docker image URI used for your simulation+-- application.+--+-- 'lastUpdatedAt', 'updateSimulationApplicationResponse_lastUpdatedAt' - The time, in milliseconds since the epoch, when the simulation+-- application was last updated.+--+-- 'name', 'updateSimulationApplicationResponse_name' - The name of the simulation application.+--+-- 'renderingEngine', 'updateSimulationApplicationResponse_renderingEngine' - The rendering engine for the simulation application.+--+-- 'revisionId', 'updateSimulationApplicationResponse_revisionId' - The revision id of the simulation application.+--+-- 'robotSoftwareSuite', 'updateSimulationApplicationResponse_robotSoftwareSuite' - Information about the robot software suite (ROS distribution).+--+-- 'simulationSoftwareSuite', 'updateSimulationApplicationResponse_simulationSoftwareSuite' - The simulation software suite used by the simulation application.+--+-- 'sources', 'updateSimulationApplicationResponse_sources' - The sources of the simulation application.+--+-- 'version', 'updateSimulationApplicationResponse_version' - The version of the robot application.+--+-- 'httpStatus', 'updateSimulationApplicationResponse_httpStatus' - The response's http status code.+newUpdateSimulationApplicationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateSimulationApplicationResponse+newUpdateSimulationApplicationResponse pHttpStatus_ =+  UpdateSimulationApplicationResponse'+    { arn =+        Prelude.Nothing,+      environment = Prelude.Nothing,+      lastUpdatedAt = Prelude.Nothing,+      name = Prelude.Nothing,+      renderingEngine = Prelude.Nothing,+      revisionId = Prelude.Nothing,+      robotSoftwareSuite = Prelude.Nothing,+      simulationSoftwareSuite =+        Prelude.Nothing,+      sources = Prelude.Nothing,+      version = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the updated simulation application.+updateSimulationApplicationResponse_arn :: Lens.Lens' UpdateSimulationApplicationResponse (Prelude.Maybe Prelude.Text)+updateSimulationApplicationResponse_arn = Lens.lens (\UpdateSimulationApplicationResponse' {arn} -> arn) (\s@UpdateSimulationApplicationResponse' {} a -> s {arn = a} :: UpdateSimulationApplicationResponse)++-- | The object that contains the Docker image URI used for your simulation+-- application.+updateSimulationApplicationResponse_environment :: Lens.Lens' UpdateSimulationApplicationResponse (Prelude.Maybe Environment)+updateSimulationApplicationResponse_environment = Lens.lens (\UpdateSimulationApplicationResponse' {environment} -> environment) (\s@UpdateSimulationApplicationResponse' {} a -> s {environment = a} :: UpdateSimulationApplicationResponse)++-- | The time, in milliseconds since the epoch, when the simulation+-- application was last updated.+updateSimulationApplicationResponse_lastUpdatedAt :: Lens.Lens' UpdateSimulationApplicationResponse (Prelude.Maybe Prelude.UTCTime)+updateSimulationApplicationResponse_lastUpdatedAt = Lens.lens (\UpdateSimulationApplicationResponse' {lastUpdatedAt} -> lastUpdatedAt) (\s@UpdateSimulationApplicationResponse' {} a -> s {lastUpdatedAt = a} :: UpdateSimulationApplicationResponse) Prelude.. Lens.mapping Data._Time++-- | The name of the simulation application.+updateSimulationApplicationResponse_name :: Lens.Lens' UpdateSimulationApplicationResponse (Prelude.Maybe Prelude.Text)+updateSimulationApplicationResponse_name = Lens.lens (\UpdateSimulationApplicationResponse' {name} -> name) (\s@UpdateSimulationApplicationResponse' {} a -> s {name = a} :: UpdateSimulationApplicationResponse)++-- | The rendering engine for the simulation application.+updateSimulationApplicationResponse_renderingEngine :: Lens.Lens' UpdateSimulationApplicationResponse (Prelude.Maybe RenderingEngine)+updateSimulationApplicationResponse_renderingEngine = Lens.lens (\UpdateSimulationApplicationResponse' {renderingEngine} -> renderingEngine) (\s@UpdateSimulationApplicationResponse' {} a -> s {renderingEngine = a} :: UpdateSimulationApplicationResponse)++-- | The revision id of the simulation application.+updateSimulationApplicationResponse_revisionId :: Lens.Lens' UpdateSimulationApplicationResponse (Prelude.Maybe Prelude.Text)+updateSimulationApplicationResponse_revisionId = Lens.lens (\UpdateSimulationApplicationResponse' {revisionId} -> revisionId) (\s@UpdateSimulationApplicationResponse' {} a -> s {revisionId = a} :: UpdateSimulationApplicationResponse)++-- | Information about the robot software suite (ROS distribution).+updateSimulationApplicationResponse_robotSoftwareSuite :: Lens.Lens' UpdateSimulationApplicationResponse (Prelude.Maybe RobotSoftwareSuite)+updateSimulationApplicationResponse_robotSoftwareSuite = Lens.lens (\UpdateSimulationApplicationResponse' {robotSoftwareSuite} -> robotSoftwareSuite) (\s@UpdateSimulationApplicationResponse' {} a -> s {robotSoftwareSuite = a} :: UpdateSimulationApplicationResponse)++-- | The simulation software suite used by the simulation application.+updateSimulationApplicationResponse_simulationSoftwareSuite :: Lens.Lens' UpdateSimulationApplicationResponse (Prelude.Maybe SimulationSoftwareSuite)+updateSimulationApplicationResponse_simulationSoftwareSuite = Lens.lens (\UpdateSimulationApplicationResponse' {simulationSoftwareSuite} -> simulationSoftwareSuite) (\s@UpdateSimulationApplicationResponse' {} a -> s {simulationSoftwareSuite = a} :: UpdateSimulationApplicationResponse)++-- | The sources of the simulation application.+updateSimulationApplicationResponse_sources :: Lens.Lens' UpdateSimulationApplicationResponse (Prelude.Maybe [Source])+updateSimulationApplicationResponse_sources = Lens.lens (\UpdateSimulationApplicationResponse' {sources} -> sources) (\s@UpdateSimulationApplicationResponse' {} a -> s {sources = a} :: UpdateSimulationApplicationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The version of the robot application.+updateSimulationApplicationResponse_version :: Lens.Lens' UpdateSimulationApplicationResponse (Prelude.Maybe Prelude.Text)+updateSimulationApplicationResponse_version = Lens.lens (\UpdateSimulationApplicationResponse' {version} -> version) (\s@UpdateSimulationApplicationResponse' {} a -> s {version = a} :: UpdateSimulationApplicationResponse)++-- | The response's http status code.+updateSimulationApplicationResponse_httpStatus :: Lens.Lens' UpdateSimulationApplicationResponse Prelude.Int+updateSimulationApplicationResponse_httpStatus = Lens.lens (\UpdateSimulationApplicationResponse' {httpStatus} -> httpStatus) (\s@UpdateSimulationApplicationResponse' {} a -> s {httpStatus = a} :: UpdateSimulationApplicationResponse)++instance+  Prelude.NFData+    UpdateSimulationApplicationResponse+  where+  rnf UpdateSimulationApplicationResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf environment+      `Prelude.seq` Prelude.rnf lastUpdatedAt+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf renderingEngine+      `Prelude.seq` Prelude.rnf revisionId+      `Prelude.seq` Prelude.rnf robotSoftwareSuite+      `Prelude.seq` Prelude.rnf simulationSoftwareSuite+      `Prelude.seq` Prelude.rnf sources+      `Prelude.seq` Prelude.rnf version+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/UpdateWorldTemplate.hs view
@@ -0,0 +1,250 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.RobOMaker.UpdateWorldTemplate+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a world template.+module Amazonka.RobOMaker.UpdateWorldTemplate+  ( -- * Creating a Request+    UpdateWorldTemplate (..),+    newUpdateWorldTemplate,++    -- * Request Lenses+    updateWorldTemplate_name,+    updateWorldTemplate_templateBody,+    updateWorldTemplate_templateLocation,+    updateWorldTemplate_template,++    -- * Destructuring the Response+    UpdateWorldTemplateResponse (..),+    newUpdateWorldTemplateResponse,++    -- * Response Lenses+    updateWorldTemplateResponse_arn,+    updateWorldTemplateResponse_createdAt,+    updateWorldTemplateResponse_lastUpdatedAt,+    updateWorldTemplateResponse_name,+    updateWorldTemplateResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.RobOMaker.Types++-- | /See:/ 'newUpdateWorldTemplate' smart constructor.+data UpdateWorldTemplate = UpdateWorldTemplate'+  { -- | The name of the template.+    name :: Prelude.Maybe Prelude.Text,+    -- | The world template body.+    templateBody :: Prelude.Maybe Prelude.Text,+    -- | The location of the world template.+    templateLocation :: Prelude.Maybe TemplateLocation,+    -- | The Amazon Resource Name (arn) of the world template to update.+    template :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateWorldTemplate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateWorldTemplate_name' - The name of the template.+--+-- 'templateBody', 'updateWorldTemplate_templateBody' - The world template body.+--+-- 'templateLocation', 'updateWorldTemplate_templateLocation' - The location of the world template.+--+-- 'template', 'updateWorldTemplate_template' - The Amazon Resource Name (arn) of the world template to update.+newUpdateWorldTemplate ::+  -- | 'template'+  Prelude.Text ->+  UpdateWorldTemplate+newUpdateWorldTemplate pTemplate_ =+  UpdateWorldTemplate'+    { name = Prelude.Nothing,+      templateBody = Prelude.Nothing,+      templateLocation = Prelude.Nothing,+      template = pTemplate_+    }++-- | The name of the template.+updateWorldTemplate_name :: Lens.Lens' UpdateWorldTemplate (Prelude.Maybe Prelude.Text)+updateWorldTemplate_name = Lens.lens (\UpdateWorldTemplate' {name} -> name) (\s@UpdateWorldTemplate' {} a -> s {name = a} :: UpdateWorldTemplate)++-- | The world template body.+updateWorldTemplate_templateBody :: Lens.Lens' UpdateWorldTemplate (Prelude.Maybe Prelude.Text)+updateWorldTemplate_templateBody = Lens.lens (\UpdateWorldTemplate' {templateBody} -> templateBody) (\s@UpdateWorldTemplate' {} a -> s {templateBody = a} :: UpdateWorldTemplate)++-- | The location of the world template.+updateWorldTemplate_templateLocation :: Lens.Lens' UpdateWorldTemplate (Prelude.Maybe TemplateLocation)+updateWorldTemplate_templateLocation = Lens.lens (\UpdateWorldTemplate' {templateLocation} -> templateLocation) (\s@UpdateWorldTemplate' {} a -> s {templateLocation = a} :: UpdateWorldTemplate)++-- | The Amazon Resource Name (arn) of the world template to update.+updateWorldTemplate_template :: Lens.Lens' UpdateWorldTemplate Prelude.Text+updateWorldTemplate_template = Lens.lens (\UpdateWorldTemplate' {template} -> template) (\s@UpdateWorldTemplate' {} a -> s {template = a} :: UpdateWorldTemplate)++instance Core.AWSRequest UpdateWorldTemplate where+  type+    AWSResponse UpdateWorldTemplate =+      UpdateWorldTemplateResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateWorldTemplateResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "createdAt")+            Prelude.<*> (x Data..?> "lastUpdatedAt")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateWorldTemplate where+  hashWithSalt _salt UpdateWorldTemplate' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` templateBody+      `Prelude.hashWithSalt` templateLocation+      `Prelude.hashWithSalt` template++instance Prelude.NFData UpdateWorldTemplate where+  rnf UpdateWorldTemplate' {..} =+    Prelude.rnf name+      `Prelude.seq` Prelude.rnf templateBody+      `Prelude.seq` Prelude.rnf templateLocation+      `Prelude.seq` Prelude.rnf template++instance Data.ToHeaders UpdateWorldTemplate where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateWorldTemplate where+  toJSON UpdateWorldTemplate' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("name" Data..=) Prelude.<$> name,+            ("templateBody" Data..=) Prelude.<$> templateBody,+            ("templateLocation" Data..=)+              Prelude.<$> templateLocation,+            Prelude.Just ("template" Data..= template)+          ]+      )++instance Data.ToPath UpdateWorldTemplate where+  toPath = Prelude.const "/updateWorldTemplate"++instance Data.ToQuery UpdateWorldTemplate where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateWorldTemplateResponse' smart constructor.+data UpdateWorldTemplateResponse = UpdateWorldTemplateResponse'+  { -- | The Amazon Resource Name (arn) of the world template.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The time, in milliseconds since the epoch, when the world template was+    -- created.+    createdAt :: Prelude.Maybe Data.POSIX,+    -- | The time, in milliseconds since the epoch, when the world template was+    -- last updated.+    lastUpdatedAt :: Prelude.Maybe Data.POSIX,+    -- | The name of the world template.+    name :: 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 'UpdateWorldTemplateResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'updateWorldTemplateResponse_arn' - The Amazon Resource Name (arn) of the world template.+--+-- 'createdAt', 'updateWorldTemplateResponse_createdAt' - The time, in milliseconds since the epoch, when the world template was+-- created.+--+-- 'lastUpdatedAt', 'updateWorldTemplateResponse_lastUpdatedAt' - The time, in milliseconds since the epoch, when the world template was+-- last updated.+--+-- 'name', 'updateWorldTemplateResponse_name' - The name of the world template.+--+-- 'httpStatus', 'updateWorldTemplateResponse_httpStatus' - The response's http status code.+newUpdateWorldTemplateResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateWorldTemplateResponse+newUpdateWorldTemplateResponse pHttpStatus_ =+  UpdateWorldTemplateResponse'+    { arn = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      lastUpdatedAt = Prelude.Nothing,+      name = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (arn) of the world template.+updateWorldTemplateResponse_arn :: Lens.Lens' UpdateWorldTemplateResponse (Prelude.Maybe Prelude.Text)+updateWorldTemplateResponse_arn = Lens.lens (\UpdateWorldTemplateResponse' {arn} -> arn) (\s@UpdateWorldTemplateResponse' {} a -> s {arn = a} :: UpdateWorldTemplateResponse)++-- | The time, in milliseconds since the epoch, when the world template was+-- created.+updateWorldTemplateResponse_createdAt :: Lens.Lens' UpdateWorldTemplateResponse (Prelude.Maybe Prelude.UTCTime)+updateWorldTemplateResponse_createdAt = Lens.lens (\UpdateWorldTemplateResponse' {createdAt} -> createdAt) (\s@UpdateWorldTemplateResponse' {} a -> s {createdAt = a} :: UpdateWorldTemplateResponse) Prelude.. Lens.mapping Data._Time++-- | The time, in milliseconds since the epoch, when the world template was+-- last updated.+updateWorldTemplateResponse_lastUpdatedAt :: Lens.Lens' UpdateWorldTemplateResponse (Prelude.Maybe Prelude.UTCTime)+updateWorldTemplateResponse_lastUpdatedAt = Lens.lens (\UpdateWorldTemplateResponse' {lastUpdatedAt} -> lastUpdatedAt) (\s@UpdateWorldTemplateResponse' {} a -> s {lastUpdatedAt = a} :: UpdateWorldTemplateResponse) Prelude.. Lens.mapping Data._Time++-- | The name of the world template.+updateWorldTemplateResponse_name :: Lens.Lens' UpdateWorldTemplateResponse (Prelude.Maybe Prelude.Text)+updateWorldTemplateResponse_name = Lens.lens (\UpdateWorldTemplateResponse' {name} -> name) (\s@UpdateWorldTemplateResponse' {} a -> s {name = a} :: UpdateWorldTemplateResponse)++-- | The response's http status code.+updateWorldTemplateResponse_httpStatus :: Lens.Lens' UpdateWorldTemplateResponse Prelude.Int+updateWorldTemplateResponse_httpStatus = Lens.lens (\UpdateWorldTemplateResponse' {httpStatus} -> httpStatus) (\s@UpdateWorldTemplateResponse' {} a -> s {httpStatus = a} :: UpdateWorldTemplateResponse)++instance Prelude.NFData UpdateWorldTemplateResponse where+  rnf UpdateWorldTemplateResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf lastUpdatedAt+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/RobOMaker/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.RobOMaker.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.RobOMaker.Waiters 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+import Amazonka.RobOMaker.Lens+import Amazonka.RobOMaker.Types
+ 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.RobOMaker+import Test.Amazonka.RobOMaker.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "RobOMaker"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/Gen/RobOMaker.hs view
@@ -0,0 +1,878 @@+{-# 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.RobOMaker+-- Copyright   : (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.RobOMaker where++import Amazonka.RobOMaker+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.Prelude+import Test.Amazonka.RobOMaker.Internal+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"+--         [ requestBatchDeleteWorlds $+--             newBatchDeleteWorlds+--+--         , requestBatchDescribeSimulationJob $+--             newBatchDescribeSimulationJob+--+--         , requestCancelSimulationJob $+--             newCancelSimulationJob+--+--         , requestCancelSimulationJobBatch $+--             newCancelSimulationJobBatch+--+--         , requestCancelWorldExportJob $+--             newCancelWorldExportJob+--+--         , requestCancelWorldGenerationJob $+--             newCancelWorldGenerationJob+--+--         , requestCreateRobotApplication $+--             newCreateRobotApplication+--+--         , requestCreateRobotApplicationVersion $+--             newCreateRobotApplicationVersion+--+--         , requestCreateSimulationApplication $+--             newCreateSimulationApplication+--+--         , requestCreateSimulationApplicationVersion $+--             newCreateSimulationApplicationVersion+--+--         , requestCreateSimulationJob $+--             newCreateSimulationJob+--+--         , requestCreateWorldExportJob $+--             newCreateWorldExportJob+--+--         , requestCreateWorldGenerationJob $+--             newCreateWorldGenerationJob+--+--         , requestCreateWorldTemplate $+--             newCreateWorldTemplate+--+--         , requestDeleteRobotApplication $+--             newDeleteRobotApplication+--+--         , requestDeleteSimulationApplication $+--             newDeleteSimulationApplication+--+--         , requestDeleteWorldTemplate $+--             newDeleteWorldTemplate+--+--         , requestDescribeRobotApplication $+--             newDescribeRobotApplication+--+--         , requestDescribeSimulationApplication $+--             newDescribeSimulationApplication+--+--         , requestDescribeSimulationJob $+--             newDescribeSimulationJob+--+--         , requestDescribeSimulationJobBatch $+--             newDescribeSimulationJobBatch+--+--         , requestDescribeWorld $+--             newDescribeWorld+--+--         , requestDescribeWorldExportJob $+--             newDescribeWorldExportJob+--+--         , requestDescribeWorldGenerationJob $+--             newDescribeWorldGenerationJob+--+--         , requestDescribeWorldTemplate $+--             newDescribeWorldTemplate+--+--         , requestGetWorldTemplateBody $+--             newGetWorldTemplateBody+--+--         , requestListRobotApplications $+--             newListRobotApplications+--+--         , requestListSimulationApplications $+--             newListSimulationApplications+--+--         , requestListSimulationJobBatches $+--             newListSimulationJobBatches+--+--         , requestListSimulationJobs $+--             newListSimulationJobs+--+--         , requestListTagsForResource $+--             newListTagsForResource+--+--         , requestListWorldExportJobs $+--             newListWorldExportJobs+--+--         , requestListWorldGenerationJobs $+--             newListWorldGenerationJobs+--+--         , requestListWorldTemplates $+--             newListWorldTemplates+--+--         , requestListWorlds $+--             newListWorlds+--+--         , requestRestartSimulationJob $+--             newRestartSimulationJob+--+--         , requestStartSimulationJobBatch $+--             newStartSimulationJobBatch+--+--         , requestTagResource $+--             newTagResource+--+--         , requestUntagResource $+--             newUntagResource+--+--         , requestUpdateRobotApplication $+--             newUpdateRobotApplication+--+--         , requestUpdateSimulationApplication $+--             newUpdateSimulationApplication+--+--         , requestUpdateWorldTemplate $+--             newUpdateWorldTemplate+--+--           ]++--     , testGroup "response"+--         [ responseBatchDeleteWorlds $+--             newBatchDeleteWorldsResponse+--+--         , responseBatchDescribeSimulationJob $+--             newBatchDescribeSimulationJobResponse+--+--         , responseCancelSimulationJob $+--             newCancelSimulationJobResponse+--+--         , responseCancelSimulationJobBatch $+--             newCancelSimulationJobBatchResponse+--+--         , responseCancelWorldExportJob $+--             newCancelWorldExportJobResponse+--+--         , responseCancelWorldGenerationJob $+--             newCancelWorldGenerationJobResponse+--+--         , responseCreateRobotApplication $+--             newCreateRobotApplicationResponse+--+--         , responseCreateRobotApplicationVersion $+--             newCreateRobotApplicationVersionResponse+--+--         , responseCreateSimulationApplication $+--             newCreateSimulationApplicationResponse+--+--         , responseCreateSimulationApplicationVersion $+--             newCreateSimulationApplicationVersionResponse+--+--         , responseCreateSimulationJob $+--             newCreateSimulationJobResponse+--+--         , responseCreateWorldExportJob $+--             newCreateWorldExportJobResponse+--+--         , responseCreateWorldGenerationJob $+--             newCreateWorldGenerationJobResponse+--+--         , responseCreateWorldTemplate $+--             newCreateWorldTemplateResponse+--+--         , responseDeleteRobotApplication $+--             newDeleteRobotApplicationResponse+--+--         , responseDeleteSimulationApplication $+--             newDeleteSimulationApplicationResponse+--+--         , responseDeleteWorldTemplate $+--             newDeleteWorldTemplateResponse+--+--         , responseDescribeRobotApplication $+--             newDescribeRobotApplicationResponse+--+--         , responseDescribeSimulationApplication $+--             newDescribeSimulationApplicationResponse+--+--         , responseDescribeSimulationJob $+--             newDescribeSimulationJobResponse+--+--         , responseDescribeSimulationJobBatch $+--             newDescribeSimulationJobBatchResponse+--+--         , responseDescribeWorld $+--             newDescribeWorldResponse+--+--         , responseDescribeWorldExportJob $+--             newDescribeWorldExportJobResponse+--+--         , responseDescribeWorldGenerationJob $+--             newDescribeWorldGenerationJobResponse+--+--         , responseDescribeWorldTemplate $+--             newDescribeWorldTemplateResponse+--+--         , responseGetWorldTemplateBody $+--             newGetWorldTemplateBodyResponse+--+--         , responseListRobotApplications $+--             newListRobotApplicationsResponse+--+--         , responseListSimulationApplications $+--             newListSimulationApplicationsResponse+--+--         , responseListSimulationJobBatches $+--             newListSimulationJobBatchesResponse+--+--         , responseListSimulationJobs $+--             newListSimulationJobsResponse+--+--         , responseListTagsForResource $+--             newListTagsForResourceResponse+--+--         , responseListWorldExportJobs $+--             newListWorldExportJobsResponse+--+--         , responseListWorldGenerationJobs $+--             newListWorldGenerationJobsResponse+--+--         , responseListWorldTemplates $+--             newListWorldTemplatesResponse+--+--         , responseListWorlds $+--             newListWorldsResponse+--+--         , responseRestartSimulationJob $+--             newRestartSimulationJobResponse+--+--         , responseStartSimulationJobBatch $+--             newStartSimulationJobBatchResponse+--+--         , responseTagResource $+--             newTagResourceResponse+--+--         , responseUntagResource $+--             newUntagResourceResponse+--+--         , responseUpdateRobotApplication $+--             newUpdateRobotApplicationResponse+--+--         , responseUpdateSimulationApplication $+--             newUpdateSimulationApplicationResponse+--+--         , responseUpdateWorldTemplate $+--             newUpdateWorldTemplateResponse+--+--           ]+--     ]++-- Requests++requestBatchDeleteWorlds :: BatchDeleteWorlds -> TestTree+requestBatchDeleteWorlds =+  req+    "BatchDeleteWorlds"+    "fixture/BatchDeleteWorlds.yaml"++requestBatchDescribeSimulationJob :: BatchDescribeSimulationJob -> TestTree+requestBatchDescribeSimulationJob =+  req+    "BatchDescribeSimulationJob"+    "fixture/BatchDescribeSimulationJob.yaml"++requestCancelSimulationJob :: CancelSimulationJob -> TestTree+requestCancelSimulationJob =+  req+    "CancelSimulationJob"+    "fixture/CancelSimulationJob.yaml"++requestCancelSimulationJobBatch :: CancelSimulationJobBatch -> TestTree+requestCancelSimulationJobBatch =+  req+    "CancelSimulationJobBatch"+    "fixture/CancelSimulationJobBatch.yaml"++requestCancelWorldExportJob :: CancelWorldExportJob -> TestTree+requestCancelWorldExportJob =+  req+    "CancelWorldExportJob"+    "fixture/CancelWorldExportJob.yaml"++requestCancelWorldGenerationJob :: CancelWorldGenerationJob -> TestTree+requestCancelWorldGenerationJob =+  req+    "CancelWorldGenerationJob"+    "fixture/CancelWorldGenerationJob.yaml"++requestCreateRobotApplication :: CreateRobotApplication -> TestTree+requestCreateRobotApplication =+  req+    "CreateRobotApplication"+    "fixture/CreateRobotApplication.yaml"++requestCreateRobotApplicationVersion :: CreateRobotApplicationVersion -> TestTree+requestCreateRobotApplicationVersion =+  req+    "CreateRobotApplicationVersion"+    "fixture/CreateRobotApplicationVersion.yaml"++requestCreateSimulationApplication :: CreateSimulationApplication -> TestTree+requestCreateSimulationApplication =+  req+    "CreateSimulationApplication"+    "fixture/CreateSimulationApplication.yaml"++requestCreateSimulationApplicationVersion :: CreateSimulationApplicationVersion -> TestTree+requestCreateSimulationApplicationVersion =+  req+    "CreateSimulationApplicationVersion"+    "fixture/CreateSimulationApplicationVersion.yaml"++requestCreateSimulationJob :: CreateSimulationJob -> TestTree+requestCreateSimulationJob =+  req+    "CreateSimulationJob"+    "fixture/CreateSimulationJob.yaml"++requestCreateWorldExportJob :: CreateWorldExportJob -> TestTree+requestCreateWorldExportJob =+  req+    "CreateWorldExportJob"+    "fixture/CreateWorldExportJob.yaml"++requestCreateWorldGenerationJob :: CreateWorldGenerationJob -> TestTree+requestCreateWorldGenerationJob =+  req+    "CreateWorldGenerationJob"+    "fixture/CreateWorldGenerationJob.yaml"++requestCreateWorldTemplate :: CreateWorldTemplate -> TestTree+requestCreateWorldTemplate =+  req+    "CreateWorldTemplate"+    "fixture/CreateWorldTemplate.yaml"++requestDeleteRobotApplication :: DeleteRobotApplication -> TestTree+requestDeleteRobotApplication =+  req+    "DeleteRobotApplication"+    "fixture/DeleteRobotApplication.yaml"++requestDeleteSimulationApplication :: DeleteSimulationApplication -> TestTree+requestDeleteSimulationApplication =+  req+    "DeleteSimulationApplication"+    "fixture/DeleteSimulationApplication.yaml"++requestDeleteWorldTemplate :: DeleteWorldTemplate -> TestTree+requestDeleteWorldTemplate =+  req+    "DeleteWorldTemplate"+    "fixture/DeleteWorldTemplate.yaml"++requestDescribeRobotApplication :: DescribeRobotApplication -> TestTree+requestDescribeRobotApplication =+  req+    "DescribeRobotApplication"+    "fixture/DescribeRobotApplication.yaml"++requestDescribeSimulationApplication :: DescribeSimulationApplication -> TestTree+requestDescribeSimulationApplication =+  req+    "DescribeSimulationApplication"+    "fixture/DescribeSimulationApplication.yaml"++requestDescribeSimulationJob :: DescribeSimulationJob -> TestTree+requestDescribeSimulationJob =+  req+    "DescribeSimulationJob"+    "fixture/DescribeSimulationJob.yaml"++requestDescribeSimulationJobBatch :: DescribeSimulationJobBatch -> TestTree+requestDescribeSimulationJobBatch =+  req+    "DescribeSimulationJobBatch"+    "fixture/DescribeSimulationJobBatch.yaml"++requestDescribeWorld :: DescribeWorld -> TestTree+requestDescribeWorld =+  req+    "DescribeWorld"+    "fixture/DescribeWorld.yaml"++requestDescribeWorldExportJob :: DescribeWorldExportJob -> TestTree+requestDescribeWorldExportJob =+  req+    "DescribeWorldExportJob"+    "fixture/DescribeWorldExportJob.yaml"++requestDescribeWorldGenerationJob :: DescribeWorldGenerationJob -> TestTree+requestDescribeWorldGenerationJob =+  req+    "DescribeWorldGenerationJob"+    "fixture/DescribeWorldGenerationJob.yaml"++requestDescribeWorldTemplate :: DescribeWorldTemplate -> TestTree+requestDescribeWorldTemplate =+  req+    "DescribeWorldTemplate"+    "fixture/DescribeWorldTemplate.yaml"++requestGetWorldTemplateBody :: GetWorldTemplateBody -> TestTree+requestGetWorldTemplateBody =+  req+    "GetWorldTemplateBody"+    "fixture/GetWorldTemplateBody.yaml"++requestListRobotApplications :: ListRobotApplications -> TestTree+requestListRobotApplications =+  req+    "ListRobotApplications"+    "fixture/ListRobotApplications.yaml"++requestListSimulationApplications :: ListSimulationApplications -> TestTree+requestListSimulationApplications =+  req+    "ListSimulationApplications"+    "fixture/ListSimulationApplications.yaml"++requestListSimulationJobBatches :: ListSimulationJobBatches -> TestTree+requestListSimulationJobBatches =+  req+    "ListSimulationJobBatches"+    "fixture/ListSimulationJobBatches.yaml"++requestListSimulationJobs :: ListSimulationJobs -> TestTree+requestListSimulationJobs =+  req+    "ListSimulationJobs"+    "fixture/ListSimulationJobs.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+  req+    "ListTagsForResource"+    "fixture/ListTagsForResource.yaml"++requestListWorldExportJobs :: ListWorldExportJobs -> TestTree+requestListWorldExportJobs =+  req+    "ListWorldExportJobs"+    "fixture/ListWorldExportJobs.yaml"++requestListWorldGenerationJobs :: ListWorldGenerationJobs -> TestTree+requestListWorldGenerationJobs =+  req+    "ListWorldGenerationJobs"+    "fixture/ListWorldGenerationJobs.yaml"++requestListWorldTemplates :: ListWorldTemplates -> TestTree+requestListWorldTemplates =+  req+    "ListWorldTemplates"+    "fixture/ListWorldTemplates.yaml"++requestListWorlds :: ListWorlds -> TestTree+requestListWorlds =+  req+    "ListWorlds"+    "fixture/ListWorlds.yaml"++requestRestartSimulationJob :: RestartSimulationJob -> TestTree+requestRestartSimulationJob =+  req+    "RestartSimulationJob"+    "fixture/RestartSimulationJob.yaml"++requestStartSimulationJobBatch :: StartSimulationJobBatch -> TestTree+requestStartSimulationJobBatch =+  req+    "StartSimulationJobBatch"+    "fixture/StartSimulationJobBatch.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+  req+    "TagResource"+    "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+  req+    "UntagResource"+    "fixture/UntagResource.yaml"++requestUpdateRobotApplication :: UpdateRobotApplication -> TestTree+requestUpdateRobotApplication =+  req+    "UpdateRobotApplication"+    "fixture/UpdateRobotApplication.yaml"++requestUpdateSimulationApplication :: UpdateSimulationApplication -> TestTree+requestUpdateSimulationApplication =+  req+    "UpdateSimulationApplication"+    "fixture/UpdateSimulationApplication.yaml"++requestUpdateWorldTemplate :: UpdateWorldTemplate -> TestTree+requestUpdateWorldTemplate =+  req+    "UpdateWorldTemplate"+    "fixture/UpdateWorldTemplate.yaml"++-- Responses++responseBatchDeleteWorlds :: BatchDeleteWorldsResponse -> TestTree+responseBatchDeleteWorlds =+  res+    "BatchDeleteWorldsResponse"+    "fixture/BatchDeleteWorldsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy BatchDeleteWorlds)++responseBatchDescribeSimulationJob :: BatchDescribeSimulationJobResponse -> TestTree+responseBatchDescribeSimulationJob =+  res+    "BatchDescribeSimulationJobResponse"+    "fixture/BatchDescribeSimulationJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy BatchDescribeSimulationJob)++responseCancelSimulationJob :: CancelSimulationJobResponse -> TestTree+responseCancelSimulationJob =+  res+    "CancelSimulationJobResponse"+    "fixture/CancelSimulationJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CancelSimulationJob)++responseCancelSimulationJobBatch :: CancelSimulationJobBatchResponse -> TestTree+responseCancelSimulationJobBatch =+  res+    "CancelSimulationJobBatchResponse"+    "fixture/CancelSimulationJobBatchResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CancelSimulationJobBatch)++responseCancelWorldExportJob :: CancelWorldExportJobResponse -> TestTree+responseCancelWorldExportJob =+  res+    "CancelWorldExportJobResponse"+    "fixture/CancelWorldExportJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CancelWorldExportJob)++responseCancelWorldGenerationJob :: CancelWorldGenerationJobResponse -> TestTree+responseCancelWorldGenerationJob =+  res+    "CancelWorldGenerationJobResponse"+    "fixture/CancelWorldGenerationJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CancelWorldGenerationJob)++responseCreateRobotApplication :: CreateRobotApplicationResponse -> TestTree+responseCreateRobotApplication =+  res+    "CreateRobotApplicationResponse"+    "fixture/CreateRobotApplicationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateRobotApplication)++responseCreateRobotApplicationVersion :: CreateRobotApplicationVersionResponse -> TestTree+responseCreateRobotApplicationVersion =+  res+    "CreateRobotApplicationVersionResponse"+    "fixture/CreateRobotApplicationVersionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateRobotApplicationVersion)++responseCreateSimulationApplication :: CreateSimulationApplicationResponse -> TestTree+responseCreateSimulationApplication =+  res+    "CreateSimulationApplicationResponse"+    "fixture/CreateSimulationApplicationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateSimulationApplication)++responseCreateSimulationApplicationVersion :: CreateSimulationApplicationVersionResponse -> TestTree+responseCreateSimulationApplicationVersion =+  res+    "CreateSimulationApplicationVersionResponse"+    "fixture/CreateSimulationApplicationVersionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateSimulationApplicationVersion)++responseCreateSimulationJob :: CreateSimulationJobResponse -> TestTree+responseCreateSimulationJob =+  res+    "CreateSimulationJobResponse"+    "fixture/CreateSimulationJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateSimulationJob)++responseCreateWorldExportJob :: CreateWorldExportJobResponse -> TestTree+responseCreateWorldExportJob =+  res+    "CreateWorldExportJobResponse"+    "fixture/CreateWorldExportJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateWorldExportJob)++responseCreateWorldGenerationJob :: CreateWorldGenerationJobResponse -> TestTree+responseCreateWorldGenerationJob =+  res+    "CreateWorldGenerationJobResponse"+    "fixture/CreateWorldGenerationJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateWorldGenerationJob)++responseCreateWorldTemplate :: CreateWorldTemplateResponse -> TestTree+responseCreateWorldTemplate =+  res+    "CreateWorldTemplateResponse"+    "fixture/CreateWorldTemplateResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateWorldTemplate)++responseDeleteRobotApplication :: DeleteRobotApplicationResponse -> TestTree+responseDeleteRobotApplication =+  res+    "DeleteRobotApplicationResponse"+    "fixture/DeleteRobotApplicationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteRobotApplication)++responseDeleteSimulationApplication :: DeleteSimulationApplicationResponse -> TestTree+responseDeleteSimulationApplication =+  res+    "DeleteSimulationApplicationResponse"+    "fixture/DeleteSimulationApplicationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteSimulationApplication)++responseDeleteWorldTemplate :: DeleteWorldTemplateResponse -> TestTree+responseDeleteWorldTemplate =+  res+    "DeleteWorldTemplateResponse"+    "fixture/DeleteWorldTemplateResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteWorldTemplate)++responseDescribeRobotApplication :: DescribeRobotApplicationResponse -> TestTree+responseDescribeRobotApplication =+  res+    "DescribeRobotApplicationResponse"+    "fixture/DescribeRobotApplicationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeRobotApplication)++responseDescribeSimulationApplication :: DescribeSimulationApplicationResponse -> TestTree+responseDescribeSimulationApplication =+  res+    "DescribeSimulationApplicationResponse"+    "fixture/DescribeSimulationApplicationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeSimulationApplication)++responseDescribeSimulationJob :: DescribeSimulationJobResponse -> TestTree+responseDescribeSimulationJob =+  res+    "DescribeSimulationJobResponse"+    "fixture/DescribeSimulationJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeSimulationJob)++responseDescribeSimulationJobBatch :: DescribeSimulationJobBatchResponse -> TestTree+responseDescribeSimulationJobBatch =+  res+    "DescribeSimulationJobBatchResponse"+    "fixture/DescribeSimulationJobBatchResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeSimulationJobBatch)++responseDescribeWorld :: DescribeWorldResponse -> TestTree+responseDescribeWorld =+  res+    "DescribeWorldResponse"+    "fixture/DescribeWorldResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeWorld)++responseDescribeWorldExportJob :: DescribeWorldExportJobResponse -> TestTree+responseDescribeWorldExportJob =+  res+    "DescribeWorldExportJobResponse"+    "fixture/DescribeWorldExportJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeWorldExportJob)++responseDescribeWorldGenerationJob :: DescribeWorldGenerationJobResponse -> TestTree+responseDescribeWorldGenerationJob =+  res+    "DescribeWorldGenerationJobResponse"+    "fixture/DescribeWorldGenerationJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeWorldGenerationJob)++responseDescribeWorldTemplate :: DescribeWorldTemplateResponse -> TestTree+responseDescribeWorldTemplate =+  res+    "DescribeWorldTemplateResponse"+    "fixture/DescribeWorldTemplateResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeWorldTemplate)++responseGetWorldTemplateBody :: GetWorldTemplateBodyResponse -> TestTree+responseGetWorldTemplateBody =+  res+    "GetWorldTemplateBodyResponse"+    "fixture/GetWorldTemplateBodyResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetWorldTemplateBody)++responseListRobotApplications :: ListRobotApplicationsResponse -> TestTree+responseListRobotApplications =+  res+    "ListRobotApplicationsResponse"+    "fixture/ListRobotApplicationsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListRobotApplications)++responseListSimulationApplications :: ListSimulationApplicationsResponse -> TestTree+responseListSimulationApplications =+  res+    "ListSimulationApplicationsResponse"+    "fixture/ListSimulationApplicationsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListSimulationApplications)++responseListSimulationJobBatches :: ListSimulationJobBatchesResponse -> TestTree+responseListSimulationJobBatches =+  res+    "ListSimulationJobBatchesResponse"+    "fixture/ListSimulationJobBatchesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListSimulationJobBatches)++responseListSimulationJobs :: ListSimulationJobsResponse -> TestTree+responseListSimulationJobs =+  res+    "ListSimulationJobsResponse"+    "fixture/ListSimulationJobsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListSimulationJobs)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+  res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responseListWorldExportJobs :: ListWorldExportJobsResponse -> TestTree+responseListWorldExportJobs =+  res+    "ListWorldExportJobsResponse"+    "fixture/ListWorldExportJobsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListWorldExportJobs)++responseListWorldGenerationJobs :: ListWorldGenerationJobsResponse -> TestTree+responseListWorldGenerationJobs =+  res+    "ListWorldGenerationJobsResponse"+    "fixture/ListWorldGenerationJobsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListWorldGenerationJobs)++responseListWorldTemplates :: ListWorldTemplatesResponse -> TestTree+responseListWorldTemplates =+  res+    "ListWorldTemplatesResponse"+    "fixture/ListWorldTemplatesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListWorldTemplates)++responseListWorlds :: ListWorldsResponse -> TestTree+responseListWorlds =+  res+    "ListWorldsResponse"+    "fixture/ListWorldsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListWorlds)++responseRestartSimulationJob :: RestartSimulationJobResponse -> TestTree+responseRestartSimulationJob =+  res+    "RestartSimulationJobResponse"+    "fixture/RestartSimulationJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy RestartSimulationJob)++responseStartSimulationJobBatch :: StartSimulationJobBatchResponse -> TestTree+responseStartSimulationJobBatch =+  res+    "StartSimulationJobBatchResponse"+    "fixture/StartSimulationJobBatchResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StartSimulationJobBatch)++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)++responseUpdateRobotApplication :: UpdateRobotApplicationResponse -> TestTree+responseUpdateRobotApplication =+  res+    "UpdateRobotApplicationResponse"+    "fixture/UpdateRobotApplicationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateRobotApplication)++responseUpdateSimulationApplication :: UpdateSimulationApplicationResponse -> TestTree+responseUpdateSimulationApplication =+  res+    "UpdateSimulationApplicationResponse"+    "fixture/UpdateSimulationApplicationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateSimulationApplication)++responseUpdateWorldTemplate :: UpdateWorldTemplateResponse -> TestTree+responseUpdateWorldTemplate =+  res+    "UpdateWorldTemplateResponse"+    "fixture/UpdateWorldTemplateResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateWorldTemplate)
+ test/Test/Amazonka/RobOMaker.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.RobOMaker+-- Copyright   : (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.RobOMaker+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/RobOMaker/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.RobOMaker.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.RobOMaker.Internal where