packages feed

amazonka-emr-containers (empty) → 2.0

raw patch · 98 files changed

+9792/−0 lines, 98 filesdep +amazonka-coredep +amazonka-emr-containersdep +amazonka-test

Dependencies added: amazonka-core, amazonka-emr-containers, 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 EMR Containers SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2020-10-01@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-emr-containers)+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.EMRContainers](http://hackage.haskell.org/package/amazonka-emr-containers/docs/Amazonka-EMRContainers.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-emr-containers` 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-emr-containers.cabal view
@@ -0,0 +1,131 @@+cabal-version:      2.2+name:               amazonka-emr-containers+version:            2.0+synopsis:           Amazon EMR Containers SDK.+homepage:           https://github.com/brendanhay/amazonka+bug-reports:        https://github.com/brendanhay/amazonka/issues+license:            MPL-2.0+license-file:       LICENSE+author:             Brendan Hay+maintainer:+  Brendan Hay <brendan.g.hay+amazonka@gmail.com>, Jack Kelly <jack@jackkelly.name>++copyright:          Copyright (c) 2013-2023 Brendan Hay+category:           AWS+build-type:         Simple+extra-source-files:+  fixture/*.proto+  fixture/*.yaml+  README.md+  src/.gitkeep++description:+  Derived from API version @2020-10-01@ of the AWS service descriptions, licensed under Apache 2.0.+  .+  The types from this library are intended to be used with <http://hackage.haskell.org/package/amazonka amazonka>,+  which provides mechanisms for specifying AuthN/AuthZ information, sending requests, and receiving responses.+  .+  It is recommended to use generic lenses or optics from packages such as <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify optional fields and deconstruct responses.+  .+  Generated lenses can be found in "Amazonka.EMRContainers.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.EMRContainers" 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-emr-containers++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.EMRContainers+    Amazonka.EMRContainers.CancelJobRun+    Amazonka.EMRContainers.CreateJobTemplate+    Amazonka.EMRContainers.CreateManagedEndpoint+    Amazonka.EMRContainers.CreateVirtualCluster+    Amazonka.EMRContainers.DeleteJobTemplate+    Amazonka.EMRContainers.DeleteManagedEndpoint+    Amazonka.EMRContainers.DeleteVirtualCluster+    Amazonka.EMRContainers.DescribeJobRun+    Amazonka.EMRContainers.DescribeJobTemplate+    Amazonka.EMRContainers.DescribeManagedEndpoint+    Amazonka.EMRContainers.DescribeVirtualCluster+    Amazonka.EMRContainers.Lens+    Amazonka.EMRContainers.ListJobRuns+    Amazonka.EMRContainers.ListJobTemplates+    Amazonka.EMRContainers.ListManagedEndpoints+    Amazonka.EMRContainers.ListTagsForResource+    Amazonka.EMRContainers.ListVirtualClusters+    Amazonka.EMRContainers.StartJobRun+    Amazonka.EMRContainers.TagResource+    Amazonka.EMRContainers.Types+    Amazonka.EMRContainers.Types.Certificate+    Amazonka.EMRContainers.Types.CloudWatchMonitoringConfiguration+    Amazonka.EMRContainers.Types.Configuration+    Amazonka.EMRContainers.Types.ConfigurationOverrides+    Amazonka.EMRContainers.Types.ContainerInfo+    Amazonka.EMRContainers.Types.ContainerProvider+    Amazonka.EMRContainers.Types.ContainerProviderType+    Amazonka.EMRContainers.Types.EksInfo+    Amazonka.EMRContainers.Types.Endpoint+    Amazonka.EMRContainers.Types.EndpointState+    Amazonka.EMRContainers.Types.FailureReason+    Amazonka.EMRContainers.Types.JobDriver+    Amazonka.EMRContainers.Types.JobRun+    Amazonka.EMRContainers.Types.JobRunState+    Amazonka.EMRContainers.Types.JobTemplate+    Amazonka.EMRContainers.Types.JobTemplateData+    Amazonka.EMRContainers.Types.MonitoringConfiguration+    Amazonka.EMRContainers.Types.ParametricCloudWatchMonitoringConfiguration+    Amazonka.EMRContainers.Types.ParametricConfigurationOverrides+    Amazonka.EMRContainers.Types.ParametricMonitoringConfiguration+    Amazonka.EMRContainers.Types.ParametricS3MonitoringConfiguration+    Amazonka.EMRContainers.Types.PersistentAppUI+    Amazonka.EMRContainers.Types.S3MonitoringConfiguration+    Amazonka.EMRContainers.Types.SparkSqlJobDriver+    Amazonka.EMRContainers.Types.SparkSubmitJobDriver+    Amazonka.EMRContainers.Types.TemplateParameterConfiguration+    Amazonka.EMRContainers.Types.TemplateParameterDataType+    Amazonka.EMRContainers.Types.VirtualCluster+    Amazonka.EMRContainers.Types.VirtualClusterState+    Amazonka.EMRContainers.UntagResource+    Amazonka.EMRContainers.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-emr-containers-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.EMRContainers+    Test.Amazonka.EMRContainers.Internal+    Test.Amazonka.Gen.EMRContainers++  build-depends:+    , amazonka-core            >=2.0 && <2.1+    , amazonka-emr-containers+    , amazonka-test            >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/CancelJobRun.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/emr-containers/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  emr-containers.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CancelJobRunResponse.proto view
+ fixture/CreateJobTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/emr-containers/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  emr-containers.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateJobTemplateResponse.proto view
+ fixture/CreateManagedEndpoint.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/emr-containers/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  emr-containers.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateManagedEndpointResponse.proto view
+ fixture/CreateVirtualCluster.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/emr-containers/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  emr-containers.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateVirtualClusterResponse.proto view
+ fixture/DeleteJobTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/emr-containers/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  emr-containers.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteJobTemplateResponse.proto view
+ fixture/DeleteManagedEndpoint.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/emr-containers/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  emr-containers.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteManagedEndpointResponse.proto view
+ fixture/DeleteVirtualCluster.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/emr-containers/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  emr-containers.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteVirtualClusterResponse.proto view
+ fixture/DescribeJobRun.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/emr-containers/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  emr-containers.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeJobRunResponse.proto view
+ fixture/DescribeJobTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/emr-containers/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  emr-containers.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeJobTemplateResponse.proto view
+ fixture/DescribeManagedEndpoint.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/emr-containers/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  emr-containers.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeManagedEndpointResponse.proto view
+ fixture/DescribeVirtualCluster.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/emr-containers/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  emr-containers.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeVirtualClusterResponse.proto view
+ fixture/ListJobRuns.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/emr-containers/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  emr-containers.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListJobRunsResponse.proto view
+ fixture/ListJobTemplates.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/emr-containers/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  emr-containers.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListJobTemplatesResponse.proto view
+ fixture/ListManagedEndpoints.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/emr-containers/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  emr-containers.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListManagedEndpointsResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/emr-containers/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  emr-containers.us-east-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/ListVirtualClusters.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/emr-containers/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  emr-containers.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListVirtualClustersResponse.proto view
+ fixture/StartJobRun.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/emr-containers/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  emr-containers.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/StartJobRunResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/emr-containers/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  emr-containers.us-east-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/emr-containers/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  emr-containers.us-east-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
+ gen/Amazonka/EMRContainers.hs view
@@ -0,0 +1,334 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.EMRContainers+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Derived from API version @2020-10-01@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- Amazon EMR on EKS provides a deployment option for Amazon EMR that+-- allows you to run open-source big data frameworks on Amazon Elastic+-- Kubernetes Service (Amazon EKS). With this deployment option, you can+-- focus on running analytics workloads while Amazon EMR on EKS builds,+-- configures, and manages containers for open-source applications. For+-- more information about Amazon EMR on EKS concepts and tasks, see+-- <https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/emr-eks.html What is Amazon EMR on EKS>.+--+-- /Amazon EMR containers/ is the API name for Amazon EMR on EKS. The+-- @emr-containers@ prefix is used in the following scenarios:+--+-- -   It is the prefix in the CLI commands for Amazon EMR on EKS. For+--     example, @aws emr-containers start-job-run@.+--+-- -   It is the prefix before IAM policy actions for Amazon EMR on EKS.+--     For example, @\"Action\": [ \"emr-containers:StartJobRun\"]@. For+--     more information, see+--     <https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-actions Policy actions for Amazon EMR on EKS>.+--+-- -   It is the prefix used in Amazon EMR on EKS service endpoints. For+--     example, @emr-containers.us-east-2.amazonaws.com@. For more+--     information, see+--     <https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/service-quotas.html#service-endpoints Amazon EMR on EKS Service Endpoints>.+module Amazonka.EMRContainers+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** InternalServerException+    _InternalServerException,++    -- ** ResourceNotFoundException+    _ResourceNotFoundException,++    -- ** ValidationException+    _ValidationException,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** CancelJobRun+    CancelJobRun (CancelJobRun'),+    newCancelJobRun,+    CancelJobRunResponse (CancelJobRunResponse'),+    newCancelJobRunResponse,++    -- ** CreateJobTemplate+    CreateJobTemplate (CreateJobTemplate'),+    newCreateJobTemplate,+    CreateJobTemplateResponse (CreateJobTemplateResponse'),+    newCreateJobTemplateResponse,++    -- ** CreateManagedEndpoint+    CreateManagedEndpoint (CreateManagedEndpoint'),+    newCreateManagedEndpoint,+    CreateManagedEndpointResponse (CreateManagedEndpointResponse'),+    newCreateManagedEndpointResponse,++    -- ** CreateVirtualCluster+    CreateVirtualCluster (CreateVirtualCluster'),+    newCreateVirtualCluster,+    CreateVirtualClusterResponse (CreateVirtualClusterResponse'),+    newCreateVirtualClusterResponse,++    -- ** DeleteJobTemplate+    DeleteJobTemplate (DeleteJobTemplate'),+    newDeleteJobTemplate,+    DeleteJobTemplateResponse (DeleteJobTemplateResponse'),+    newDeleteJobTemplateResponse,++    -- ** DeleteManagedEndpoint+    DeleteManagedEndpoint (DeleteManagedEndpoint'),+    newDeleteManagedEndpoint,+    DeleteManagedEndpointResponse (DeleteManagedEndpointResponse'),+    newDeleteManagedEndpointResponse,++    -- ** DeleteVirtualCluster+    DeleteVirtualCluster (DeleteVirtualCluster'),+    newDeleteVirtualCluster,+    DeleteVirtualClusterResponse (DeleteVirtualClusterResponse'),+    newDeleteVirtualClusterResponse,++    -- ** DescribeJobRun+    DescribeJobRun (DescribeJobRun'),+    newDescribeJobRun,+    DescribeJobRunResponse (DescribeJobRunResponse'),+    newDescribeJobRunResponse,++    -- ** DescribeJobTemplate+    DescribeJobTemplate (DescribeJobTemplate'),+    newDescribeJobTemplate,+    DescribeJobTemplateResponse (DescribeJobTemplateResponse'),+    newDescribeJobTemplateResponse,++    -- ** DescribeManagedEndpoint+    DescribeManagedEndpoint (DescribeManagedEndpoint'),+    newDescribeManagedEndpoint,+    DescribeManagedEndpointResponse (DescribeManagedEndpointResponse'),+    newDescribeManagedEndpointResponse,++    -- ** DescribeVirtualCluster+    DescribeVirtualCluster (DescribeVirtualCluster'),+    newDescribeVirtualCluster,+    DescribeVirtualClusterResponse (DescribeVirtualClusterResponse'),+    newDescribeVirtualClusterResponse,++    -- ** ListJobRuns (Paginated)+    ListJobRuns (ListJobRuns'),+    newListJobRuns,+    ListJobRunsResponse (ListJobRunsResponse'),+    newListJobRunsResponse,++    -- ** ListJobTemplates (Paginated)+    ListJobTemplates (ListJobTemplates'),+    newListJobTemplates,+    ListJobTemplatesResponse (ListJobTemplatesResponse'),+    newListJobTemplatesResponse,++    -- ** ListManagedEndpoints (Paginated)+    ListManagedEndpoints (ListManagedEndpoints'),+    newListManagedEndpoints,+    ListManagedEndpointsResponse (ListManagedEndpointsResponse'),+    newListManagedEndpointsResponse,++    -- ** ListTagsForResource+    ListTagsForResource (ListTagsForResource'),+    newListTagsForResource,+    ListTagsForResourceResponse (ListTagsForResourceResponse'),+    newListTagsForResourceResponse,++    -- ** ListVirtualClusters (Paginated)+    ListVirtualClusters (ListVirtualClusters'),+    newListVirtualClusters,+    ListVirtualClustersResponse (ListVirtualClustersResponse'),+    newListVirtualClustersResponse,++    -- ** StartJobRun+    StartJobRun (StartJobRun'),+    newStartJobRun,+    StartJobRunResponse (StartJobRunResponse'),+    newStartJobRunResponse,++    -- ** TagResource+    TagResource (TagResource'),+    newTagResource,+    TagResourceResponse (TagResourceResponse'),+    newTagResourceResponse,++    -- ** UntagResource+    UntagResource (UntagResource'),+    newUntagResource,+    UntagResourceResponse (UntagResourceResponse'),+    newUntagResourceResponse,++    -- * Types++    -- ** ContainerProviderType+    ContainerProviderType (..),++    -- ** EndpointState+    EndpointState (..),++    -- ** FailureReason+    FailureReason (..),++    -- ** JobRunState+    JobRunState (..),++    -- ** PersistentAppUI+    PersistentAppUI (..),++    -- ** TemplateParameterDataType+    TemplateParameterDataType (..),++    -- ** VirtualClusterState+    VirtualClusterState (..),++    -- ** Certificate+    Certificate (Certificate'),+    newCertificate,++    -- ** CloudWatchMonitoringConfiguration+    CloudWatchMonitoringConfiguration (CloudWatchMonitoringConfiguration'),+    newCloudWatchMonitoringConfiguration,++    -- ** Configuration+    Configuration (Configuration'),+    newConfiguration,++    -- ** ConfigurationOverrides+    ConfigurationOverrides (ConfigurationOverrides'),+    newConfigurationOverrides,++    -- ** ContainerInfo+    ContainerInfo (ContainerInfo'),+    newContainerInfo,++    -- ** ContainerProvider+    ContainerProvider (ContainerProvider'),+    newContainerProvider,++    -- ** EksInfo+    EksInfo (EksInfo'),+    newEksInfo,++    -- ** Endpoint+    Endpoint (Endpoint'),+    newEndpoint,++    -- ** JobDriver+    JobDriver (JobDriver'),+    newJobDriver,++    -- ** JobRun+    JobRun (JobRun'),+    newJobRun,++    -- ** JobTemplate+    JobTemplate (JobTemplate'),+    newJobTemplate,++    -- ** JobTemplateData+    JobTemplateData (JobTemplateData'),+    newJobTemplateData,++    -- ** MonitoringConfiguration+    MonitoringConfiguration (MonitoringConfiguration'),+    newMonitoringConfiguration,++    -- ** ParametricCloudWatchMonitoringConfiguration+    ParametricCloudWatchMonitoringConfiguration (ParametricCloudWatchMonitoringConfiguration'),+    newParametricCloudWatchMonitoringConfiguration,++    -- ** ParametricConfigurationOverrides+    ParametricConfigurationOverrides (ParametricConfigurationOverrides'),+    newParametricConfigurationOverrides,++    -- ** ParametricMonitoringConfiguration+    ParametricMonitoringConfiguration (ParametricMonitoringConfiguration'),+    newParametricMonitoringConfiguration,++    -- ** ParametricS3MonitoringConfiguration+    ParametricS3MonitoringConfiguration (ParametricS3MonitoringConfiguration'),+    newParametricS3MonitoringConfiguration,++    -- ** S3MonitoringConfiguration+    S3MonitoringConfiguration (S3MonitoringConfiguration'),+    newS3MonitoringConfiguration,++    -- ** SparkSqlJobDriver+    SparkSqlJobDriver (SparkSqlJobDriver'),+    newSparkSqlJobDriver,++    -- ** SparkSubmitJobDriver+    SparkSubmitJobDriver (SparkSubmitJobDriver'),+    newSparkSubmitJobDriver,++    -- ** TemplateParameterConfiguration+    TemplateParameterConfiguration (TemplateParameterConfiguration'),+    newTemplateParameterConfiguration,++    -- ** VirtualCluster+    VirtualCluster (VirtualCluster'),+    newVirtualCluster,+  )+where++import Amazonka.EMRContainers.CancelJobRun+import Amazonka.EMRContainers.CreateJobTemplate+import Amazonka.EMRContainers.CreateManagedEndpoint+import Amazonka.EMRContainers.CreateVirtualCluster+import Amazonka.EMRContainers.DeleteJobTemplate+import Amazonka.EMRContainers.DeleteManagedEndpoint+import Amazonka.EMRContainers.DeleteVirtualCluster+import Amazonka.EMRContainers.DescribeJobRun+import Amazonka.EMRContainers.DescribeJobTemplate+import Amazonka.EMRContainers.DescribeManagedEndpoint+import Amazonka.EMRContainers.DescribeVirtualCluster+import Amazonka.EMRContainers.Lens+import Amazonka.EMRContainers.ListJobRuns+import Amazonka.EMRContainers.ListJobTemplates+import Amazonka.EMRContainers.ListManagedEndpoints+import Amazonka.EMRContainers.ListTagsForResource+import Amazonka.EMRContainers.ListVirtualClusters+import Amazonka.EMRContainers.StartJobRun+import Amazonka.EMRContainers.TagResource+import Amazonka.EMRContainers.Types+import Amazonka.EMRContainers.UntagResource+import Amazonka.EMRContainers.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 'EMRContainers'.++-- $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/EMRContainers/CancelJobRun.hs view
@@ -0,0 +1,194 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRContainers.CancelJobRun+-- 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 job run. A job run is a unit of work, such as a Spark jar,+-- PySpark script, or SparkSQL query, that you submit to Amazon EMR on EKS.+module Amazonka.EMRContainers.CancelJobRun+  ( -- * Creating a Request+    CancelJobRun (..),+    newCancelJobRun,++    -- * Request Lenses+    cancelJobRun_id,+    cancelJobRun_virtualClusterId,++    -- * Destructuring the Response+    CancelJobRunResponse (..),+    newCancelJobRunResponse,++    -- * Response Lenses+    cancelJobRunResponse_id,+    cancelJobRunResponse_virtualClusterId,+    cancelJobRunResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRContainers.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCancelJobRun' smart constructor.+data CancelJobRun = CancelJobRun'+  { -- | The ID of the job run to cancel.+    id :: Prelude.Text,+    -- | The ID of the virtual cluster for which the job run will be canceled.+    virtualClusterId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CancelJobRun' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'cancelJobRun_id' - The ID of the job run to cancel.+--+-- 'virtualClusterId', 'cancelJobRun_virtualClusterId' - The ID of the virtual cluster for which the job run will be canceled.+newCancelJobRun ::+  -- | 'id'+  Prelude.Text ->+  -- | 'virtualClusterId'+  Prelude.Text ->+  CancelJobRun+newCancelJobRun pId_ pVirtualClusterId_ =+  CancelJobRun'+    { id = pId_,+      virtualClusterId = pVirtualClusterId_+    }++-- | The ID of the job run to cancel.+cancelJobRun_id :: Lens.Lens' CancelJobRun Prelude.Text+cancelJobRun_id = Lens.lens (\CancelJobRun' {id} -> id) (\s@CancelJobRun' {} a -> s {id = a} :: CancelJobRun)++-- | The ID of the virtual cluster for which the job run will be canceled.+cancelJobRun_virtualClusterId :: Lens.Lens' CancelJobRun Prelude.Text+cancelJobRun_virtualClusterId = Lens.lens (\CancelJobRun' {virtualClusterId} -> virtualClusterId) (\s@CancelJobRun' {} a -> s {virtualClusterId = a} :: CancelJobRun)++instance Core.AWSRequest CancelJobRun where+  type AWSResponse CancelJobRun = CancelJobRunResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CancelJobRunResponse'+            Prelude.<$> (x Data..?> "id")+            Prelude.<*> (x Data..?> "virtualClusterId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CancelJobRun where+  hashWithSalt _salt CancelJobRun' {..} =+    _salt+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` virtualClusterId++instance Prelude.NFData CancelJobRun where+  rnf CancelJobRun' {..} =+    Prelude.rnf id+      `Prelude.seq` Prelude.rnf virtualClusterId++instance Data.ToHeaders CancelJobRun where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath CancelJobRun where+  toPath CancelJobRun' {..} =+    Prelude.mconcat+      [ "/virtualclusters/",+        Data.toBS virtualClusterId,+        "/jobruns/",+        Data.toBS id+      ]++instance Data.ToQuery CancelJobRun where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCancelJobRunResponse' smart constructor.+data CancelJobRunResponse = CancelJobRunResponse'+  { -- | The output contains the ID of the cancelled job run.+    id :: Prelude.Maybe Prelude.Text,+    -- | The output contains the virtual cluster ID for which the job run is+    -- cancelled.+    virtualClusterId :: 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 'CancelJobRunResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'cancelJobRunResponse_id' - The output contains the ID of the cancelled job run.+--+-- 'virtualClusterId', 'cancelJobRunResponse_virtualClusterId' - The output contains the virtual cluster ID for which the job run is+-- cancelled.+--+-- 'httpStatus', 'cancelJobRunResponse_httpStatus' - The response's http status code.+newCancelJobRunResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CancelJobRunResponse+newCancelJobRunResponse pHttpStatus_ =+  CancelJobRunResponse'+    { id = Prelude.Nothing,+      virtualClusterId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The output contains the ID of the cancelled job run.+cancelJobRunResponse_id :: Lens.Lens' CancelJobRunResponse (Prelude.Maybe Prelude.Text)+cancelJobRunResponse_id = Lens.lens (\CancelJobRunResponse' {id} -> id) (\s@CancelJobRunResponse' {} a -> s {id = a} :: CancelJobRunResponse)++-- | The output contains the virtual cluster ID for which the job run is+-- cancelled.+cancelJobRunResponse_virtualClusterId :: Lens.Lens' CancelJobRunResponse (Prelude.Maybe Prelude.Text)+cancelJobRunResponse_virtualClusterId = Lens.lens (\CancelJobRunResponse' {virtualClusterId} -> virtualClusterId) (\s@CancelJobRunResponse' {} a -> s {virtualClusterId = a} :: CancelJobRunResponse)++-- | The response's http status code.+cancelJobRunResponse_httpStatus :: Lens.Lens' CancelJobRunResponse Prelude.Int+cancelJobRunResponse_httpStatus = Lens.lens (\CancelJobRunResponse' {httpStatus} -> httpStatus) (\s@CancelJobRunResponse' {} a -> s {httpStatus = a} :: CancelJobRunResponse)++instance Prelude.NFData CancelJobRunResponse where+  rnf CancelJobRunResponse' {..} =+    Prelude.rnf id+      `Prelude.seq` Prelude.rnf virtualClusterId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EMRContainers/CreateJobTemplate.hs view
@@ -0,0 +1,270 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRContainers.CreateJobTemplate+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a job template. Job template stores values of StartJobRun API+-- request in a template and can be used to start a job run. Job template+-- allows two use cases: avoid repeating recurring StartJobRun API request+-- values, enforcing certain values in StartJobRun API request.+module Amazonka.EMRContainers.CreateJobTemplate+  ( -- * Creating a Request+    CreateJobTemplate (..),+    newCreateJobTemplate,++    -- * Request Lenses+    createJobTemplate_kmsKeyArn,+    createJobTemplate_tags,+    createJobTemplate_name,+    createJobTemplate_clientToken,+    createJobTemplate_jobTemplateData,++    -- * Destructuring the Response+    CreateJobTemplateResponse (..),+    newCreateJobTemplateResponse,++    -- * Response Lenses+    createJobTemplateResponse_arn,+    createJobTemplateResponse_createdAt,+    createJobTemplateResponse_id,+    createJobTemplateResponse_name,+    createJobTemplateResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRContainers.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateJobTemplate' smart constructor.+data CreateJobTemplate = CreateJobTemplate'+  { -- | The KMS key ARN used to encrypt the job template.+    kmsKeyArn :: Prelude.Maybe Prelude.Text,+    -- | The tags that are associated with the job template.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The specified name of the job template.+    name :: Prelude.Text,+    -- | The client token of the job template.+    clientToken :: Prelude.Text,+    -- | The job template data which holds values of StartJobRun API request.+    jobTemplateData :: JobTemplateData+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateJobTemplate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'kmsKeyArn', 'createJobTemplate_kmsKeyArn' - The KMS key ARN used to encrypt the job template.+--+-- 'tags', 'createJobTemplate_tags' - The tags that are associated with the job template.+--+-- 'name', 'createJobTemplate_name' - The specified name of the job template.+--+-- 'clientToken', 'createJobTemplate_clientToken' - The client token of the job template.+--+-- 'jobTemplateData', 'createJobTemplate_jobTemplateData' - The job template data which holds values of StartJobRun API request.+newCreateJobTemplate ::+  -- | 'name'+  Prelude.Text ->+  -- | 'clientToken'+  Prelude.Text ->+  -- | 'jobTemplateData'+  JobTemplateData ->+  CreateJobTemplate+newCreateJobTemplate+  pName_+  pClientToken_+  pJobTemplateData_ =+    CreateJobTemplate'+      { kmsKeyArn = Prelude.Nothing,+        tags = Prelude.Nothing,+        name = pName_,+        clientToken = pClientToken_,+        jobTemplateData = pJobTemplateData_+      }++-- | The KMS key ARN used to encrypt the job template.+createJobTemplate_kmsKeyArn :: Lens.Lens' CreateJobTemplate (Prelude.Maybe Prelude.Text)+createJobTemplate_kmsKeyArn = Lens.lens (\CreateJobTemplate' {kmsKeyArn} -> kmsKeyArn) (\s@CreateJobTemplate' {} a -> s {kmsKeyArn = a} :: CreateJobTemplate)++-- | The tags that are associated with the job template.+createJobTemplate_tags :: Lens.Lens' CreateJobTemplate (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createJobTemplate_tags = Lens.lens (\CreateJobTemplate' {tags} -> tags) (\s@CreateJobTemplate' {} a -> s {tags = a} :: CreateJobTemplate) Prelude.. Lens.mapping Lens.coerced++-- | The specified name of the job template.+createJobTemplate_name :: Lens.Lens' CreateJobTemplate Prelude.Text+createJobTemplate_name = Lens.lens (\CreateJobTemplate' {name} -> name) (\s@CreateJobTemplate' {} a -> s {name = a} :: CreateJobTemplate)++-- | The client token of the job template.+createJobTemplate_clientToken :: Lens.Lens' CreateJobTemplate Prelude.Text+createJobTemplate_clientToken = Lens.lens (\CreateJobTemplate' {clientToken} -> clientToken) (\s@CreateJobTemplate' {} a -> s {clientToken = a} :: CreateJobTemplate)++-- | The job template data which holds values of StartJobRun API request.+createJobTemplate_jobTemplateData :: Lens.Lens' CreateJobTemplate JobTemplateData+createJobTemplate_jobTemplateData = Lens.lens (\CreateJobTemplate' {jobTemplateData} -> jobTemplateData) (\s@CreateJobTemplate' {} a -> s {jobTemplateData = a} :: CreateJobTemplate)++instance Core.AWSRequest CreateJobTemplate where+  type+    AWSResponse CreateJobTemplate =+      CreateJobTemplateResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateJobTemplateResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "createdAt")+            Prelude.<*> (x Data..?> "id")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateJobTemplate where+  hashWithSalt _salt CreateJobTemplate' {..} =+    _salt+      `Prelude.hashWithSalt` kmsKeyArn+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` jobTemplateData++instance Prelude.NFData CreateJobTemplate where+  rnf CreateJobTemplate' {..} =+    Prelude.rnf kmsKeyArn+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf jobTemplateData++instance Data.ToHeaders CreateJobTemplate where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateJobTemplate where+  toJSON CreateJobTemplate' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("kmsKeyArn" Data..=) Prelude.<$> kmsKeyArn,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("name" Data..= name),+            Prelude.Just ("clientToken" Data..= clientToken),+            Prelude.Just+              ("jobTemplateData" Data..= jobTemplateData)+          ]+      )++instance Data.ToPath CreateJobTemplate where+  toPath = Prelude.const "/jobtemplates"++instance Data.ToQuery CreateJobTemplate where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateJobTemplateResponse' smart constructor.+data CreateJobTemplateResponse = CreateJobTemplateResponse'+  { -- | This output display the ARN of the created job template.+    arn :: Prelude.Maybe Prelude.Text,+    -- | This output displays the date and time when the job template was+    -- created.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | This output display the created job template ID.+    id :: Prelude.Maybe Prelude.Text,+    -- | This output displays the name of the created job 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 'CreateJobTemplateResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createJobTemplateResponse_arn' - This output display the ARN of the created job template.+--+-- 'createdAt', 'createJobTemplateResponse_createdAt' - This output displays the date and time when the job template was+-- created.+--+-- 'id', 'createJobTemplateResponse_id' - This output display the created job template ID.+--+-- 'name', 'createJobTemplateResponse_name' - This output displays the name of the created job template.+--+-- 'httpStatus', 'createJobTemplateResponse_httpStatus' - The response's http status code.+newCreateJobTemplateResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateJobTemplateResponse+newCreateJobTemplateResponse pHttpStatus_ =+  CreateJobTemplateResponse'+    { arn = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      id = Prelude.Nothing,+      name = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | This output display the ARN of the created job template.+createJobTemplateResponse_arn :: Lens.Lens' CreateJobTemplateResponse (Prelude.Maybe Prelude.Text)+createJobTemplateResponse_arn = Lens.lens (\CreateJobTemplateResponse' {arn} -> arn) (\s@CreateJobTemplateResponse' {} a -> s {arn = a} :: CreateJobTemplateResponse)++-- | This output displays the date and time when the job template was+-- created.+createJobTemplateResponse_createdAt :: Lens.Lens' CreateJobTemplateResponse (Prelude.Maybe Prelude.UTCTime)+createJobTemplateResponse_createdAt = Lens.lens (\CreateJobTemplateResponse' {createdAt} -> createdAt) (\s@CreateJobTemplateResponse' {} a -> s {createdAt = a} :: CreateJobTemplateResponse) Prelude.. Lens.mapping Data._Time++-- | This output display the created job template ID.+createJobTemplateResponse_id :: Lens.Lens' CreateJobTemplateResponse (Prelude.Maybe Prelude.Text)+createJobTemplateResponse_id = Lens.lens (\CreateJobTemplateResponse' {id} -> id) (\s@CreateJobTemplateResponse' {} a -> s {id = a} :: CreateJobTemplateResponse)++-- | This output displays the name of the created job template.+createJobTemplateResponse_name :: Lens.Lens' CreateJobTemplateResponse (Prelude.Maybe Prelude.Text)+createJobTemplateResponse_name = Lens.lens (\CreateJobTemplateResponse' {name} -> name) (\s@CreateJobTemplateResponse' {} a -> s {name = a} :: CreateJobTemplateResponse)++-- | The response's http status code.+createJobTemplateResponse_httpStatus :: Lens.Lens' CreateJobTemplateResponse Prelude.Int+createJobTemplateResponse_httpStatus = Lens.lens (\CreateJobTemplateResponse' {httpStatus} -> httpStatus) (\s@CreateJobTemplateResponse' {} a -> s {httpStatus = a} :: CreateJobTemplateResponse)++instance Prelude.NFData CreateJobTemplateResponse where+  rnf CreateJobTemplateResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EMRContainers/CreateManagedEndpoint.hs view
@@ -0,0 +1,341 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRContainers.CreateManagedEndpoint+-- 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 managed endpoint. A managed endpoint is a gateway that+-- connects EMR Studio to Amazon EMR on EKS so that EMR Studio can+-- communicate with your virtual cluster.+module Amazonka.EMRContainers.CreateManagedEndpoint+  ( -- * Creating a Request+    CreateManagedEndpoint (..),+    newCreateManagedEndpoint,++    -- * Request Lenses+    createManagedEndpoint_certificateArn,+    createManagedEndpoint_configurationOverrides,+    createManagedEndpoint_tags,+    createManagedEndpoint_name,+    createManagedEndpoint_virtualClusterId,+    createManagedEndpoint_type,+    createManagedEndpoint_releaseLabel,+    createManagedEndpoint_executionRoleArn,+    createManagedEndpoint_clientToken,++    -- * Destructuring the Response+    CreateManagedEndpointResponse (..),+    newCreateManagedEndpointResponse,++    -- * Response Lenses+    createManagedEndpointResponse_arn,+    createManagedEndpointResponse_id,+    createManagedEndpointResponse_name,+    createManagedEndpointResponse_virtualClusterId,+    createManagedEndpointResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRContainers.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateManagedEndpoint' smart constructor.+data CreateManagedEndpoint = CreateManagedEndpoint'+  { -- | The certificate ARN provided by users for the managed endpoint. This+    -- field is under deprecation and will be removed in future releases.+    certificateArn :: Prelude.Maybe Prelude.Text,+    -- | The configuration settings that will be used to override existing+    -- configurations.+    configurationOverrides :: Prelude.Maybe ConfigurationOverrides,+    -- | The tags of the managed endpoint.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The name of the managed endpoint.+    name :: Prelude.Text,+    -- | The ID of the virtual cluster for which a managed endpoint is created.+    virtualClusterId :: Prelude.Text,+    -- | The type of the managed endpoint.+    type' :: Prelude.Text,+    -- | The Amazon EMR release version.+    releaseLabel :: Prelude.Text,+    -- | The ARN of the execution role.+    executionRoleArn :: Prelude.Text,+    -- | The client idempotency token for this create call.+    clientToken :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateManagedEndpoint' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'certificateArn', 'createManagedEndpoint_certificateArn' - The certificate ARN provided by users for the managed endpoint. This+-- field is under deprecation and will be removed in future releases.+--+-- 'configurationOverrides', 'createManagedEndpoint_configurationOverrides' - The configuration settings that will be used to override existing+-- configurations.+--+-- 'tags', 'createManagedEndpoint_tags' - The tags of the managed endpoint.+--+-- 'name', 'createManagedEndpoint_name' - The name of the managed endpoint.+--+-- 'virtualClusterId', 'createManagedEndpoint_virtualClusterId' - The ID of the virtual cluster for which a managed endpoint is created.+--+-- 'type'', 'createManagedEndpoint_type' - The type of the managed endpoint.+--+-- 'releaseLabel', 'createManagedEndpoint_releaseLabel' - The Amazon EMR release version.+--+-- 'executionRoleArn', 'createManagedEndpoint_executionRoleArn' - The ARN of the execution role.+--+-- 'clientToken', 'createManagedEndpoint_clientToken' - The client idempotency token for this create call.+newCreateManagedEndpoint ::+  -- | 'name'+  Prelude.Text ->+  -- | 'virtualClusterId'+  Prelude.Text ->+  -- | 'type''+  Prelude.Text ->+  -- | 'releaseLabel'+  Prelude.Text ->+  -- | 'executionRoleArn'+  Prelude.Text ->+  -- | 'clientToken'+  Prelude.Text ->+  CreateManagedEndpoint+newCreateManagedEndpoint+  pName_+  pVirtualClusterId_+  pType_+  pReleaseLabel_+  pExecutionRoleArn_+  pClientToken_ =+    CreateManagedEndpoint'+      { certificateArn =+          Prelude.Nothing,+        configurationOverrides = Prelude.Nothing,+        tags = Prelude.Nothing,+        name = pName_,+        virtualClusterId = pVirtualClusterId_,+        type' = pType_,+        releaseLabel = pReleaseLabel_,+        executionRoleArn = pExecutionRoleArn_,+        clientToken = pClientToken_+      }++-- | The certificate ARN provided by users for the managed endpoint. This+-- field is under deprecation and will be removed in future releases.+createManagedEndpoint_certificateArn :: Lens.Lens' CreateManagedEndpoint (Prelude.Maybe Prelude.Text)+createManagedEndpoint_certificateArn = Lens.lens (\CreateManagedEndpoint' {certificateArn} -> certificateArn) (\s@CreateManagedEndpoint' {} a -> s {certificateArn = a} :: CreateManagedEndpoint)++-- | The configuration settings that will be used to override existing+-- configurations.+createManagedEndpoint_configurationOverrides :: Lens.Lens' CreateManagedEndpoint (Prelude.Maybe ConfigurationOverrides)+createManagedEndpoint_configurationOverrides = Lens.lens (\CreateManagedEndpoint' {configurationOverrides} -> configurationOverrides) (\s@CreateManagedEndpoint' {} a -> s {configurationOverrides = a} :: CreateManagedEndpoint)++-- | The tags of the managed endpoint.+createManagedEndpoint_tags :: Lens.Lens' CreateManagedEndpoint (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createManagedEndpoint_tags = Lens.lens (\CreateManagedEndpoint' {tags} -> tags) (\s@CreateManagedEndpoint' {} a -> s {tags = a} :: CreateManagedEndpoint) Prelude.. Lens.mapping Lens.coerced++-- | The name of the managed endpoint.+createManagedEndpoint_name :: Lens.Lens' CreateManagedEndpoint Prelude.Text+createManagedEndpoint_name = Lens.lens (\CreateManagedEndpoint' {name} -> name) (\s@CreateManagedEndpoint' {} a -> s {name = a} :: CreateManagedEndpoint)++-- | The ID of the virtual cluster for which a managed endpoint is created.+createManagedEndpoint_virtualClusterId :: Lens.Lens' CreateManagedEndpoint Prelude.Text+createManagedEndpoint_virtualClusterId = Lens.lens (\CreateManagedEndpoint' {virtualClusterId} -> virtualClusterId) (\s@CreateManagedEndpoint' {} a -> s {virtualClusterId = a} :: CreateManagedEndpoint)++-- | The type of the managed endpoint.+createManagedEndpoint_type :: Lens.Lens' CreateManagedEndpoint Prelude.Text+createManagedEndpoint_type = Lens.lens (\CreateManagedEndpoint' {type'} -> type') (\s@CreateManagedEndpoint' {} a -> s {type' = a} :: CreateManagedEndpoint)++-- | The Amazon EMR release version.+createManagedEndpoint_releaseLabel :: Lens.Lens' CreateManagedEndpoint Prelude.Text+createManagedEndpoint_releaseLabel = Lens.lens (\CreateManagedEndpoint' {releaseLabel} -> releaseLabel) (\s@CreateManagedEndpoint' {} a -> s {releaseLabel = a} :: CreateManagedEndpoint)++-- | The ARN of the execution role.+createManagedEndpoint_executionRoleArn :: Lens.Lens' CreateManagedEndpoint Prelude.Text+createManagedEndpoint_executionRoleArn = Lens.lens (\CreateManagedEndpoint' {executionRoleArn} -> executionRoleArn) (\s@CreateManagedEndpoint' {} a -> s {executionRoleArn = a} :: CreateManagedEndpoint)++-- | The client idempotency token for this create call.+createManagedEndpoint_clientToken :: Lens.Lens' CreateManagedEndpoint Prelude.Text+createManagedEndpoint_clientToken = Lens.lens (\CreateManagedEndpoint' {clientToken} -> clientToken) (\s@CreateManagedEndpoint' {} a -> s {clientToken = a} :: CreateManagedEndpoint)++instance Core.AWSRequest CreateManagedEndpoint where+  type+    AWSResponse CreateManagedEndpoint =+      CreateManagedEndpointResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateManagedEndpointResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "id")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (x Data..?> "virtualClusterId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateManagedEndpoint where+  hashWithSalt _salt CreateManagedEndpoint' {..} =+    _salt+      `Prelude.hashWithSalt` certificateArn+      `Prelude.hashWithSalt` configurationOverrides+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` virtualClusterId+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` releaseLabel+      `Prelude.hashWithSalt` executionRoleArn+      `Prelude.hashWithSalt` clientToken++instance Prelude.NFData CreateManagedEndpoint where+  rnf CreateManagedEndpoint' {..} =+    Prelude.rnf certificateArn+      `Prelude.seq` Prelude.rnf configurationOverrides+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf virtualClusterId+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf releaseLabel+      `Prelude.seq` Prelude.rnf executionRoleArn+      `Prelude.seq` Prelude.rnf clientToken++instance Data.ToHeaders CreateManagedEndpoint where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateManagedEndpoint where+  toJSON CreateManagedEndpoint' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("certificateArn" Data..=)+              Prelude.<$> certificateArn,+            ("configurationOverrides" Data..=)+              Prelude.<$> configurationOverrides,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("name" Data..= name),+            Prelude.Just ("type" Data..= type'),+            Prelude.Just ("releaseLabel" Data..= releaseLabel),+            Prelude.Just+              ("executionRoleArn" Data..= executionRoleArn),+            Prelude.Just ("clientToken" Data..= clientToken)+          ]+      )++instance Data.ToPath CreateManagedEndpoint where+  toPath CreateManagedEndpoint' {..} =+    Prelude.mconcat+      [ "/virtualclusters/",+        Data.toBS virtualClusterId,+        "/endpoints"+      ]++instance Data.ToQuery CreateManagedEndpoint where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateManagedEndpointResponse' smart constructor.+data CreateManagedEndpointResponse = CreateManagedEndpointResponse'+  { -- | The output contains the ARN of the managed endpoint.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The output contains the ID of the managed endpoint.+    id :: Prelude.Maybe Prelude.Text,+    -- | The output contains the name of the managed endpoint.+    name :: Prelude.Maybe Prelude.Text,+    -- | The output contains the ID of the virtual cluster.+    virtualClusterId :: 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 'CreateManagedEndpointResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createManagedEndpointResponse_arn' - The output contains the ARN of the managed endpoint.+--+-- 'id', 'createManagedEndpointResponse_id' - The output contains the ID of the managed endpoint.+--+-- 'name', 'createManagedEndpointResponse_name' - The output contains the name of the managed endpoint.+--+-- 'virtualClusterId', 'createManagedEndpointResponse_virtualClusterId' - The output contains the ID of the virtual cluster.+--+-- 'httpStatus', 'createManagedEndpointResponse_httpStatus' - The response's http status code.+newCreateManagedEndpointResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateManagedEndpointResponse+newCreateManagedEndpointResponse pHttpStatus_ =+  CreateManagedEndpointResponse'+    { arn =+        Prelude.Nothing,+      id = Prelude.Nothing,+      name = Prelude.Nothing,+      virtualClusterId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The output contains the ARN of the managed endpoint.+createManagedEndpointResponse_arn :: Lens.Lens' CreateManagedEndpointResponse (Prelude.Maybe Prelude.Text)+createManagedEndpointResponse_arn = Lens.lens (\CreateManagedEndpointResponse' {arn} -> arn) (\s@CreateManagedEndpointResponse' {} a -> s {arn = a} :: CreateManagedEndpointResponse)++-- | The output contains the ID of the managed endpoint.+createManagedEndpointResponse_id :: Lens.Lens' CreateManagedEndpointResponse (Prelude.Maybe Prelude.Text)+createManagedEndpointResponse_id = Lens.lens (\CreateManagedEndpointResponse' {id} -> id) (\s@CreateManagedEndpointResponse' {} a -> s {id = a} :: CreateManagedEndpointResponse)++-- | The output contains the name of the managed endpoint.+createManagedEndpointResponse_name :: Lens.Lens' CreateManagedEndpointResponse (Prelude.Maybe Prelude.Text)+createManagedEndpointResponse_name = Lens.lens (\CreateManagedEndpointResponse' {name} -> name) (\s@CreateManagedEndpointResponse' {} a -> s {name = a} :: CreateManagedEndpointResponse)++-- | The output contains the ID of the virtual cluster.+createManagedEndpointResponse_virtualClusterId :: Lens.Lens' CreateManagedEndpointResponse (Prelude.Maybe Prelude.Text)+createManagedEndpointResponse_virtualClusterId = Lens.lens (\CreateManagedEndpointResponse' {virtualClusterId} -> virtualClusterId) (\s@CreateManagedEndpointResponse' {} a -> s {virtualClusterId = a} :: CreateManagedEndpointResponse)++-- | The response's http status code.+createManagedEndpointResponse_httpStatus :: Lens.Lens' CreateManagedEndpointResponse Prelude.Int+createManagedEndpointResponse_httpStatus = Lens.lens (\CreateManagedEndpointResponse' {httpStatus} -> httpStatus) (\s@CreateManagedEndpointResponse' {} a -> s {httpStatus = a} :: CreateManagedEndpointResponse)++instance Prelude.NFData CreateManagedEndpointResponse where+  rnf CreateManagedEndpointResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf virtualClusterId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EMRContainers/CreateVirtualCluster.hs view
@@ -0,0 +1,245 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRContainers.CreateVirtualCluster+-- 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 virtual cluster. Virtual cluster is a managed entity on Amazon+-- EMR on EKS. You can create, describe, list and delete virtual clusters.+-- They do not consume any additional resource in your system. A single+-- virtual cluster maps to a single Kubernetes namespace. Given this+-- relationship, you can model virtual clusters the same way you model+-- Kubernetes namespaces to meet your requirements.+module Amazonka.EMRContainers.CreateVirtualCluster+  ( -- * Creating a Request+    CreateVirtualCluster (..),+    newCreateVirtualCluster,++    -- * Request Lenses+    createVirtualCluster_tags,+    createVirtualCluster_name,+    createVirtualCluster_containerProvider,+    createVirtualCluster_clientToken,++    -- * Destructuring the Response+    CreateVirtualClusterResponse (..),+    newCreateVirtualClusterResponse,++    -- * Response Lenses+    createVirtualClusterResponse_arn,+    createVirtualClusterResponse_id,+    createVirtualClusterResponse_name,+    createVirtualClusterResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRContainers.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateVirtualCluster' smart constructor.+data CreateVirtualCluster = CreateVirtualCluster'+  { -- | The tags assigned to the virtual cluster.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The specified name of the virtual cluster.+    name :: Prelude.Text,+    -- | The container provider of the virtual cluster.+    containerProvider :: ContainerProvider,+    -- | The client token of the virtual cluster.+    clientToken :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateVirtualCluster' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createVirtualCluster_tags' - The tags assigned to the virtual cluster.+--+-- 'name', 'createVirtualCluster_name' - The specified name of the virtual cluster.+--+-- 'containerProvider', 'createVirtualCluster_containerProvider' - The container provider of the virtual cluster.+--+-- 'clientToken', 'createVirtualCluster_clientToken' - The client token of the virtual cluster.+newCreateVirtualCluster ::+  -- | 'name'+  Prelude.Text ->+  -- | 'containerProvider'+  ContainerProvider ->+  -- | 'clientToken'+  Prelude.Text ->+  CreateVirtualCluster+newCreateVirtualCluster+  pName_+  pContainerProvider_+  pClientToken_ =+    CreateVirtualCluster'+      { tags = Prelude.Nothing,+        name = pName_,+        containerProvider = pContainerProvider_,+        clientToken = pClientToken_+      }++-- | The tags assigned to the virtual cluster.+createVirtualCluster_tags :: Lens.Lens' CreateVirtualCluster (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createVirtualCluster_tags = Lens.lens (\CreateVirtualCluster' {tags} -> tags) (\s@CreateVirtualCluster' {} a -> s {tags = a} :: CreateVirtualCluster) Prelude.. Lens.mapping Lens.coerced++-- | The specified name of the virtual cluster.+createVirtualCluster_name :: Lens.Lens' CreateVirtualCluster Prelude.Text+createVirtualCluster_name = Lens.lens (\CreateVirtualCluster' {name} -> name) (\s@CreateVirtualCluster' {} a -> s {name = a} :: CreateVirtualCluster)++-- | The container provider of the virtual cluster.+createVirtualCluster_containerProvider :: Lens.Lens' CreateVirtualCluster ContainerProvider+createVirtualCluster_containerProvider = Lens.lens (\CreateVirtualCluster' {containerProvider} -> containerProvider) (\s@CreateVirtualCluster' {} a -> s {containerProvider = a} :: CreateVirtualCluster)++-- | The client token of the virtual cluster.+createVirtualCluster_clientToken :: Lens.Lens' CreateVirtualCluster Prelude.Text+createVirtualCluster_clientToken = Lens.lens (\CreateVirtualCluster' {clientToken} -> clientToken) (\s@CreateVirtualCluster' {} a -> s {clientToken = a} :: CreateVirtualCluster)++instance Core.AWSRequest CreateVirtualCluster where+  type+    AWSResponse CreateVirtualCluster =+      CreateVirtualClusterResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateVirtualClusterResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "id")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateVirtualCluster where+  hashWithSalt _salt CreateVirtualCluster' {..} =+    _salt+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` containerProvider+      `Prelude.hashWithSalt` clientToken++instance Prelude.NFData CreateVirtualCluster where+  rnf CreateVirtualCluster' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf containerProvider+      `Prelude.seq` Prelude.rnf clientToken++instance Data.ToHeaders CreateVirtualCluster where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateVirtualCluster where+  toJSON CreateVirtualCluster' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("name" Data..= name),+            Prelude.Just+              ("containerProvider" Data..= containerProvider),+            Prelude.Just ("clientToken" Data..= clientToken)+          ]+      )++instance Data.ToPath CreateVirtualCluster where+  toPath = Prelude.const "/virtualclusters"++instance Data.ToQuery CreateVirtualCluster where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateVirtualClusterResponse' smart constructor.+data CreateVirtualClusterResponse = CreateVirtualClusterResponse'+  { -- | This output contains the ARN of virtual cluster.+    arn :: Prelude.Maybe Prelude.Text,+    -- | This output contains the virtual cluster ID.+    id :: Prelude.Maybe Prelude.Text,+    -- | This output contains the name of the virtual cluster.+    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 'CreateVirtualClusterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createVirtualClusterResponse_arn' - This output contains the ARN of virtual cluster.+--+-- 'id', 'createVirtualClusterResponse_id' - This output contains the virtual cluster ID.+--+-- 'name', 'createVirtualClusterResponse_name' - This output contains the name of the virtual cluster.+--+-- 'httpStatus', 'createVirtualClusterResponse_httpStatus' - The response's http status code.+newCreateVirtualClusterResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateVirtualClusterResponse+newCreateVirtualClusterResponse pHttpStatus_ =+  CreateVirtualClusterResponse'+    { arn =+        Prelude.Nothing,+      id = Prelude.Nothing,+      name = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | This output contains the ARN of virtual cluster.+createVirtualClusterResponse_arn :: Lens.Lens' CreateVirtualClusterResponse (Prelude.Maybe Prelude.Text)+createVirtualClusterResponse_arn = Lens.lens (\CreateVirtualClusterResponse' {arn} -> arn) (\s@CreateVirtualClusterResponse' {} a -> s {arn = a} :: CreateVirtualClusterResponse)++-- | This output contains the virtual cluster ID.+createVirtualClusterResponse_id :: Lens.Lens' CreateVirtualClusterResponse (Prelude.Maybe Prelude.Text)+createVirtualClusterResponse_id = Lens.lens (\CreateVirtualClusterResponse' {id} -> id) (\s@CreateVirtualClusterResponse' {} a -> s {id = a} :: CreateVirtualClusterResponse)++-- | This output contains the name of the virtual cluster.+createVirtualClusterResponse_name :: Lens.Lens' CreateVirtualClusterResponse (Prelude.Maybe Prelude.Text)+createVirtualClusterResponse_name = Lens.lens (\CreateVirtualClusterResponse' {name} -> name) (\s@CreateVirtualClusterResponse' {} a -> s {name = a} :: CreateVirtualClusterResponse)++-- | The response's http status code.+createVirtualClusterResponse_httpStatus :: Lens.Lens' CreateVirtualClusterResponse Prelude.Int+createVirtualClusterResponse_httpStatus = Lens.lens (\CreateVirtualClusterResponse' {httpStatus} -> httpStatus) (\s@CreateVirtualClusterResponse' {} a -> s {httpStatus = a} :: CreateVirtualClusterResponse)++instance Prelude.NFData CreateVirtualClusterResponse where+  rnf CreateVirtualClusterResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EMRContainers/DeleteJobTemplate.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.EMRContainers.DeleteJobTemplate+-- 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 job template. Job template stores values of StartJobRun API+-- request in a template and can be used to start a job run. Job template+-- allows two use cases: avoid repeating recurring StartJobRun API request+-- values, enforcing certain values in StartJobRun API request.+module Amazonka.EMRContainers.DeleteJobTemplate+  ( -- * Creating a Request+    DeleteJobTemplate (..),+    newDeleteJobTemplate,++    -- * Request Lenses+    deleteJobTemplate_id,++    -- * Destructuring the Response+    DeleteJobTemplateResponse (..),+    newDeleteJobTemplateResponse,++    -- * Response Lenses+    deleteJobTemplateResponse_id,+    deleteJobTemplateResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRContainers.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteJobTemplate' smart constructor.+data DeleteJobTemplate = DeleteJobTemplate'+  { -- | The ID of the job template that will be deleted.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteJobTemplate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'deleteJobTemplate_id' - The ID of the job template that will be deleted.+newDeleteJobTemplate ::+  -- | 'id'+  Prelude.Text ->+  DeleteJobTemplate+newDeleteJobTemplate pId_ =+  DeleteJobTemplate' {id = pId_}++-- | The ID of the job template that will be deleted.+deleteJobTemplate_id :: Lens.Lens' DeleteJobTemplate Prelude.Text+deleteJobTemplate_id = Lens.lens (\DeleteJobTemplate' {id} -> id) (\s@DeleteJobTemplate' {} a -> s {id = a} :: DeleteJobTemplate)++instance Core.AWSRequest DeleteJobTemplate where+  type+    AWSResponse DeleteJobTemplate =+      DeleteJobTemplateResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteJobTemplateResponse'+            Prelude.<$> (x Data..?> "id")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteJobTemplate where+  hashWithSalt _salt DeleteJobTemplate' {..} =+    _salt `Prelude.hashWithSalt` id++instance Prelude.NFData DeleteJobTemplate where+  rnf DeleteJobTemplate' {..} = Prelude.rnf id++instance Data.ToHeaders DeleteJobTemplate where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteJobTemplate where+  toPath DeleteJobTemplate' {..} =+    Prelude.mconcat ["/jobtemplates/", Data.toBS id]++instance Data.ToQuery DeleteJobTemplate where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteJobTemplateResponse' smart constructor.+data DeleteJobTemplateResponse = DeleteJobTemplateResponse'+  { -- | This output contains the ID of the job template that was deleted.+    id :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteJobTemplateResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'deleteJobTemplateResponse_id' - This output contains the ID of the job template that was deleted.+--+-- 'httpStatus', 'deleteJobTemplateResponse_httpStatus' - The response's http status code.+newDeleteJobTemplateResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteJobTemplateResponse+newDeleteJobTemplateResponse pHttpStatus_ =+  DeleteJobTemplateResponse'+    { id = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | This output contains the ID of the job template that was deleted.+deleteJobTemplateResponse_id :: Lens.Lens' DeleteJobTemplateResponse (Prelude.Maybe Prelude.Text)+deleteJobTemplateResponse_id = Lens.lens (\DeleteJobTemplateResponse' {id} -> id) (\s@DeleteJobTemplateResponse' {} a -> s {id = a} :: DeleteJobTemplateResponse)++-- | The response's http status code.+deleteJobTemplateResponse_httpStatus :: Lens.Lens' DeleteJobTemplateResponse Prelude.Int+deleteJobTemplateResponse_httpStatus = Lens.lens (\DeleteJobTemplateResponse' {httpStatus} -> httpStatus) (\s@DeleteJobTemplateResponse' {} a -> s {httpStatus = a} :: DeleteJobTemplateResponse)++instance Prelude.NFData DeleteJobTemplateResponse where+  rnf DeleteJobTemplateResponse' {..} =+    Prelude.rnf id `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EMRContainers/DeleteManagedEndpoint.hs view
@@ -0,0 +1,195 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRContainers.DeleteManagedEndpoint+-- 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 managed endpoint. A managed endpoint is a gateway that+-- connects EMR Studio to Amazon EMR on EKS so that EMR Studio can+-- communicate with your virtual cluster.+module Amazonka.EMRContainers.DeleteManagedEndpoint+  ( -- * Creating a Request+    DeleteManagedEndpoint (..),+    newDeleteManagedEndpoint,++    -- * Request Lenses+    deleteManagedEndpoint_id,+    deleteManagedEndpoint_virtualClusterId,++    -- * Destructuring the Response+    DeleteManagedEndpointResponse (..),+    newDeleteManagedEndpointResponse,++    -- * Response Lenses+    deleteManagedEndpointResponse_id,+    deleteManagedEndpointResponse_virtualClusterId,+    deleteManagedEndpointResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRContainers.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteManagedEndpoint' smart constructor.+data DeleteManagedEndpoint = DeleteManagedEndpoint'+  { -- | The ID of the managed endpoint.+    id :: Prelude.Text,+    -- | The ID of the endpoint\'s virtual cluster.+    virtualClusterId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteManagedEndpoint' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'deleteManagedEndpoint_id' - The ID of the managed endpoint.+--+-- 'virtualClusterId', 'deleteManagedEndpoint_virtualClusterId' - The ID of the endpoint\'s virtual cluster.+newDeleteManagedEndpoint ::+  -- | 'id'+  Prelude.Text ->+  -- | 'virtualClusterId'+  Prelude.Text ->+  DeleteManagedEndpoint+newDeleteManagedEndpoint pId_ pVirtualClusterId_ =+  DeleteManagedEndpoint'+    { id = pId_,+      virtualClusterId = pVirtualClusterId_+    }++-- | The ID of the managed endpoint.+deleteManagedEndpoint_id :: Lens.Lens' DeleteManagedEndpoint Prelude.Text+deleteManagedEndpoint_id = Lens.lens (\DeleteManagedEndpoint' {id} -> id) (\s@DeleteManagedEndpoint' {} a -> s {id = a} :: DeleteManagedEndpoint)++-- | The ID of the endpoint\'s virtual cluster.+deleteManagedEndpoint_virtualClusterId :: Lens.Lens' DeleteManagedEndpoint Prelude.Text+deleteManagedEndpoint_virtualClusterId = Lens.lens (\DeleteManagedEndpoint' {virtualClusterId} -> virtualClusterId) (\s@DeleteManagedEndpoint' {} a -> s {virtualClusterId = a} :: DeleteManagedEndpoint)++instance Core.AWSRequest DeleteManagedEndpoint where+  type+    AWSResponse DeleteManagedEndpoint =+      DeleteManagedEndpointResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteManagedEndpointResponse'+            Prelude.<$> (x Data..?> "id")+            Prelude.<*> (x Data..?> "virtualClusterId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteManagedEndpoint where+  hashWithSalt _salt DeleteManagedEndpoint' {..} =+    _salt+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` virtualClusterId++instance Prelude.NFData DeleteManagedEndpoint where+  rnf DeleteManagedEndpoint' {..} =+    Prelude.rnf id+      `Prelude.seq` Prelude.rnf virtualClusterId++instance Data.ToHeaders DeleteManagedEndpoint where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteManagedEndpoint where+  toPath DeleteManagedEndpoint' {..} =+    Prelude.mconcat+      [ "/virtualclusters/",+        Data.toBS virtualClusterId,+        "/endpoints/",+        Data.toBS id+      ]++instance Data.ToQuery DeleteManagedEndpoint where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteManagedEndpointResponse' smart constructor.+data DeleteManagedEndpointResponse = DeleteManagedEndpointResponse'+  { -- | The output displays the ID of the managed endpoint.+    id :: Prelude.Maybe Prelude.Text,+    -- | The output displays the ID of the endpoint\'s virtual cluster.+    virtualClusterId :: 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 'DeleteManagedEndpointResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'deleteManagedEndpointResponse_id' - The output displays the ID of the managed endpoint.+--+-- 'virtualClusterId', 'deleteManagedEndpointResponse_virtualClusterId' - The output displays the ID of the endpoint\'s virtual cluster.+--+-- 'httpStatus', 'deleteManagedEndpointResponse_httpStatus' - The response's http status code.+newDeleteManagedEndpointResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteManagedEndpointResponse+newDeleteManagedEndpointResponse pHttpStatus_ =+  DeleteManagedEndpointResponse'+    { id =+        Prelude.Nothing,+      virtualClusterId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The output displays the ID of the managed endpoint.+deleteManagedEndpointResponse_id :: Lens.Lens' DeleteManagedEndpointResponse (Prelude.Maybe Prelude.Text)+deleteManagedEndpointResponse_id = Lens.lens (\DeleteManagedEndpointResponse' {id} -> id) (\s@DeleteManagedEndpointResponse' {} a -> s {id = a} :: DeleteManagedEndpointResponse)++-- | The output displays the ID of the endpoint\'s virtual cluster.+deleteManagedEndpointResponse_virtualClusterId :: Lens.Lens' DeleteManagedEndpointResponse (Prelude.Maybe Prelude.Text)+deleteManagedEndpointResponse_virtualClusterId = Lens.lens (\DeleteManagedEndpointResponse' {virtualClusterId} -> virtualClusterId) (\s@DeleteManagedEndpointResponse' {} a -> s {virtualClusterId = a} :: DeleteManagedEndpointResponse)++-- | The response's http status code.+deleteManagedEndpointResponse_httpStatus :: Lens.Lens' DeleteManagedEndpointResponse Prelude.Int+deleteManagedEndpointResponse_httpStatus = Lens.lens (\DeleteManagedEndpointResponse' {httpStatus} -> httpStatus) (\s@DeleteManagedEndpointResponse' {} a -> s {httpStatus = a} :: DeleteManagedEndpointResponse)++instance Prelude.NFData DeleteManagedEndpointResponse where+  rnf DeleteManagedEndpointResponse' {..} =+    Prelude.rnf id+      `Prelude.seq` Prelude.rnf virtualClusterId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EMRContainers/DeleteVirtualCluster.hs view
@@ -0,0 +1,161 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRContainers.DeleteVirtualCluster+-- 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 virtual cluster. Virtual cluster is a managed entity on Amazon+-- EMR on EKS. You can create, describe, list and delete virtual clusters.+-- They do not consume any additional resource in your system. A single+-- virtual cluster maps to a single Kubernetes namespace. Given this+-- relationship, you can model virtual clusters the same way you model+-- Kubernetes namespaces to meet your requirements.+module Amazonka.EMRContainers.DeleteVirtualCluster+  ( -- * Creating a Request+    DeleteVirtualCluster (..),+    newDeleteVirtualCluster,++    -- * Request Lenses+    deleteVirtualCluster_id,++    -- * Destructuring the Response+    DeleteVirtualClusterResponse (..),+    newDeleteVirtualClusterResponse,++    -- * Response Lenses+    deleteVirtualClusterResponse_id,+    deleteVirtualClusterResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRContainers.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteVirtualCluster' smart constructor.+data DeleteVirtualCluster = DeleteVirtualCluster'+  { -- | The ID of the virtual cluster that will be deleted.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteVirtualCluster' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'deleteVirtualCluster_id' - The ID of the virtual cluster that will be deleted.+newDeleteVirtualCluster ::+  -- | 'id'+  Prelude.Text ->+  DeleteVirtualCluster+newDeleteVirtualCluster pId_ =+  DeleteVirtualCluster' {id = pId_}++-- | The ID of the virtual cluster that will be deleted.+deleteVirtualCluster_id :: Lens.Lens' DeleteVirtualCluster Prelude.Text+deleteVirtualCluster_id = Lens.lens (\DeleteVirtualCluster' {id} -> id) (\s@DeleteVirtualCluster' {} a -> s {id = a} :: DeleteVirtualCluster)++instance Core.AWSRequest DeleteVirtualCluster where+  type+    AWSResponse DeleteVirtualCluster =+      DeleteVirtualClusterResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteVirtualClusterResponse'+            Prelude.<$> (x Data..?> "id")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteVirtualCluster where+  hashWithSalt _salt DeleteVirtualCluster' {..} =+    _salt `Prelude.hashWithSalt` id++instance Prelude.NFData DeleteVirtualCluster where+  rnf DeleteVirtualCluster' {..} = Prelude.rnf id++instance Data.ToHeaders DeleteVirtualCluster where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteVirtualCluster where+  toPath DeleteVirtualCluster' {..} =+    Prelude.mconcat ["/virtualclusters/", Data.toBS id]++instance Data.ToQuery DeleteVirtualCluster where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteVirtualClusterResponse' smart constructor.+data DeleteVirtualClusterResponse = DeleteVirtualClusterResponse'+  { -- | This output contains the ID of the virtual cluster that will be deleted.+    id :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteVirtualClusterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'deleteVirtualClusterResponse_id' - This output contains the ID of the virtual cluster that will be deleted.+--+-- 'httpStatus', 'deleteVirtualClusterResponse_httpStatus' - The response's http status code.+newDeleteVirtualClusterResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteVirtualClusterResponse+newDeleteVirtualClusterResponse pHttpStatus_ =+  DeleteVirtualClusterResponse'+    { id = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | This output contains the ID of the virtual cluster that will be deleted.+deleteVirtualClusterResponse_id :: Lens.Lens' DeleteVirtualClusterResponse (Prelude.Maybe Prelude.Text)+deleteVirtualClusterResponse_id = Lens.lens (\DeleteVirtualClusterResponse' {id} -> id) (\s@DeleteVirtualClusterResponse' {} a -> s {id = a} :: DeleteVirtualClusterResponse)++-- | The response's http status code.+deleteVirtualClusterResponse_httpStatus :: Lens.Lens' DeleteVirtualClusterResponse Prelude.Int+deleteVirtualClusterResponse_httpStatus = Lens.lens (\DeleteVirtualClusterResponse' {httpStatus} -> httpStatus) (\s@DeleteVirtualClusterResponse' {} a -> s {httpStatus = a} :: DeleteVirtualClusterResponse)++instance Prelude.NFData DeleteVirtualClusterResponse where+  rnf DeleteVirtualClusterResponse' {..} =+    Prelude.rnf id `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EMRContainers/DescribeJobRun.hs view
@@ -0,0 +1,182 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRContainers.DescribeJobRun+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Displays detailed information about a job run. A job run is a unit of+-- work, such as a Spark jar, PySpark script, or SparkSQL query, that you+-- submit to Amazon EMR on EKS.+module Amazonka.EMRContainers.DescribeJobRun+  ( -- * Creating a Request+    DescribeJobRun (..),+    newDescribeJobRun,++    -- * Request Lenses+    describeJobRun_id,+    describeJobRun_virtualClusterId,++    -- * Destructuring the Response+    DescribeJobRunResponse (..),+    newDescribeJobRunResponse,++    -- * Response Lenses+    describeJobRunResponse_jobRun,+    describeJobRunResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRContainers.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeJobRun' smart constructor.+data DescribeJobRun = DescribeJobRun'+  { -- | The ID of the job run request.+    id :: Prelude.Text,+    -- | The ID of the virtual cluster for which the job run is submitted.+    virtualClusterId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeJobRun' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'describeJobRun_id' - The ID of the job run request.+--+-- 'virtualClusterId', 'describeJobRun_virtualClusterId' - The ID of the virtual cluster for which the job run is submitted.+newDescribeJobRun ::+  -- | 'id'+  Prelude.Text ->+  -- | 'virtualClusterId'+  Prelude.Text ->+  DescribeJobRun+newDescribeJobRun pId_ pVirtualClusterId_ =+  DescribeJobRun'+    { id = pId_,+      virtualClusterId = pVirtualClusterId_+    }++-- | The ID of the job run request.+describeJobRun_id :: Lens.Lens' DescribeJobRun Prelude.Text+describeJobRun_id = Lens.lens (\DescribeJobRun' {id} -> id) (\s@DescribeJobRun' {} a -> s {id = a} :: DescribeJobRun)++-- | The ID of the virtual cluster for which the job run is submitted.+describeJobRun_virtualClusterId :: Lens.Lens' DescribeJobRun Prelude.Text+describeJobRun_virtualClusterId = Lens.lens (\DescribeJobRun' {virtualClusterId} -> virtualClusterId) (\s@DescribeJobRun' {} a -> s {virtualClusterId = a} :: DescribeJobRun)++instance Core.AWSRequest DescribeJobRun where+  type+    AWSResponse DescribeJobRun =+      DescribeJobRunResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeJobRunResponse'+            Prelude.<$> (x Data..?> "jobRun")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeJobRun where+  hashWithSalt _salt DescribeJobRun' {..} =+    _salt+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` virtualClusterId++instance Prelude.NFData DescribeJobRun where+  rnf DescribeJobRun' {..} =+    Prelude.rnf id+      `Prelude.seq` Prelude.rnf virtualClusterId++instance Data.ToHeaders DescribeJobRun where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeJobRun where+  toPath DescribeJobRun' {..} =+    Prelude.mconcat+      [ "/virtualclusters/",+        Data.toBS virtualClusterId,+        "/jobruns/",+        Data.toBS id+      ]++instance Data.ToQuery DescribeJobRun where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeJobRunResponse' smart constructor.+data DescribeJobRunResponse = DescribeJobRunResponse'+  { -- | The output displays information about a job run.+    jobRun :: Prelude.Maybe JobRun,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeJobRunResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'jobRun', 'describeJobRunResponse_jobRun' - The output displays information about a job run.+--+-- 'httpStatus', 'describeJobRunResponse_httpStatus' - The response's http status code.+newDescribeJobRunResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeJobRunResponse+newDescribeJobRunResponse pHttpStatus_ =+  DescribeJobRunResponse'+    { jobRun = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The output displays information about a job run.+describeJobRunResponse_jobRun :: Lens.Lens' DescribeJobRunResponse (Prelude.Maybe JobRun)+describeJobRunResponse_jobRun = Lens.lens (\DescribeJobRunResponse' {jobRun} -> jobRun) (\s@DescribeJobRunResponse' {} a -> s {jobRun = a} :: DescribeJobRunResponse)++-- | The response's http status code.+describeJobRunResponse_httpStatus :: Lens.Lens' DescribeJobRunResponse Prelude.Int+describeJobRunResponse_httpStatus = Lens.lens (\DescribeJobRunResponse' {httpStatus} -> httpStatus) (\s@DescribeJobRunResponse' {} a -> s {httpStatus = a} :: DescribeJobRunResponse)++instance Prelude.NFData DescribeJobRunResponse where+  rnf DescribeJobRunResponse' {..} =+    Prelude.rnf jobRun+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EMRContainers/DescribeJobTemplate.hs view
@@ -0,0 +1,162 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRContainers.DescribeJobTemplate+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Displays detailed information about a specified job template. Job+-- template stores values of StartJobRun API request in a template and can+-- be used to start a job run. Job template allows two use cases: avoid+-- repeating recurring StartJobRun API request values, enforcing certain+-- values in StartJobRun API request.+module Amazonka.EMRContainers.DescribeJobTemplate+  ( -- * Creating a Request+    DescribeJobTemplate (..),+    newDescribeJobTemplate,++    -- * Request Lenses+    describeJobTemplate_id,++    -- * Destructuring the Response+    DescribeJobTemplateResponse (..),+    newDescribeJobTemplateResponse,++    -- * Response Lenses+    describeJobTemplateResponse_jobTemplate,+    describeJobTemplateResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRContainers.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeJobTemplate' smart constructor.+data DescribeJobTemplate = DescribeJobTemplate'+  { -- | The ID of the job template that will be described.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeJobTemplate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'describeJobTemplate_id' - The ID of the job template that will be described.+newDescribeJobTemplate ::+  -- | 'id'+  Prelude.Text ->+  DescribeJobTemplate+newDescribeJobTemplate pId_ =+  DescribeJobTemplate' {id = pId_}++-- | The ID of the job template that will be described.+describeJobTemplate_id :: Lens.Lens' DescribeJobTemplate Prelude.Text+describeJobTemplate_id = Lens.lens (\DescribeJobTemplate' {id} -> id) (\s@DescribeJobTemplate' {} a -> s {id = a} :: DescribeJobTemplate)++instance Core.AWSRequest DescribeJobTemplate where+  type+    AWSResponse DescribeJobTemplate =+      DescribeJobTemplateResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeJobTemplateResponse'+            Prelude.<$> (x Data..?> "jobTemplate")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeJobTemplate where+  hashWithSalt _salt DescribeJobTemplate' {..} =+    _salt `Prelude.hashWithSalt` id++instance Prelude.NFData DescribeJobTemplate where+  rnf DescribeJobTemplate' {..} = Prelude.rnf id++instance Data.ToHeaders DescribeJobTemplate where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeJobTemplate where+  toPath DescribeJobTemplate' {..} =+    Prelude.mconcat ["/jobtemplates/", Data.toBS id]++instance Data.ToQuery DescribeJobTemplate where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeJobTemplateResponse' smart constructor.+data DescribeJobTemplateResponse = DescribeJobTemplateResponse'+  { -- | This output displays information about the specified job template.+    jobTemplate :: Prelude.Maybe JobTemplate,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeJobTemplateResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'jobTemplate', 'describeJobTemplateResponse_jobTemplate' - This output displays information about the specified job template.+--+-- 'httpStatus', 'describeJobTemplateResponse_httpStatus' - The response's http status code.+newDescribeJobTemplateResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeJobTemplateResponse+newDescribeJobTemplateResponse pHttpStatus_ =+  DescribeJobTemplateResponse'+    { jobTemplate =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | This output displays information about the specified job template.+describeJobTemplateResponse_jobTemplate :: Lens.Lens' DescribeJobTemplateResponse (Prelude.Maybe JobTemplate)+describeJobTemplateResponse_jobTemplate = Lens.lens (\DescribeJobTemplateResponse' {jobTemplate} -> jobTemplate) (\s@DescribeJobTemplateResponse' {} a -> s {jobTemplate = a} :: DescribeJobTemplateResponse)++-- | The response's http status code.+describeJobTemplateResponse_httpStatus :: Lens.Lens' DescribeJobTemplateResponse Prelude.Int+describeJobTemplateResponse_httpStatus = Lens.lens (\DescribeJobTemplateResponse' {httpStatus} -> httpStatus) (\s@DescribeJobTemplateResponse' {} a -> s {httpStatus = a} :: DescribeJobTemplateResponse)++instance Prelude.NFData DescribeJobTemplateResponse where+  rnf DescribeJobTemplateResponse' {..} =+    Prelude.rnf jobTemplate+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EMRContainers/DescribeManagedEndpoint.hs view
@@ -0,0 +1,186 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRContainers.DescribeManagedEndpoint+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Displays detailed information about a managed endpoint. A managed+-- endpoint is a gateway that connects EMR Studio to Amazon EMR on EKS so+-- that EMR Studio can communicate with your virtual cluster.+module Amazonka.EMRContainers.DescribeManagedEndpoint+  ( -- * Creating a Request+    DescribeManagedEndpoint (..),+    newDescribeManagedEndpoint,++    -- * Request Lenses+    describeManagedEndpoint_id,+    describeManagedEndpoint_virtualClusterId,++    -- * Destructuring the Response+    DescribeManagedEndpointResponse (..),+    newDescribeManagedEndpointResponse,++    -- * Response Lenses+    describeManagedEndpointResponse_endpoint,+    describeManagedEndpointResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRContainers.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeManagedEndpoint' smart constructor.+data DescribeManagedEndpoint = DescribeManagedEndpoint'+  { -- | This output displays ID of the managed endpoint.+    id :: Prelude.Text,+    -- | The ID of the endpoint\'s virtual cluster.+    virtualClusterId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeManagedEndpoint' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'describeManagedEndpoint_id' - This output displays ID of the managed endpoint.+--+-- 'virtualClusterId', 'describeManagedEndpoint_virtualClusterId' - The ID of the endpoint\'s virtual cluster.+newDescribeManagedEndpoint ::+  -- | 'id'+  Prelude.Text ->+  -- | 'virtualClusterId'+  Prelude.Text ->+  DescribeManagedEndpoint+newDescribeManagedEndpoint pId_ pVirtualClusterId_ =+  DescribeManagedEndpoint'+    { id = pId_,+      virtualClusterId = pVirtualClusterId_+    }++-- | This output displays ID of the managed endpoint.+describeManagedEndpoint_id :: Lens.Lens' DescribeManagedEndpoint Prelude.Text+describeManagedEndpoint_id = Lens.lens (\DescribeManagedEndpoint' {id} -> id) (\s@DescribeManagedEndpoint' {} a -> s {id = a} :: DescribeManagedEndpoint)++-- | The ID of the endpoint\'s virtual cluster.+describeManagedEndpoint_virtualClusterId :: Lens.Lens' DescribeManagedEndpoint Prelude.Text+describeManagedEndpoint_virtualClusterId = Lens.lens (\DescribeManagedEndpoint' {virtualClusterId} -> virtualClusterId) (\s@DescribeManagedEndpoint' {} a -> s {virtualClusterId = a} :: DescribeManagedEndpoint)++instance Core.AWSRequest DescribeManagedEndpoint where+  type+    AWSResponse DescribeManagedEndpoint =+      DescribeManagedEndpointResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeManagedEndpointResponse'+            Prelude.<$> (x Data..?> "endpoint")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeManagedEndpoint where+  hashWithSalt _salt DescribeManagedEndpoint' {..} =+    _salt+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` virtualClusterId++instance Prelude.NFData DescribeManagedEndpoint where+  rnf DescribeManagedEndpoint' {..} =+    Prelude.rnf id+      `Prelude.seq` Prelude.rnf virtualClusterId++instance Data.ToHeaders DescribeManagedEndpoint where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeManagedEndpoint where+  toPath DescribeManagedEndpoint' {..} =+    Prelude.mconcat+      [ "/virtualclusters/",+        Data.toBS virtualClusterId,+        "/endpoints/",+        Data.toBS id+      ]++instance Data.ToQuery DescribeManagedEndpoint where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeManagedEndpointResponse' smart constructor.+data DescribeManagedEndpointResponse = DescribeManagedEndpointResponse'+  { -- | This output displays information about a managed endpoint.+    endpoint :: Prelude.Maybe Endpoint,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeManagedEndpointResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endpoint', 'describeManagedEndpointResponse_endpoint' - This output displays information about a managed endpoint.+--+-- 'httpStatus', 'describeManagedEndpointResponse_httpStatus' - The response's http status code.+newDescribeManagedEndpointResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeManagedEndpointResponse+newDescribeManagedEndpointResponse pHttpStatus_ =+  DescribeManagedEndpointResponse'+    { endpoint =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | This output displays information about a managed endpoint.+describeManagedEndpointResponse_endpoint :: Lens.Lens' DescribeManagedEndpointResponse (Prelude.Maybe Endpoint)+describeManagedEndpointResponse_endpoint = Lens.lens (\DescribeManagedEndpointResponse' {endpoint} -> endpoint) (\s@DescribeManagedEndpointResponse' {} a -> s {endpoint = a} :: DescribeManagedEndpointResponse)++-- | The response's http status code.+describeManagedEndpointResponse_httpStatus :: Lens.Lens' DescribeManagedEndpointResponse Prelude.Int+describeManagedEndpointResponse_httpStatus = Lens.lens (\DescribeManagedEndpointResponse' {httpStatus} -> httpStatus) (\s@DescribeManagedEndpointResponse' {} a -> s {httpStatus = a} :: DescribeManagedEndpointResponse)++instance+  Prelude.NFData+    DescribeManagedEndpointResponse+  where+  rnf DescribeManagedEndpointResponse' {..} =+    Prelude.rnf endpoint+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EMRContainers/DescribeVirtualCluster.hs view
@@ -0,0 +1,167 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRContainers.DescribeVirtualCluster+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Displays detailed information about a specified virtual cluster. Virtual+-- cluster is a managed entity on Amazon EMR on EKS. You can create,+-- describe, list and delete virtual clusters. They do not consume any+-- additional resource in your system. A single virtual cluster maps to a+-- single Kubernetes namespace. Given this relationship, you can model+-- virtual clusters the same way you model Kubernetes namespaces to meet+-- your requirements.+module Amazonka.EMRContainers.DescribeVirtualCluster+  ( -- * Creating a Request+    DescribeVirtualCluster (..),+    newDescribeVirtualCluster,++    -- * Request Lenses+    describeVirtualCluster_id,++    -- * Destructuring the Response+    DescribeVirtualClusterResponse (..),+    newDescribeVirtualClusterResponse,++    -- * Response Lenses+    describeVirtualClusterResponse_virtualCluster,+    describeVirtualClusterResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRContainers.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeVirtualCluster' smart constructor.+data DescribeVirtualCluster = DescribeVirtualCluster'+  { -- | The ID of the virtual cluster that will be described.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeVirtualCluster' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'describeVirtualCluster_id' - The ID of the virtual cluster that will be described.+newDescribeVirtualCluster ::+  -- | 'id'+  Prelude.Text ->+  DescribeVirtualCluster+newDescribeVirtualCluster pId_ =+  DescribeVirtualCluster' {id = pId_}++-- | The ID of the virtual cluster that will be described.+describeVirtualCluster_id :: Lens.Lens' DescribeVirtualCluster Prelude.Text+describeVirtualCluster_id = Lens.lens (\DescribeVirtualCluster' {id} -> id) (\s@DescribeVirtualCluster' {} a -> s {id = a} :: DescribeVirtualCluster)++instance Core.AWSRequest DescribeVirtualCluster where+  type+    AWSResponse DescribeVirtualCluster =+      DescribeVirtualClusterResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeVirtualClusterResponse'+            Prelude.<$> (x Data..?> "virtualCluster")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeVirtualCluster where+  hashWithSalt _salt DescribeVirtualCluster' {..} =+    _salt `Prelude.hashWithSalt` id++instance Prelude.NFData DescribeVirtualCluster where+  rnf DescribeVirtualCluster' {..} = Prelude.rnf id++instance Data.ToHeaders DescribeVirtualCluster where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeVirtualCluster where+  toPath DescribeVirtualCluster' {..} =+    Prelude.mconcat ["/virtualclusters/", Data.toBS id]++instance Data.ToQuery DescribeVirtualCluster where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeVirtualClusterResponse' smart constructor.+data DescribeVirtualClusterResponse = DescribeVirtualClusterResponse'+  { -- | This output displays information about the specified virtual cluster.+    virtualCluster :: Prelude.Maybe VirtualCluster,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeVirtualClusterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'virtualCluster', 'describeVirtualClusterResponse_virtualCluster' - This output displays information about the specified virtual cluster.+--+-- 'httpStatus', 'describeVirtualClusterResponse_httpStatus' - The response's http status code.+newDescribeVirtualClusterResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeVirtualClusterResponse+newDescribeVirtualClusterResponse pHttpStatus_ =+  DescribeVirtualClusterResponse'+    { virtualCluster =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | This output displays information about the specified virtual cluster.+describeVirtualClusterResponse_virtualCluster :: Lens.Lens' DescribeVirtualClusterResponse (Prelude.Maybe VirtualCluster)+describeVirtualClusterResponse_virtualCluster = Lens.lens (\DescribeVirtualClusterResponse' {virtualCluster} -> virtualCluster) (\s@DescribeVirtualClusterResponse' {} a -> s {virtualCluster = a} :: DescribeVirtualClusterResponse)++-- | The response's http status code.+describeVirtualClusterResponse_httpStatus :: Lens.Lens' DescribeVirtualClusterResponse Prelude.Int+describeVirtualClusterResponse_httpStatus = Lens.lens (\DescribeVirtualClusterResponse' {httpStatus} -> httpStatus) (\s@DescribeVirtualClusterResponse' {} a -> s {httpStatus = a} :: DescribeVirtualClusterResponse)++instance+  Prelude.NFData+    DescribeVirtualClusterResponse+  where+  rnf DescribeVirtualClusterResponse' {..} =+    Prelude.rnf virtualCluster+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EMRContainers/Lens.hs view
@@ -0,0 +1,357 @@+{-# 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.EMRContainers.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.EMRContainers.Lens+  ( -- * Operations++    -- ** CancelJobRun+    cancelJobRun_id,+    cancelJobRun_virtualClusterId,+    cancelJobRunResponse_id,+    cancelJobRunResponse_virtualClusterId,+    cancelJobRunResponse_httpStatus,++    -- ** CreateJobTemplate+    createJobTemplate_kmsKeyArn,+    createJobTemplate_tags,+    createJobTemplate_name,+    createJobTemplate_clientToken,+    createJobTemplate_jobTemplateData,+    createJobTemplateResponse_arn,+    createJobTemplateResponse_createdAt,+    createJobTemplateResponse_id,+    createJobTemplateResponse_name,+    createJobTemplateResponse_httpStatus,++    -- ** CreateManagedEndpoint+    createManagedEndpoint_certificateArn,+    createManagedEndpoint_configurationOverrides,+    createManagedEndpoint_tags,+    createManagedEndpoint_name,+    createManagedEndpoint_virtualClusterId,+    createManagedEndpoint_type,+    createManagedEndpoint_releaseLabel,+    createManagedEndpoint_executionRoleArn,+    createManagedEndpoint_clientToken,+    createManagedEndpointResponse_arn,+    createManagedEndpointResponse_id,+    createManagedEndpointResponse_name,+    createManagedEndpointResponse_virtualClusterId,+    createManagedEndpointResponse_httpStatus,++    -- ** CreateVirtualCluster+    createVirtualCluster_tags,+    createVirtualCluster_name,+    createVirtualCluster_containerProvider,+    createVirtualCluster_clientToken,+    createVirtualClusterResponse_arn,+    createVirtualClusterResponse_id,+    createVirtualClusterResponse_name,+    createVirtualClusterResponse_httpStatus,++    -- ** DeleteJobTemplate+    deleteJobTemplate_id,+    deleteJobTemplateResponse_id,+    deleteJobTemplateResponse_httpStatus,++    -- ** DeleteManagedEndpoint+    deleteManagedEndpoint_id,+    deleteManagedEndpoint_virtualClusterId,+    deleteManagedEndpointResponse_id,+    deleteManagedEndpointResponse_virtualClusterId,+    deleteManagedEndpointResponse_httpStatus,++    -- ** DeleteVirtualCluster+    deleteVirtualCluster_id,+    deleteVirtualClusterResponse_id,+    deleteVirtualClusterResponse_httpStatus,++    -- ** DescribeJobRun+    describeJobRun_id,+    describeJobRun_virtualClusterId,+    describeJobRunResponse_jobRun,+    describeJobRunResponse_httpStatus,++    -- ** DescribeJobTemplate+    describeJobTemplate_id,+    describeJobTemplateResponse_jobTemplate,+    describeJobTemplateResponse_httpStatus,++    -- ** DescribeManagedEndpoint+    describeManagedEndpoint_id,+    describeManagedEndpoint_virtualClusterId,+    describeManagedEndpointResponse_endpoint,+    describeManagedEndpointResponse_httpStatus,++    -- ** DescribeVirtualCluster+    describeVirtualCluster_id,+    describeVirtualClusterResponse_virtualCluster,+    describeVirtualClusterResponse_httpStatus,++    -- ** ListJobRuns+    listJobRuns_createdAfter,+    listJobRuns_createdBefore,+    listJobRuns_maxResults,+    listJobRuns_name,+    listJobRuns_nextToken,+    listJobRuns_states,+    listJobRuns_virtualClusterId,+    listJobRunsResponse_jobRuns,+    listJobRunsResponse_nextToken,+    listJobRunsResponse_httpStatus,++    -- ** ListJobTemplates+    listJobTemplates_createdAfter,+    listJobTemplates_createdBefore,+    listJobTemplates_maxResults,+    listJobTemplates_nextToken,+    listJobTemplatesResponse_nextToken,+    listJobTemplatesResponse_templates,+    listJobTemplatesResponse_httpStatus,++    -- ** ListManagedEndpoints+    listManagedEndpoints_createdAfter,+    listManagedEndpoints_createdBefore,+    listManagedEndpoints_maxResults,+    listManagedEndpoints_nextToken,+    listManagedEndpoints_states,+    listManagedEndpoints_types,+    listManagedEndpoints_virtualClusterId,+    listManagedEndpointsResponse_endpoints,+    listManagedEndpointsResponse_nextToken,+    listManagedEndpointsResponse_httpStatus,++    -- ** ListTagsForResource+    listTagsForResource_resourceArn,+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,++    -- ** ListVirtualClusters+    listVirtualClusters_containerProviderId,+    listVirtualClusters_containerProviderType,+    listVirtualClusters_createdAfter,+    listVirtualClusters_createdBefore,+    listVirtualClusters_maxResults,+    listVirtualClusters_nextToken,+    listVirtualClusters_states,+    listVirtualClustersResponse_nextToken,+    listVirtualClustersResponse_virtualClusters,+    listVirtualClustersResponse_httpStatus,++    -- ** StartJobRun+    startJobRun_configurationOverrides,+    startJobRun_executionRoleArn,+    startJobRun_jobDriver,+    startJobRun_jobTemplateId,+    startJobRun_jobTemplateParameters,+    startJobRun_name,+    startJobRun_releaseLabel,+    startJobRun_tags,+    startJobRun_virtualClusterId,+    startJobRun_clientToken,+    startJobRunResponse_arn,+    startJobRunResponse_id,+    startJobRunResponse_name,+    startJobRunResponse_virtualClusterId,+    startJobRunResponse_httpStatus,++    -- ** TagResource+    tagResource_resourceArn,+    tagResource_tags,+    tagResourceResponse_httpStatus,++    -- ** UntagResource+    untagResource_resourceArn,+    untagResource_tagKeys,+    untagResourceResponse_httpStatus,++    -- * Types++    -- ** Certificate+    certificate_certificateArn,+    certificate_certificateData,++    -- ** CloudWatchMonitoringConfiguration+    cloudWatchMonitoringConfiguration_logStreamNamePrefix,+    cloudWatchMonitoringConfiguration_logGroupName,++    -- ** Configuration+    configuration_configurations,+    configuration_properties,+    configuration_classification,++    -- ** ConfigurationOverrides+    configurationOverrides_applicationConfiguration,+    configurationOverrides_monitoringConfiguration,++    -- ** ContainerInfo+    containerInfo_eksInfo,++    -- ** ContainerProvider+    containerProvider_info,+    containerProvider_type,+    containerProvider_id,++    -- ** EksInfo+    eksInfo_namespace,++    -- ** Endpoint+    endpoint_arn,+    endpoint_certificateArn,+    endpoint_certificateAuthority,+    endpoint_configurationOverrides,+    endpoint_createdAt,+    endpoint_executionRoleArn,+    endpoint_failureReason,+    endpoint_id,+    endpoint_name,+    endpoint_releaseLabel,+    endpoint_securityGroup,+    endpoint_serverUrl,+    endpoint_state,+    endpoint_stateDetails,+    endpoint_subnetIds,+    endpoint_tags,+    endpoint_type,+    endpoint_virtualClusterId,++    -- ** JobDriver+    jobDriver_sparkSqlJobDriver,+    jobDriver_sparkSubmitJobDriver,++    -- ** JobRun+    jobRun_arn,+    jobRun_clientToken,+    jobRun_configurationOverrides,+    jobRun_createdAt,+    jobRun_createdBy,+    jobRun_executionRoleArn,+    jobRun_failureReason,+    jobRun_finishedAt,+    jobRun_id,+    jobRun_jobDriver,+    jobRun_name,+    jobRun_releaseLabel,+    jobRun_state,+    jobRun_stateDetails,+    jobRun_tags,+    jobRun_virtualClusterId,++    -- ** JobTemplate+    jobTemplate_arn,+    jobTemplate_createdAt,+    jobTemplate_createdBy,+    jobTemplate_decryptionError,+    jobTemplate_id,+    jobTemplate_kmsKeyArn,+    jobTemplate_name,+    jobTemplate_tags,+    jobTemplate_jobTemplateData,++    -- ** JobTemplateData+    jobTemplateData_configurationOverrides,+    jobTemplateData_jobTags,+    jobTemplateData_parameterConfiguration,+    jobTemplateData_executionRoleArn,+    jobTemplateData_releaseLabel,+    jobTemplateData_jobDriver,++    -- ** MonitoringConfiguration+    monitoringConfiguration_cloudWatchMonitoringConfiguration,+    monitoringConfiguration_persistentAppUI,+    monitoringConfiguration_s3MonitoringConfiguration,++    -- ** ParametricCloudWatchMonitoringConfiguration+    parametricCloudWatchMonitoringConfiguration_logGroupName,+    parametricCloudWatchMonitoringConfiguration_logStreamNamePrefix,++    -- ** ParametricConfigurationOverrides+    parametricConfigurationOverrides_applicationConfiguration,+    parametricConfigurationOverrides_monitoringConfiguration,++    -- ** ParametricMonitoringConfiguration+    parametricMonitoringConfiguration_cloudWatchMonitoringConfiguration,+    parametricMonitoringConfiguration_persistentAppUI,+    parametricMonitoringConfiguration_s3MonitoringConfiguration,++    -- ** ParametricS3MonitoringConfiguration+    parametricS3MonitoringConfiguration_logUri,++    -- ** S3MonitoringConfiguration+    s3MonitoringConfiguration_logUri,++    -- ** SparkSqlJobDriver+    sparkSqlJobDriver_entryPoint,+    sparkSqlJobDriver_sparkSqlParameters,++    -- ** SparkSubmitJobDriver+    sparkSubmitJobDriver_entryPointArguments,+    sparkSubmitJobDriver_sparkSubmitParameters,+    sparkSubmitJobDriver_entryPoint,++    -- ** TemplateParameterConfiguration+    templateParameterConfiguration_defaultValue,+    templateParameterConfiguration_type,++    -- ** VirtualCluster+    virtualCluster_arn,+    virtualCluster_containerProvider,+    virtualCluster_createdAt,+    virtualCluster_id,+    virtualCluster_name,+    virtualCluster_state,+    virtualCluster_tags,+  )+where++import Amazonka.EMRContainers.CancelJobRun+import Amazonka.EMRContainers.CreateJobTemplate+import Amazonka.EMRContainers.CreateManagedEndpoint+import Amazonka.EMRContainers.CreateVirtualCluster+import Amazonka.EMRContainers.DeleteJobTemplate+import Amazonka.EMRContainers.DeleteManagedEndpoint+import Amazonka.EMRContainers.DeleteVirtualCluster+import Amazonka.EMRContainers.DescribeJobRun+import Amazonka.EMRContainers.DescribeJobTemplate+import Amazonka.EMRContainers.DescribeManagedEndpoint+import Amazonka.EMRContainers.DescribeVirtualCluster+import Amazonka.EMRContainers.ListJobRuns+import Amazonka.EMRContainers.ListJobTemplates+import Amazonka.EMRContainers.ListManagedEndpoints+import Amazonka.EMRContainers.ListTagsForResource+import Amazonka.EMRContainers.ListVirtualClusters+import Amazonka.EMRContainers.StartJobRun+import Amazonka.EMRContainers.TagResource+import Amazonka.EMRContainers.Types.Certificate+import Amazonka.EMRContainers.Types.CloudWatchMonitoringConfiguration+import Amazonka.EMRContainers.Types.Configuration+import Amazonka.EMRContainers.Types.ConfigurationOverrides+import Amazonka.EMRContainers.Types.ContainerInfo+import Amazonka.EMRContainers.Types.ContainerProvider+import Amazonka.EMRContainers.Types.EksInfo+import Amazonka.EMRContainers.Types.Endpoint+import Amazonka.EMRContainers.Types.JobDriver+import Amazonka.EMRContainers.Types.JobRun+import Amazonka.EMRContainers.Types.JobTemplate+import Amazonka.EMRContainers.Types.JobTemplateData+import Amazonka.EMRContainers.Types.MonitoringConfiguration+import Amazonka.EMRContainers.Types.ParametricCloudWatchMonitoringConfiguration+import Amazonka.EMRContainers.Types.ParametricConfigurationOverrides+import Amazonka.EMRContainers.Types.ParametricMonitoringConfiguration+import Amazonka.EMRContainers.Types.ParametricS3MonitoringConfiguration+import Amazonka.EMRContainers.Types.S3MonitoringConfiguration+import Amazonka.EMRContainers.Types.SparkSqlJobDriver+import Amazonka.EMRContainers.Types.SparkSubmitJobDriver+import Amazonka.EMRContainers.Types.TemplateParameterConfiguration+import Amazonka.EMRContainers.Types.VirtualCluster+import Amazonka.EMRContainers.UntagResource
+ gen/Amazonka/EMRContainers/ListJobRuns.hs view
@@ -0,0 +1,283 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRContainers.ListJobRuns+-- 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 job runs based on a set of parameters. A job run is a unit of+-- work, such as a Spark jar, PySpark script, or SparkSQL query, that you+-- submit to Amazon EMR on EKS.+--+-- This operation returns paginated results.+module Amazonka.EMRContainers.ListJobRuns+  ( -- * Creating a Request+    ListJobRuns (..),+    newListJobRuns,++    -- * Request Lenses+    listJobRuns_createdAfter,+    listJobRuns_createdBefore,+    listJobRuns_maxResults,+    listJobRuns_name,+    listJobRuns_nextToken,+    listJobRuns_states,+    listJobRuns_virtualClusterId,++    -- * Destructuring the Response+    ListJobRunsResponse (..),+    newListJobRunsResponse,++    -- * Response Lenses+    listJobRunsResponse_jobRuns,+    listJobRunsResponse_nextToken,+    listJobRunsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRContainers.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListJobRuns' smart constructor.+data ListJobRuns = ListJobRuns'+  { -- | The date and time after which the job runs were submitted.+    createdAfter :: Prelude.Maybe Data.ISO8601,+    -- | The date and time before which the job runs were submitted.+    createdBefore :: Prelude.Maybe Data.ISO8601,+    -- | The maximum number of job runs that can be listed.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | The name of the job run.+    name :: Prelude.Maybe Prelude.Text,+    -- | The token for the next set of job runs to return.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The states of the job run.+    states :: Prelude.Maybe [JobRunState],+    -- | The ID of the virtual cluster for which to list the job run.+    virtualClusterId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListJobRuns' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createdAfter', 'listJobRuns_createdAfter' - The date and time after which the job runs were submitted.+--+-- 'createdBefore', 'listJobRuns_createdBefore' - The date and time before which the job runs were submitted.+--+-- 'maxResults', 'listJobRuns_maxResults' - The maximum number of job runs that can be listed.+--+-- 'name', 'listJobRuns_name' - The name of the job run.+--+-- 'nextToken', 'listJobRuns_nextToken' - The token for the next set of job runs to return.+--+-- 'states', 'listJobRuns_states' - The states of the job run.+--+-- 'virtualClusterId', 'listJobRuns_virtualClusterId' - The ID of the virtual cluster for which to list the job run.+newListJobRuns ::+  -- | 'virtualClusterId'+  Prelude.Text ->+  ListJobRuns+newListJobRuns pVirtualClusterId_ =+  ListJobRuns'+    { createdAfter = Prelude.Nothing,+      createdBefore = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      name = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      states = Prelude.Nothing,+      virtualClusterId = pVirtualClusterId_+    }++-- | The date and time after which the job runs were submitted.+listJobRuns_createdAfter :: Lens.Lens' ListJobRuns (Prelude.Maybe Prelude.UTCTime)+listJobRuns_createdAfter = Lens.lens (\ListJobRuns' {createdAfter} -> createdAfter) (\s@ListJobRuns' {} a -> s {createdAfter = a} :: ListJobRuns) Prelude.. Lens.mapping Data._Time++-- | The date and time before which the job runs were submitted.+listJobRuns_createdBefore :: Lens.Lens' ListJobRuns (Prelude.Maybe Prelude.UTCTime)+listJobRuns_createdBefore = Lens.lens (\ListJobRuns' {createdBefore} -> createdBefore) (\s@ListJobRuns' {} a -> s {createdBefore = a} :: ListJobRuns) Prelude.. Lens.mapping Data._Time++-- | The maximum number of job runs that can be listed.+listJobRuns_maxResults :: Lens.Lens' ListJobRuns (Prelude.Maybe Prelude.Int)+listJobRuns_maxResults = Lens.lens (\ListJobRuns' {maxResults} -> maxResults) (\s@ListJobRuns' {} a -> s {maxResults = a} :: ListJobRuns)++-- | The name of the job run.+listJobRuns_name :: Lens.Lens' ListJobRuns (Prelude.Maybe Prelude.Text)+listJobRuns_name = Lens.lens (\ListJobRuns' {name} -> name) (\s@ListJobRuns' {} a -> s {name = a} :: ListJobRuns)++-- | The token for the next set of job runs to return.+listJobRuns_nextToken :: Lens.Lens' ListJobRuns (Prelude.Maybe Prelude.Text)+listJobRuns_nextToken = Lens.lens (\ListJobRuns' {nextToken} -> nextToken) (\s@ListJobRuns' {} a -> s {nextToken = a} :: ListJobRuns)++-- | The states of the job run.+listJobRuns_states :: Lens.Lens' ListJobRuns (Prelude.Maybe [JobRunState])+listJobRuns_states = Lens.lens (\ListJobRuns' {states} -> states) (\s@ListJobRuns' {} a -> s {states = a} :: ListJobRuns) Prelude.. Lens.mapping Lens.coerced++-- | The ID of the virtual cluster for which to list the job run.+listJobRuns_virtualClusterId :: Lens.Lens' ListJobRuns Prelude.Text+listJobRuns_virtualClusterId = Lens.lens (\ListJobRuns' {virtualClusterId} -> virtualClusterId) (\s@ListJobRuns' {} a -> s {virtualClusterId = a} :: ListJobRuns)++instance Core.AWSPager ListJobRuns where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listJobRunsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listJobRunsResponse_jobRuns+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listJobRuns_nextToken+          Lens..~ rs+          Lens.^? listJobRunsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListJobRuns where+  type AWSResponse ListJobRuns = ListJobRunsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListJobRunsResponse'+            Prelude.<$> (x Data..?> "jobRuns" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListJobRuns where+  hashWithSalt _salt ListJobRuns' {..} =+    _salt+      `Prelude.hashWithSalt` createdAfter+      `Prelude.hashWithSalt` createdBefore+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` states+      `Prelude.hashWithSalt` virtualClusterId++instance Prelude.NFData ListJobRuns where+  rnf ListJobRuns' {..} =+    Prelude.rnf createdAfter+      `Prelude.seq` Prelude.rnf createdBefore+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf states+      `Prelude.seq` Prelude.rnf virtualClusterId++instance Data.ToHeaders ListJobRuns where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListJobRuns where+  toPath ListJobRuns' {..} =+    Prelude.mconcat+      [ "/virtualclusters/",+        Data.toBS virtualClusterId,+        "/jobruns"+      ]++instance Data.ToQuery ListJobRuns where+  toQuery ListJobRuns' {..} =+    Prelude.mconcat+      [ "createdAfter" Data.=: createdAfter,+        "createdBefore" Data.=: createdBefore,+        "maxResults" Data.=: maxResults,+        "name" Data.=: name,+        "nextToken" Data.=: nextToken,+        "states"+          Data.=: Data.toQuery+            (Data.toQueryList "member" Prelude.<$> states)+      ]++-- | /See:/ 'newListJobRunsResponse' smart constructor.+data ListJobRunsResponse = ListJobRunsResponse'+  { -- | This output lists information about the specified job runs.+    jobRuns :: Prelude.Maybe [JobRun],+    -- | This output displays the token for the next set of job runs.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListJobRunsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'jobRuns', 'listJobRunsResponse_jobRuns' - This output lists information about the specified job runs.+--+-- 'nextToken', 'listJobRunsResponse_nextToken' - This output displays the token for the next set of job runs.+--+-- 'httpStatus', 'listJobRunsResponse_httpStatus' - The response's http status code.+newListJobRunsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListJobRunsResponse+newListJobRunsResponse pHttpStatus_ =+  ListJobRunsResponse'+    { jobRuns = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | This output lists information about the specified job runs.+listJobRunsResponse_jobRuns :: Lens.Lens' ListJobRunsResponse (Prelude.Maybe [JobRun])+listJobRunsResponse_jobRuns = Lens.lens (\ListJobRunsResponse' {jobRuns} -> jobRuns) (\s@ListJobRunsResponse' {} a -> s {jobRuns = a} :: ListJobRunsResponse) Prelude.. Lens.mapping Lens.coerced++-- | This output displays the token for the next set of job runs.+listJobRunsResponse_nextToken :: Lens.Lens' ListJobRunsResponse (Prelude.Maybe Prelude.Text)+listJobRunsResponse_nextToken = Lens.lens (\ListJobRunsResponse' {nextToken} -> nextToken) (\s@ListJobRunsResponse' {} a -> s {nextToken = a} :: ListJobRunsResponse)++-- | The response's http status code.+listJobRunsResponse_httpStatus :: Lens.Lens' ListJobRunsResponse Prelude.Int+listJobRunsResponse_httpStatus = Lens.lens (\ListJobRunsResponse' {httpStatus} -> httpStatus) (\s@ListJobRunsResponse' {} a -> s {httpStatus = a} :: ListJobRunsResponse)++instance Prelude.NFData ListJobRunsResponse where+  rnf ListJobRunsResponse' {..} =+    Prelude.rnf jobRuns+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EMRContainers/ListJobTemplates.hs view
@@ -0,0 +1,241 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRContainers.ListJobTemplates+-- 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 job templates based on a set of parameters. Job template stores+-- values of StartJobRun API request in a template and can be used to start+-- a job run. Job template allows two use cases: avoid repeating recurring+-- StartJobRun API request values, enforcing certain values in StartJobRun+-- API request.+--+-- This operation returns paginated results.+module Amazonka.EMRContainers.ListJobTemplates+  ( -- * Creating a Request+    ListJobTemplates (..),+    newListJobTemplates,++    -- * Request Lenses+    listJobTemplates_createdAfter,+    listJobTemplates_createdBefore,+    listJobTemplates_maxResults,+    listJobTemplates_nextToken,++    -- * Destructuring the Response+    ListJobTemplatesResponse (..),+    newListJobTemplatesResponse,++    -- * Response Lenses+    listJobTemplatesResponse_nextToken,+    listJobTemplatesResponse_templates,+    listJobTemplatesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRContainers.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListJobTemplates' smart constructor.+data ListJobTemplates = ListJobTemplates'+  { -- | The date and time after which the job templates were created.+    createdAfter :: Prelude.Maybe Data.ISO8601,+    -- | The date and time before which the job templates were created.+    createdBefore :: Prelude.Maybe Data.ISO8601,+    -- | The maximum number of job templates that can be listed.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | The token for the next set of job templates to return.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListJobTemplates' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createdAfter', 'listJobTemplates_createdAfter' - The date and time after which the job templates were created.+--+-- 'createdBefore', 'listJobTemplates_createdBefore' - The date and time before which the job templates were created.+--+-- 'maxResults', 'listJobTemplates_maxResults' - The maximum number of job templates that can be listed.+--+-- 'nextToken', 'listJobTemplates_nextToken' - The token for the next set of job templates to return.+newListJobTemplates ::+  ListJobTemplates+newListJobTemplates =+  ListJobTemplates'+    { createdAfter = Prelude.Nothing,+      createdBefore = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The date and time after which the job templates were created.+listJobTemplates_createdAfter :: Lens.Lens' ListJobTemplates (Prelude.Maybe Prelude.UTCTime)+listJobTemplates_createdAfter = Lens.lens (\ListJobTemplates' {createdAfter} -> createdAfter) (\s@ListJobTemplates' {} a -> s {createdAfter = a} :: ListJobTemplates) Prelude.. Lens.mapping Data._Time++-- | The date and time before which the job templates were created.+listJobTemplates_createdBefore :: Lens.Lens' ListJobTemplates (Prelude.Maybe Prelude.UTCTime)+listJobTemplates_createdBefore = Lens.lens (\ListJobTemplates' {createdBefore} -> createdBefore) (\s@ListJobTemplates' {} a -> s {createdBefore = a} :: ListJobTemplates) Prelude.. Lens.mapping Data._Time++-- | The maximum number of job templates that can be listed.+listJobTemplates_maxResults :: Lens.Lens' ListJobTemplates (Prelude.Maybe Prelude.Int)+listJobTemplates_maxResults = Lens.lens (\ListJobTemplates' {maxResults} -> maxResults) (\s@ListJobTemplates' {} a -> s {maxResults = a} :: ListJobTemplates)++-- | The token for the next set of job templates to return.+listJobTemplates_nextToken :: Lens.Lens' ListJobTemplates (Prelude.Maybe Prelude.Text)+listJobTemplates_nextToken = Lens.lens (\ListJobTemplates' {nextToken} -> nextToken) (\s@ListJobTemplates' {} a -> s {nextToken = a} :: ListJobTemplates)++instance Core.AWSPager ListJobTemplates where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listJobTemplatesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listJobTemplatesResponse_templates+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listJobTemplates_nextToken+          Lens..~ rs+          Lens.^? listJobTemplatesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListJobTemplates where+  type+    AWSResponse ListJobTemplates =+      ListJobTemplatesResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListJobTemplatesResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (x Data..?> "templates" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListJobTemplates where+  hashWithSalt _salt ListJobTemplates' {..} =+    _salt+      `Prelude.hashWithSalt` createdAfter+      `Prelude.hashWithSalt` createdBefore+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListJobTemplates where+  rnf ListJobTemplates' {..} =+    Prelude.rnf createdAfter+      `Prelude.seq` Prelude.rnf createdBefore+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListJobTemplates where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListJobTemplates where+  toPath = Prelude.const "/jobtemplates"++instance Data.ToQuery ListJobTemplates where+  toQuery ListJobTemplates' {..} =+    Prelude.mconcat+      [ "createdAfter" Data.=: createdAfter,+        "createdBefore" Data.=: createdBefore,+        "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListJobTemplatesResponse' smart constructor.+data ListJobTemplatesResponse = ListJobTemplatesResponse'+  { -- | This output displays the token for the next set of job templates.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | This output lists information about the specified job templates.+    templates :: Prelude.Maybe [JobTemplate],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListJobTemplatesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listJobTemplatesResponse_nextToken' - This output displays the token for the next set of job templates.+--+-- 'templates', 'listJobTemplatesResponse_templates' - This output lists information about the specified job templates.+--+-- 'httpStatus', 'listJobTemplatesResponse_httpStatus' - The response's http status code.+newListJobTemplatesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListJobTemplatesResponse+newListJobTemplatesResponse pHttpStatus_ =+  ListJobTemplatesResponse'+    { nextToken =+        Prelude.Nothing,+      templates = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | This output displays the token for the next set of job templates.+listJobTemplatesResponse_nextToken :: Lens.Lens' ListJobTemplatesResponse (Prelude.Maybe Prelude.Text)+listJobTemplatesResponse_nextToken = Lens.lens (\ListJobTemplatesResponse' {nextToken} -> nextToken) (\s@ListJobTemplatesResponse' {} a -> s {nextToken = a} :: ListJobTemplatesResponse)++-- | This output lists information about the specified job templates.+listJobTemplatesResponse_templates :: Lens.Lens' ListJobTemplatesResponse (Prelude.Maybe [JobTemplate])+listJobTemplatesResponse_templates = Lens.lens (\ListJobTemplatesResponse' {templates} -> templates) (\s@ListJobTemplatesResponse' {} a -> s {templates = a} :: ListJobTemplatesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listJobTemplatesResponse_httpStatus :: Lens.Lens' ListJobTemplatesResponse Prelude.Int+listJobTemplatesResponse_httpStatus = Lens.lens (\ListJobTemplatesResponse' {httpStatus} -> httpStatus) (\s@ListJobTemplatesResponse' {} a -> s {httpStatus = a} :: ListJobTemplatesResponse)++instance Prelude.NFData ListJobTemplatesResponse where+  rnf ListJobTemplatesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf templates+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EMRContainers/ListManagedEndpoints.hs view
@@ -0,0 +1,289 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRContainers.ListManagedEndpoints+-- 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 managed endpoints based on a set of parameters. A managed endpoint+-- is a gateway that connects EMR Studio to Amazon EMR on EKS so that EMR+-- Studio can communicate with your virtual cluster.+--+-- This operation returns paginated results.+module Amazonka.EMRContainers.ListManagedEndpoints+  ( -- * Creating a Request+    ListManagedEndpoints (..),+    newListManagedEndpoints,++    -- * Request Lenses+    listManagedEndpoints_createdAfter,+    listManagedEndpoints_createdBefore,+    listManagedEndpoints_maxResults,+    listManagedEndpoints_nextToken,+    listManagedEndpoints_states,+    listManagedEndpoints_types,+    listManagedEndpoints_virtualClusterId,++    -- * Destructuring the Response+    ListManagedEndpointsResponse (..),+    newListManagedEndpointsResponse,++    -- * Response Lenses+    listManagedEndpointsResponse_endpoints,+    listManagedEndpointsResponse_nextToken,+    listManagedEndpointsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRContainers.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListManagedEndpoints' smart constructor.+data ListManagedEndpoints = ListManagedEndpoints'+  { -- | The date and time after which the endpoints are created.+    createdAfter :: Prelude.Maybe Data.ISO8601,+    -- | The date and time before which the endpoints are created.+    createdBefore :: Prelude.Maybe Data.ISO8601,+    -- | The maximum number of managed endpoints that can be listed.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | The token for the next set of managed endpoints to return.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The states of the managed endpoints.+    states :: Prelude.Maybe [EndpointState],+    -- | The types of the managed endpoints.+    types :: Prelude.Maybe [Prelude.Text],+    -- | The ID of the virtual cluster.+    virtualClusterId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListManagedEndpoints' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createdAfter', 'listManagedEndpoints_createdAfter' - The date and time after which the endpoints are created.+--+-- 'createdBefore', 'listManagedEndpoints_createdBefore' - The date and time before which the endpoints are created.+--+-- 'maxResults', 'listManagedEndpoints_maxResults' - The maximum number of managed endpoints that can be listed.+--+-- 'nextToken', 'listManagedEndpoints_nextToken' - The token for the next set of managed endpoints to return.+--+-- 'states', 'listManagedEndpoints_states' - The states of the managed endpoints.+--+-- 'types', 'listManagedEndpoints_types' - The types of the managed endpoints.+--+-- 'virtualClusterId', 'listManagedEndpoints_virtualClusterId' - The ID of the virtual cluster.+newListManagedEndpoints ::+  -- | 'virtualClusterId'+  Prelude.Text ->+  ListManagedEndpoints+newListManagedEndpoints pVirtualClusterId_ =+  ListManagedEndpoints'+    { createdAfter =+        Prelude.Nothing,+      createdBefore = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      states = Prelude.Nothing,+      types = Prelude.Nothing,+      virtualClusterId = pVirtualClusterId_+    }++-- | The date and time after which the endpoints are created.+listManagedEndpoints_createdAfter :: Lens.Lens' ListManagedEndpoints (Prelude.Maybe Prelude.UTCTime)+listManagedEndpoints_createdAfter = Lens.lens (\ListManagedEndpoints' {createdAfter} -> createdAfter) (\s@ListManagedEndpoints' {} a -> s {createdAfter = a} :: ListManagedEndpoints) Prelude.. Lens.mapping Data._Time++-- | The date and time before which the endpoints are created.+listManagedEndpoints_createdBefore :: Lens.Lens' ListManagedEndpoints (Prelude.Maybe Prelude.UTCTime)+listManagedEndpoints_createdBefore = Lens.lens (\ListManagedEndpoints' {createdBefore} -> createdBefore) (\s@ListManagedEndpoints' {} a -> s {createdBefore = a} :: ListManagedEndpoints) Prelude.. Lens.mapping Data._Time++-- | The maximum number of managed endpoints that can be listed.+listManagedEndpoints_maxResults :: Lens.Lens' ListManagedEndpoints (Prelude.Maybe Prelude.Int)+listManagedEndpoints_maxResults = Lens.lens (\ListManagedEndpoints' {maxResults} -> maxResults) (\s@ListManagedEndpoints' {} a -> s {maxResults = a} :: ListManagedEndpoints)++-- | The token for the next set of managed endpoints to return.+listManagedEndpoints_nextToken :: Lens.Lens' ListManagedEndpoints (Prelude.Maybe Prelude.Text)+listManagedEndpoints_nextToken = Lens.lens (\ListManagedEndpoints' {nextToken} -> nextToken) (\s@ListManagedEndpoints' {} a -> s {nextToken = a} :: ListManagedEndpoints)++-- | The states of the managed endpoints.+listManagedEndpoints_states :: Lens.Lens' ListManagedEndpoints (Prelude.Maybe [EndpointState])+listManagedEndpoints_states = Lens.lens (\ListManagedEndpoints' {states} -> states) (\s@ListManagedEndpoints' {} a -> s {states = a} :: ListManagedEndpoints) Prelude.. Lens.mapping Lens.coerced++-- | The types of the managed endpoints.+listManagedEndpoints_types :: Lens.Lens' ListManagedEndpoints (Prelude.Maybe [Prelude.Text])+listManagedEndpoints_types = Lens.lens (\ListManagedEndpoints' {types} -> types) (\s@ListManagedEndpoints' {} a -> s {types = a} :: ListManagedEndpoints) Prelude.. Lens.mapping Lens.coerced++-- | The ID of the virtual cluster.+listManagedEndpoints_virtualClusterId :: Lens.Lens' ListManagedEndpoints Prelude.Text+listManagedEndpoints_virtualClusterId = Lens.lens (\ListManagedEndpoints' {virtualClusterId} -> virtualClusterId) (\s@ListManagedEndpoints' {} a -> s {virtualClusterId = a} :: ListManagedEndpoints)++instance Core.AWSPager ListManagedEndpoints where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listManagedEndpointsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listManagedEndpointsResponse_endpoints+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listManagedEndpoints_nextToken+          Lens..~ rs+          Lens.^? listManagedEndpointsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListManagedEndpoints where+  type+    AWSResponse ListManagedEndpoints =+      ListManagedEndpointsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListManagedEndpointsResponse'+            Prelude.<$> (x Data..?> "endpoints" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListManagedEndpoints where+  hashWithSalt _salt ListManagedEndpoints' {..} =+    _salt+      `Prelude.hashWithSalt` createdAfter+      `Prelude.hashWithSalt` createdBefore+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` states+      `Prelude.hashWithSalt` types+      `Prelude.hashWithSalt` virtualClusterId++instance Prelude.NFData ListManagedEndpoints where+  rnf ListManagedEndpoints' {..} =+    Prelude.rnf createdAfter+      `Prelude.seq` Prelude.rnf createdBefore+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf states+      `Prelude.seq` Prelude.rnf types+      `Prelude.seq` Prelude.rnf virtualClusterId++instance Data.ToHeaders ListManagedEndpoints where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListManagedEndpoints where+  toPath ListManagedEndpoints' {..} =+    Prelude.mconcat+      [ "/virtualclusters/",+        Data.toBS virtualClusterId,+        "/endpoints"+      ]++instance Data.ToQuery ListManagedEndpoints where+  toQuery ListManagedEndpoints' {..} =+    Prelude.mconcat+      [ "createdAfter" Data.=: createdAfter,+        "createdBefore" Data.=: createdBefore,+        "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken,+        "states"+          Data.=: Data.toQuery+            (Data.toQueryList "member" Prelude.<$> states),+        "types"+          Data.=: Data.toQuery+            (Data.toQueryList "member" Prelude.<$> types)+      ]++-- | /See:/ 'newListManagedEndpointsResponse' smart constructor.+data ListManagedEndpointsResponse = ListManagedEndpointsResponse'+  { -- | The managed endpoints to be listed.+    endpoints :: Prelude.Maybe [Endpoint],+    -- | The token for the next set of endpoints to return.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListManagedEndpointsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endpoints', 'listManagedEndpointsResponse_endpoints' - The managed endpoints to be listed.+--+-- 'nextToken', 'listManagedEndpointsResponse_nextToken' - The token for the next set of endpoints to return.+--+-- 'httpStatus', 'listManagedEndpointsResponse_httpStatus' - The response's http status code.+newListManagedEndpointsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListManagedEndpointsResponse+newListManagedEndpointsResponse pHttpStatus_ =+  ListManagedEndpointsResponse'+    { endpoints =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The managed endpoints to be listed.+listManagedEndpointsResponse_endpoints :: Lens.Lens' ListManagedEndpointsResponse (Prelude.Maybe [Endpoint])+listManagedEndpointsResponse_endpoints = Lens.lens (\ListManagedEndpointsResponse' {endpoints} -> endpoints) (\s@ListManagedEndpointsResponse' {} a -> s {endpoints = a} :: ListManagedEndpointsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token for the next set of endpoints to return.+listManagedEndpointsResponse_nextToken :: Lens.Lens' ListManagedEndpointsResponse (Prelude.Maybe Prelude.Text)+listManagedEndpointsResponse_nextToken = Lens.lens (\ListManagedEndpointsResponse' {nextToken} -> nextToken) (\s@ListManagedEndpointsResponse' {} a -> s {nextToken = a} :: ListManagedEndpointsResponse)++-- | The response's http status code.+listManagedEndpointsResponse_httpStatus :: Lens.Lens' ListManagedEndpointsResponse Prelude.Int+listManagedEndpointsResponse_httpStatus = Lens.lens (\ListManagedEndpointsResponse' {httpStatus} -> httpStatus) (\s@ListManagedEndpointsResponse' {} a -> s {httpStatus = a} :: ListManagedEndpointsResponse)++instance Prelude.NFData ListManagedEndpointsResponse where+  rnf ListManagedEndpointsResponse' {..} =+    Prelude.rnf endpoints+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EMRContainers/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.EMRContainers.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 the tags assigned to the resources.+module Amazonka.EMRContainers.ListTagsForResource+  ( -- * Creating a Request+    ListTagsForResource (..),+    newListTagsForResource,++    -- * Request Lenses+    listTagsForResource_resourceArn,++    -- * Destructuring the Response+    ListTagsForResourceResponse (..),+    newListTagsForResourceResponse,++    -- * Response Lenses+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRContainers.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListTagsForResource' smart constructor.+data ListTagsForResource = ListTagsForResource'+  { -- | The ARN of tagged resources.+    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 ARN of tagged resources.+newListTagsForResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  ListTagsForResource+newListTagsForResource pResourceArn_ =+  ListTagsForResource' {resourceArn = pResourceArn_}++-- | The ARN of tagged resources.+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 tags assigned to resources.+    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 tags assigned to resources.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+  ListTagsForResourceResponse'+    { tags =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The tags assigned to resources.+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/EMRContainers/ListVirtualClusters.hs view
@@ -0,0 +1,291 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRContainers.ListVirtualClusters+-- 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 information about the specified virtual cluster. Virtual cluster+-- is a managed entity on Amazon EMR on EKS. You can create, describe, list+-- and delete virtual clusters. They do not consume any additional resource+-- in your system. A single virtual cluster maps to a single Kubernetes+-- namespace. Given this relationship, you can model virtual clusters the+-- same way you model Kubernetes namespaces to meet your requirements.+--+-- This operation returns paginated results.+module Amazonka.EMRContainers.ListVirtualClusters+  ( -- * Creating a Request+    ListVirtualClusters (..),+    newListVirtualClusters,++    -- * Request Lenses+    listVirtualClusters_containerProviderId,+    listVirtualClusters_containerProviderType,+    listVirtualClusters_createdAfter,+    listVirtualClusters_createdBefore,+    listVirtualClusters_maxResults,+    listVirtualClusters_nextToken,+    listVirtualClusters_states,++    -- * Destructuring the Response+    ListVirtualClustersResponse (..),+    newListVirtualClustersResponse,++    -- * Response Lenses+    listVirtualClustersResponse_nextToken,+    listVirtualClustersResponse_virtualClusters,+    listVirtualClustersResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRContainers.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListVirtualClusters' smart constructor.+data ListVirtualClusters = ListVirtualClusters'+  { -- | The container provider ID of the virtual cluster.+    containerProviderId :: Prelude.Maybe Prelude.Text,+    -- | The container provider type of the virtual cluster. EKS is the only+    -- supported type as of now.+    containerProviderType :: Prelude.Maybe ContainerProviderType,+    -- | The date and time after which the virtual clusters are created.+    createdAfter :: Prelude.Maybe Data.ISO8601,+    -- | The date and time before which the virtual clusters are created.+    createdBefore :: Prelude.Maybe Data.ISO8601,+    -- | The maximum number of virtual clusters that can be listed.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | The token for the next set of virtual clusters to return.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The states of the requested virtual clusters.+    states :: Prelude.Maybe [VirtualClusterState]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListVirtualClusters' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'containerProviderId', 'listVirtualClusters_containerProviderId' - The container provider ID of the virtual cluster.+--+-- 'containerProviderType', 'listVirtualClusters_containerProviderType' - The container provider type of the virtual cluster. EKS is the only+-- supported type as of now.+--+-- 'createdAfter', 'listVirtualClusters_createdAfter' - The date and time after which the virtual clusters are created.+--+-- 'createdBefore', 'listVirtualClusters_createdBefore' - The date and time before which the virtual clusters are created.+--+-- 'maxResults', 'listVirtualClusters_maxResults' - The maximum number of virtual clusters that can be listed.+--+-- 'nextToken', 'listVirtualClusters_nextToken' - The token for the next set of virtual clusters to return.+--+-- 'states', 'listVirtualClusters_states' - The states of the requested virtual clusters.+newListVirtualClusters ::+  ListVirtualClusters+newListVirtualClusters =+  ListVirtualClusters'+    { containerProviderId =+        Prelude.Nothing,+      containerProviderType = Prelude.Nothing,+      createdAfter = Prelude.Nothing,+      createdBefore = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      states = Prelude.Nothing+    }++-- | The container provider ID of the virtual cluster.+listVirtualClusters_containerProviderId :: Lens.Lens' ListVirtualClusters (Prelude.Maybe Prelude.Text)+listVirtualClusters_containerProviderId = Lens.lens (\ListVirtualClusters' {containerProviderId} -> containerProviderId) (\s@ListVirtualClusters' {} a -> s {containerProviderId = a} :: ListVirtualClusters)++-- | The container provider type of the virtual cluster. EKS is the only+-- supported type as of now.+listVirtualClusters_containerProviderType :: Lens.Lens' ListVirtualClusters (Prelude.Maybe ContainerProviderType)+listVirtualClusters_containerProviderType = Lens.lens (\ListVirtualClusters' {containerProviderType} -> containerProviderType) (\s@ListVirtualClusters' {} a -> s {containerProviderType = a} :: ListVirtualClusters)++-- | The date and time after which the virtual clusters are created.+listVirtualClusters_createdAfter :: Lens.Lens' ListVirtualClusters (Prelude.Maybe Prelude.UTCTime)+listVirtualClusters_createdAfter = Lens.lens (\ListVirtualClusters' {createdAfter} -> createdAfter) (\s@ListVirtualClusters' {} a -> s {createdAfter = a} :: ListVirtualClusters) Prelude.. Lens.mapping Data._Time++-- | The date and time before which the virtual clusters are created.+listVirtualClusters_createdBefore :: Lens.Lens' ListVirtualClusters (Prelude.Maybe Prelude.UTCTime)+listVirtualClusters_createdBefore = Lens.lens (\ListVirtualClusters' {createdBefore} -> createdBefore) (\s@ListVirtualClusters' {} a -> s {createdBefore = a} :: ListVirtualClusters) Prelude.. Lens.mapping Data._Time++-- | The maximum number of virtual clusters that can be listed.+listVirtualClusters_maxResults :: Lens.Lens' ListVirtualClusters (Prelude.Maybe Prelude.Int)+listVirtualClusters_maxResults = Lens.lens (\ListVirtualClusters' {maxResults} -> maxResults) (\s@ListVirtualClusters' {} a -> s {maxResults = a} :: ListVirtualClusters)++-- | The token for the next set of virtual clusters to return.+listVirtualClusters_nextToken :: Lens.Lens' ListVirtualClusters (Prelude.Maybe Prelude.Text)+listVirtualClusters_nextToken = Lens.lens (\ListVirtualClusters' {nextToken} -> nextToken) (\s@ListVirtualClusters' {} a -> s {nextToken = a} :: ListVirtualClusters)++-- | The states of the requested virtual clusters.+listVirtualClusters_states :: Lens.Lens' ListVirtualClusters (Prelude.Maybe [VirtualClusterState])+listVirtualClusters_states = Lens.lens (\ListVirtualClusters' {states} -> states) (\s@ListVirtualClusters' {} a -> s {states = a} :: ListVirtualClusters) Prelude.. Lens.mapping Lens.coerced++instance Core.AWSPager ListVirtualClusters where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listVirtualClustersResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listVirtualClustersResponse_virtualClusters+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listVirtualClusters_nextToken+          Lens..~ rs+          Lens.^? listVirtualClustersResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListVirtualClusters where+  type+    AWSResponse ListVirtualClusters =+      ListVirtualClustersResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListVirtualClustersResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> ( x+                            Data..?> "virtualClusters"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListVirtualClusters where+  hashWithSalt _salt ListVirtualClusters' {..} =+    _salt+      `Prelude.hashWithSalt` containerProviderId+      `Prelude.hashWithSalt` containerProviderType+      `Prelude.hashWithSalt` createdAfter+      `Prelude.hashWithSalt` createdBefore+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` states++instance Prelude.NFData ListVirtualClusters where+  rnf ListVirtualClusters' {..} =+    Prelude.rnf containerProviderId+      `Prelude.seq` Prelude.rnf containerProviderType+      `Prelude.seq` Prelude.rnf createdAfter+      `Prelude.seq` Prelude.rnf createdBefore+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf states++instance Data.ToHeaders ListVirtualClusters where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListVirtualClusters where+  toPath = Prelude.const "/virtualclusters"++instance Data.ToQuery ListVirtualClusters where+  toQuery ListVirtualClusters' {..} =+    Prelude.mconcat+      [ "containerProviderId" Data.=: containerProviderId,+        "containerProviderType"+          Data.=: containerProviderType,+        "createdAfter" Data.=: createdAfter,+        "createdBefore" Data.=: createdBefore,+        "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken,+        "states"+          Data.=: Data.toQuery+            (Data.toQueryList "member" Prelude.<$> states)+      ]++-- | /See:/ 'newListVirtualClustersResponse' smart constructor.+data ListVirtualClustersResponse = ListVirtualClustersResponse'+  { -- | This output displays the token for the next set of virtual clusters.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | This output lists the specified virtual clusters.+    virtualClusters :: Prelude.Maybe [VirtualCluster],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListVirtualClustersResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listVirtualClustersResponse_nextToken' - This output displays the token for the next set of virtual clusters.+--+-- 'virtualClusters', 'listVirtualClustersResponse_virtualClusters' - This output lists the specified virtual clusters.+--+-- 'httpStatus', 'listVirtualClustersResponse_httpStatus' - The response's http status code.+newListVirtualClustersResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListVirtualClustersResponse+newListVirtualClustersResponse pHttpStatus_ =+  ListVirtualClustersResponse'+    { nextToken =+        Prelude.Nothing,+      virtualClusters = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | This output displays the token for the next set of virtual clusters.+listVirtualClustersResponse_nextToken :: Lens.Lens' ListVirtualClustersResponse (Prelude.Maybe Prelude.Text)+listVirtualClustersResponse_nextToken = Lens.lens (\ListVirtualClustersResponse' {nextToken} -> nextToken) (\s@ListVirtualClustersResponse' {} a -> s {nextToken = a} :: ListVirtualClustersResponse)++-- | This output lists the specified virtual clusters.+listVirtualClustersResponse_virtualClusters :: Lens.Lens' ListVirtualClustersResponse (Prelude.Maybe [VirtualCluster])+listVirtualClustersResponse_virtualClusters = Lens.lens (\ListVirtualClustersResponse' {virtualClusters} -> virtualClusters) (\s@ListVirtualClustersResponse' {} a -> s {virtualClusters = a} :: ListVirtualClustersResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listVirtualClustersResponse_httpStatus :: Lens.Lens' ListVirtualClustersResponse Prelude.Int+listVirtualClustersResponse_httpStatus = Lens.lens (\ListVirtualClustersResponse' {httpStatus} -> httpStatus) (\s@ListVirtualClustersResponse' {} a -> s {httpStatus = a} :: ListVirtualClustersResponse)++instance Prelude.NFData ListVirtualClustersResponse where+  rnf ListVirtualClustersResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf virtualClusters+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EMRContainers/StartJobRun.hs view
@@ -0,0 +1,333 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRContainers.StartJobRun+-- 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 job run. A job run is a unit of work, such as a Spark jar,+-- PySpark script, or SparkSQL query, that you submit to Amazon EMR on EKS.+module Amazonka.EMRContainers.StartJobRun+  ( -- * Creating a Request+    StartJobRun (..),+    newStartJobRun,++    -- * Request Lenses+    startJobRun_configurationOverrides,+    startJobRun_executionRoleArn,+    startJobRun_jobDriver,+    startJobRun_jobTemplateId,+    startJobRun_jobTemplateParameters,+    startJobRun_name,+    startJobRun_releaseLabel,+    startJobRun_tags,+    startJobRun_virtualClusterId,+    startJobRun_clientToken,++    -- * Destructuring the Response+    StartJobRunResponse (..),+    newStartJobRunResponse,++    -- * Response Lenses+    startJobRunResponse_arn,+    startJobRunResponse_id,+    startJobRunResponse_name,+    startJobRunResponse_virtualClusterId,+    startJobRunResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRContainers.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStartJobRun' smart constructor.+data StartJobRun = StartJobRun'+  { -- | The configuration overrides for the job run.+    configurationOverrides :: Prelude.Maybe ConfigurationOverrides,+    -- | The execution role ARN for the job run.+    executionRoleArn :: Prelude.Maybe Prelude.Text,+    -- | The job driver for the job run.+    jobDriver :: Prelude.Maybe JobDriver,+    -- | The job template ID to be used to start the job run.+    jobTemplateId :: Prelude.Maybe Prelude.Text,+    -- | The values of job template parameters to start a job run.+    jobTemplateParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The name of the job run.+    name :: Prelude.Maybe Prelude.Text,+    -- | The Amazon EMR release version to use for the job run.+    releaseLabel :: Prelude.Maybe Prelude.Text,+    -- | The tags assigned to job runs.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The virtual cluster ID for which the job run request is submitted.+    virtualClusterId :: Prelude.Text,+    -- | The client idempotency token of the job run request.+    clientToken :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartJobRun' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configurationOverrides', 'startJobRun_configurationOverrides' - The configuration overrides for the job run.+--+-- 'executionRoleArn', 'startJobRun_executionRoleArn' - The execution role ARN for the job run.+--+-- 'jobDriver', 'startJobRun_jobDriver' - The job driver for the job run.+--+-- 'jobTemplateId', 'startJobRun_jobTemplateId' - The job template ID to be used to start the job run.+--+-- 'jobTemplateParameters', 'startJobRun_jobTemplateParameters' - The values of job template parameters to start a job run.+--+-- 'name', 'startJobRun_name' - The name of the job run.+--+-- 'releaseLabel', 'startJobRun_releaseLabel' - The Amazon EMR release version to use for the job run.+--+-- 'tags', 'startJobRun_tags' - The tags assigned to job runs.+--+-- 'virtualClusterId', 'startJobRun_virtualClusterId' - The virtual cluster ID for which the job run request is submitted.+--+-- 'clientToken', 'startJobRun_clientToken' - The client idempotency token of the job run request.+newStartJobRun ::+  -- | 'virtualClusterId'+  Prelude.Text ->+  -- | 'clientToken'+  Prelude.Text ->+  StartJobRun+newStartJobRun pVirtualClusterId_ pClientToken_ =+  StartJobRun'+    { configurationOverrides =+        Prelude.Nothing,+      executionRoleArn = Prelude.Nothing,+      jobDriver = Prelude.Nothing,+      jobTemplateId = Prelude.Nothing,+      jobTemplateParameters = Prelude.Nothing,+      name = Prelude.Nothing,+      releaseLabel = Prelude.Nothing,+      tags = Prelude.Nothing,+      virtualClusterId = pVirtualClusterId_,+      clientToken = pClientToken_+    }++-- | The configuration overrides for the job run.+startJobRun_configurationOverrides :: Lens.Lens' StartJobRun (Prelude.Maybe ConfigurationOverrides)+startJobRun_configurationOverrides = Lens.lens (\StartJobRun' {configurationOverrides} -> configurationOverrides) (\s@StartJobRun' {} a -> s {configurationOverrides = a} :: StartJobRun)++-- | The execution role ARN for the job run.+startJobRun_executionRoleArn :: Lens.Lens' StartJobRun (Prelude.Maybe Prelude.Text)+startJobRun_executionRoleArn = Lens.lens (\StartJobRun' {executionRoleArn} -> executionRoleArn) (\s@StartJobRun' {} a -> s {executionRoleArn = a} :: StartJobRun)++-- | The job driver for the job run.+startJobRun_jobDriver :: Lens.Lens' StartJobRun (Prelude.Maybe JobDriver)+startJobRun_jobDriver = Lens.lens (\StartJobRun' {jobDriver} -> jobDriver) (\s@StartJobRun' {} a -> s {jobDriver = a} :: StartJobRun)++-- | The job template ID to be used to start the job run.+startJobRun_jobTemplateId :: Lens.Lens' StartJobRun (Prelude.Maybe Prelude.Text)+startJobRun_jobTemplateId = Lens.lens (\StartJobRun' {jobTemplateId} -> jobTemplateId) (\s@StartJobRun' {} a -> s {jobTemplateId = a} :: StartJobRun)++-- | The values of job template parameters to start a job run.+startJobRun_jobTemplateParameters :: Lens.Lens' StartJobRun (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+startJobRun_jobTemplateParameters = Lens.lens (\StartJobRun' {jobTemplateParameters} -> jobTemplateParameters) (\s@StartJobRun' {} a -> s {jobTemplateParameters = a} :: StartJobRun) Prelude.. Lens.mapping Lens.coerced++-- | The name of the job run.+startJobRun_name :: Lens.Lens' StartJobRun (Prelude.Maybe Prelude.Text)+startJobRun_name = Lens.lens (\StartJobRun' {name} -> name) (\s@StartJobRun' {} a -> s {name = a} :: StartJobRun)++-- | The Amazon EMR release version to use for the job run.+startJobRun_releaseLabel :: Lens.Lens' StartJobRun (Prelude.Maybe Prelude.Text)+startJobRun_releaseLabel = Lens.lens (\StartJobRun' {releaseLabel} -> releaseLabel) (\s@StartJobRun' {} a -> s {releaseLabel = a} :: StartJobRun)++-- | The tags assigned to job runs.+startJobRun_tags :: Lens.Lens' StartJobRun (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+startJobRun_tags = Lens.lens (\StartJobRun' {tags} -> tags) (\s@StartJobRun' {} a -> s {tags = a} :: StartJobRun) Prelude.. Lens.mapping Lens.coerced++-- | The virtual cluster ID for which the job run request is submitted.+startJobRun_virtualClusterId :: Lens.Lens' StartJobRun Prelude.Text+startJobRun_virtualClusterId = Lens.lens (\StartJobRun' {virtualClusterId} -> virtualClusterId) (\s@StartJobRun' {} a -> s {virtualClusterId = a} :: StartJobRun)++-- | The client idempotency token of the job run request.+startJobRun_clientToken :: Lens.Lens' StartJobRun Prelude.Text+startJobRun_clientToken = Lens.lens (\StartJobRun' {clientToken} -> clientToken) (\s@StartJobRun' {} a -> s {clientToken = a} :: StartJobRun)++instance Core.AWSRequest StartJobRun where+  type AWSResponse StartJobRun = StartJobRunResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          StartJobRunResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "id")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (x Data..?> "virtualClusterId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable StartJobRun where+  hashWithSalt _salt StartJobRun' {..} =+    _salt+      `Prelude.hashWithSalt` configurationOverrides+      `Prelude.hashWithSalt` executionRoleArn+      `Prelude.hashWithSalt` jobDriver+      `Prelude.hashWithSalt` jobTemplateId+      `Prelude.hashWithSalt` jobTemplateParameters+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` releaseLabel+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` virtualClusterId+      `Prelude.hashWithSalt` clientToken++instance Prelude.NFData StartJobRun where+  rnf StartJobRun' {..} =+    Prelude.rnf configurationOverrides+      `Prelude.seq` Prelude.rnf executionRoleArn+      `Prelude.seq` Prelude.rnf jobDriver+      `Prelude.seq` Prelude.rnf jobTemplateId+      `Prelude.seq` Prelude.rnf jobTemplateParameters+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf releaseLabel+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf virtualClusterId+      `Prelude.seq` Prelude.rnf clientToken++instance Data.ToHeaders StartJobRun where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON StartJobRun where+  toJSON StartJobRun' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("configurationOverrides" Data..=)+              Prelude.<$> configurationOverrides,+            ("executionRoleArn" Data..=)+              Prelude.<$> executionRoleArn,+            ("jobDriver" Data..=) Prelude.<$> jobDriver,+            ("jobTemplateId" Data..=) Prelude.<$> jobTemplateId,+            ("jobTemplateParameters" Data..=)+              Prelude.<$> jobTemplateParameters,+            ("name" Data..=) Prelude.<$> name,+            ("releaseLabel" Data..=) Prelude.<$> releaseLabel,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("clientToken" Data..= clientToken)+          ]+      )++instance Data.ToPath StartJobRun where+  toPath StartJobRun' {..} =+    Prelude.mconcat+      [ "/virtualclusters/",+        Data.toBS virtualClusterId,+        "/jobruns"+      ]++instance Data.ToQuery StartJobRun where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStartJobRunResponse' smart constructor.+data StartJobRunResponse = StartJobRunResponse'+  { -- | This output lists the ARN of job run.+    arn :: Prelude.Maybe Prelude.Text,+    -- | This output displays the started job run ID.+    id :: Prelude.Maybe Prelude.Text,+    -- | This output displays the name of the started job run.+    name :: Prelude.Maybe Prelude.Text,+    -- | This output displays the virtual cluster ID for which the job run was+    -- submitted.+    virtualClusterId :: 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 'StartJobRunResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'startJobRunResponse_arn' - This output lists the ARN of job run.+--+-- 'id', 'startJobRunResponse_id' - This output displays the started job run ID.+--+-- 'name', 'startJobRunResponse_name' - This output displays the name of the started job run.+--+-- 'virtualClusterId', 'startJobRunResponse_virtualClusterId' - This output displays the virtual cluster ID for which the job run was+-- submitted.+--+-- 'httpStatus', 'startJobRunResponse_httpStatus' - The response's http status code.+newStartJobRunResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  StartJobRunResponse+newStartJobRunResponse pHttpStatus_ =+  StartJobRunResponse'+    { arn = Prelude.Nothing,+      id = Prelude.Nothing,+      name = Prelude.Nothing,+      virtualClusterId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | This output lists the ARN of job run.+startJobRunResponse_arn :: Lens.Lens' StartJobRunResponse (Prelude.Maybe Prelude.Text)+startJobRunResponse_arn = Lens.lens (\StartJobRunResponse' {arn} -> arn) (\s@StartJobRunResponse' {} a -> s {arn = a} :: StartJobRunResponse)++-- | This output displays the started job run ID.+startJobRunResponse_id :: Lens.Lens' StartJobRunResponse (Prelude.Maybe Prelude.Text)+startJobRunResponse_id = Lens.lens (\StartJobRunResponse' {id} -> id) (\s@StartJobRunResponse' {} a -> s {id = a} :: StartJobRunResponse)++-- | This output displays the name of the started job run.+startJobRunResponse_name :: Lens.Lens' StartJobRunResponse (Prelude.Maybe Prelude.Text)+startJobRunResponse_name = Lens.lens (\StartJobRunResponse' {name} -> name) (\s@StartJobRunResponse' {} a -> s {name = a} :: StartJobRunResponse)++-- | This output displays the virtual cluster ID for which the job run was+-- submitted.+startJobRunResponse_virtualClusterId :: Lens.Lens' StartJobRunResponse (Prelude.Maybe Prelude.Text)+startJobRunResponse_virtualClusterId = Lens.lens (\StartJobRunResponse' {virtualClusterId} -> virtualClusterId) (\s@StartJobRunResponse' {} a -> s {virtualClusterId = a} :: StartJobRunResponse)++-- | The response's http status code.+startJobRunResponse_httpStatus :: Lens.Lens' StartJobRunResponse Prelude.Int+startJobRunResponse_httpStatus = Lens.lens (\StartJobRunResponse' {httpStatus} -> httpStatus) (\s@StartJobRunResponse' {} a -> s {httpStatus = a} :: StartJobRunResponse)++instance Prelude.NFData StartJobRunResponse where+  rnf StartJobRunResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf virtualClusterId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EMRContainers/TagResource.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.EMRContainers.TagResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Assigns tags to resources. A tag is a label that you assign to an AWS+-- resource. Each tag consists of a key and an optional value, both of+-- which you define. Tags enable you to categorize your AWS resources by+-- attributes such as purpose, owner, or environment. When you have many+-- resources of the same type, you can quickly identify a specific resource+-- based on the tags you\'ve assigned to it. For example, you can define a+-- set of tags for your Amazon EMR on EKS clusters to help you track each+-- cluster\'s owner and stack level. We recommend that you devise a+-- consistent set of tag keys for each resource type. You can then search+-- and filter the resources based on the tags that you add.+module Amazonka.EMRContainers.TagResource+  ( -- * Creating a Request+    TagResource (..),+    newTagResource,++    -- * Request Lenses+    tagResource_resourceArn,+    tagResource_tags,++    -- * Destructuring the Response+    TagResourceResponse (..),+    newTagResourceResponse,++    -- * Response Lenses+    tagResourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRContainers.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newTagResource' smart constructor.+data TagResource = TagResource'+  { -- | The ARN of resources.+    resourceArn :: Prelude.Text,+    -- | The tags assigned to resources.+    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 ARN of resources.+--+-- 'tags', 'tagResource_tags' - The tags assigned to resources.+newTagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  TagResource+newTagResource pResourceArn_ =+  TagResource'+    { resourceArn = pResourceArn_,+      tags = Prelude.mempty+    }++-- | The ARN of resources.+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++-- | The tags assigned to resources.+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/EMRContainers/Types.hs view
@@ -0,0 +1,353 @@+{-# 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.EMRContainers.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.EMRContainers.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _InternalServerException,+    _ResourceNotFoundException,+    _ValidationException,++    -- * ContainerProviderType+    ContainerProviderType (..),++    -- * EndpointState+    EndpointState (..),++    -- * FailureReason+    FailureReason (..),++    -- * JobRunState+    JobRunState (..),++    -- * PersistentAppUI+    PersistentAppUI (..),++    -- * TemplateParameterDataType+    TemplateParameterDataType (..),++    -- * VirtualClusterState+    VirtualClusterState (..),++    -- * Certificate+    Certificate (..),+    newCertificate,+    certificate_certificateArn,+    certificate_certificateData,++    -- * CloudWatchMonitoringConfiguration+    CloudWatchMonitoringConfiguration (..),+    newCloudWatchMonitoringConfiguration,+    cloudWatchMonitoringConfiguration_logStreamNamePrefix,+    cloudWatchMonitoringConfiguration_logGroupName,++    -- * Configuration+    Configuration (..),+    newConfiguration,+    configuration_configurations,+    configuration_properties,+    configuration_classification,++    -- * ConfigurationOverrides+    ConfigurationOverrides (..),+    newConfigurationOverrides,+    configurationOverrides_applicationConfiguration,+    configurationOverrides_monitoringConfiguration,++    -- * ContainerInfo+    ContainerInfo (..),+    newContainerInfo,+    containerInfo_eksInfo,++    -- * ContainerProvider+    ContainerProvider (..),+    newContainerProvider,+    containerProvider_info,+    containerProvider_type,+    containerProvider_id,++    -- * EksInfo+    EksInfo (..),+    newEksInfo,+    eksInfo_namespace,++    -- * Endpoint+    Endpoint (..),+    newEndpoint,+    endpoint_arn,+    endpoint_certificateArn,+    endpoint_certificateAuthority,+    endpoint_configurationOverrides,+    endpoint_createdAt,+    endpoint_executionRoleArn,+    endpoint_failureReason,+    endpoint_id,+    endpoint_name,+    endpoint_releaseLabel,+    endpoint_securityGroup,+    endpoint_serverUrl,+    endpoint_state,+    endpoint_stateDetails,+    endpoint_subnetIds,+    endpoint_tags,+    endpoint_type,+    endpoint_virtualClusterId,++    -- * JobDriver+    JobDriver (..),+    newJobDriver,+    jobDriver_sparkSqlJobDriver,+    jobDriver_sparkSubmitJobDriver,++    -- * JobRun+    JobRun (..),+    newJobRun,+    jobRun_arn,+    jobRun_clientToken,+    jobRun_configurationOverrides,+    jobRun_createdAt,+    jobRun_createdBy,+    jobRun_executionRoleArn,+    jobRun_failureReason,+    jobRun_finishedAt,+    jobRun_id,+    jobRun_jobDriver,+    jobRun_name,+    jobRun_releaseLabel,+    jobRun_state,+    jobRun_stateDetails,+    jobRun_tags,+    jobRun_virtualClusterId,++    -- * JobTemplate+    JobTemplate (..),+    newJobTemplate,+    jobTemplate_arn,+    jobTemplate_createdAt,+    jobTemplate_createdBy,+    jobTemplate_decryptionError,+    jobTemplate_id,+    jobTemplate_kmsKeyArn,+    jobTemplate_name,+    jobTemplate_tags,+    jobTemplate_jobTemplateData,++    -- * JobTemplateData+    JobTemplateData (..),+    newJobTemplateData,+    jobTemplateData_configurationOverrides,+    jobTemplateData_jobTags,+    jobTemplateData_parameterConfiguration,+    jobTemplateData_executionRoleArn,+    jobTemplateData_releaseLabel,+    jobTemplateData_jobDriver,++    -- * MonitoringConfiguration+    MonitoringConfiguration (..),+    newMonitoringConfiguration,+    monitoringConfiguration_cloudWatchMonitoringConfiguration,+    monitoringConfiguration_persistentAppUI,+    monitoringConfiguration_s3MonitoringConfiguration,++    -- * ParametricCloudWatchMonitoringConfiguration+    ParametricCloudWatchMonitoringConfiguration (..),+    newParametricCloudWatchMonitoringConfiguration,+    parametricCloudWatchMonitoringConfiguration_logGroupName,+    parametricCloudWatchMonitoringConfiguration_logStreamNamePrefix,++    -- * ParametricConfigurationOverrides+    ParametricConfigurationOverrides (..),+    newParametricConfigurationOverrides,+    parametricConfigurationOverrides_applicationConfiguration,+    parametricConfigurationOverrides_monitoringConfiguration,++    -- * ParametricMonitoringConfiguration+    ParametricMonitoringConfiguration (..),+    newParametricMonitoringConfiguration,+    parametricMonitoringConfiguration_cloudWatchMonitoringConfiguration,+    parametricMonitoringConfiguration_persistentAppUI,+    parametricMonitoringConfiguration_s3MonitoringConfiguration,++    -- * ParametricS3MonitoringConfiguration+    ParametricS3MonitoringConfiguration (..),+    newParametricS3MonitoringConfiguration,+    parametricS3MonitoringConfiguration_logUri,++    -- * S3MonitoringConfiguration+    S3MonitoringConfiguration (..),+    newS3MonitoringConfiguration,+    s3MonitoringConfiguration_logUri,++    -- * SparkSqlJobDriver+    SparkSqlJobDriver (..),+    newSparkSqlJobDriver,+    sparkSqlJobDriver_entryPoint,+    sparkSqlJobDriver_sparkSqlParameters,++    -- * SparkSubmitJobDriver+    SparkSubmitJobDriver (..),+    newSparkSubmitJobDriver,+    sparkSubmitJobDriver_entryPointArguments,+    sparkSubmitJobDriver_sparkSubmitParameters,+    sparkSubmitJobDriver_entryPoint,++    -- * TemplateParameterConfiguration+    TemplateParameterConfiguration (..),+    newTemplateParameterConfiguration,+    templateParameterConfiguration_defaultValue,+    templateParameterConfiguration_type,++    -- * VirtualCluster+    VirtualCluster (..),+    newVirtualCluster,+    virtualCluster_arn,+    virtualCluster_containerProvider,+    virtualCluster_createdAt,+    virtualCluster_id,+    virtualCluster_name,+    virtualCluster_state,+    virtualCluster_tags,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.EMRContainers.Types.Certificate+import Amazonka.EMRContainers.Types.CloudWatchMonitoringConfiguration+import Amazonka.EMRContainers.Types.Configuration+import Amazonka.EMRContainers.Types.ConfigurationOverrides+import Amazonka.EMRContainers.Types.ContainerInfo+import Amazonka.EMRContainers.Types.ContainerProvider+import Amazonka.EMRContainers.Types.ContainerProviderType+import Amazonka.EMRContainers.Types.EksInfo+import Amazonka.EMRContainers.Types.Endpoint+import Amazonka.EMRContainers.Types.EndpointState+import Amazonka.EMRContainers.Types.FailureReason+import Amazonka.EMRContainers.Types.JobDriver+import Amazonka.EMRContainers.Types.JobRun+import Amazonka.EMRContainers.Types.JobRunState+import Amazonka.EMRContainers.Types.JobTemplate+import Amazonka.EMRContainers.Types.JobTemplateData+import Amazonka.EMRContainers.Types.MonitoringConfiguration+import Amazonka.EMRContainers.Types.ParametricCloudWatchMonitoringConfiguration+import Amazonka.EMRContainers.Types.ParametricConfigurationOverrides+import Amazonka.EMRContainers.Types.ParametricMonitoringConfiguration+import Amazonka.EMRContainers.Types.ParametricS3MonitoringConfiguration+import Amazonka.EMRContainers.Types.PersistentAppUI+import Amazonka.EMRContainers.Types.S3MonitoringConfiguration+import Amazonka.EMRContainers.Types.SparkSqlJobDriver+import Amazonka.EMRContainers.Types.SparkSubmitJobDriver+import Amazonka.EMRContainers.Types.TemplateParameterConfiguration+import Amazonka.EMRContainers.Types.TemplateParameterDataType+import Amazonka.EMRContainers.Types.VirtualCluster+import Amazonka.EMRContainers.Types.VirtualClusterState+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2020-10-01@ of the Amazon EMR Containers SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "EMRContainers",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "emr-containers",+      Core.signingName = "emr-containers",+      Core.version = "2020-10-01",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "EMRContainers",+      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++-- | This is an internal server exception.+_InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerException =+  Core._MatchServiceError+    defaultService+    "InternalServerException"+    Prelude.. Core.hasStatus 500++-- | The specified resource was not found.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+  Core._MatchServiceError+    defaultService+    "ResourceNotFoundException"+    Prelude.. Core.hasStatus 400++-- | There are invalid parameters in the client request.+_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ValidationException =+  Core._MatchServiceError+    defaultService+    "ValidationException"+    Prelude.. Core.hasStatus 400
+ gen/Amazonka/EMRContainers/Types/Certificate.hs view
@@ -0,0 +1,84 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRContainers.Types.Certificate+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRContainers.Types.Certificate where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The entity representing certificate data generated for managed endpoint.+--+-- /See:/ 'newCertificate' smart constructor.+data Certificate = Certificate'+  { -- | The ARN of the certificate generated for managed endpoint.+    certificateArn :: Prelude.Maybe Prelude.Text,+    -- | The base64 encoded PEM certificate data generated for managed endpoint.+    certificateData :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Certificate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'certificateArn', 'certificate_certificateArn' - The ARN of the certificate generated for managed endpoint.+--+-- 'certificateData', 'certificate_certificateData' - The base64 encoded PEM certificate data generated for managed endpoint.+newCertificate ::+  Certificate+newCertificate =+  Certificate'+    { certificateArn = Prelude.Nothing,+      certificateData = Prelude.Nothing+    }++-- | The ARN of the certificate generated for managed endpoint.+certificate_certificateArn :: Lens.Lens' Certificate (Prelude.Maybe Prelude.Text)+certificate_certificateArn = Lens.lens (\Certificate' {certificateArn} -> certificateArn) (\s@Certificate' {} a -> s {certificateArn = a} :: Certificate)++-- | The base64 encoded PEM certificate data generated for managed endpoint.+certificate_certificateData :: Lens.Lens' Certificate (Prelude.Maybe Prelude.Text)+certificate_certificateData = Lens.lens (\Certificate' {certificateData} -> certificateData) (\s@Certificate' {} a -> s {certificateData = a} :: Certificate)++instance Data.FromJSON Certificate where+  parseJSON =+    Data.withObject+      "Certificate"+      ( \x ->+          Certificate'+            Prelude.<$> (x Data..:? "certificateArn")+            Prelude.<*> (x Data..:? "certificateData")+      )++instance Prelude.Hashable Certificate where+  hashWithSalt _salt Certificate' {..} =+    _salt+      `Prelude.hashWithSalt` certificateArn+      `Prelude.hashWithSalt` certificateData++instance Prelude.NFData Certificate where+  rnf Certificate' {..} =+    Prelude.rnf certificateArn+      `Prelude.seq` Prelude.rnf certificateData
+ gen/Amazonka/EMRContainers/Types/CloudWatchMonitoringConfiguration.hs view
@@ -0,0 +1,112 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRContainers.Types.CloudWatchMonitoringConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRContainers.Types.CloudWatchMonitoringConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A configuration for CloudWatch monitoring. You can configure your jobs+-- to send log information to CloudWatch Logs.+--+-- /See:/ 'newCloudWatchMonitoringConfiguration' smart constructor.+data CloudWatchMonitoringConfiguration = CloudWatchMonitoringConfiguration'+  { -- | The specified name prefix for log streams.+    logStreamNamePrefix :: Prelude.Maybe Prelude.Text,+    -- | The name of the log group for log publishing.+    logGroupName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CloudWatchMonitoringConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'logStreamNamePrefix', 'cloudWatchMonitoringConfiguration_logStreamNamePrefix' - The specified name prefix for log streams.+--+-- 'logGroupName', 'cloudWatchMonitoringConfiguration_logGroupName' - The name of the log group for log publishing.+newCloudWatchMonitoringConfiguration ::+  -- | 'logGroupName'+  Prelude.Text ->+  CloudWatchMonitoringConfiguration+newCloudWatchMonitoringConfiguration pLogGroupName_ =+  CloudWatchMonitoringConfiguration'+    { logStreamNamePrefix =+        Prelude.Nothing,+      logGroupName = pLogGroupName_+    }++-- | The specified name prefix for log streams.+cloudWatchMonitoringConfiguration_logStreamNamePrefix :: Lens.Lens' CloudWatchMonitoringConfiguration (Prelude.Maybe Prelude.Text)+cloudWatchMonitoringConfiguration_logStreamNamePrefix = Lens.lens (\CloudWatchMonitoringConfiguration' {logStreamNamePrefix} -> logStreamNamePrefix) (\s@CloudWatchMonitoringConfiguration' {} a -> s {logStreamNamePrefix = a} :: CloudWatchMonitoringConfiguration)++-- | The name of the log group for log publishing.+cloudWatchMonitoringConfiguration_logGroupName :: Lens.Lens' CloudWatchMonitoringConfiguration Prelude.Text+cloudWatchMonitoringConfiguration_logGroupName = Lens.lens (\CloudWatchMonitoringConfiguration' {logGroupName} -> logGroupName) (\s@CloudWatchMonitoringConfiguration' {} a -> s {logGroupName = a} :: CloudWatchMonitoringConfiguration)++instance+  Data.FromJSON+    CloudWatchMonitoringConfiguration+  where+  parseJSON =+    Data.withObject+      "CloudWatchMonitoringConfiguration"+      ( \x ->+          CloudWatchMonitoringConfiguration'+            Prelude.<$> (x Data..:? "logStreamNamePrefix")+            Prelude.<*> (x Data..: "logGroupName")+      )++instance+  Prelude.Hashable+    CloudWatchMonitoringConfiguration+  where+  hashWithSalt+    _salt+    CloudWatchMonitoringConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` logStreamNamePrefix+        `Prelude.hashWithSalt` logGroupName++instance+  Prelude.NFData+    CloudWatchMonitoringConfiguration+  where+  rnf CloudWatchMonitoringConfiguration' {..} =+    Prelude.rnf logStreamNamePrefix+      `Prelude.seq` Prelude.rnf logGroupName++instance+  Data.ToJSON+    CloudWatchMonitoringConfiguration+  where+  toJSON CloudWatchMonitoringConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("logStreamNamePrefix" Data..=)+              Prelude.<$> logStreamNamePrefix,+            Prelude.Just ("logGroupName" Data..= logGroupName)+          ]+      )
+ gen/Amazonka/EMRContainers/Types/Configuration.hs view
@@ -0,0 +1,118 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRContainers.Types.Configuration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRContainers.Types.Configuration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A configuration specification to be used when provisioning virtual+-- clusters, which can include configurations for applications and software+-- bundled with Amazon EMR on EKS. A configuration consists of a+-- classification, properties, and optional nested configurations. A+-- classification refers to an application-specific configuration file.+-- Properties are the settings you want to change in that file.+--+-- /See:/ 'newConfiguration' smart constructor.+data Configuration = Configuration'+  { -- | A list of additional configurations to apply within a configuration+    -- object.+    configurations :: Prelude.Maybe [Configuration],+    -- | A set of properties specified within a configuration classification.+    properties :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | The classification within a configuration.+    classification :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Configuration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configurations', 'configuration_configurations' - A list of additional configurations to apply within a configuration+-- object.+--+-- 'properties', 'configuration_properties' - A set of properties specified within a configuration classification.+--+-- 'classification', 'configuration_classification' - The classification within a configuration.+newConfiguration ::+  -- | 'classification'+  Prelude.Text ->+  Configuration+newConfiguration pClassification_ =+  Configuration'+    { configurations = Prelude.Nothing,+      properties = Prelude.Nothing,+      classification = pClassification_+    }++-- | A list of additional configurations to apply within a configuration+-- object.+configuration_configurations :: Lens.Lens' Configuration (Prelude.Maybe [Configuration])+configuration_configurations = Lens.lens (\Configuration' {configurations} -> configurations) (\s@Configuration' {} a -> s {configurations = a} :: Configuration) Prelude.. Lens.mapping Lens.coerced++-- | A set of properties specified within a configuration classification.+configuration_properties :: Lens.Lens' Configuration (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+configuration_properties = Lens.lens (\Configuration' {properties} -> properties) (\s@Configuration' {} a -> s {properties = a} :: Configuration) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | The classification within a configuration.+configuration_classification :: Lens.Lens' Configuration Prelude.Text+configuration_classification = Lens.lens (\Configuration' {classification} -> classification) (\s@Configuration' {} a -> s {classification = a} :: Configuration)++instance Data.FromJSON Configuration where+  parseJSON =+    Data.withObject+      "Configuration"+      ( \x ->+          Configuration'+            Prelude.<$> (x Data..:? "configurations" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "properties" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "classification")+      )++instance Prelude.Hashable Configuration where+  hashWithSalt _salt Configuration' {..} =+    _salt+      `Prelude.hashWithSalt` configurations+      `Prelude.hashWithSalt` properties+      `Prelude.hashWithSalt` classification++instance Prelude.NFData Configuration where+  rnf Configuration' {..} =+    Prelude.rnf configurations+      `Prelude.seq` Prelude.rnf properties+      `Prelude.seq` Prelude.rnf classification++instance Data.ToJSON Configuration where+  toJSON Configuration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("configurations" Data..=)+              Prelude.<$> configurations,+            ("properties" Data..=) Prelude.<$> properties,+            Prelude.Just+              ("classification" Data..= classification)+          ]+      )
+ gen/Amazonka/EMRContainers/Types/ConfigurationOverrides.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.EMRContainers.Types.ConfigurationOverrides+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRContainers.Types.ConfigurationOverrides where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRContainers.Types.Configuration+import Amazonka.EMRContainers.Types.MonitoringConfiguration+import qualified Amazonka.Prelude as Prelude++-- | A configuration specification to be used to override existing+-- configurations.+--+-- /See:/ 'newConfigurationOverrides' smart constructor.+data ConfigurationOverrides = ConfigurationOverrides'+  { -- | The configurations for the application running by the job run.+    applicationConfiguration :: Prelude.Maybe [Configuration],+    -- | The configurations for monitoring.+    monitoringConfiguration :: Prelude.Maybe MonitoringConfiguration+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ConfigurationOverrides' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'applicationConfiguration', 'configurationOverrides_applicationConfiguration' - The configurations for the application running by the job run.+--+-- 'monitoringConfiguration', 'configurationOverrides_monitoringConfiguration' - The configurations for monitoring.+newConfigurationOverrides ::+  ConfigurationOverrides+newConfigurationOverrides =+  ConfigurationOverrides'+    { applicationConfiguration =+        Prelude.Nothing,+      monitoringConfiguration = Prelude.Nothing+    }++-- | The configurations for the application running by the job run.+configurationOverrides_applicationConfiguration :: Lens.Lens' ConfigurationOverrides (Prelude.Maybe [Configuration])+configurationOverrides_applicationConfiguration = Lens.lens (\ConfigurationOverrides' {applicationConfiguration} -> applicationConfiguration) (\s@ConfigurationOverrides' {} a -> s {applicationConfiguration = a} :: ConfigurationOverrides) Prelude.. Lens.mapping Lens.coerced++-- | The configurations for monitoring.+configurationOverrides_monitoringConfiguration :: Lens.Lens' ConfigurationOverrides (Prelude.Maybe MonitoringConfiguration)+configurationOverrides_monitoringConfiguration = Lens.lens (\ConfigurationOverrides' {monitoringConfiguration} -> monitoringConfiguration) (\s@ConfigurationOverrides' {} a -> s {monitoringConfiguration = a} :: ConfigurationOverrides)++instance Data.FromJSON ConfigurationOverrides where+  parseJSON =+    Data.withObject+      "ConfigurationOverrides"+      ( \x ->+          ConfigurationOverrides'+            Prelude.<$> ( x+                            Data..:? "applicationConfiguration"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "monitoringConfiguration")+      )++instance Prelude.Hashable ConfigurationOverrides where+  hashWithSalt _salt ConfigurationOverrides' {..} =+    _salt+      `Prelude.hashWithSalt` applicationConfiguration+      `Prelude.hashWithSalt` monitoringConfiguration++instance Prelude.NFData ConfigurationOverrides where+  rnf ConfigurationOverrides' {..} =+    Prelude.rnf applicationConfiguration+      `Prelude.seq` Prelude.rnf monitoringConfiguration++instance Data.ToJSON ConfigurationOverrides where+  toJSON ConfigurationOverrides' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("applicationConfiguration" Data..=)+              Prelude.<$> applicationConfiguration,+            ("monitoringConfiguration" Data..=)+              Prelude.<$> monitoringConfiguration+          ]+      )
+ gen/Amazonka/EMRContainers/Types/ContainerInfo.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRContainers.Types.ContainerInfo+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRContainers.Types.ContainerInfo where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRContainers.Types.EksInfo+import qualified Amazonka.Prelude as Prelude++-- | The information about the container used for a job run or a managed+-- endpoint.+--+-- /See:/ 'newContainerInfo' smart constructor.+data ContainerInfo = ContainerInfo'+  { -- | The information about the EKS cluster.+    eksInfo :: Prelude.Maybe EksInfo+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ContainerInfo' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eksInfo', 'containerInfo_eksInfo' - The information about the EKS cluster.+newContainerInfo ::+  ContainerInfo+newContainerInfo =+  ContainerInfo' {eksInfo = Prelude.Nothing}++-- | The information about the EKS cluster.+containerInfo_eksInfo :: Lens.Lens' ContainerInfo (Prelude.Maybe EksInfo)+containerInfo_eksInfo = Lens.lens (\ContainerInfo' {eksInfo} -> eksInfo) (\s@ContainerInfo' {} a -> s {eksInfo = a} :: ContainerInfo)++instance Data.FromJSON ContainerInfo where+  parseJSON =+    Data.withObject+      "ContainerInfo"+      ( \x ->+          ContainerInfo' Prelude.<$> (x Data..:? "eksInfo")+      )++instance Prelude.Hashable ContainerInfo where+  hashWithSalt _salt ContainerInfo' {..} =+    _salt `Prelude.hashWithSalt` eksInfo++instance Prelude.NFData ContainerInfo where+  rnf ContainerInfo' {..} = Prelude.rnf eksInfo++instance Data.ToJSON ContainerInfo where+  toJSON ContainerInfo' {..} =+    Data.object+      ( Prelude.catMaybes+          [("eksInfo" Data..=) Prelude.<$> eksInfo]+      )
+ gen/Amazonka/EMRContainers/Types/ContainerProvider.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.EMRContainers.Types.ContainerProvider+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRContainers.Types.ContainerProvider where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRContainers.Types.ContainerInfo+import Amazonka.EMRContainers.Types.ContainerProviderType+import qualified Amazonka.Prelude as Prelude++-- | The information about the container provider.+--+-- /See:/ 'newContainerProvider' smart constructor.+data ContainerProvider = ContainerProvider'+  { -- | The information about the container cluster.+    info :: Prelude.Maybe ContainerInfo,+    -- | The type of the container provider. EKS is the only supported type as of+    -- now.+    type' :: ContainerProviderType,+    -- | The ID of the container cluster.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ContainerProvider' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'info', 'containerProvider_info' - The information about the container cluster.+--+-- 'type'', 'containerProvider_type' - The type of the container provider. EKS is the only supported type as of+-- now.+--+-- 'id', 'containerProvider_id' - The ID of the container cluster.+newContainerProvider ::+  -- | 'type''+  ContainerProviderType ->+  -- | 'id'+  Prelude.Text ->+  ContainerProvider+newContainerProvider pType_ pId_ =+  ContainerProvider'+    { info = Prelude.Nothing,+      type' = pType_,+      id = pId_+    }++-- | The information about the container cluster.+containerProvider_info :: Lens.Lens' ContainerProvider (Prelude.Maybe ContainerInfo)+containerProvider_info = Lens.lens (\ContainerProvider' {info} -> info) (\s@ContainerProvider' {} a -> s {info = a} :: ContainerProvider)++-- | The type of the container provider. EKS is the only supported type as of+-- now.+containerProvider_type :: Lens.Lens' ContainerProvider ContainerProviderType+containerProvider_type = Lens.lens (\ContainerProvider' {type'} -> type') (\s@ContainerProvider' {} a -> s {type' = a} :: ContainerProvider)++-- | The ID of the container cluster.+containerProvider_id :: Lens.Lens' ContainerProvider Prelude.Text+containerProvider_id = Lens.lens (\ContainerProvider' {id} -> id) (\s@ContainerProvider' {} a -> s {id = a} :: ContainerProvider)++instance Data.FromJSON ContainerProvider where+  parseJSON =+    Data.withObject+      "ContainerProvider"+      ( \x ->+          ContainerProvider'+            Prelude.<$> (x Data..:? "info")+            Prelude.<*> (x Data..: "type")+            Prelude.<*> (x Data..: "id")+      )++instance Prelude.Hashable ContainerProvider where+  hashWithSalt _salt ContainerProvider' {..} =+    _salt+      `Prelude.hashWithSalt` info+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` id++instance Prelude.NFData ContainerProvider where+  rnf ContainerProvider' {..} =+    Prelude.rnf info+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf id++instance Data.ToJSON ContainerProvider where+  toJSON ContainerProvider' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("info" Data..=) Prelude.<$> info,+            Prelude.Just ("type" Data..= type'),+            Prelude.Just ("id" Data..= id)+          ]+      )
+ gen/Amazonka/EMRContainers/Types/ContainerProviderType.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.EMRContainers.Types.ContainerProviderType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRContainers.Types.ContainerProviderType+  ( ContainerProviderType+      ( ..,+        ContainerProviderType_EKS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ContainerProviderType = ContainerProviderType'+  { fromContainerProviderType ::+      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 ContainerProviderType_EKS :: ContainerProviderType+pattern ContainerProviderType_EKS = ContainerProviderType' "EKS"++{-# COMPLETE+  ContainerProviderType_EKS,+  ContainerProviderType'+  #-}
+ gen/Amazonka/EMRContainers/Types/EksInfo.hs view
@@ -0,0 +1,73 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRContainers.Types.EksInfo+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRContainers.Types.EksInfo 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 information about the EKS cluster.+--+-- /See:/ 'newEksInfo' smart constructor.+data EksInfo = EksInfo'+  { -- | The namespaces of the EKS cluster.+    namespace :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EksInfo' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'namespace', 'eksInfo_namespace' - The namespaces of the EKS cluster.+newEksInfo ::+  EksInfo+newEksInfo = EksInfo' {namespace = Prelude.Nothing}++-- | The namespaces of the EKS cluster.+eksInfo_namespace :: Lens.Lens' EksInfo (Prelude.Maybe Prelude.Text)+eksInfo_namespace = Lens.lens (\EksInfo' {namespace} -> namespace) (\s@EksInfo' {} a -> s {namespace = a} :: EksInfo)++instance Data.FromJSON EksInfo where+  parseJSON =+    Data.withObject+      "EksInfo"+      ( \x ->+          EksInfo' Prelude.<$> (x Data..:? "namespace")+      )++instance Prelude.Hashable EksInfo where+  hashWithSalt _salt EksInfo' {..} =+    _salt `Prelude.hashWithSalt` namespace++instance Prelude.NFData EksInfo where+  rnf EksInfo' {..} = Prelude.rnf namespace++instance Data.ToJSON EksInfo where+  toJSON EksInfo' {..} =+    Data.object+      ( Prelude.catMaybes+          [("namespace" Data..=) Prelude.<$> namespace]+      )
+ gen/Amazonka/EMRContainers/Types/Endpoint.hs view
@@ -0,0 +1,290 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRContainers.Types.Endpoint+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRContainers.Types.Endpoint where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRContainers.Types.Certificate+import Amazonka.EMRContainers.Types.ConfigurationOverrides+import Amazonka.EMRContainers.Types.EndpointState+import Amazonka.EMRContainers.Types.FailureReason+import qualified Amazonka.Prelude as Prelude++-- | This entity represents the endpoint that is managed by Amazon EMR on+-- EKS.+--+-- /See:/ 'newEndpoint' smart constructor.+data Endpoint = Endpoint'+  { -- | The ARN of the endpoint.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The certificate ARN of the endpoint. This field is under deprecation and+    -- will be removed in future.+    certificateArn :: Prelude.Maybe Prelude.Text,+    -- | The certificate generated by emr control plane on customer behalf to+    -- secure the managed endpoint.+    certificateAuthority :: Prelude.Maybe Certificate,+    -- | The configuration settings that are used to override existing+    -- configurations for endpoints.+    configurationOverrides :: Prelude.Maybe ConfigurationOverrides,+    -- | The date and time when the endpoint was created.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | The execution role ARN of the endpoint.+    executionRoleArn :: Prelude.Maybe Prelude.Text,+    -- | The reasons why the endpoint has failed.+    failureReason :: Prelude.Maybe FailureReason,+    -- | The ID of the endpoint.+    id :: Prelude.Maybe Prelude.Text,+    -- | The name of the endpoint.+    name :: Prelude.Maybe Prelude.Text,+    -- | The EMR release version to be used for the endpoint.+    releaseLabel :: Prelude.Maybe Prelude.Text,+    -- | The security group configuration of the endpoint.+    securityGroup :: Prelude.Maybe Prelude.Text,+    -- | The server URL of the endpoint.+    serverUrl :: Prelude.Maybe Prelude.Text,+    -- | The state of the endpoint.+    state :: Prelude.Maybe EndpointState,+    -- | Additional details of the endpoint state.+    stateDetails :: Prelude.Maybe Prelude.Text,+    -- | The subnet IDs of the endpoint.+    subnetIds :: Prelude.Maybe [Prelude.Text],+    -- | The tags of the endpoint.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The type of the endpoint.+    type' :: Prelude.Maybe Prelude.Text,+    -- | The ID of the endpoint\'s virtual cluster.+    virtualClusterId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Endpoint' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'endpoint_arn' - The ARN of the endpoint.+--+-- 'certificateArn', 'endpoint_certificateArn' - The certificate ARN of the endpoint. This field is under deprecation and+-- will be removed in future.+--+-- 'certificateAuthority', 'endpoint_certificateAuthority' - The certificate generated by emr control plane on customer behalf to+-- secure the managed endpoint.+--+-- 'configurationOverrides', 'endpoint_configurationOverrides' - The configuration settings that are used to override existing+-- configurations for endpoints.+--+-- 'createdAt', 'endpoint_createdAt' - The date and time when the endpoint was created.+--+-- 'executionRoleArn', 'endpoint_executionRoleArn' - The execution role ARN of the endpoint.+--+-- 'failureReason', 'endpoint_failureReason' - The reasons why the endpoint has failed.+--+-- 'id', 'endpoint_id' - The ID of the endpoint.+--+-- 'name', 'endpoint_name' - The name of the endpoint.+--+-- 'releaseLabel', 'endpoint_releaseLabel' - The EMR release version to be used for the endpoint.+--+-- 'securityGroup', 'endpoint_securityGroup' - The security group configuration of the endpoint.+--+-- 'serverUrl', 'endpoint_serverUrl' - The server URL of the endpoint.+--+-- 'state', 'endpoint_state' - The state of the endpoint.+--+-- 'stateDetails', 'endpoint_stateDetails' - Additional details of the endpoint state.+--+-- 'subnetIds', 'endpoint_subnetIds' - The subnet IDs of the endpoint.+--+-- 'tags', 'endpoint_tags' - The tags of the endpoint.+--+-- 'type'', 'endpoint_type' - The type of the endpoint.+--+-- 'virtualClusterId', 'endpoint_virtualClusterId' - The ID of the endpoint\'s virtual cluster.+newEndpoint ::+  Endpoint+newEndpoint =+  Endpoint'+    { arn = Prelude.Nothing,+      certificateArn = Prelude.Nothing,+      certificateAuthority = Prelude.Nothing,+      configurationOverrides = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      executionRoleArn = Prelude.Nothing,+      failureReason = Prelude.Nothing,+      id = Prelude.Nothing,+      name = Prelude.Nothing,+      releaseLabel = Prelude.Nothing,+      securityGroup = Prelude.Nothing,+      serverUrl = Prelude.Nothing,+      state = Prelude.Nothing,+      stateDetails = Prelude.Nothing,+      subnetIds = Prelude.Nothing,+      tags = Prelude.Nothing,+      type' = Prelude.Nothing,+      virtualClusterId = Prelude.Nothing+    }++-- | The ARN of the endpoint.+endpoint_arn :: Lens.Lens' Endpoint (Prelude.Maybe Prelude.Text)+endpoint_arn = Lens.lens (\Endpoint' {arn} -> arn) (\s@Endpoint' {} a -> s {arn = a} :: Endpoint)++-- | The certificate ARN of the endpoint. This field is under deprecation and+-- will be removed in future.+endpoint_certificateArn :: Lens.Lens' Endpoint (Prelude.Maybe Prelude.Text)+endpoint_certificateArn = Lens.lens (\Endpoint' {certificateArn} -> certificateArn) (\s@Endpoint' {} a -> s {certificateArn = a} :: Endpoint)++-- | The certificate generated by emr control plane on customer behalf to+-- secure the managed endpoint.+endpoint_certificateAuthority :: Lens.Lens' Endpoint (Prelude.Maybe Certificate)+endpoint_certificateAuthority = Lens.lens (\Endpoint' {certificateAuthority} -> certificateAuthority) (\s@Endpoint' {} a -> s {certificateAuthority = a} :: Endpoint)++-- | The configuration settings that are used to override existing+-- configurations for endpoints.+endpoint_configurationOverrides :: Lens.Lens' Endpoint (Prelude.Maybe ConfigurationOverrides)+endpoint_configurationOverrides = Lens.lens (\Endpoint' {configurationOverrides} -> configurationOverrides) (\s@Endpoint' {} a -> s {configurationOverrides = a} :: Endpoint)++-- | The date and time when the endpoint was created.+endpoint_createdAt :: Lens.Lens' Endpoint (Prelude.Maybe Prelude.UTCTime)+endpoint_createdAt = Lens.lens (\Endpoint' {createdAt} -> createdAt) (\s@Endpoint' {} a -> s {createdAt = a} :: Endpoint) Prelude.. Lens.mapping Data._Time++-- | The execution role ARN of the endpoint.+endpoint_executionRoleArn :: Lens.Lens' Endpoint (Prelude.Maybe Prelude.Text)+endpoint_executionRoleArn = Lens.lens (\Endpoint' {executionRoleArn} -> executionRoleArn) (\s@Endpoint' {} a -> s {executionRoleArn = a} :: Endpoint)++-- | The reasons why the endpoint has failed.+endpoint_failureReason :: Lens.Lens' Endpoint (Prelude.Maybe FailureReason)+endpoint_failureReason = Lens.lens (\Endpoint' {failureReason} -> failureReason) (\s@Endpoint' {} a -> s {failureReason = a} :: Endpoint)++-- | The ID of the endpoint.+endpoint_id :: Lens.Lens' Endpoint (Prelude.Maybe Prelude.Text)+endpoint_id = Lens.lens (\Endpoint' {id} -> id) (\s@Endpoint' {} a -> s {id = a} :: Endpoint)++-- | The name of the endpoint.+endpoint_name :: Lens.Lens' Endpoint (Prelude.Maybe Prelude.Text)+endpoint_name = Lens.lens (\Endpoint' {name} -> name) (\s@Endpoint' {} a -> s {name = a} :: Endpoint)++-- | The EMR release version to be used for the endpoint.+endpoint_releaseLabel :: Lens.Lens' Endpoint (Prelude.Maybe Prelude.Text)+endpoint_releaseLabel = Lens.lens (\Endpoint' {releaseLabel} -> releaseLabel) (\s@Endpoint' {} a -> s {releaseLabel = a} :: Endpoint)++-- | The security group configuration of the endpoint.+endpoint_securityGroup :: Lens.Lens' Endpoint (Prelude.Maybe Prelude.Text)+endpoint_securityGroup = Lens.lens (\Endpoint' {securityGroup} -> securityGroup) (\s@Endpoint' {} a -> s {securityGroup = a} :: Endpoint)++-- | The server URL of the endpoint.+endpoint_serverUrl :: Lens.Lens' Endpoint (Prelude.Maybe Prelude.Text)+endpoint_serverUrl = Lens.lens (\Endpoint' {serverUrl} -> serverUrl) (\s@Endpoint' {} a -> s {serverUrl = a} :: Endpoint)++-- | The state of the endpoint.+endpoint_state :: Lens.Lens' Endpoint (Prelude.Maybe EndpointState)+endpoint_state = Lens.lens (\Endpoint' {state} -> state) (\s@Endpoint' {} a -> s {state = a} :: Endpoint)++-- | Additional details of the endpoint state.+endpoint_stateDetails :: Lens.Lens' Endpoint (Prelude.Maybe Prelude.Text)+endpoint_stateDetails = Lens.lens (\Endpoint' {stateDetails} -> stateDetails) (\s@Endpoint' {} a -> s {stateDetails = a} :: Endpoint)++-- | The subnet IDs of the endpoint.+endpoint_subnetIds :: Lens.Lens' Endpoint (Prelude.Maybe [Prelude.Text])+endpoint_subnetIds = Lens.lens (\Endpoint' {subnetIds} -> subnetIds) (\s@Endpoint' {} a -> s {subnetIds = a} :: Endpoint) Prelude.. Lens.mapping Lens.coerced++-- | The tags of the endpoint.+endpoint_tags :: Lens.Lens' Endpoint (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+endpoint_tags = Lens.lens (\Endpoint' {tags} -> tags) (\s@Endpoint' {} a -> s {tags = a} :: Endpoint) Prelude.. Lens.mapping Lens.coerced++-- | The type of the endpoint.+endpoint_type :: Lens.Lens' Endpoint (Prelude.Maybe Prelude.Text)+endpoint_type = Lens.lens (\Endpoint' {type'} -> type') (\s@Endpoint' {} a -> s {type' = a} :: Endpoint)++-- | The ID of the endpoint\'s virtual cluster.+endpoint_virtualClusterId :: Lens.Lens' Endpoint (Prelude.Maybe Prelude.Text)+endpoint_virtualClusterId = Lens.lens (\Endpoint' {virtualClusterId} -> virtualClusterId) (\s@Endpoint' {} a -> s {virtualClusterId = a} :: Endpoint)++instance Data.FromJSON Endpoint where+  parseJSON =+    Data.withObject+      "Endpoint"+      ( \x ->+          Endpoint'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "certificateArn")+            Prelude.<*> (x Data..:? "certificateAuthority")+            Prelude.<*> (x Data..:? "configurationOverrides")+            Prelude.<*> (x Data..:? "createdAt")+            Prelude.<*> (x Data..:? "executionRoleArn")+            Prelude.<*> (x Data..:? "failureReason")+            Prelude.<*> (x Data..:? "id")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "releaseLabel")+            Prelude.<*> (x Data..:? "securityGroup")+            Prelude.<*> (x Data..:? "serverUrl")+            Prelude.<*> (x Data..:? "state")+            Prelude.<*> (x Data..:? "stateDetails")+            Prelude.<*> (x Data..:? "subnetIds" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "type")+            Prelude.<*> (x Data..:? "virtualClusterId")+      )++instance Prelude.Hashable Endpoint where+  hashWithSalt _salt Endpoint' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` certificateArn+      `Prelude.hashWithSalt` certificateAuthority+      `Prelude.hashWithSalt` configurationOverrides+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` executionRoleArn+      `Prelude.hashWithSalt` failureReason+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` releaseLabel+      `Prelude.hashWithSalt` securityGroup+      `Prelude.hashWithSalt` serverUrl+      `Prelude.hashWithSalt` state+      `Prelude.hashWithSalt` stateDetails+      `Prelude.hashWithSalt` subnetIds+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` virtualClusterId++instance Prelude.NFData Endpoint where+  rnf Endpoint' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf certificateArn+      `Prelude.seq` Prelude.rnf certificateAuthority+      `Prelude.seq` Prelude.rnf configurationOverrides+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf executionRoleArn+      `Prelude.seq` Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf releaseLabel+      `Prelude.seq` Prelude.rnf securityGroup+      `Prelude.seq` Prelude.rnf serverUrl+      `Prelude.seq` Prelude.rnf state+      `Prelude.seq` Prelude.rnf stateDetails+      `Prelude.seq` Prelude.rnf subnetIds+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf virtualClusterId
+ gen/Amazonka/EMRContainers/Types/EndpointState.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRContainers.Types.EndpointState+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRContainers.Types.EndpointState+  ( EndpointState+      ( ..,+        EndpointState_ACTIVE,+        EndpointState_CREATING,+        EndpointState_TERMINATED,+        EndpointState_TERMINATED_WITH_ERRORS,+        EndpointState_TERMINATING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype EndpointState = EndpointState'+  { fromEndpointState ::+      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 EndpointState_ACTIVE :: EndpointState+pattern EndpointState_ACTIVE = EndpointState' "ACTIVE"++pattern EndpointState_CREATING :: EndpointState+pattern EndpointState_CREATING = EndpointState' "CREATING"++pattern EndpointState_TERMINATED :: EndpointState+pattern EndpointState_TERMINATED = EndpointState' "TERMINATED"++pattern EndpointState_TERMINATED_WITH_ERRORS :: EndpointState+pattern EndpointState_TERMINATED_WITH_ERRORS = EndpointState' "TERMINATED_WITH_ERRORS"++pattern EndpointState_TERMINATING :: EndpointState+pattern EndpointState_TERMINATING = EndpointState' "TERMINATING"++{-# COMPLETE+  EndpointState_ACTIVE,+  EndpointState_CREATING,+  EndpointState_TERMINATED,+  EndpointState_TERMINATED_WITH_ERRORS,+  EndpointState_TERMINATING,+  EndpointState'+  #-}
+ gen/Amazonka/EMRContainers/Types/FailureReason.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.EMRContainers.Types.FailureReason+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRContainers.Types.FailureReason+  ( FailureReason+      ( ..,+        FailureReason_CLUSTER_UNAVAILABLE,+        FailureReason_INTERNAL_ERROR,+        FailureReason_USER_ERROR,+        FailureReason_VALIDATION_ERROR+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype FailureReason = FailureReason'+  { fromFailureReason ::+      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 FailureReason_CLUSTER_UNAVAILABLE :: FailureReason+pattern FailureReason_CLUSTER_UNAVAILABLE = FailureReason' "CLUSTER_UNAVAILABLE"++pattern FailureReason_INTERNAL_ERROR :: FailureReason+pattern FailureReason_INTERNAL_ERROR = FailureReason' "INTERNAL_ERROR"++pattern FailureReason_USER_ERROR :: FailureReason+pattern FailureReason_USER_ERROR = FailureReason' "USER_ERROR"++pattern FailureReason_VALIDATION_ERROR :: FailureReason+pattern FailureReason_VALIDATION_ERROR = FailureReason' "VALIDATION_ERROR"++{-# COMPLETE+  FailureReason_CLUSTER_UNAVAILABLE,+  FailureReason_INTERNAL_ERROR,+  FailureReason_USER_ERROR,+  FailureReason_VALIDATION_ERROR,+  FailureReason'+  #-}
+ gen/Amazonka/EMRContainers/Types/JobDriver.hs view
@@ -0,0 +1,99 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRContainers.Types.JobDriver+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRContainers.Types.JobDriver where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRContainers.Types.SparkSqlJobDriver+import Amazonka.EMRContainers.Types.SparkSubmitJobDriver+import qualified Amazonka.Prelude as Prelude++-- | Specify the driver that the job runs on. Exactly one of the two+-- available job drivers is required, either sparkSqlJobDriver or+-- sparkSubmitJobDriver.+--+-- /See:/ 'newJobDriver' smart constructor.+data JobDriver = JobDriver'+  { -- | The job driver for job type.+    sparkSqlJobDriver :: Prelude.Maybe SparkSqlJobDriver,+    -- | The job driver parameters specified for spark submit.+    sparkSubmitJobDriver :: Prelude.Maybe SparkSubmitJobDriver+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'JobDriver' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'sparkSqlJobDriver', 'jobDriver_sparkSqlJobDriver' - The job driver for job type.+--+-- 'sparkSubmitJobDriver', 'jobDriver_sparkSubmitJobDriver' - The job driver parameters specified for spark submit.+newJobDriver ::+  JobDriver+newJobDriver =+  JobDriver'+    { sparkSqlJobDriver = Prelude.Nothing,+      sparkSubmitJobDriver = Prelude.Nothing+    }++-- | The job driver for job type.+jobDriver_sparkSqlJobDriver :: Lens.Lens' JobDriver (Prelude.Maybe SparkSqlJobDriver)+jobDriver_sparkSqlJobDriver = Lens.lens (\JobDriver' {sparkSqlJobDriver} -> sparkSqlJobDriver) (\s@JobDriver' {} a -> s {sparkSqlJobDriver = a} :: JobDriver)++-- | The job driver parameters specified for spark submit.+jobDriver_sparkSubmitJobDriver :: Lens.Lens' JobDriver (Prelude.Maybe SparkSubmitJobDriver)+jobDriver_sparkSubmitJobDriver = Lens.lens (\JobDriver' {sparkSubmitJobDriver} -> sparkSubmitJobDriver) (\s@JobDriver' {} a -> s {sparkSubmitJobDriver = a} :: JobDriver)++instance Data.FromJSON JobDriver where+  parseJSON =+    Data.withObject+      "JobDriver"+      ( \x ->+          JobDriver'+            Prelude.<$> (x Data..:? "sparkSqlJobDriver")+            Prelude.<*> (x Data..:? "sparkSubmitJobDriver")+      )++instance Prelude.Hashable JobDriver where+  hashWithSalt _salt JobDriver' {..} =+    _salt+      `Prelude.hashWithSalt` sparkSqlJobDriver+      `Prelude.hashWithSalt` sparkSubmitJobDriver++instance Prelude.NFData JobDriver where+  rnf JobDriver' {..} =+    Prelude.rnf sparkSqlJobDriver+      `Prelude.seq` Prelude.rnf sparkSubmitJobDriver++instance Data.ToJSON JobDriver where+  toJSON JobDriver' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("sparkSqlJobDriver" Data..=)+              Prelude.<$> sparkSqlJobDriver,+            ("sparkSubmitJobDriver" Data..=)+              Prelude.<$> sparkSubmitJobDriver+          ]+      )
+ gen/Amazonka/EMRContainers/Types/JobRun.hs view
@@ -0,0 +1,261 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRContainers.Types.JobRun+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRContainers.Types.JobRun where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRContainers.Types.ConfigurationOverrides+import Amazonka.EMRContainers.Types.FailureReason+import Amazonka.EMRContainers.Types.JobDriver+import Amazonka.EMRContainers.Types.JobRunState+import qualified Amazonka.Prelude as Prelude++-- | This entity describes a job run. A job run is a unit of work, such as a+-- Spark jar, PySpark script, or SparkSQL query, that you submit to Amazon+-- EMR on EKS.+--+-- /See:/ 'newJobRun' smart constructor.+data JobRun = JobRun'+  { -- | The ARN of job run.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The client token used to start a job run.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The configuration settings that are used to override default+    -- configuration.+    configurationOverrides :: Prelude.Maybe ConfigurationOverrides,+    -- | The date and time when the job run was created.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | The user who created the job run.+    createdBy :: Prelude.Maybe Prelude.Text,+    -- | The execution role ARN of the job run.+    executionRoleArn :: Prelude.Maybe Prelude.Text,+    -- | The reasons why the job run has failed.+    failureReason :: Prelude.Maybe FailureReason,+    -- | The date and time when the job run has finished.+    finishedAt :: Prelude.Maybe Data.ISO8601,+    -- | The ID of the job run.+    id :: Prelude.Maybe Prelude.Text,+    -- | Parameters of job driver for the job run.+    jobDriver :: Prelude.Maybe JobDriver,+    -- | The name of the job run.+    name :: Prelude.Maybe Prelude.Text,+    -- | The release version of Amazon EMR.+    releaseLabel :: Prelude.Maybe Prelude.Text,+    -- | The state of the job run.+    state :: Prelude.Maybe JobRunState,+    -- | Additional details of the job run state.+    stateDetails :: Prelude.Maybe Prelude.Text,+    -- | The assigned tags of the job run.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The ID of the job run\'s virtual cluster.+    virtualClusterId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'JobRun' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'jobRun_arn' - The ARN of job run.+--+-- 'clientToken', 'jobRun_clientToken' - The client token used to start a job run.+--+-- 'configurationOverrides', 'jobRun_configurationOverrides' - The configuration settings that are used to override default+-- configuration.+--+-- 'createdAt', 'jobRun_createdAt' - The date and time when the job run was created.+--+-- 'createdBy', 'jobRun_createdBy' - The user who created the job run.+--+-- 'executionRoleArn', 'jobRun_executionRoleArn' - The execution role ARN of the job run.+--+-- 'failureReason', 'jobRun_failureReason' - The reasons why the job run has failed.+--+-- 'finishedAt', 'jobRun_finishedAt' - The date and time when the job run has finished.+--+-- 'id', 'jobRun_id' - The ID of the job run.+--+-- 'jobDriver', 'jobRun_jobDriver' - Parameters of job driver for the job run.+--+-- 'name', 'jobRun_name' - The name of the job run.+--+-- 'releaseLabel', 'jobRun_releaseLabel' - The release version of Amazon EMR.+--+-- 'state', 'jobRun_state' - The state of the job run.+--+-- 'stateDetails', 'jobRun_stateDetails' - Additional details of the job run state.+--+-- 'tags', 'jobRun_tags' - The assigned tags of the job run.+--+-- 'virtualClusterId', 'jobRun_virtualClusterId' - The ID of the job run\'s virtual cluster.+newJobRun ::+  JobRun+newJobRun =+  JobRun'+    { arn = Prelude.Nothing,+      clientToken = Prelude.Nothing,+      configurationOverrides = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      createdBy = Prelude.Nothing,+      executionRoleArn = Prelude.Nothing,+      failureReason = Prelude.Nothing,+      finishedAt = Prelude.Nothing,+      id = Prelude.Nothing,+      jobDriver = Prelude.Nothing,+      name = Prelude.Nothing,+      releaseLabel = Prelude.Nothing,+      state = Prelude.Nothing,+      stateDetails = Prelude.Nothing,+      tags = Prelude.Nothing,+      virtualClusterId = Prelude.Nothing+    }++-- | The ARN of job run.+jobRun_arn :: Lens.Lens' JobRun (Prelude.Maybe Prelude.Text)+jobRun_arn = Lens.lens (\JobRun' {arn} -> arn) (\s@JobRun' {} a -> s {arn = a} :: JobRun)++-- | The client token used to start a job run.+jobRun_clientToken :: Lens.Lens' JobRun (Prelude.Maybe Prelude.Text)+jobRun_clientToken = Lens.lens (\JobRun' {clientToken} -> clientToken) (\s@JobRun' {} a -> s {clientToken = a} :: JobRun)++-- | The configuration settings that are used to override default+-- configuration.+jobRun_configurationOverrides :: Lens.Lens' JobRun (Prelude.Maybe ConfigurationOverrides)+jobRun_configurationOverrides = Lens.lens (\JobRun' {configurationOverrides} -> configurationOverrides) (\s@JobRun' {} a -> s {configurationOverrides = a} :: JobRun)++-- | The date and time when the job run was created.+jobRun_createdAt :: Lens.Lens' JobRun (Prelude.Maybe Prelude.UTCTime)+jobRun_createdAt = Lens.lens (\JobRun' {createdAt} -> createdAt) (\s@JobRun' {} a -> s {createdAt = a} :: JobRun) Prelude.. Lens.mapping Data._Time++-- | The user who created the job run.+jobRun_createdBy :: Lens.Lens' JobRun (Prelude.Maybe Prelude.Text)+jobRun_createdBy = Lens.lens (\JobRun' {createdBy} -> createdBy) (\s@JobRun' {} a -> s {createdBy = a} :: JobRun)++-- | The execution role ARN of the job run.+jobRun_executionRoleArn :: Lens.Lens' JobRun (Prelude.Maybe Prelude.Text)+jobRun_executionRoleArn = Lens.lens (\JobRun' {executionRoleArn} -> executionRoleArn) (\s@JobRun' {} a -> s {executionRoleArn = a} :: JobRun)++-- | The reasons why the job run has failed.+jobRun_failureReason :: Lens.Lens' JobRun (Prelude.Maybe FailureReason)+jobRun_failureReason = Lens.lens (\JobRun' {failureReason} -> failureReason) (\s@JobRun' {} a -> s {failureReason = a} :: JobRun)++-- | The date and time when the job run has finished.+jobRun_finishedAt :: Lens.Lens' JobRun (Prelude.Maybe Prelude.UTCTime)+jobRun_finishedAt = Lens.lens (\JobRun' {finishedAt} -> finishedAt) (\s@JobRun' {} a -> s {finishedAt = a} :: JobRun) Prelude.. Lens.mapping Data._Time++-- | The ID of the job run.+jobRun_id :: Lens.Lens' JobRun (Prelude.Maybe Prelude.Text)+jobRun_id = Lens.lens (\JobRun' {id} -> id) (\s@JobRun' {} a -> s {id = a} :: JobRun)++-- | Parameters of job driver for the job run.+jobRun_jobDriver :: Lens.Lens' JobRun (Prelude.Maybe JobDriver)+jobRun_jobDriver = Lens.lens (\JobRun' {jobDriver} -> jobDriver) (\s@JobRun' {} a -> s {jobDriver = a} :: JobRun)++-- | The name of the job run.+jobRun_name :: Lens.Lens' JobRun (Prelude.Maybe Prelude.Text)+jobRun_name = Lens.lens (\JobRun' {name} -> name) (\s@JobRun' {} a -> s {name = a} :: JobRun)++-- | The release version of Amazon EMR.+jobRun_releaseLabel :: Lens.Lens' JobRun (Prelude.Maybe Prelude.Text)+jobRun_releaseLabel = Lens.lens (\JobRun' {releaseLabel} -> releaseLabel) (\s@JobRun' {} a -> s {releaseLabel = a} :: JobRun)++-- | The state of the job run.+jobRun_state :: Lens.Lens' JobRun (Prelude.Maybe JobRunState)+jobRun_state = Lens.lens (\JobRun' {state} -> state) (\s@JobRun' {} a -> s {state = a} :: JobRun)++-- | Additional details of the job run state.+jobRun_stateDetails :: Lens.Lens' JobRun (Prelude.Maybe Prelude.Text)+jobRun_stateDetails = Lens.lens (\JobRun' {stateDetails} -> stateDetails) (\s@JobRun' {} a -> s {stateDetails = a} :: JobRun)++-- | The assigned tags of the job run.+jobRun_tags :: Lens.Lens' JobRun (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+jobRun_tags = Lens.lens (\JobRun' {tags} -> tags) (\s@JobRun' {} a -> s {tags = a} :: JobRun) Prelude.. Lens.mapping Lens.coerced++-- | The ID of the job run\'s virtual cluster.+jobRun_virtualClusterId :: Lens.Lens' JobRun (Prelude.Maybe Prelude.Text)+jobRun_virtualClusterId = Lens.lens (\JobRun' {virtualClusterId} -> virtualClusterId) (\s@JobRun' {} a -> s {virtualClusterId = a} :: JobRun)++instance Data.FromJSON JobRun where+  parseJSON =+    Data.withObject+      "JobRun"+      ( \x ->+          JobRun'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "clientToken")+            Prelude.<*> (x Data..:? "configurationOverrides")+            Prelude.<*> (x Data..:? "createdAt")+            Prelude.<*> (x Data..:? "createdBy")+            Prelude.<*> (x Data..:? "executionRoleArn")+            Prelude.<*> (x Data..:? "failureReason")+            Prelude.<*> (x Data..:? "finishedAt")+            Prelude.<*> (x Data..:? "id")+            Prelude.<*> (x Data..:? "jobDriver")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "releaseLabel")+            Prelude.<*> (x Data..:? "state")+            Prelude.<*> (x Data..:? "stateDetails")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "virtualClusterId")+      )++instance Prelude.Hashable JobRun where+  hashWithSalt _salt JobRun' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` configurationOverrides+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` createdBy+      `Prelude.hashWithSalt` executionRoleArn+      `Prelude.hashWithSalt` failureReason+      `Prelude.hashWithSalt` finishedAt+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` jobDriver+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` releaseLabel+      `Prelude.hashWithSalt` state+      `Prelude.hashWithSalt` stateDetails+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` virtualClusterId++instance Prelude.NFData JobRun where+  rnf JobRun' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf configurationOverrides+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf createdBy+      `Prelude.seq` Prelude.rnf executionRoleArn+      `Prelude.seq` Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf finishedAt+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf jobDriver+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf releaseLabel+      `Prelude.seq` Prelude.rnf state+      `Prelude.seq` Prelude.rnf stateDetails+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf virtualClusterId
+ gen/Amazonka/EMRContainers/Types/JobRunState.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.EMRContainers.Types.JobRunState+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRContainers.Types.JobRunState+  ( JobRunState+      ( ..,+        JobRunState_CANCELLED,+        JobRunState_CANCEL_PENDING,+        JobRunState_COMPLETED,+        JobRunState_FAILED,+        JobRunState_PENDING,+        JobRunState_RUNNING,+        JobRunState_SUBMITTED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype JobRunState = JobRunState'+  { fromJobRunState ::+      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 JobRunState_CANCELLED :: JobRunState+pattern JobRunState_CANCELLED = JobRunState' "CANCELLED"++pattern JobRunState_CANCEL_PENDING :: JobRunState+pattern JobRunState_CANCEL_PENDING = JobRunState' "CANCEL_PENDING"++pattern JobRunState_COMPLETED :: JobRunState+pattern JobRunState_COMPLETED = JobRunState' "COMPLETED"++pattern JobRunState_FAILED :: JobRunState+pattern JobRunState_FAILED = JobRunState' "FAILED"++pattern JobRunState_PENDING :: JobRunState+pattern JobRunState_PENDING = JobRunState' "PENDING"++pattern JobRunState_RUNNING :: JobRunState+pattern JobRunState_RUNNING = JobRunState' "RUNNING"++pattern JobRunState_SUBMITTED :: JobRunState+pattern JobRunState_SUBMITTED = JobRunState' "SUBMITTED"++{-# COMPLETE+  JobRunState_CANCELLED,+  JobRunState_CANCEL_PENDING,+  JobRunState_COMPLETED,+  JobRunState_FAILED,+  JobRunState_PENDING,+  JobRunState_RUNNING,+  JobRunState_SUBMITTED,+  JobRunState'+  #-}
+ gen/Amazonka/EMRContainers/Types/JobTemplate.hs view
@@ -0,0 +1,175 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRContainers.Types.JobTemplate+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRContainers.Types.JobTemplate where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRContainers.Types.JobTemplateData+import qualified Amazonka.Prelude as Prelude++-- | This entity describes a job template. Job template stores values of+-- StartJobRun API request in a template and can be used to start a job+-- run. Job template allows two use cases: avoid repeating recurring+-- StartJobRun API request values, enforcing certain values in StartJobRun+-- API request.+--+-- /See:/ 'newJobTemplate' smart constructor.+data JobTemplate = JobTemplate'+  { -- | The ARN of the job template.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The date and time when the job template was created.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | The user who created the job template.+    createdBy :: Prelude.Maybe Prelude.Text,+    -- | The error message in case the decryption of job template fails.+    decryptionError :: Prelude.Maybe Prelude.Text,+    -- | The ID of the job template.+    id :: Prelude.Maybe Prelude.Text,+    -- | The KMS key ARN used to encrypt the job template.+    kmsKeyArn :: Prelude.Maybe Prelude.Text,+    -- | The name of the job template.+    name :: Prelude.Maybe Prelude.Text,+    -- | The tags assigned to the job template.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The job template data which holds values of StartJobRun API request.+    jobTemplateData :: JobTemplateData+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'JobTemplate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'jobTemplate_arn' - The ARN of the job template.+--+-- 'createdAt', 'jobTemplate_createdAt' - The date and time when the job template was created.+--+-- 'createdBy', 'jobTemplate_createdBy' - The user who created the job template.+--+-- 'decryptionError', 'jobTemplate_decryptionError' - The error message in case the decryption of job template fails.+--+-- 'id', 'jobTemplate_id' - The ID of the job template.+--+-- 'kmsKeyArn', 'jobTemplate_kmsKeyArn' - The KMS key ARN used to encrypt the job template.+--+-- 'name', 'jobTemplate_name' - The name of the job template.+--+-- 'tags', 'jobTemplate_tags' - The tags assigned to the job template.+--+-- 'jobTemplateData', 'jobTemplate_jobTemplateData' - The job template data which holds values of StartJobRun API request.+newJobTemplate ::+  -- | 'jobTemplateData'+  JobTemplateData ->+  JobTemplate+newJobTemplate pJobTemplateData_ =+  JobTemplate'+    { arn = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      createdBy = Prelude.Nothing,+      decryptionError = Prelude.Nothing,+      id = Prelude.Nothing,+      kmsKeyArn = Prelude.Nothing,+      name = Prelude.Nothing,+      tags = Prelude.Nothing,+      jobTemplateData = pJobTemplateData_+    }++-- | The ARN of the job template.+jobTemplate_arn :: Lens.Lens' JobTemplate (Prelude.Maybe Prelude.Text)+jobTemplate_arn = Lens.lens (\JobTemplate' {arn} -> arn) (\s@JobTemplate' {} a -> s {arn = a} :: JobTemplate)++-- | The date and time when the job template was created.+jobTemplate_createdAt :: Lens.Lens' JobTemplate (Prelude.Maybe Prelude.UTCTime)+jobTemplate_createdAt = Lens.lens (\JobTemplate' {createdAt} -> createdAt) (\s@JobTemplate' {} a -> s {createdAt = a} :: JobTemplate) Prelude.. Lens.mapping Data._Time++-- | The user who created the job template.+jobTemplate_createdBy :: Lens.Lens' JobTemplate (Prelude.Maybe Prelude.Text)+jobTemplate_createdBy = Lens.lens (\JobTemplate' {createdBy} -> createdBy) (\s@JobTemplate' {} a -> s {createdBy = a} :: JobTemplate)++-- | The error message in case the decryption of job template fails.+jobTemplate_decryptionError :: Lens.Lens' JobTemplate (Prelude.Maybe Prelude.Text)+jobTemplate_decryptionError = Lens.lens (\JobTemplate' {decryptionError} -> decryptionError) (\s@JobTemplate' {} a -> s {decryptionError = a} :: JobTemplate)++-- | The ID of the job template.+jobTemplate_id :: Lens.Lens' JobTemplate (Prelude.Maybe Prelude.Text)+jobTemplate_id = Lens.lens (\JobTemplate' {id} -> id) (\s@JobTemplate' {} a -> s {id = a} :: JobTemplate)++-- | The KMS key ARN used to encrypt the job template.+jobTemplate_kmsKeyArn :: Lens.Lens' JobTemplate (Prelude.Maybe Prelude.Text)+jobTemplate_kmsKeyArn = Lens.lens (\JobTemplate' {kmsKeyArn} -> kmsKeyArn) (\s@JobTemplate' {} a -> s {kmsKeyArn = a} :: JobTemplate)++-- | The name of the job template.+jobTemplate_name :: Lens.Lens' JobTemplate (Prelude.Maybe Prelude.Text)+jobTemplate_name = Lens.lens (\JobTemplate' {name} -> name) (\s@JobTemplate' {} a -> s {name = a} :: JobTemplate)++-- | The tags assigned to the job template.+jobTemplate_tags :: Lens.Lens' JobTemplate (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+jobTemplate_tags = Lens.lens (\JobTemplate' {tags} -> tags) (\s@JobTemplate' {} a -> s {tags = a} :: JobTemplate) Prelude.. Lens.mapping Lens.coerced++-- | The job template data which holds values of StartJobRun API request.+jobTemplate_jobTemplateData :: Lens.Lens' JobTemplate JobTemplateData+jobTemplate_jobTemplateData = Lens.lens (\JobTemplate' {jobTemplateData} -> jobTemplateData) (\s@JobTemplate' {} a -> s {jobTemplateData = a} :: JobTemplate)++instance Data.FromJSON JobTemplate where+  parseJSON =+    Data.withObject+      "JobTemplate"+      ( \x ->+          JobTemplate'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "createdAt")+            Prelude.<*> (x Data..:? "createdBy")+            Prelude.<*> (x Data..:? "decryptionError")+            Prelude.<*> (x Data..:? "id")+            Prelude.<*> (x Data..:? "kmsKeyArn")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "jobTemplateData")+      )++instance Prelude.Hashable JobTemplate where+  hashWithSalt _salt JobTemplate' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` createdBy+      `Prelude.hashWithSalt` decryptionError+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` kmsKeyArn+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` jobTemplateData++instance Prelude.NFData JobTemplate where+  rnf JobTemplate' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf createdBy+      `Prelude.seq` Prelude.rnf decryptionError+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf kmsKeyArn+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf jobTemplateData
+ gen/Amazonka/EMRContainers/Types/JobTemplateData.hs view
@@ -0,0 +1,167 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRContainers.Types.JobTemplateData+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRContainers.Types.JobTemplateData where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRContainers.Types.JobDriver+import Amazonka.EMRContainers.Types.ParametricConfigurationOverrides+import Amazonka.EMRContainers.Types.TemplateParameterConfiguration+import qualified Amazonka.Prelude as Prelude++-- | The values of StartJobRun API requests used in job runs started using+-- the job template.+--+-- /See:/ 'newJobTemplateData' smart constructor.+data JobTemplateData = JobTemplateData'+  { -- | The configuration settings that are used to override defaults+    -- configuration.+    configurationOverrides :: Prelude.Maybe ParametricConfigurationOverrides,+    -- | The tags assigned to jobs started using the job template.+    jobTags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The configuration of parameters existing in the job template.+    parameterConfiguration :: Prelude.Maybe (Prelude.HashMap Prelude.Text TemplateParameterConfiguration),+    -- | The execution role ARN of the job run.+    executionRoleArn :: Prelude.Text,+    -- | The release version of Amazon EMR.+    releaseLabel :: Prelude.Text,+    jobDriver :: JobDriver+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'JobTemplateData' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configurationOverrides', 'jobTemplateData_configurationOverrides' - The configuration settings that are used to override defaults+-- configuration.+--+-- 'jobTags', 'jobTemplateData_jobTags' - The tags assigned to jobs started using the job template.+--+-- 'parameterConfiguration', 'jobTemplateData_parameterConfiguration' - The configuration of parameters existing in the job template.+--+-- 'executionRoleArn', 'jobTemplateData_executionRoleArn' - The execution role ARN of the job run.+--+-- 'releaseLabel', 'jobTemplateData_releaseLabel' - The release version of Amazon EMR.+--+-- 'jobDriver', 'jobTemplateData_jobDriver' - Undocumented member.+newJobTemplateData ::+  -- | 'executionRoleArn'+  Prelude.Text ->+  -- | 'releaseLabel'+  Prelude.Text ->+  -- | 'jobDriver'+  JobDriver ->+  JobTemplateData+newJobTemplateData+  pExecutionRoleArn_+  pReleaseLabel_+  pJobDriver_ =+    JobTemplateData'+      { configurationOverrides =+          Prelude.Nothing,+        jobTags = Prelude.Nothing,+        parameterConfiguration = Prelude.Nothing,+        executionRoleArn = pExecutionRoleArn_,+        releaseLabel = pReleaseLabel_,+        jobDriver = pJobDriver_+      }++-- | The configuration settings that are used to override defaults+-- configuration.+jobTemplateData_configurationOverrides :: Lens.Lens' JobTemplateData (Prelude.Maybe ParametricConfigurationOverrides)+jobTemplateData_configurationOverrides = Lens.lens (\JobTemplateData' {configurationOverrides} -> configurationOverrides) (\s@JobTemplateData' {} a -> s {configurationOverrides = a} :: JobTemplateData)++-- | The tags assigned to jobs started using the job template.+jobTemplateData_jobTags :: Lens.Lens' JobTemplateData (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+jobTemplateData_jobTags = Lens.lens (\JobTemplateData' {jobTags} -> jobTags) (\s@JobTemplateData' {} a -> s {jobTags = a} :: JobTemplateData) Prelude.. Lens.mapping Lens.coerced++-- | The configuration of parameters existing in the job template.+jobTemplateData_parameterConfiguration :: Lens.Lens' JobTemplateData (Prelude.Maybe (Prelude.HashMap Prelude.Text TemplateParameterConfiguration))+jobTemplateData_parameterConfiguration = Lens.lens (\JobTemplateData' {parameterConfiguration} -> parameterConfiguration) (\s@JobTemplateData' {} a -> s {parameterConfiguration = a} :: JobTemplateData) Prelude.. Lens.mapping Lens.coerced++-- | The execution role ARN of the job run.+jobTemplateData_executionRoleArn :: Lens.Lens' JobTemplateData Prelude.Text+jobTemplateData_executionRoleArn = Lens.lens (\JobTemplateData' {executionRoleArn} -> executionRoleArn) (\s@JobTemplateData' {} a -> s {executionRoleArn = a} :: JobTemplateData)++-- | The release version of Amazon EMR.+jobTemplateData_releaseLabel :: Lens.Lens' JobTemplateData Prelude.Text+jobTemplateData_releaseLabel = Lens.lens (\JobTemplateData' {releaseLabel} -> releaseLabel) (\s@JobTemplateData' {} a -> s {releaseLabel = a} :: JobTemplateData)++-- | Undocumented member.+jobTemplateData_jobDriver :: Lens.Lens' JobTemplateData JobDriver+jobTemplateData_jobDriver = Lens.lens (\JobTemplateData' {jobDriver} -> jobDriver) (\s@JobTemplateData' {} a -> s {jobDriver = a} :: JobTemplateData)++instance Data.FromJSON JobTemplateData where+  parseJSON =+    Data.withObject+      "JobTemplateData"+      ( \x ->+          JobTemplateData'+            Prelude.<$> (x Data..:? "configurationOverrides")+            Prelude.<*> (x Data..:? "jobTags" Data..!= Prelude.mempty)+            Prelude.<*> ( x+                            Data..:? "parameterConfiguration"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..: "executionRoleArn")+            Prelude.<*> (x Data..: "releaseLabel")+            Prelude.<*> (x Data..: "jobDriver")+      )++instance Prelude.Hashable JobTemplateData where+  hashWithSalt _salt JobTemplateData' {..} =+    _salt+      `Prelude.hashWithSalt` configurationOverrides+      `Prelude.hashWithSalt` jobTags+      `Prelude.hashWithSalt` parameterConfiguration+      `Prelude.hashWithSalt` executionRoleArn+      `Prelude.hashWithSalt` releaseLabel+      `Prelude.hashWithSalt` jobDriver++instance Prelude.NFData JobTemplateData where+  rnf JobTemplateData' {..} =+    Prelude.rnf configurationOverrides+      `Prelude.seq` Prelude.rnf jobTags+      `Prelude.seq` Prelude.rnf parameterConfiguration+      `Prelude.seq` Prelude.rnf executionRoleArn+      `Prelude.seq` Prelude.rnf releaseLabel+      `Prelude.seq` Prelude.rnf jobDriver++instance Data.ToJSON JobTemplateData where+  toJSON JobTemplateData' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("configurationOverrides" Data..=)+              Prelude.<$> configurationOverrides,+            ("jobTags" Data..=) Prelude.<$> jobTags,+            ("parameterConfiguration" Data..=)+              Prelude.<$> parameterConfiguration,+            Prelude.Just+              ("executionRoleArn" Data..= executionRoleArn),+            Prelude.Just ("releaseLabel" Data..= releaseLabel),+            Prelude.Just ("jobDriver" Data..= jobDriver)+          ]+      )
+ gen/Amazonka/EMRContainers/Types/MonitoringConfiguration.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.EMRContainers.Types.MonitoringConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRContainers.Types.MonitoringConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRContainers.Types.CloudWatchMonitoringConfiguration+import Amazonka.EMRContainers.Types.PersistentAppUI+import Amazonka.EMRContainers.Types.S3MonitoringConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Configuration setting for monitoring.+--+-- /See:/ 'newMonitoringConfiguration' smart constructor.+data MonitoringConfiguration = MonitoringConfiguration'+  { -- | Monitoring configurations for CloudWatch.+    cloudWatchMonitoringConfiguration :: Prelude.Maybe CloudWatchMonitoringConfiguration,+    -- | Monitoring configurations for the persistent application UI.+    persistentAppUI :: Prelude.Maybe PersistentAppUI,+    -- | Amazon S3 configuration for monitoring log publishing.+    s3MonitoringConfiguration :: Prelude.Maybe S3MonitoringConfiguration+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MonitoringConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cloudWatchMonitoringConfiguration', 'monitoringConfiguration_cloudWatchMonitoringConfiguration' - Monitoring configurations for CloudWatch.+--+-- 'persistentAppUI', 'monitoringConfiguration_persistentAppUI' - Monitoring configurations for the persistent application UI.+--+-- 's3MonitoringConfiguration', 'monitoringConfiguration_s3MonitoringConfiguration' - Amazon S3 configuration for monitoring log publishing.+newMonitoringConfiguration ::+  MonitoringConfiguration+newMonitoringConfiguration =+  MonitoringConfiguration'+    { cloudWatchMonitoringConfiguration =+        Prelude.Nothing,+      persistentAppUI = Prelude.Nothing,+      s3MonitoringConfiguration = Prelude.Nothing+    }++-- | Monitoring configurations for CloudWatch.+monitoringConfiguration_cloudWatchMonitoringConfiguration :: Lens.Lens' MonitoringConfiguration (Prelude.Maybe CloudWatchMonitoringConfiguration)+monitoringConfiguration_cloudWatchMonitoringConfiguration = Lens.lens (\MonitoringConfiguration' {cloudWatchMonitoringConfiguration} -> cloudWatchMonitoringConfiguration) (\s@MonitoringConfiguration' {} a -> s {cloudWatchMonitoringConfiguration = a} :: MonitoringConfiguration)++-- | Monitoring configurations for the persistent application UI.+monitoringConfiguration_persistentAppUI :: Lens.Lens' MonitoringConfiguration (Prelude.Maybe PersistentAppUI)+monitoringConfiguration_persistentAppUI = Lens.lens (\MonitoringConfiguration' {persistentAppUI} -> persistentAppUI) (\s@MonitoringConfiguration' {} a -> s {persistentAppUI = a} :: MonitoringConfiguration)++-- | Amazon S3 configuration for monitoring log publishing.+monitoringConfiguration_s3MonitoringConfiguration :: Lens.Lens' MonitoringConfiguration (Prelude.Maybe S3MonitoringConfiguration)+monitoringConfiguration_s3MonitoringConfiguration = Lens.lens (\MonitoringConfiguration' {s3MonitoringConfiguration} -> s3MonitoringConfiguration) (\s@MonitoringConfiguration' {} a -> s {s3MonitoringConfiguration = a} :: MonitoringConfiguration)++instance Data.FromJSON MonitoringConfiguration where+  parseJSON =+    Data.withObject+      "MonitoringConfiguration"+      ( \x ->+          MonitoringConfiguration'+            Prelude.<$> (x Data..:? "cloudWatchMonitoringConfiguration")+            Prelude.<*> (x Data..:? "persistentAppUI")+            Prelude.<*> (x Data..:? "s3MonitoringConfiguration")+      )++instance Prelude.Hashable MonitoringConfiguration where+  hashWithSalt _salt MonitoringConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` cloudWatchMonitoringConfiguration+      `Prelude.hashWithSalt` persistentAppUI+      `Prelude.hashWithSalt` s3MonitoringConfiguration++instance Prelude.NFData MonitoringConfiguration where+  rnf MonitoringConfiguration' {..} =+    Prelude.rnf cloudWatchMonitoringConfiguration+      `Prelude.seq` Prelude.rnf persistentAppUI+      `Prelude.seq` Prelude.rnf s3MonitoringConfiguration++instance Data.ToJSON MonitoringConfiguration where+  toJSON MonitoringConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("cloudWatchMonitoringConfiguration" Data..=)+              Prelude.<$> cloudWatchMonitoringConfiguration,+            ("persistentAppUI" Data..=)+              Prelude.<$> persistentAppUI,+            ("s3MonitoringConfiguration" Data..=)+              Prelude.<$> s3MonitoringConfiguration+          ]+      )
+ gen/Amazonka/EMRContainers/Types/ParametricCloudWatchMonitoringConfiguration.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.EMRContainers.Types.ParametricCloudWatchMonitoringConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRContainers.Types.ParametricCloudWatchMonitoringConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A configuration for CloudWatch monitoring. You can configure your jobs+-- to send log information to CloudWatch Logs. This data type allows job+-- template parameters to be specified within.+--+-- /See:/ 'newParametricCloudWatchMonitoringConfiguration' smart constructor.+data ParametricCloudWatchMonitoringConfiguration = ParametricCloudWatchMonitoringConfiguration'+  { -- | The name of the log group for log publishing.+    logGroupName :: Prelude.Maybe Prelude.Text,+    -- | The specified name prefix for log streams.+    logStreamNamePrefix :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ParametricCloudWatchMonitoringConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'logGroupName', 'parametricCloudWatchMonitoringConfiguration_logGroupName' - The name of the log group for log publishing.+--+-- 'logStreamNamePrefix', 'parametricCloudWatchMonitoringConfiguration_logStreamNamePrefix' - The specified name prefix for log streams.+newParametricCloudWatchMonitoringConfiguration ::+  ParametricCloudWatchMonitoringConfiguration+newParametricCloudWatchMonitoringConfiguration =+  ParametricCloudWatchMonitoringConfiguration'+    { logGroupName =+        Prelude.Nothing,+      logStreamNamePrefix =+        Prelude.Nothing+    }++-- | The name of the log group for log publishing.+parametricCloudWatchMonitoringConfiguration_logGroupName :: Lens.Lens' ParametricCloudWatchMonitoringConfiguration (Prelude.Maybe Prelude.Text)+parametricCloudWatchMonitoringConfiguration_logGroupName = Lens.lens (\ParametricCloudWatchMonitoringConfiguration' {logGroupName} -> logGroupName) (\s@ParametricCloudWatchMonitoringConfiguration' {} a -> s {logGroupName = a} :: ParametricCloudWatchMonitoringConfiguration)++-- | The specified name prefix for log streams.+parametricCloudWatchMonitoringConfiguration_logStreamNamePrefix :: Lens.Lens' ParametricCloudWatchMonitoringConfiguration (Prelude.Maybe Prelude.Text)+parametricCloudWatchMonitoringConfiguration_logStreamNamePrefix = Lens.lens (\ParametricCloudWatchMonitoringConfiguration' {logStreamNamePrefix} -> logStreamNamePrefix) (\s@ParametricCloudWatchMonitoringConfiguration' {} a -> s {logStreamNamePrefix = a} :: ParametricCloudWatchMonitoringConfiguration)++instance+  Data.FromJSON+    ParametricCloudWatchMonitoringConfiguration+  where+  parseJSON =+    Data.withObject+      "ParametricCloudWatchMonitoringConfiguration"+      ( \x ->+          ParametricCloudWatchMonitoringConfiguration'+            Prelude.<$> (x Data..:? "logGroupName")+            Prelude.<*> (x Data..:? "logStreamNamePrefix")+      )++instance+  Prelude.Hashable+    ParametricCloudWatchMonitoringConfiguration+  where+  hashWithSalt+    _salt+    ParametricCloudWatchMonitoringConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` logGroupName+        `Prelude.hashWithSalt` logStreamNamePrefix++instance+  Prelude.NFData+    ParametricCloudWatchMonitoringConfiguration+  where+  rnf ParametricCloudWatchMonitoringConfiguration' {..} =+    Prelude.rnf logGroupName+      `Prelude.seq` Prelude.rnf logStreamNamePrefix++instance+  Data.ToJSON+    ParametricCloudWatchMonitoringConfiguration+  where+  toJSON+    ParametricCloudWatchMonitoringConfiguration' {..} =+      Data.object+        ( Prelude.catMaybes+            [ ("logGroupName" Data..=) Prelude.<$> logGroupName,+              ("logStreamNamePrefix" Data..=)+                Prelude.<$> logStreamNamePrefix+            ]+        )
+ gen/Amazonka/EMRContainers/Types/ParametricConfigurationOverrides.hs view
@@ -0,0 +1,114 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRContainers.Types.ParametricConfigurationOverrides+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRContainers.Types.ParametricConfigurationOverrides where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRContainers.Types.Configuration+import Amazonka.EMRContainers.Types.ParametricMonitoringConfiguration+import qualified Amazonka.Prelude as Prelude++-- | A configuration specification to be used to override existing+-- configurations. This data type allows job template parameters to be+-- specified within.+--+-- /See:/ 'newParametricConfigurationOverrides' smart constructor.+data ParametricConfigurationOverrides = ParametricConfigurationOverrides'+  { -- | The configurations for the application running by the job run.+    applicationConfiguration :: Prelude.Maybe [Configuration],+    -- | The configurations for monitoring.+    monitoringConfiguration :: Prelude.Maybe ParametricMonitoringConfiguration+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ParametricConfigurationOverrides' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'applicationConfiguration', 'parametricConfigurationOverrides_applicationConfiguration' - The configurations for the application running by the job run.+--+-- 'monitoringConfiguration', 'parametricConfigurationOverrides_monitoringConfiguration' - The configurations for monitoring.+newParametricConfigurationOverrides ::+  ParametricConfigurationOverrides+newParametricConfigurationOverrides =+  ParametricConfigurationOverrides'+    { applicationConfiguration =+        Prelude.Nothing,+      monitoringConfiguration = Prelude.Nothing+    }++-- | The configurations for the application running by the job run.+parametricConfigurationOverrides_applicationConfiguration :: Lens.Lens' ParametricConfigurationOverrides (Prelude.Maybe [Configuration])+parametricConfigurationOverrides_applicationConfiguration = Lens.lens (\ParametricConfigurationOverrides' {applicationConfiguration} -> applicationConfiguration) (\s@ParametricConfigurationOverrides' {} a -> s {applicationConfiguration = a} :: ParametricConfigurationOverrides) Prelude.. Lens.mapping Lens.coerced++-- | The configurations for monitoring.+parametricConfigurationOverrides_monitoringConfiguration :: Lens.Lens' ParametricConfigurationOverrides (Prelude.Maybe ParametricMonitoringConfiguration)+parametricConfigurationOverrides_monitoringConfiguration = Lens.lens (\ParametricConfigurationOverrides' {monitoringConfiguration} -> monitoringConfiguration) (\s@ParametricConfigurationOverrides' {} a -> s {monitoringConfiguration = a} :: ParametricConfigurationOverrides)++instance+  Data.FromJSON+    ParametricConfigurationOverrides+  where+  parseJSON =+    Data.withObject+      "ParametricConfigurationOverrides"+      ( \x ->+          ParametricConfigurationOverrides'+            Prelude.<$> ( x+                            Data..:? "applicationConfiguration"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "monitoringConfiguration")+      )++instance+  Prelude.Hashable+    ParametricConfigurationOverrides+  where+  hashWithSalt+    _salt+    ParametricConfigurationOverrides' {..} =+      _salt+        `Prelude.hashWithSalt` applicationConfiguration+        `Prelude.hashWithSalt` monitoringConfiguration++instance+  Prelude.NFData+    ParametricConfigurationOverrides+  where+  rnf ParametricConfigurationOverrides' {..} =+    Prelude.rnf applicationConfiguration+      `Prelude.seq` Prelude.rnf monitoringConfiguration++instance Data.ToJSON ParametricConfigurationOverrides where+  toJSON ParametricConfigurationOverrides' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("applicationConfiguration" Data..=)+              Prelude.<$> applicationConfiguration,+            ("monitoringConfiguration" Data..=)+              Prelude.<$> monitoringConfiguration+          ]+      )
+ gen/Amazonka/EMRContainers/Types/ParametricMonitoringConfiguration.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.EMRContainers.Types.ParametricMonitoringConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRContainers.Types.ParametricMonitoringConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRContainers.Types.ParametricCloudWatchMonitoringConfiguration+import Amazonka.EMRContainers.Types.ParametricS3MonitoringConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Configuration setting for monitoring. This data type allows job template+-- parameters to be specified within.+--+-- /See:/ 'newParametricMonitoringConfiguration' smart constructor.+data ParametricMonitoringConfiguration = ParametricMonitoringConfiguration'+  { -- | Monitoring configurations for CloudWatch.+    cloudWatchMonitoringConfiguration :: Prelude.Maybe ParametricCloudWatchMonitoringConfiguration,+    -- | Monitoring configurations for the persistent application UI.+    persistentAppUI :: Prelude.Maybe Prelude.Text,+    -- | Amazon S3 configuration for monitoring log publishing.+    s3MonitoringConfiguration :: Prelude.Maybe ParametricS3MonitoringConfiguration+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ParametricMonitoringConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cloudWatchMonitoringConfiguration', 'parametricMonitoringConfiguration_cloudWatchMonitoringConfiguration' - Monitoring configurations for CloudWatch.+--+-- 'persistentAppUI', 'parametricMonitoringConfiguration_persistentAppUI' - Monitoring configurations for the persistent application UI.+--+-- 's3MonitoringConfiguration', 'parametricMonitoringConfiguration_s3MonitoringConfiguration' - Amazon S3 configuration for monitoring log publishing.+newParametricMonitoringConfiguration ::+  ParametricMonitoringConfiguration+newParametricMonitoringConfiguration =+  ParametricMonitoringConfiguration'+    { cloudWatchMonitoringConfiguration =+        Prelude.Nothing,+      persistentAppUI = Prelude.Nothing,+      s3MonitoringConfiguration =+        Prelude.Nothing+    }++-- | Monitoring configurations for CloudWatch.+parametricMonitoringConfiguration_cloudWatchMonitoringConfiguration :: Lens.Lens' ParametricMonitoringConfiguration (Prelude.Maybe ParametricCloudWatchMonitoringConfiguration)+parametricMonitoringConfiguration_cloudWatchMonitoringConfiguration = Lens.lens (\ParametricMonitoringConfiguration' {cloudWatchMonitoringConfiguration} -> cloudWatchMonitoringConfiguration) (\s@ParametricMonitoringConfiguration' {} a -> s {cloudWatchMonitoringConfiguration = a} :: ParametricMonitoringConfiguration)++-- | Monitoring configurations for the persistent application UI.+parametricMonitoringConfiguration_persistentAppUI :: Lens.Lens' ParametricMonitoringConfiguration (Prelude.Maybe Prelude.Text)+parametricMonitoringConfiguration_persistentAppUI = Lens.lens (\ParametricMonitoringConfiguration' {persistentAppUI} -> persistentAppUI) (\s@ParametricMonitoringConfiguration' {} a -> s {persistentAppUI = a} :: ParametricMonitoringConfiguration)++-- | Amazon S3 configuration for monitoring log publishing.+parametricMonitoringConfiguration_s3MonitoringConfiguration :: Lens.Lens' ParametricMonitoringConfiguration (Prelude.Maybe ParametricS3MonitoringConfiguration)+parametricMonitoringConfiguration_s3MonitoringConfiguration = Lens.lens (\ParametricMonitoringConfiguration' {s3MonitoringConfiguration} -> s3MonitoringConfiguration) (\s@ParametricMonitoringConfiguration' {} a -> s {s3MonitoringConfiguration = a} :: ParametricMonitoringConfiguration)++instance+  Data.FromJSON+    ParametricMonitoringConfiguration+  where+  parseJSON =+    Data.withObject+      "ParametricMonitoringConfiguration"+      ( \x ->+          ParametricMonitoringConfiguration'+            Prelude.<$> (x Data..:? "cloudWatchMonitoringConfiguration")+            Prelude.<*> (x Data..:? "persistentAppUI")+            Prelude.<*> (x Data..:? "s3MonitoringConfiguration")+      )++instance+  Prelude.Hashable+    ParametricMonitoringConfiguration+  where+  hashWithSalt+    _salt+    ParametricMonitoringConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` cloudWatchMonitoringConfiguration+        `Prelude.hashWithSalt` persistentAppUI+        `Prelude.hashWithSalt` s3MonitoringConfiguration++instance+  Prelude.NFData+    ParametricMonitoringConfiguration+  where+  rnf ParametricMonitoringConfiguration' {..} =+    Prelude.rnf cloudWatchMonitoringConfiguration+      `Prelude.seq` Prelude.rnf persistentAppUI+      `Prelude.seq` Prelude.rnf s3MonitoringConfiguration++instance+  Data.ToJSON+    ParametricMonitoringConfiguration+  where+  toJSON ParametricMonitoringConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("cloudWatchMonitoringConfiguration" Data..=)+              Prelude.<$> cloudWatchMonitoringConfiguration,+            ("persistentAppUI" Data..=)+              Prelude.<$> persistentAppUI,+            ("s3MonitoringConfiguration" Data..=)+              Prelude.<$> s3MonitoringConfiguration+          ]+      )
+ gen/Amazonka/EMRContainers/Types/ParametricS3MonitoringConfiguration.hs view
@@ -0,0 +1,95 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRContainers.Types.ParametricS3MonitoringConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRContainers.Types.ParametricS3MonitoringConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Amazon S3 configuration for monitoring log publishing. You can configure+-- your jobs to send log information to Amazon S3. This data type allows+-- job template parameters to be specified within.+--+-- /See:/ 'newParametricS3MonitoringConfiguration' smart constructor.+data ParametricS3MonitoringConfiguration = ParametricS3MonitoringConfiguration'+  { -- | Amazon S3 destination URI for log publishing.+    logUri :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ParametricS3MonitoringConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'logUri', 'parametricS3MonitoringConfiguration_logUri' - Amazon S3 destination URI for log publishing.+newParametricS3MonitoringConfiguration ::+  ParametricS3MonitoringConfiguration+newParametricS3MonitoringConfiguration =+  ParametricS3MonitoringConfiguration'+    { logUri =+        Prelude.Nothing+    }++-- | Amazon S3 destination URI for log publishing.+parametricS3MonitoringConfiguration_logUri :: Lens.Lens' ParametricS3MonitoringConfiguration (Prelude.Maybe Prelude.Text)+parametricS3MonitoringConfiguration_logUri = Lens.lens (\ParametricS3MonitoringConfiguration' {logUri} -> logUri) (\s@ParametricS3MonitoringConfiguration' {} a -> s {logUri = a} :: ParametricS3MonitoringConfiguration)++instance+  Data.FromJSON+    ParametricS3MonitoringConfiguration+  where+  parseJSON =+    Data.withObject+      "ParametricS3MonitoringConfiguration"+      ( \x ->+          ParametricS3MonitoringConfiguration'+            Prelude.<$> (x Data..:? "logUri")+      )++instance+  Prelude.Hashable+    ParametricS3MonitoringConfiguration+  where+  hashWithSalt+    _salt+    ParametricS3MonitoringConfiguration' {..} =+      _salt `Prelude.hashWithSalt` logUri++instance+  Prelude.NFData+    ParametricS3MonitoringConfiguration+  where+  rnf ParametricS3MonitoringConfiguration' {..} =+    Prelude.rnf logUri++instance+  Data.ToJSON+    ParametricS3MonitoringConfiguration+  where+  toJSON ParametricS3MonitoringConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [("logUri" Data..=) Prelude.<$> logUri]+      )
+ gen/Amazonka/EMRContainers/Types/PersistentAppUI.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.EMRContainers.Types.PersistentAppUI+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRContainers.Types.PersistentAppUI+  ( PersistentAppUI+      ( ..,+        PersistentAppUI_DISABLED,+        PersistentAppUI_ENABLED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype PersistentAppUI = PersistentAppUI'+  { fromPersistentAppUI ::+      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 PersistentAppUI_DISABLED :: PersistentAppUI+pattern PersistentAppUI_DISABLED = PersistentAppUI' "DISABLED"++pattern PersistentAppUI_ENABLED :: PersistentAppUI+pattern PersistentAppUI_ENABLED = PersistentAppUI' "ENABLED"++{-# COMPLETE+  PersistentAppUI_DISABLED,+  PersistentAppUI_ENABLED,+  PersistentAppUI'+  #-}
+ gen/Amazonka/EMRContainers/Types/S3MonitoringConfiguration.hs view
@@ -0,0 +1,79 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRContainers.Types.S3MonitoringConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRContainers.Types.S3MonitoringConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Amazon S3 configuration for monitoring log publishing. You can configure+-- your jobs to send log information to Amazon S3.+--+-- /See:/ 'newS3MonitoringConfiguration' smart constructor.+data S3MonitoringConfiguration = S3MonitoringConfiguration'+  { -- | Amazon S3 destination URI for log publishing.+    logUri :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3MonitoringConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'logUri', 's3MonitoringConfiguration_logUri' - Amazon S3 destination URI for log publishing.+newS3MonitoringConfiguration ::+  -- | 'logUri'+  Prelude.Text ->+  S3MonitoringConfiguration+newS3MonitoringConfiguration pLogUri_ =+  S3MonitoringConfiguration' {logUri = pLogUri_}++-- | Amazon S3 destination URI for log publishing.+s3MonitoringConfiguration_logUri :: Lens.Lens' S3MonitoringConfiguration Prelude.Text+s3MonitoringConfiguration_logUri = Lens.lens (\S3MonitoringConfiguration' {logUri} -> logUri) (\s@S3MonitoringConfiguration' {} a -> s {logUri = a} :: S3MonitoringConfiguration)++instance Data.FromJSON S3MonitoringConfiguration where+  parseJSON =+    Data.withObject+      "S3MonitoringConfiguration"+      ( \x ->+          S3MonitoringConfiguration'+            Prelude.<$> (x Data..: "logUri")+      )++instance Prelude.Hashable S3MonitoringConfiguration where+  hashWithSalt _salt S3MonitoringConfiguration' {..} =+    _salt `Prelude.hashWithSalt` logUri++instance Prelude.NFData S3MonitoringConfiguration where+  rnf S3MonitoringConfiguration' {..} =+    Prelude.rnf logUri++instance Data.ToJSON S3MonitoringConfiguration where+  toJSON S3MonitoringConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("logUri" Data..= logUri)]+      )
+ gen/Amazonka/EMRContainers/Types/SparkSqlJobDriver.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.EMRContainers.Types.SparkSqlJobDriver+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRContainers.Types.SparkSqlJobDriver 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 job driver for job type.+--+-- /See:/ 'newSparkSqlJobDriver' smart constructor.+data SparkSqlJobDriver = SparkSqlJobDriver'+  { -- | The SQL file to be executed.+    entryPoint :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The Spark parameters to be included in the Spark SQL command.+    sparkSqlParameters :: Prelude.Maybe (Data.Sensitive Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SparkSqlJobDriver' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'entryPoint', 'sparkSqlJobDriver_entryPoint' - The SQL file to be executed.+--+-- 'sparkSqlParameters', 'sparkSqlJobDriver_sparkSqlParameters' - The Spark parameters to be included in the Spark SQL command.+newSparkSqlJobDriver ::+  SparkSqlJobDriver+newSparkSqlJobDriver =+  SparkSqlJobDriver'+    { entryPoint = Prelude.Nothing,+      sparkSqlParameters = Prelude.Nothing+    }++-- | The SQL file to be executed.+sparkSqlJobDriver_entryPoint :: Lens.Lens' SparkSqlJobDriver (Prelude.Maybe Prelude.Text)+sparkSqlJobDriver_entryPoint = Lens.lens (\SparkSqlJobDriver' {entryPoint} -> entryPoint) (\s@SparkSqlJobDriver' {} a -> s {entryPoint = a} :: SparkSqlJobDriver) Prelude.. Lens.mapping Data._Sensitive++-- | The Spark parameters to be included in the Spark SQL command.+sparkSqlJobDriver_sparkSqlParameters :: Lens.Lens' SparkSqlJobDriver (Prelude.Maybe Prelude.Text)+sparkSqlJobDriver_sparkSqlParameters = Lens.lens (\SparkSqlJobDriver' {sparkSqlParameters} -> sparkSqlParameters) (\s@SparkSqlJobDriver' {} a -> s {sparkSqlParameters = a} :: SparkSqlJobDriver) Prelude.. Lens.mapping Data._Sensitive++instance Data.FromJSON SparkSqlJobDriver where+  parseJSON =+    Data.withObject+      "SparkSqlJobDriver"+      ( \x ->+          SparkSqlJobDriver'+            Prelude.<$> (x Data..:? "entryPoint")+            Prelude.<*> (x Data..:? "sparkSqlParameters")+      )++instance Prelude.Hashable SparkSqlJobDriver where+  hashWithSalt _salt SparkSqlJobDriver' {..} =+    _salt+      `Prelude.hashWithSalt` entryPoint+      `Prelude.hashWithSalt` sparkSqlParameters++instance Prelude.NFData SparkSqlJobDriver where+  rnf SparkSqlJobDriver' {..} =+    Prelude.rnf entryPoint+      `Prelude.seq` Prelude.rnf sparkSqlParameters++instance Data.ToJSON SparkSqlJobDriver where+  toJSON SparkSqlJobDriver' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("entryPoint" Data..=) Prelude.<$> entryPoint,+            ("sparkSqlParameters" Data..=)+              Prelude.<$> sparkSqlParameters+          ]+      )
+ gen/Amazonka/EMRContainers/Types/SparkSubmitJobDriver.hs view
@@ -0,0 +1,114 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRContainers.Types.SparkSubmitJobDriver+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRContainers.Types.SparkSubmitJobDriver 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 information about job driver for Spark submit.+--+-- /See:/ 'newSparkSubmitJobDriver' smart constructor.+data SparkSubmitJobDriver = SparkSubmitJobDriver'+  { -- | The arguments for job application.+    entryPointArguments :: Prelude.Maybe [Data.Sensitive Prelude.Text],+    -- | The Spark submit parameters that are used for job runs.+    sparkSubmitParameters :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The entry point of job application.+    entryPoint :: Data.Sensitive Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SparkSubmitJobDriver' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'entryPointArguments', 'sparkSubmitJobDriver_entryPointArguments' - The arguments for job application.+--+-- 'sparkSubmitParameters', 'sparkSubmitJobDriver_sparkSubmitParameters' - The Spark submit parameters that are used for job runs.+--+-- 'entryPoint', 'sparkSubmitJobDriver_entryPoint' - The entry point of job application.+newSparkSubmitJobDriver ::+  -- | 'entryPoint'+  Prelude.Text ->+  SparkSubmitJobDriver+newSparkSubmitJobDriver pEntryPoint_ =+  SparkSubmitJobDriver'+    { entryPointArguments =+        Prelude.Nothing,+      sparkSubmitParameters = Prelude.Nothing,+      entryPoint = Data._Sensitive Lens.# pEntryPoint_+    }++-- | The arguments for job application.+sparkSubmitJobDriver_entryPointArguments :: Lens.Lens' SparkSubmitJobDriver (Prelude.Maybe [Prelude.Text])+sparkSubmitJobDriver_entryPointArguments = Lens.lens (\SparkSubmitJobDriver' {entryPointArguments} -> entryPointArguments) (\s@SparkSubmitJobDriver' {} a -> s {entryPointArguments = a} :: SparkSubmitJobDriver) Prelude.. Lens.mapping Lens.coerced++-- | The Spark submit parameters that are used for job runs.+sparkSubmitJobDriver_sparkSubmitParameters :: Lens.Lens' SparkSubmitJobDriver (Prelude.Maybe Prelude.Text)+sparkSubmitJobDriver_sparkSubmitParameters = Lens.lens (\SparkSubmitJobDriver' {sparkSubmitParameters} -> sparkSubmitParameters) (\s@SparkSubmitJobDriver' {} a -> s {sparkSubmitParameters = a} :: SparkSubmitJobDriver) Prelude.. Lens.mapping Data._Sensitive++-- | The entry point of job application.+sparkSubmitJobDriver_entryPoint :: Lens.Lens' SparkSubmitJobDriver Prelude.Text+sparkSubmitJobDriver_entryPoint = Lens.lens (\SparkSubmitJobDriver' {entryPoint} -> entryPoint) (\s@SparkSubmitJobDriver' {} a -> s {entryPoint = a} :: SparkSubmitJobDriver) Prelude.. Data._Sensitive++instance Data.FromJSON SparkSubmitJobDriver where+  parseJSON =+    Data.withObject+      "SparkSubmitJobDriver"+      ( \x ->+          SparkSubmitJobDriver'+            Prelude.<$> ( x+                            Data..:? "entryPointArguments"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "sparkSubmitParameters")+            Prelude.<*> (x Data..: "entryPoint")+      )++instance Prelude.Hashable SparkSubmitJobDriver where+  hashWithSalt _salt SparkSubmitJobDriver' {..} =+    _salt+      `Prelude.hashWithSalt` entryPointArguments+      `Prelude.hashWithSalt` sparkSubmitParameters+      `Prelude.hashWithSalt` entryPoint++instance Prelude.NFData SparkSubmitJobDriver where+  rnf SparkSubmitJobDriver' {..} =+    Prelude.rnf entryPointArguments+      `Prelude.seq` Prelude.rnf sparkSubmitParameters+      `Prelude.seq` Prelude.rnf entryPoint++instance Data.ToJSON SparkSubmitJobDriver where+  toJSON SparkSubmitJobDriver' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("entryPointArguments" Data..=)+              Prelude.<$> entryPointArguments,+            ("sparkSubmitParameters" Data..=)+              Prelude.<$> sparkSubmitParameters,+            Prelude.Just ("entryPoint" Data..= entryPoint)+          ]+      )
+ gen/Amazonka/EMRContainers/Types/TemplateParameterConfiguration.hs view
@@ -0,0 +1,106 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRContainers.Types.TemplateParameterConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRContainers.Types.TemplateParameterConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRContainers.Types.TemplateParameterDataType+import qualified Amazonka.Prelude as Prelude++-- | The configuration of a job template parameter.+--+-- /See:/ 'newTemplateParameterConfiguration' smart constructor.+data TemplateParameterConfiguration = TemplateParameterConfiguration'+  { -- | The default value for the job template parameter.+    defaultValue :: Prelude.Maybe Prelude.Text,+    -- | The type of the job template parameter. Allowed values are: ‘String’,+    -- ‘Number’.+    type' :: Prelude.Maybe TemplateParameterDataType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TemplateParameterConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'defaultValue', 'templateParameterConfiguration_defaultValue' - The default value for the job template parameter.+--+-- 'type'', 'templateParameterConfiguration_type' - The type of the job template parameter. Allowed values are: ‘String’,+-- ‘Number’.+newTemplateParameterConfiguration ::+  TemplateParameterConfiguration+newTemplateParameterConfiguration =+  TemplateParameterConfiguration'+    { defaultValue =+        Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | The default value for the job template parameter.+templateParameterConfiguration_defaultValue :: Lens.Lens' TemplateParameterConfiguration (Prelude.Maybe Prelude.Text)+templateParameterConfiguration_defaultValue = Lens.lens (\TemplateParameterConfiguration' {defaultValue} -> defaultValue) (\s@TemplateParameterConfiguration' {} a -> s {defaultValue = a} :: TemplateParameterConfiguration)++-- | The type of the job template parameter. Allowed values are: ‘String’,+-- ‘Number’.+templateParameterConfiguration_type :: Lens.Lens' TemplateParameterConfiguration (Prelude.Maybe TemplateParameterDataType)+templateParameterConfiguration_type = Lens.lens (\TemplateParameterConfiguration' {type'} -> type') (\s@TemplateParameterConfiguration' {} a -> s {type' = a} :: TemplateParameterConfiguration)++instance Data.FromJSON TemplateParameterConfiguration where+  parseJSON =+    Data.withObject+      "TemplateParameterConfiguration"+      ( \x ->+          TemplateParameterConfiguration'+            Prelude.<$> (x Data..:? "defaultValue")+            Prelude.<*> (x Data..:? "type")+      )++instance+  Prelude.Hashable+    TemplateParameterConfiguration+  where+  hashWithSalt+    _salt+    TemplateParameterConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` defaultValue+        `Prelude.hashWithSalt` type'++instance+  Prelude.NFData+    TemplateParameterConfiguration+  where+  rnf TemplateParameterConfiguration' {..} =+    Prelude.rnf defaultValue+      `Prelude.seq` Prelude.rnf type'++instance Data.ToJSON TemplateParameterConfiguration where+  toJSON TemplateParameterConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("defaultValue" Data..=) Prelude.<$> defaultValue,+            ("type" Data..=) Prelude.<$> type'+          ]+      )
+ gen/Amazonka/EMRContainers/Types/TemplateParameterDataType.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.EMRContainers.Types.TemplateParameterDataType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRContainers.Types.TemplateParameterDataType+  ( TemplateParameterDataType+      ( ..,+        TemplateParameterDataType_NUMBER,+        TemplateParameterDataType_STRING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype TemplateParameterDataType = TemplateParameterDataType'+  { fromTemplateParameterDataType ::+      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 TemplateParameterDataType_NUMBER :: TemplateParameterDataType+pattern TemplateParameterDataType_NUMBER = TemplateParameterDataType' "NUMBER"++pattern TemplateParameterDataType_STRING :: TemplateParameterDataType+pattern TemplateParameterDataType_STRING = TemplateParameterDataType' "STRING"++{-# COMPLETE+  TemplateParameterDataType_NUMBER,+  TemplateParameterDataType_STRING,+  TemplateParameterDataType'+  #-}
+ gen/Amazonka/EMRContainers/Types/VirtualCluster.hs view
@@ -0,0 +1,152 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRContainers.Types.VirtualCluster+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRContainers.Types.VirtualCluster where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRContainers.Types.ContainerProvider+import Amazonka.EMRContainers.Types.VirtualClusterState+import qualified Amazonka.Prelude as Prelude++-- | This entity describes a virtual cluster. A virtual cluster is a+-- Kubernetes namespace that Amazon EMR is registered with. Amazon EMR uses+-- virtual clusters to run jobs and host endpoints. Multiple virtual+-- clusters can be backed by the same physical cluster. However, each+-- virtual cluster maps to one namespace on an EKS cluster. Virtual+-- clusters do not create any active resources that contribute to your bill+-- or that require lifecycle management outside the service.+--+-- /See:/ 'newVirtualCluster' smart constructor.+data VirtualCluster = VirtualCluster'+  { -- | The ARN of the virtual cluster.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The container provider of the virtual cluster.+    containerProvider :: Prelude.Maybe ContainerProvider,+    -- | The date and time when the virtual cluster is created.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | The ID of the virtual cluster.+    id :: Prelude.Maybe Prelude.Text,+    -- | The name of the virtual cluster.+    name :: Prelude.Maybe Prelude.Text,+    -- | The state of the virtual cluster.+    state :: Prelude.Maybe VirtualClusterState,+    -- | The assigned tags of the virtual cluster.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VirtualCluster' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'virtualCluster_arn' - The ARN of the virtual cluster.+--+-- 'containerProvider', 'virtualCluster_containerProvider' - The container provider of the virtual cluster.+--+-- 'createdAt', 'virtualCluster_createdAt' - The date and time when the virtual cluster is created.+--+-- 'id', 'virtualCluster_id' - The ID of the virtual cluster.+--+-- 'name', 'virtualCluster_name' - The name of the virtual cluster.+--+-- 'state', 'virtualCluster_state' - The state of the virtual cluster.+--+-- 'tags', 'virtualCluster_tags' - The assigned tags of the virtual cluster.+newVirtualCluster ::+  VirtualCluster+newVirtualCluster =+  VirtualCluster'+    { arn = Prelude.Nothing,+      containerProvider = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      id = Prelude.Nothing,+      name = Prelude.Nothing,+      state = Prelude.Nothing,+      tags = Prelude.Nothing+    }++-- | The ARN of the virtual cluster.+virtualCluster_arn :: Lens.Lens' VirtualCluster (Prelude.Maybe Prelude.Text)+virtualCluster_arn = Lens.lens (\VirtualCluster' {arn} -> arn) (\s@VirtualCluster' {} a -> s {arn = a} :: VirtualCluster)++-- | The container provider of the virtual cluster.+virtualCluster_containerProvider :: Lens.Lens' VirtualCluster (Prelude.Maybe ContainerProvider)+virtualCluster_containerProvider = Lens.lens (\VirtualCluster' {containerProvider} -> containerProvider) (\s@VirtualCluster' {} a -> s {containerProvider = a} :: VirtualCluster)++-- | The date and time when the virtual cluster is created.+virtualCluster_createdAt :: Lens.Lens' VirtualCluster (Prelude.Maybe Prelude.UTCTime)+virtualCluster_createdAt = Lens.lens (\VirtualCluster' {createdAt} -> createdAt) (\s@VirtualCluster' {} a -> s {createdAt = a} :: VirtualCluster) Prelude.. Lens.mapping Data._Time++-- | The ID of the virtual cluster.+virtualCluster_id :: Lens.Lens' VirtualCluster (Prelude.Maybe Prelude.Text)+virtualCluster_id = Lens.lens (\VirtualCluster' {id} -> id) (\s@VirtualCluster' {} a -> s {id = a} :: VirtualCluster)++-- | The name of the virtual cluster.+virtualCluster_name :: Lens.Lens' VirtualCluster (Prelude.Maybe Prelude.Text)+virtualCluster_name = Lens.lens (\VirtualCluster' {name} -> name) (\s@VirtualCluster' {} a -> s {name = a} :: VirtualCluster)++-- | The state of the virtual cluster.+virtualCluster_state :: Lens.Lens' VirtualCluster (Prelude.Maybe VirtualClusterState)+virtualCluster_state = Lens.lens (\VirtualCluster' {state} -> state) (\s@VirtualCluster' {} a -> s {state = a} :: VirtualCluster)++-- | The assigned tags of the virtual cluster.+virtualCluster_tags :: Lens.Lens' VirtualCluster (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+virtualCluster_tags = Lens.lens (\VirtualCluster' {tags} -> tags) (\s@VirtualCluster' {} a -> s {tags = a} :: VirtualCluster) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON VirtualCluster where+  parseJSON =+    Data.withObject+      "VirtualCluster"+      ( \x ->+          VirtualCluster'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "containerProvider")+            Prelude.<*> (x Data..:? "createdAt")+            Prelude.<*> (x Data..:? "id")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "state")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable VirtualCluster where+  hashWithSalt _salt VirtualCluster' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` containerProvider+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` state+      `Prelude.hashWithSalt` tags++instance Prelude.NFData VirtualCluster where+  rnf VirtualCluster' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf containerProvider+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf state+      `Prelude.seq` Prelude.rnf tags
+ gen/Amazonka/EMRContainers/Types/VirtualClusterState.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.EMRContainers.Types.VirtualClusterState+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRContainers.Types.VirtualClusterState+  ( VirtualClusterState+      ( ..,+        VirtualClusterState_ARRESTED,+        VirtualClusterState_RUNNING,+        VirtualClusterState_TERMINATED,+        VirtualClusterState_TERMINATING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype VirtualClusterState = VirtualClusterState'+  { fromVirtualClusterState ::+      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 VirtualClusterState_ARRESTED :: VirtualClusterState+pattern VirtualClusterState_ARRESTED = VirtualClusterState' "ARRESTED"++pattern VirtualClusterState_RUNNING :: VirtualClusterState+pattern VirtualClusterState_RUNNING = VirtualClusterState' "RUNNING"++pattern VirtualClusterState_TERMINATED :: VirtualClusterState+pattern VirtualClusterState_TERMINATED = VirtualClusterState' "TERMINATED"++pattern VirtualClusterState_TERMINATING :: VirtualClusterState+pattern VirtualClusterState_TERMINATING = VirtualClusterState' "TERMINATING"++{-# COMPLETE+  VirtualClusterState_ARRESTED,+  VirtualClusterState_RUNNING,+  VirtualClusterState_TERMINATED,+  VirtualClusterState_TERMINATING,+  VirtualClusterState'+  #-}
+ gen/Amazonka/EMRContainers/UntagResource.hs view
@@ -0,0 +1,161 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRContainers.UntagResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes tags from resources.+module Amazonka.EMRContainers.UntagResource+  ( -- * Creating a Request+    UntagResource (..),+    newUntagResource,++    -- * Request Lenses+    untagResource_resourceArn,+    untagResource_tagKeys,++    -- * Destructuring the Response+    UntagResourceResponse (..),+    newUntagResourceResponse,++    -- * Response Lenses+    untagResourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRContainers.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUntagResource' smart constructor.+data UntagResource = UntagResource'+  { -- | The ARN of resources.+    resourceArn :: Prelude.Text,+    -- | The tag keys of the resources.+    tagKeys :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'untagResource_resourceArn' - The ARN of resources.+--+-- 'tagKeys', 'untagResource_tagKeys' - The tag keys of the resources.+newUntagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  UntagResource+newUntagResource pResourceArn_ =+  UntagResource'+    { resourceArn = pResourceArn_,+      tagKeys = Prelude.mempty+    }++-- | The ARN of resources.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | The tag keys of the resources.+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/EMRContainers/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.EMRContainers.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.EMRContainers.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRContainers.Lens+import Amazonka.EMRContainers.Types+import qualified Amazonka.Prelude as Prelude
+ src/.gitkeep view
+ test/Main.hs view
@@ -0,0 +1,23 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Main+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Main (main) where++import Test.Amazonka.EMRContainers+import Test.Amazonka.EMRContainers.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "EMRContainers"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/EMRContainers.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.EMRContainers+-- Copyright   : (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.EMRContainers+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/EMRContainers/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.EMRContainers.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.EMRContainers.Internal where
+ test/Test/Amazonka/Gen/EMRContainers.hs view
@@ -0,0 +1,418 @@+{-# 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.EMRContainers+-- Copyright   : (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.EMRContainers where++import Amazonka.EMRContainers+import qualified Data.Proxy as Proxy+import Test.Amazonka.EMRContainers.Internal+import Test.Amazonka.Fixture+import Test.Amazonka.Prelude+import Test.Tasty++-- Auto-generated: the actual test selection needs to be manually placed into+-- the top-level so that real test data can be incrementally added.+--+-- This commented snippet is what the entire set should look like:++-- fixtures :: TestTree+-- fixtures =+--     [ testGroup "request"+--         [ requestCancelJobRun $+--             newCancelJobRun+--+--         , requestCreateJobTemplate $+--             newCreateJobTemplate+--+--         , requestCreateManagedEndpoint $+--             newCreateManagedEndpoint+--+--         , requestCreateVirtualCluster $+--             newCreateVirtualCluster+--+--         , requestDeleteJobTemplate $+--             newDeleteJobTemplate+--+--         , requestDeleteManagedEndpoint $+--             newDeleteManagedEndpoint+--+--         , requestDeleteVirtualCluster $+--             newDeleteVirtualCluster+--+--         , requestDescribeJobRun $+--             newDescribeJobRun+--+--         , requestDescribeJobTemplate $+--             newDescribeJobTemplate+--+--         , requestDescribeManagedEndpoint $+--             newDescribeManagedEndpoint+--+--         , requestDescribeVirtualCluster $+--             newDescribeVirtualCluster+--+--         , requestListJobRuns $+--             newListJobRuns+--+--         , requestListJobTemplates $+--             newListJobTemplates+--+--         , requestListManagedEndpoints $+--             newListManagedEndpoints+--+--         , requestListTagsForResource $+--             newListTagsForResource+--+--         , requestListVirtualClusters $+--             newListVirtualClusters+--+--         , requestStartJobRun $+--             newStartJobRun+--+--         , requestTagResource $+--             newTagResource+--+--         , requestUntagResource $+--             newUntagResource+--+--           ]++--     , testGroup "response"+--         [ responseCancelJobRun $+--             newCancelJobRunResponse+--+--         , responseCreateJobTemplate $+--             newCreateJobTemplateResponse+--+--         , responseCreateManagedEndpoint $+--             newCreateManagedEndpointResponse+--+--         , responseCreateVirtualCluster $+--             newCreateVirtualClusterResponse+--+--         , responseDeleteJobTemplate $+--             newDeleteJobTemplateResponse+--+--         , responseDeleteManagedEndpoint $+--             newDeleteManagedEndpointResponse+--+--         , responseDeleteVirtualCluster $+--             newDeleteVirtualClusterResponse+--+--         , responseDescribeJobRun $+--             newDescribeJobRunResponse+--+--         , responseDescribeJobTemplate $+--             newDescribeJobTemplateResponse+--+--         , responseDescribeManagedEndpoint $+--             newDescribeManagedEndpointResponse+--+--         , responseDescribeVirtualCluster $+--             newDescribeVirtualClusterResponse+--+--         , responseListJobRuns $+--             newListJobRunsResponse+--+--         , responseListJobTemplates $+--             newListJobTemplatesResponse+--+--         , responseListManagedEndpoints $+--             newListManagedEndpointsResponse+--+--         , responseListTagsForResource $+--             newListTagsForResourceResponse+--+--         , responseListVirtualClusters $+--             newListVirtualClustersResponse+--+--         , responseStartJobRun $+--             newStartJobRunResponse+--+--         , responseTagResource $+--             newTagResourceResponse+--+--         , responseUntagResource $+--             newUntagResourceResponse+--+--           ]+--     ]++-- Requests++requestCancelJobRun :: CancelJobRun -> TestTree+requestCancelJobRun =+  req+    "CancelJobRun"+    "fixture/CancelJobRun.yaml"++requestCreateJobTemplate :: CreateJobTemplate -> TestTree+requestCreateJobTemplate =+  req+    "CreateJobTemplate"+    "fixture/CreateJobTemplate.yaml"++requestCreateManagedEndpoint :: CreateManagedEndpoint -> TestTree+requestCreateManagedEndpoint =+  req+    "CreateManagedEndpoint"+    "fixture/CreateManagedEndpoint.yaml"++requestCreateVirtualCluster :: CreateVirtualCluster -> TestTree+requestCreateVirtualCluster =+  req+    "CreateVirtualCluster"+    "fixture/CreateVirtualCluster.yaml"++requestDeleteJobTemplate :: DeleteJobTemplate -> TestTree+requestDeleteJobTemplate =+  req+    "DeleteJobTemplate"+    "fixture/DeleteJobTemplate.yaml"++requestDeleteManagedEndpoint :: DeleteManagedEndpoint -> TestTree+requestDeleteManagedEndpoint =+  req+    "DeleteManagedEndpoint"+    "fixture/DeleteManagedEndpoint.yaml"++requestDeleteVirtualCluster :: DeleteVirtualCluster -> TestTree+requestDeleteVirtualCluster =+  req+    "DeleteVirtualCluster"+    "fixture/DeleteVirtualCluster.yaml"++requestDescribeJobRun :: DescribeJobRun -> TestTree+requestDescribeJobRun =+  req+    "DescribeJobRun"+    "fixture/DescribeJobRun.yaml"++requestDescribeJobTemplate :: DescribeJobTemplate -> TestTree+requestDescribeJobTemplate =+  req+    "DescribeJobTemplate"+    "fixture/DescribeJobTemplate.yaml"++requestDescribeManagedEndpoint :: DescribeManagedEndpoint -> TestTree+requestDescribeManagedEndpoint =+  req+    "DescribeManagedEndpoint"+    "fixture/DescribeManagedEndpoint.yaml"++requestDescribeVirtualCluster :: DescribeVirtualCluster -> TestTree+requestDescribeVirtualCluster =+  req+    "DescribeVirtualCluster"+    "fixture/DescribeVirtualCluster.yaml"++requestListJobRuns :: ListJobRuns -> TestTree+requestListJobRuns =+  req+    "ListJobRuns"+    "fixture/ListJobRuns.yaml"++requestListJobTemplates :: ListJobTemplates -> TestTree+requestListJobTemplates =+  req+    "ListJobTemplates"+    "fixture/ListJobTemplates.yaml"++requestListManagedEndpoints :: ListManagedEndpoints -> TestTree+requestListManagedEndpoints =+  req+    "ListManagedEndpoints"+    "fixture/ListManagedEndpoints.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+  req+    "ListTagsForResource"+    "fixture/ListTagsForResource.yaml"++requestListVirtualClusters :: ListVirtualClusters -> TestTree+requestListVirtualClusters =+  req+    "ListVirtualClusters"+    "fixture/ListVirtualClusters.yaml"++requestStartJobRun :: StartJobRun -> TestTree+requestStartJobRun =+  req+    "StartJobRun"+    "fixture/StartJobRun.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+  req+    "TagResource"+    "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+  req+    "UntagResource"+    "fixture/UntagResource.yaml"++-- Responses++responseCancelJobRun :: CancelJobRunResponse -> TestTree+responseCancelJobRun =+  res+    "CancelJobRunResponse"+    "fixture/CancelJobRunResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CancelJobRun)++responseCreateJobTemplate :: CreateJobTemplateResponse -> TestTree+responseCreateJobTemplate =+  res+    "CreateJobTemplateResponse"+    "fixture/CreateJobTemplateResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateJobTemplate)++responseCreateManagedEndpoint :: CreateManagedEndpointResponse -> TestTree+responseCreateManagedEndpoint =+  res+    "CreateManagedEndpointResponse"+    "fixture/CreateManagedEndpointResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateManagedEndpoint)++responseCreateVirtualCluster :: CreateVirtualClusterResponse -> TestTree+responseCreateVirtualCluster =+  res+    "CreateVirtualClusterResponse"+    "fixture/CreateVirtualClusterResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateVirtualCluster)++responseDeleteJobTemplate :: DeleteJobTemplateResponse -> TestTree+responseDeleteJobTemplate =+  res+    "DeleteJobTemplateResponse"+    "fixture/DeleteJobTemplateResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteJobTemplate)++responseDeleteManagedEndpoint :: DeleteManagedEndpointResponse -> TestTree+responseDeleteManagedEndpoint =+  res+    "DeleteManagedEndpointResponse"+    "fixture/DeleteManagedEndpointResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteManagedEndpoint)++responseDeleteVirtualCluster :: DeleteVirtualClusterResponse -> TestTree+responseDeleteVirtualCluster =+  res+    "DeleteVirtualClusterResponse"+    "fixture/DeleteVirtualClusterResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteVirtualCluster)++responseDescribeJobRun :: DescribeJobRunResponse -> TestTree+responseDescribeJobRun =+  res+    "DescribeJobRunResponse"+    "fixture/DescribeJobRunResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeJobRun)++responseDescribeJobTemplate :: DescribeJobTemplateResponse -> TestTree+responseDescribeJobTemplate =+  res+    "DescribeJobTemplateResponse"+    "fixture/DescribeJobTemplateResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeJobTemplate)++responseDescribeManagedEndpoint :: DescribeManagedEndpointResponse -> TestTree+responseDescribeManagedEndpoint =+  res+    "DescribeManagedEndpointResponse"+    "fixture/DescribeManagedEndpointResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeManagedEndpoint)++responseDescribeVirtualCluster :: DescribeVirtualClusterResponse -> TestTree+responseDescribeVirtualCluster =+  res+    "DescribeVirtualClusterResponse"+    "fixture/DescribeVirtualClusterResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeVirtualCluster)++responseListJobRuns :: ListJobRunsResponse -> TestTree+responseListJobRuns =+  res+    "ListJobRunsResponse"+    "fixture/ListJobRunsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListJobRuns)++responseListJobTemplates :: ListJobTemplatesResponse -> TestTree+responseListJobTemplates =+  res+    "ListJobTemplatesResponse"+    "fixture/ListJobTemplatesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListJobTemplates)++responseListManagedEndpoints :: ListManagedEndpointsResponse -> TestTree+responseListManagedEndpoints =+  res+    "ListManagedEndpointsResponse"+    "fixture/ListManagedEndpointsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListManagedEndpoints)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+  res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responseListVirtualClusters :: ListVirtualClustersResponse -> TestTree+responseListVirtualClusters =+  res+    "ListVirtualClustersResponse"+    "fixture/ListVirtualClustersResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListVirtualClusters)++responseStartJobRun :: StartJobRunResponse -> TestTree+responseStartJobRun =+  res+    "StartJobRunResponse"+    "fixture/StartJobRunResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StartJobRun)++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)