packages feed

amazonka-emr-serverless (empty) → 2.0

raw patch · 83 files changed

+8567/−0 lines, 83 filesdep +amazonka-coredep +amazonka-emr-serverlessdep +amazonka-test

Dependencies added: amazonka-core, amazonka-emr-serverless, 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 Serverless SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2021-07-13@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-emr-serverless)+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.EMRServerless](http://hackage.haskell.org/package/amazonka-emr-serverless/docs/Amazonka-EMRServerless.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-serverless` 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-serverless.cabal view
@@ -0,0 +1,124 @@+cabal-version:      2.2+name:               amazonka-emr-serverless+version:            2.0+synopsis:           Amazon EMR Serverless 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 @2021-07-13@ 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.EMRServerless.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.EMRServerless" 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-serverless++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.EMRServerless+    Amazonka.EMRServerless.CancelJobRun+    Amazonka.EMRServerless.CreateApplication+    Amazonka.EMRServerless.DeleteApplication+    Amazonka.EMRServerless.GetApplication+    Amazonka.EMRServerless.GetDashboardForJobRun+    Amazonka.EMRServerless.GetJobRun+    Amazonka.EMRServerless.Lens+    Amazonka.EMRServerless.ListApplications+    Amazonka.EMRServerless.ListJobRuns+    Amazonka.EMRServerless.ListTagsForResource+    Amazonka.EMRServerless.StartApplication+    Amazonka.EMRServerless.StartJobRun+    Amazonka.EMRServerless.StopApplication+    Amazonka.EMRServerless.TagResource+    Amazonka.EMRServerless.Types+    Amazonka.EMRServerless.Types.Application+    Amazonka.EMRServerless.Types.ApplicationState+    Amazonka.EMRServerless.Types.ApplicationSummary+    Amazonka.EMRServerless.Types.Architecture+    Amazonka.EMRServerless.Types.AutoStartConfig+    Amazonka.EMRServerless.Types.AutoStopConfig+    Amazonka.EMRServerless.Types.Configuration+    Amazonka.EMRServerless.Types.ConfigurationOverrides+    Amazonka.EMRServerless.Types.Hive+    Amazonka.EMRServerless.Types.ImageConfiguration+    Amazonka.EMRServerless.Types.ImageConfigurationInput+    Amazonka.EMRServerless.Types.InitialCapacityConfig+    Amazonka.EMRServerless.Types.JobDriver+    Amazonka.EMRServerless.Types.JobRun+    Amazonka.EMRServerless.Types.JobRunState+    Amazonka.EMRServerless.Types.JobRunSummary+    Amazonka.EMRServerless.Types.ManagedPersistenceMonitoringConfiguration+    Amazonka.EMRServerless.Types.MaximumAllowedResources+    Amazonka.EMRServerless.Types.MonitoringConfiguration+    Amazonka.EMRServerless.Types.NetworkConfiguration+    Amazonka.EMRServerless.Types.S3MonitoringConfiguration+    Amazonka.EMRServerless.Types.SparkSubmit+    Amazonka.EMRServerless.Types.TotalResourceUtilization+    Amazonka.EMRServerless.Types.WorkerResourceConfig+    Amazonka.EMRServerless.Types.WorkerTypeSpecification+    Amazonka.EMRServerless.Types.WorkerTypeSpecificationInput+    Amazonka.EMRServerless.UntagResource+    Amazonka.EMRServerless.UpdateApplication+    Amazonka.EMRServerless.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-emr-serverless-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.EMRServerless+    Test.Amazonka.EMRServerless.Internal+    Test.Amazonka.Gen.EMRServerless++  build-depends:+    , amazonka-core            >=2.0 && <2.1+    , amazonka-emr-serverless+    , 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-serverless/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  emr-serverless.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/CreateApplication.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/emr-serverless/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  emr-serverless.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/CreateApplicationResponse.proto view
+ fixture/DeleteApplication.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/emr-serverless/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  emr-serverless.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/DeleteApplicationResponse.proto view
+ fixture/GetApplication.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/emr-serverless/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  emr-serverless.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/GetApplicationResponse.proto view
+ fixture/GetDashboardForJobRun.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/emr-serverless/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  emr-serverless.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/GetDashboardForJobRunResponse.proto view
+ fixture/GetJobRun.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/emr-serverless/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  emr-serverless.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/GetJobRunResponse.proto view
+ fixture/ListApplications.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/emr-serverless/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  emr-serverless.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/ListApplicationsResponse.proto view
+ fixture/ListJobRuns.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/emr-serverless/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  emr-serverless.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/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/emr-serverless/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  emr-serverless.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/StartApplication.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/emr-serverless/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  emr-serverless.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/StartApplicationResponse.proto view
+ fixture/StartJobRun.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/emr-serverless/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  emr-serverless.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/StopApplication.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/emr-serverless/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  emr-serverless.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/StopApplicationResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/emr-serverless/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  emr-serverless.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-serverless/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  emr-serverless.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UntagResourceResponse.proto view
+ fixture/UpdateApplication.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/emr-serverless/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  emr-serverless.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/UpdateApplicationResponse.proto view
+ gen/Amazonka/EMRServerless.hs view
@@ -0,0 +1,302 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.EMRServerless+-- 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 @2021-07-13@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- Amazon EMR Serverless is a new deployment option for Amazon EMR. EMR+-- Serverless provides a serverless runtime environment that simplifies+-- running analytics applications using the latest open source frameworks+-- such as Apache Spark and Apache Hive. With EMR Serverless, you don’t+-- have to configure, optimize, secure, or operate clusters to run+-- applications with these frameworks.+--+-- The API reference to Amazon EMR Serverless is @emr-serverless@. The+-- @emr-serverless@ prefix is used in the following scenarios:+--+-- -   It is the prefix in the CLI commands for Amazon EMR Serverless. For+--     example, @aws emr-serverless start-job-run@.+--+-- -   It is the prefix before IAM policy actions for Amazon EMR+--     Serverless. For example,+--     @\"Action\": [\"emr-serverless:StartJobRun\"]@. For more+--     information, see+--     <https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-actions Policy actions for Amazon EMR Serverless>.+--+-- -   It is the prefix used in Amazon EMR Serverless service endpoints.+--     For example, @emr-serverless.us-east-2.amazonaws.com@.+module Amazonka.EMRServerless+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** ConflictException+    _ConflictException,++    -- ** InternalServerException+    _InternalServerException,++    -- ** ResourceNotFoundException+    _ResourceNotFoundException,++    -- ** ServiceQuotaExceededException+    _ServiceQuotaExceededException,++    -- ** ValidationException+    _ValidationException,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** CancelJobRun+    CancelJobRun (CancelJobRun'),+    newCancelJobRun,+    CancelJobRunResponse (CancelJobRunResponse'),+    newCancelJobRunResponse,++    -- ** CreateApplication+    CreateApplication (CreateApplication'),+    newCreateApplication,+    CreateApplicationResponse (CreateApplicationResponse'),+    newCreateApplicationResponse,++    -- ** DeleteApplication+    DeleteApplication (DeleteApplication'),+    newDeleteApplication,+    DeleteApplicationResponse (DeleteApplicationResponse'),+    newDeleteApplicationResponse,++    -- ** GetApplication+    GetApplication (GetApplication'),+    newGetApplication,+    GetApplicationResponse (GetApplicationResponse'),+    newGetApplicationResponse,++    -- ** GetDashboardForJobRun+    GetDashboardForJobRun (GetDashboardForJobRun'),+    newGetDashboardForJobRun,+    GetDashboardForJobRunResponse (GetDashboardForJobRunResponse'),+    newGetDashboardForJobRunResponse,++    -- ** GetJobRun+    GetJobRun (GetJobRun'),+    newGetJobRun,+    GetJobRunResponse (GetJobRunResponse'),+    newGetJobRunResponse,++    -- ** ListApplications (Paginated)+    ListApplications (ListApplications'),+    newListApplications,+    ListApplicationsResponse (ListApplicationsResponse'),+    newListApplicationsResponse,++    -- ** ListJobRuns (Paginated)+    ListJobRuns (ListJobRuns'),+    newListJobRuns,+    ListJobRunsResponse (ListJobRunsResponse'),+    newListJobRunsResponse,++    -- ** ListTagsForResource+    ListTagsForResource (ListTagsForResource'),+    newListTagsForResource,+    ListTagsForResourceResponse (ListTagsForResourceResponse'),+    newListTagsForResourceResponse,++    -- ** StartApplication+    StartApplication (StartApplication'),+    newStartApplication,+    StartApplicationResponse (StartApplicationResponse'),+    newStartApplicationResponse,++    -- ** StartJobRun+    StartJobRun (StartJobRun'),+    newStartJobRun,+    StartJobRunResponse (StartJobRunResponse'),+    newStartJobRunResponse,++    -- ** StopApplication+    StopApplication (StopApplication'),+    newStopApplication,+    StopApplicationResponse (StopApplicationResponse'),+    newStopApplicationResponse,++    -- ** TagResource+    TagResource (TagResource'),+    newTagResource,+    TagResourceResponse (TagResourceResponse'),+    newTagResourceResponse,++    -- ** UntagResource+    UntagResource (UntagResource'),+    newUntagResource,+    UntagResourceResponse (UntagResourceResponse'),+    newUntagResourceResponse,++    -- ** UpdateApplication+    UpdateApplication (UpdateApplication'),+    newUpdateApplication,+    UpdateApplicationResponse (UpdateApplicationResponse'),+    newUpdateApplicationResponse,++    -- * Types++    -- ** ApplicationState+    ApplicationState (..),++    -- ** Architecture+    Architecture (..),++    -- ** JobRunState+    JobRunState (..),++    -- ** Application+    Application (Application'),+    newApplication,++    -- ** ApplicationSummary+    ApplicationSummary (ApplicationSummary'),+    newApplicationSummary,++    -- ** AutoStartConfig+    AutoStartConfig (AutoStartConfig'),+    newAutoStartConfig,++    -- ** AutoStopConfig+    AutoStopConfig (AutoStopConfig'),+    newAutoStopConfig,++    -- ** Configuration+    Configuration (Configuration'),+    newConfiguration,++    -- ** ConfigurationOverrides+    ConfigurationOverrides (ConfigurationOverrides'),+    newConfigurationOverrides,++    -- ** Hive+    Hive (Hive'),+    newHive,++    -- ** ImageConfiguration+    ImageConfiguration (ImageConfiguration'),+    newImageConfiguration,++    -- ** ImageConfigurationInput+    ImageConfigurationInput (ImageConfigurationInput'),+    newImageConfigurationInput,++    -- ** InitialCapacityConfig+    InitialCapacityConfig (InitialCapacityConfig'),+    newInitialCapacityConfig,++    -- ** JobDriver+    JobDriver (JobDriver'),+    newJobDriver,++    -- ** JobRun+    JobRun (JobRun'),+    newJobRun,++    -- ** JobRunSummary+    JobRunSummary (JobRunSummary'),+    newJobRunSummary,++    -- ** ManagedPersistenceMonitoringConfiguration+    ManagedPersistenceMonitoringConfiguration (ManagedPersistenceMonitoringConfiguration'),+    newManagedPersistenceMonitoringConfiguration,++    -- ** MaximumAllowedResources+    MaximumAllowedResources (MaximumAllowedResources'),+    newMaximumAllowedResources,++    -- ** MonitoringConfiguration+    MonitoringConfiguration (MonitoringConfiguration'),+    newMonitoringConfiguration,++    -- ** NetworkConfiguration+    NetworkConfiguration (NetworkConfiguration'),+    newNetworkConfiguration,++    -- ** S3MonitoringConfiguration+    S3MonitoringConfiguration (S3MonitoringConfiguration'),+    newS3MonitoringConfiguration,++    -- ** SparkSubmit+    SparkSubmit (SparkSubmit'),+    newSparkSubmit,++    -- ** TotalResourceUtilization+    TotalResourceUtilization (TotalResourceUtilization'),+    newTotalResourceUtilization,++    -- ** WorkerResourceConfig+    WorkerResourceConfig (WorkerResourceConfig'),+    newWorkerResourceConfig,++    -- ** WorkerTypeSpecification+    WorkerTypeSpecification (WorkerTypeSpecification'),+    newWorkerTypeSpecification,++    -- ** WorkerTypeSpecificationInput+    WorkerTypeSpecificationInput (WorkerTypeSpecificationInput'),+    newWorkerTypeSpecificationInput,+  )+where++import Amazonka.EMRServerless.CancelJobRun+import Amazonka.EMRServerless.CreateApplication+import Amazonka.EMRServerless.DeleteApplication+import Amazonka.EMRServerless.GetApplication+import Amazonka.EMRServerless.GetDashboardForJobRun+import Amazonka.EMRServerless.GetJobRun+import Amazonka.EMRServerless.Lens+import Amazonka.EMRServerless.ListApplications+import Amazonka.EMRServerless.ListJobRuns+import Amazonka.EMRServerless.ListTagsForResource+import Amazonka.EMRServerless.StartApplication+import Amazonka.EMRServerless.StartJobRun+import Amazonka.EMRServerless.StopApplication+import Amazonka.EMRServerless.TagResource+import Amazonka.EMRServerless.Types+import Amazonka.EMRServerless.UntagResource+import Amazonka.EMRServerless.UpdateApplication+import Amazonka.EMRServerless.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 'EMRServerless'.++-- $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/EMRServerless/CancelJobRun.hs view
@@ -0,0 +1,200 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRServerless.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.+module Amazonka.EMRServerless.CancelJobRun+  ( -- * Creating a Request+    CancelJobRun (..),+    newCancelJobRun,++    -- * Request Lenses+    cancelJobRun_applicationId,+    cancelJobRun_jobRunId,++    -- * Destructuring the Response+    CancelJobRunResponse (..),+    newCancelJobRunResponse,++    -- * Response Lenses+    cancelJobRunResponse_httpStatus,+    cancelJobRunResponse_applicationId,+    cancelJobRunResponse_jobRunId,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRServerless.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 application on which the job run will be canceled.+    applicationId :: Prelude.Text,+    -- | The ID of the job run to cancel.+    jobRunId :: 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:+--+-- 'applicationId', 'cancelJobRun_applicationId' - The ID of the application on which the job run will be canceled.+--+-- 'jobRunId', 'cancelJobRun_jobRunId' - The ID of the job run to cancel.+newCancelJobRun ::+  -- | 'applicationId'+  Prelude.Text ->+  -- | 'jobRunId'+  Prelude.Text ->+  CancelJobRun+newCancelJobRun pApplicationId_ pJobRunId_ =+  CancelJobRun'+    { applicationId = pApplicationId_,+      jobRunId = pJobRunId_+    }++-- | The ID of the application on which the job run will be canceled.+cancelJobRun_applicationId :: Lens.Lens' CancelJobRun Prelude.Text+cancelJobRun_applicationId = Lens.lens (\CancelJobRun' {applicationId} -> applicationId) (\s@CancelJobRun' {} a -> s {applicationId = a} :: CancelJobRun)++-- | The ID of the job run to cancel.+cancelJobRun_jobRunId :: Lens.Lens' CancelJobRun Prelude.Text+cancelJobRun_jobRunId = Lens.lens (\CancelJobRun' {jobRunId} -> jobRunId) (\s@CancelJobRun' {} a -> s {jobRunId = 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.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "applicationId")+            Prelude.<*> (x Data..:> "jobRunId")+      )++instance Prelude.Hashable CancelJobRun where+  hashWithSalt _salt CancelJobRun' {..} =+    _salt+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` jobRunId++instance Prelude.NFData CancelJobRun where+  rnf CancelJobRun' {..} =+    Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf jobRunId++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+      [ "/applications/",+        Data.toBS applicationId,+        "/jobruns/",+        Data.toBS jobRunId+      ]++instance Data.ToQuery CancelJobRun where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCancelJobRunResponse' smart constructor.+data CancelJobRunResponse = CancelJobRunResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The output contains the application ID on which the job run is+    -- cancelled.+    applicationId :: Prelude.Text,+    -- | The output contains the ID of the cancelled job run.+    jobRunId :: Prelude.Text+  }+  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:+--+-- 'httpStatus', 'cancelJobRunResponse_httpStatus' - The response's http status code.+--+-- 'applicationId', 'cancelJobRunResponse_applicationId' - The output contains the application ID on which the job run is+-- cancelled.+--+-- 'jobRunId', 'cancelJobRunResponse_jobRunId' - The output contains the ID of the cancelled job run.+newCancelJobRunResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'applicationId'+  Prelude.Text ->+  -- | 'jobRunId'+  Prelude.Text ->+  CancelJobRunResponse+newCancelJobRunResponse+  pHttpStatus_+  pApplicationId_+  pJobRunId_ =+    CancelJobRunResponse'+      { httpStatus = pHttpStatus_,+        applicationId = pApplicationId_,+        jobRunId = pJobRunId_+      }++-- | 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)++-- | The output contains the application ID on which the job run is+-- cancelled.+cancelJobRunResponse_applicationId :: Lens.Lens' CancelJobRunResponse Prelude.Text+cancelJobRunResponse_applicationId = Lens.lens (\CancelJobRunResponse' {applicationId} -> applicationId) (\s@CancelJobRunResponse' {} a -> s {applicationId = a} :: CancelJobRunResponse)++-- | The output contains the ID of the cancelled job run.+cancelJobRunResponse_jobRunId :: Lens.Lens' CancelJobRunResponse Prelude.Text+cancelJobRunResponse_jobRunId = Lens.lens (\CancelJobRunResponse' {jobRunId} -> jobRunId) (\s@CancelJobRunResponse' {} a -> s {jobRunId = a} :: CancelJobRunResponse)++instance Prelude.NFData CancelJobRunResponse where+  rnf CancelJobRunResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf jobRunId
+ gen/Amazonka/EMRServerless/CreateApplication.hs view
@@ -0,0 +1,411 @@+{-# 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.EMRServerless.CreateApplication+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an application.+module Amazonka.EMRServerless.CreateApplication+  ( -- * Creating a Request+    CreateApplication (..),+    newCreateApplication,++    -- * Request Lenses+    createApplication_architecture,+    createApplication_autoStartConfiguration,+    createApplication_autoStopConfiguration,+    createApplication_imageConfiguration,+    createApplication_initialCapacity,+    createApplication_maximumCapacity,+    createApplication_name,+    createApplication_networkConfiguration,+    createApplication_tags,+    createApplication_workerTypeSpecifications,+    createApplication_releaseLabel,+    createApplication_type,+    createApplication_clientToken,++    -- * Destructuring the Response+    CreateApplicationResponse (..),+    newCreateApplicationResponse,++    -- * Response Lenses+    createApplicationResponse_name,+    createApplicationResponse_httpStatus,+    createApplicationResponse_applicationId,+    createApplicationResponse_arn,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateApplication' smart constructor.+data CreateApplication = CreateApplication'+  { -- | The CPU architecture of an application.+    architecture :: Prelude.Maybe Architecture,+    -- | The configuration for an application to automatically start on job+    -- submission.+    autoStartConfiguration :: Prelude.Maybe AutoStartConfig,+    -- | The configuration for an application to automatically stop after a+    -- certain amount of time being idle.+    autoStopConfiguration :: Prelude.Maybe AutoStopConfig,+    -- | The image configuration for all worker types. You can either set this+    -- parameter or @imageConfiguration@ for each worker type in+    -- @workerTypeSpecifications@.+    imageConfiguration :: Prelude.Maybe ImageConfigurationInput,+    -- | The capacity to initialize when the application is created.+    initialCapacity :: Prelude.Maybe (Prelude.HashMap Prelude.Text InitialCapacityConfig),+    -- | The maximum capacity to allocate when the application is created. This+    -- is cumulative across all workers at any given point in time, not just+    -- when an application is created. No new resources will be created once+    -- any one of the defined limits is hit.+    maximumCapacity :: Prelude.Maybe MaximumAllowedResources,+    -- | The name of the application.+    name :: Prelude.Maybe Prelude.Text,+    -- | The network configuration for customer VPC connectivity.+    networkConfiguration :: Prelude.Maybe NetworkConfiguration,+    -- | The tags assigned to the application.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The key-value pairs that specify worker type to+    -- @WorkerTypeSpecificationInput@. This parameter must contain all valid+    -- worker types for a Spark or Hive application. Valid worker types include+    -- @Driver@ and @Executor@ for Spark applications and @HiveDriver@ and+    -- @TezTask@ for Hive applications. You can either set image details in+    -- this parameter for each worker type, or in @imageConfiguration@ for all+    -- worker types.+    workerTypeSpecifications :: Prelude.Maybe (Prelude.HashMap Prelude.Text WorkerTypeSpecificationInput),+    -- | The EMR release associated with the application.+    releaseLabel :: Prelude.Text,+    -- | The type of application you want to start, such as Spark or Hive.+    type' :: Prelude.Text,+    -- | The client idempotency token of the application to create. Its value+    -- must be unique for each request.+    clientToken :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateApplication' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'architecture', 'createApplication_architecture' - The CPU architecture of an application.+--+-- 'autoStartConfiguration', 'createApplication_autoStartConfiguration' - The configuration for an application to automatically start on job+-- submission.+--+-- 'autoStopConfiguration', 'createApplication_autoStopConfiguration' - The configuration for an application to automatically stop after a+-- certain amount of time being idle.+--+-- 'imageConfiguration', 'createApplication_imageConfiguration' - The image configuration for all worker types. You can either set this+-- parameter or @imageConfiguration@ for each worker type in+-- @workerTypeSpecifications@.+--+-- 'initialCapacity', 'createApplication_initialCapacity' - The capacity to initialize when the application is created.+--+-- 'maximumCapacity', 'createApplication_maximumCapacity' - The maximum capacity to allocate when the application is created. This+-- is cumulative across all workers at any given point in time, not just+-- when an application is created. No new resources will be created once+-- any one of the defined limits is hit.+--+-- 'name', 'createApplication_name' - The name of the application.+--+-- 'networkConfiguration', 'createApplication_networkConfiguration' - The network configuration for customer VPC connectivity.+--+-- 'tags', 'createApplication_tags' - The tags assigned to the application.+--+-- 'workerTypeSpecifications', 'createApplication_workerTypeSpecifications' - The key-value pairs that specify worker type to+-- @WorkerTypeSpecificationInput@. This parameter must contain all valid+-- worker types for a Spark or Hive application. Valid worker types include+-- @Driver@ and @Executor@ for Spark applications and @HiveDriver@ and+-- @TezTask@ for Hive applications. You can either set image details in+-- this parameter for each worker type, or in @imageConfiguration@ for all+-- worker types.+--+-- 'releaseLabel', 'createApplication_releaseLabel' - The EMR release associated with the application.+--+-- 'type'', 'createApplication_type' - The type of application you want to start, such as Spark or Hive.+--+-- 'clientToken', 'createApplication_clientToken' - The client idempotency token of the application to create. Its value+-- must be unique for each request.+newCreateApplication ::+  -- | 'releaseLabel'+  Prelude.Text ->+  -- | 'type''+  Prelude.Text ->+  -- | 'clientToken'+  Prelude.Text ->+  CreateApplication+newCreateApplication+  pReleaseLabel_+  pType_+  pClientToken_ =+    CreateApplication'+      { architecture = Prelude.Nothing,+        autoStartConfiguration = Prelude.Nothing,+        autoStopConfiguration = Prelude.Nothing,+        imageConfiguration = Prelude.Nothing,+        initialCapacity = Prelude.Nothing,+        maximumCapacity = Prelude.Nothing,+        name = Prelude.Nothing,+        networkConfiguration = Prelude.Nothing,+        tags = Prelude.Nothing,+        workerTypeSpecifications = Prelude.Nothing,+        releaseLabel = pReleaseLabel_,+        type' = pType_,+        clientToken = pClientToken_+      }++-- | The CPU architecture of an application.+createApplication_architecture :: Lens.Lens' CreateApplication (Prelude.Maybe Architecture)+createApplication_architecture = Lens.lens (\CreateApplication' {architecture} -> architecture) (\s@CreateApplication' {} a -> s {architecture = a} :: CreateApplication)++-- | The configuration for an application to automatically start on job+-- submission.+createApplication_autoStartConfiguration :: Lens.Lens' CreateApplication (Prelude.Maybe AutoStartConfig)+createApplication_autoStartConfiguration = Lens.lens (\CreateApplication' {autoStartConfiguration} -> autoStartConfiguration) (\s@CreateApplication' {} a -> s {autoStartConfiguration = a} :: CreateApplication)++-- | The configuration for an application to automatically stop after a+-- certain amount of time being idle.+createApplication_autoStopConfiguration :: Lens.Lens' CreateApplication (Prelude.Maybe AutoStopConfig)+createApplication_autoStopConfiguration = Lens.lens (\CreateApplication' {autoStopConfiguration} -> autoStopConfiguration) (\s@CreateApplication' {} a -> s {autoStopConfiguration = a} :: CreateApplication)++-- | The image configuration for all worker types. You can either set this+-- parameter or @imageConfiguration@ for each worker type in+-- @workerTypeSpecifications@.+createApplication_imageConfiguration :: Lens.Lens' CreateApplication (Prelude.Maybe ImageConfigurationInput)+createApplication_imageConfiguration = Lens.lens (\CreateApplication' {imageConfiguration} -> imageConfiguration) (\s@CreateApplication' {} a -> s {imageConfiguration = a} :: CreateApplication)++-- | The capacity to initialize when the application is created.+createApplication_initialCapacity :: Lens.Lens' CreateApplication (Prelude.Maybe (Prelude.HashMap Prelude.Text InitialCapacityConfig))+createApplication_initialCapacity = Lens.lens (\CreateApplication' {initialCapacity} -> initialCapacity) (\s@CreateApplication' {} a -> s {initialCapacity = a} :: CreateApplication) Prelude.. Lens.mapping Lens.coerced++-- | The maximum capacity to allocate when the application is created. This+-- is cumulative across all workers at any given point in time, not just+-- when an application is created. No new resources will be created once+-- any one of the defined limits is hit.+createApplication_maximumCapacity :: Lens.Lens' CreateApplication (Prelude.Maybe MaximumAllowedResources)+createApplication_maximumCapacity = Lens.lens (\CreateApplication' {maximumCapacity} -> maximumCapacity) (\s@CreateApplication' {} a -> s {maximumCapacity = a} :: CreateApplication)++-- | The name of the application.+createApplication_name :: Lens.Lens' CreateApplication (Prelude.Maybe Prelude.Text)+createApplication_name = Lens.lens (\CreateApplication' {name} -> name) (\s@CreateApplication' {} a -> s {name = a} :: CreateApplication)++-- | The network configuration for customer VPC connectivity.+createApplication_networkConfiguration :: Lens.Lens' CreateApplication (Prelude.Maybe NetworkConfiguration)+createApplication_networkConfiguration = Lens.lens (\CreateApplication' {networkConfiguration} -> networkConfiguration) (\s@CreateApplication' {} a -> s {networkConfiguration = a} :: CreateApplication)++-- | The tags assigned to the application.+createApplication_tags :: Lens.Lens' CreateApplication (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createApplication_tags = Lens.lens (\CreateApplication' {tags} -> tags) (\s@CreateApplication' {} a -> s {tags = a} :: CreateApplication) Prelude.. Lens.mapping Lens.coerced++-- | The key-value pairs that specify worker type to+-- @WorkerTypeSpecificationInput@. This parameter must contain all valid+-- worker types for a Spark or Hive application. Valid worker types include+-- @Driver@ and @Executor@ for Spark applications and @HiveDriver@ and+-- @TezTask@ for Hive applications. You can either set image details in+-- this parameter for each worker type, or in @imageConfiguration@ for all+-- worker types.+createApplication_workerTypeSpecifications :: Lens.Lens' CreateApplication (Prelude.Maybe (Prelude.HashMap Prelude.Text WorkerTypeSpecificationInput))+createApplication_workerTypeSpecifications = Lens.lens (\CreateApplication' {workerTypeSpecifications} -> workerTypeSpecifications) (\s@CreateApplication' {} a -> s {workerTypeSpecifications = a} :: CreateApplication) Prelude.. Lens.mapping Lens.coerced++-- | The EMR release associated with the application.+createApplication_releaseLabel :: Lens.Lens' CreateApplication Prelude.Text+createApplication_releaseLabel = Lens.lens (\CreateApplication' {releaseLabel} -> releaseLabel) (\s@CreateApplication' {} a -> s {releaseLabel = a} :: CreateApplication)++-- | The type of application you want to start, such as Spark or Hive.+createApplication_type :: Lens.Lens' CreateApplication Prelude.Text+createApplication_type = Lens.lens (\CreateApplication' {type'} -> type') (\s@CreateApplication' {} a -> s {type' = a} :: CreateApplication)++-- | The client idempotency token of the application to create. Its value+-- must be unique for each request.+createApplication_clientToken :: Lens.Lens' CreateApplication Prelude.Text+createApplication_clientToken = Lens.lens (\CreateApplication' {clientToken} -> clientToken) (\s@CreateApplication' {} a -> s {clientToken = a} :: CreateApplication)++instance Core.AWSRequest CreateApplication where+  type+    AWSResponse CreateApplication =+      CreateApplicationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateApplicationResponse'+            Prelude.<$> (x Data..?> "name")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "applicationId")+            Prelude.<*> (x Data..:> "arn")+      )++instance Prelude.Hashable CreateApplication where+  hashWithSalt _salt CreateApplication' {..} =+    _salt+      `Prelude.hashWithSalt` architecture+      `Prelude.hashWithSalt` autoStartConfiguration+      `Prelude.hashWithSalt` autoStopConfiguration+      `Prelude.hashWithSalt` imageConfiguration+      `Prelude.hashWithSalt` initialCapacity+      `Prelude.hashWithSalt` maximumCapacity+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` networkConfiguration+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` workerTypeSpecifications+      `Prelude.hashWithSalt` releaseLabel+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` clientToken++instance Prelude.NFData CreateApplication where+  rnf CreateApplication' {..} =+    Prelude.rnf architecture+      `Prelude.seq` Prelude.rnf autoStartConfiguration+      `Prelude.seq` Prelude.rnf autoStopConfiguration+      `Prelude.seq` Prelude.rnf imageConfiguration+      `Prelude.seq` Prelude.rnf initialCapacity+      `Prelude.seq` Prelude.rnf maximumCapacity+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf networkConfiguration+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf workerTypeSpecifications+      `Prelude.seq` Prelude.rnf releaseLabel+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf clientToken++instance Data.ToHeaders CreateApplication where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateApplication where+  toJSON CreateApplication' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("architecture" Data..=) Prelude.<$> architecture,+            ("autoStartConfiguration" Data..=)+              Prelude.<$> autoStartConfiguration,+            ("autoStopConfiguration" Data..=)+              Prelude.<$> autoStopConfiguration,+            ("imageConfiguration" Data..=)+              Prelude.<$> imageConfiguration,+            ("initialCapacity" Data..=)+              Prelude.<$> initialCapacity,+            ("maximumCapacity" Data..=)+              Prelude.<$> maximumCapacity,+            ("name" Data..=) Prelude.<$> name,+            ("networkConfiguration" Data..=)+              Prelude.<$> networkConfiguration,+            ("tags" Data..=) Prelude.<$> tags,+            ("workerTypeSpecifications" Data..=)+              Prelude.<$> workerTypeSpecifications,+            Prelude.Just ("releaseLabel" Data..= releaseLabel),+            Prelude.Just ("type" Data..= type'),+            Prelude.Just ("clientToken" Data..= clientToken)+          ]+      )++instance Data.ToPath CreateApplication where+  toPath = Prelude.const "/applications"++instance Data.ToQuery CreateApplication where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateApplicationResponse' smart constructor.+data CreateApplicationResponse = CreateApplicationResponse'+  { -- | The output contains the name of the application.+    name :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The output contains the application ID.+    applicationId :: Prelude.Text,+    -- | The output contains the ARN of the application.+    arn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateApplicationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'createApplicationResponse_name' - The output contains the name of the application.+--+-- 'httpStatus', 'createApplicationResponse_httpStatus' - The response's http status code.+--+-- 'applicationId', 'createApplicationResponse_applicationId' - The output contains the application ID.+--+-- 'arn', 'createApplicationResponse_arn' - The output contains the ARN of the application.+newCreateApplicationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'applicationId'+  Prelude.Text ->+  -- | 'arn'+  Prelude.Text ->+  CreateApplicationResponse+newCreateApplicationResponse+  pHttpStatus_+  pApplicationId_+  pArn_ =+    CreateApplicationResponse'+      { name = Prelude.Nothing,+        httpStatus = pHttpStatus_,+        applicationId = pApplicationId_,+        arn = pArn_+      }++-- | The output contains the name of the application.+createApplicationResponse_name :: Lens.Lens' CreateApplicationResponse (Prelude.Maybe Prelude.Text)+createApplicationResponse_name = Lens.lens (\CreateApplicationResponse' {name} -> name) (\s@CreateApplicationResponse' {} a -> s {name = a} :: CreateApplicationResponse)++-- | The response's http status code.+createApplicationResponse_httpStatus :: Lens.Lens' CreateApplicationResponse Prelude.Int+createApplicationResponse_httpStatus = Lens.lens (\CreateApplicationResponse' {httpStatus} -> httpStatus) (\s@CreateApplicationResponse' {} a -> s {httpStatus = a} :: CreateApplicationResponse)++-- | The output contains the application ID.+createApplicationResponse_applicationId :: Lens.Lens' CreateApplicationResponse Prelude.Text+createApplicationResponse_applicationId = Lens.lens (\CreateApplicationResponse' {applicationId} -> applicationId) (\s@CreateApplicationResponse' {} a -> s {applicationId = a} :: CreateApplicationResponse)++-- | The output contains the ARN of the application.+createApplicationResponse_arn :: Lens.Lens' CreateApplicationResponse Prelude.Text+createApplicationResponse_arn = Lens.lens (\CreateApplicationResponse' {arn} -> arn) (\s@CreateApplicationResponse' {} a -> s {arn = a} :: CreateApplicationResponse)++instance Prelude.NFData CreateApplicationResponse where+  rnf CreateApplicationResponse' {..} =+    Prelude.rnf name+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf arn
+ gen/Amazonka/EMRServerless/DeleteApplication.hs view
@@ -0,0 +1,149 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRServerless.DeleteApplication+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an application. An application has to be in a stopped or created+-- state in order to be deleted.+module Amazonka.EMRServerless.DeleteApplication+  ( -- * Creating a Request+    DeleteApplication (..),+    newDeleteApplication,++    -- * Request Lenses+    deleteApplication_applicationId,++    -- * Destructuring the Response+    DeleteApplicationResponse (..),+    newDeleteApplicationResponse,++    -- * Response Lenses+    deleteApplicationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteApplication' smart constructor.+data DeleteApplication = DeleteApplication'+  { -- | The ID of the application that will be deleted.+    applicationId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteApplication' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'applicationId', 'deleteApplication_applicationId' - The ID of the application that will be deleted.+newDeleteApplication ::+  -- | 'applicationId'+  Prelude.Text ->+  DeleteApplication+newDeleteApplication pApplicationId_ =+  DeleteApplication' {applicationId = pApplicationId_}++-- | The ID of the application that will be deleted.+deleteApplication_applicationId :: Lens.Lens' DeleteApplication Prelude.Text+deleteApplication_applicationId = Lens.lens (\DeleteApplication' {applicationId} -> applicationId) (\s@DeleteApplication' {} a -> s {applicationId = a} :: DeleteApplication)++instance Core.AWSRequest DeleteApplication where+  type+    AWSResponse DeleteApplication =+      DeleteApplicationResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteApplicationResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteApplication where+  hashWithSalt _salt DeleteApplication' {..} =+    _salt `Prelude.hashWithSalt` applicationId++instance Prelude.NFData DeleteApplication where+  rnf DeleteApplication' {..} =+    Prelude.rnf applicationId++instance Data.ToHeaders DeleteApplication where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteApplication where+  toPath DeleteApplication' {..} =+    Prelude.mconcat+      ["/applications/", Data.toBS applicationId]++instance Data.ToQuery DeleteApplication where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteApplicationResponse' smart constructor.+data DeleteApplicationResponse = DeleteApplicationResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteApplicationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteApplicationResponse_httpStatus' - The response's http status code.+newDeleteApplicationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteApplicationResponse+newDeleteApplicationResponse pHttpStatus_ =+  DeleteApplicationResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deleteApplicationResponse_httpStatus :: Lens.Lens' DeleteApplicationResponse Prelude.Int+deleteApplicationResponse_httpStatus = Lens.lens (\DeleteApplicationResponse' {httpStatus} -> httpStatus) (\s@DeleteApplicationResponse' {} a -> s {httpStatus = a} :: DeleteApplicationResponse)++instance Prelude.NFData DeleteApplicationResponse where+  rnf DeleteApplicationResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/EMRServerless/GetApplication.hs view
@@ -0,0 +1,160 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRServerless.GetApplication+-- 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 application.+module Amazonka.EMRServerless.GetApplication+  ( -- * Creating a Request+    GetApplication (..),+    newGetApplication,++    -- * Request Lenses+    getApplication_applicationId,++    -- * Destructuring the Response+    GetApplicationResponse (..),+    newGetApplicationResponse,++    -- * Response Lenses+    getApplicationResponse_httpStatus,+    getApplicationResponse_application,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetApplication' smart constructor.+data GetApplication = GetApplication'+  { -- | The ID of the application that will be described.+    applicationId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetApplication' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'applicationId', 'getApplication_applicationId' - The ID of the application that will be described.+newGetApplication ::+  -- | 'applicationId'+  Prelude.Text ->+  GetApplication+newGetApplication pApplicationId_ =+  GetApplication' {applicationId = pApplicationId_}++-- | The ID of the application that will be described.+getApplication_applicationId :: Lens.Lens' GetApplication Prelude.Text+getApplication_applicationId = Lens.lens (\GetApplication' {applicationId} -> applicationId) (\s@GetApplication' {} a -> s {applicationId = a} :: GetApplication)++instance Core.AWSRequest GetApplication where+  type+    AWSResponse GetApplication =+      GetApplicationResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetApplicationResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "application")+      )++instance Prelude.Hashable GetApplication where+  hashWithSalt _salt GetApplication' {..} =+    _salt `Prelude.hashWithSalt` applicationId++instance Prelude.NFData GetApplication where+  rnf GetApplication' {..} = Prelude.rnf applicationId++instance Data.ToHeaders GetApplication where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetApplication where+  toPath GetApplication' {..} =+    Prelude.mconcat+      ["/applications/", Data.toBS applicationId]++instance Data.ToQuery GetApplication where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetApplicationResponse' smart constructor.+data GetApplicationResponse = GetApplicationResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The output displays information about the specified application.+    application :: Application+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetApplicationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getApplicationResponse_httpStatus' - The response's http status code.+--+-- 'application', 'getApplicationResponse_application' - The output displays information about the specified application.+newGetApplicationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'application'+  Application ->+  GetApplicationResponse+newGetApplicationResponse pHttpStatus_ pApplication_ =+  GetApplicationResponse'+    { httpStatus = pHttpStatus_,+      application = pApplication_+    }++-- | The response's http status code.+getApplicationResponse_httpStatus :: Lens.Lens' GetApplicationResponse Prelude.Int+getApplicationResponse_httpStatus = Lens.lens (\GetApplicationResponse' {httpStatus} -> httpStatus) (\s@GetApplicationResponse' {} a -> s {httpStatus = a} :: GetApplicationResponse)++-- | The output displays information about the specified application.+getApplicationResponse_application :: Lens.Lens' GetApplicationResponse Application+getApplicationResponse_application = Lens.lens (\GetApplicationResponse' {application} -> application) (\s@GetApplicationResponse' {} a -> s {application = a} :: GetApplicationResponse)++instance Prelude.NFData GetApplicationResponse where+  rnf GetApplicationResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf application
+ gen/Amazonka/EMRServerless/GetDashboardForJobRun.hs view
@@ -0,0 +1,183 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRServerless.GetDashboardForJobRun+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a URL to access the job run dashboard.+module Amazonka.EMRServerless.GetDashboardForJobRun+  ( -- * Creating a Request+    GetDashboardForJobRun (..),+    newGetDashboardForJobRun,++    -- * Request Lenses+    getDashboardForJobRun_applicationId,+    getDashboardForJobRun_jobRunId,++    -- * Destructuring the Response+    GetDashboardForJobRunResponse (..),+    newGetDashboardForJobRunResponse,++    -- * Response Lenses+    getDashboardForJobRunResponse_url,+    getDashboardForJobRunResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetDashboardForJobRun' smart constructor.+data GetDashboardForJobRun = GetDashboardForJobRun'+  { -- | The ID of the application.+    applicationId :: Prelude.Text,+    -- | The ID of the job run.+    jobRunId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDashboardForJobRun' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'applicationId', 'getDashboardForJobRun_applicationId' - The ID of the application.+--+-- 'jobRunId', 'getDashboardForJobRun_jobRunId' - The ID of the job run.+newGetDashboardForJobRun ::+  -- | 'applicationId'+  Prelude.Text ->+  -- | 'jobRunId'+  Prelude.Text ->+  GetDashboardForJobRun+newGetDashboardForJobRun pApplicationId_ pJobRunId_ =+  GetDashboardForJobRun'+    { applicationId =+        pApplicationId_,+      jobRunId = pJobRunId_+    }++-- | The ID of the application.+getDashboardForJobRun_applicationId :: Lens.Lens' GetDashboardForJobRun Prelude.Text+getDashboardForJobRun_applicationId = Lens.lens (\GetDashboardForJobRun' {applicationId} -> applicationId) (\s@GetDashboardForJobRun' {} a -> s {applicationId = a} :: GetDashboardForJobRun)++-- | The ID of the job run.+getDashboardForJobRun_jobRunId :: Lens.Lens' GetDashboardForJobRun Prelude.Text+getDashboardForJobRun_jobRunId = Lens.lens (\GetDashboardForJobRun' {jobRunId} -> jobRunId) (\s@GetDashboardForJobRun' {} a -> s {jobRunId = a} :: GetDashboardForJobRun)++instance Core.AWSRequest GetDashboardForJobRun where+  type+    AWSResponse GetDashboardForJobRun =+      GetDashboardForJobRunResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetDashboardForJobRunResponse'+            Prelude.<$> (x Data..?> "url")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetDashboardForJobRun where+  hashWithSalt _salt GetDashboardForJobRun' {..} =+    _salt+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` jobRunId++instance Prelude.NFData GetDashboardForJobRun where+  rnf GetDashboardForJobRun' {..} =+    Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf jobRunId++instance Data.ToHeaders GetDashboardForJobRun where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetDashboardForJobRun where+  toPath GetDashboardForJobRun' {..} =+    Prelude.mconcat+      [ "/applications/",+        Data.toBS applicationId,+        "/jobruns/",+        Data.toBS jobRunId,+        "/dashboard"+      ]++instance Data.ToQuery GetDashboardForJobRun where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetDashboardForJobRunResponse' smart constructor.+data GetDashboardForJobRunResponse = GetDashboardForJobRunResponse'+  { -- | The URL to view job run\'s dashboard.+    url :: 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 'GetDashboardForJobRunResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'url', 'getDashboardForJobRunResponse_url' - The URL to view job run\'s dashboard.+--+-- 'httpStatus', 'getDashboardForJobRunResponse_httpStatus' - The response's http status code.+newGetDashboardForJobRunResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetDashboardForJobRunResponse+newGetDashboardForJobRunResponse pHttpStatus_ =+  GetDashboardForJobRunResponse'+    { url =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The URL to view job run\'s dashboard.+getDashboardForJobRunResponse_url :: Lens.Lens' GetDashboardForJobRunResponse (Prelude.Maybe Prelude.Text)+getDashboardForJobRunResponse_url = Lens.lens (\GetDashboardForJobRunResponse' {url} -> url) (\s@GetDashboardForJobRunResponse' {} a -> s {url = a} :: GetDashboardForJobRunResponse)++-- | The response's http status code.+getDashboardForJobRunResponse_httpStatus :: Lens.Lens' GetDashboardForJobRunResponse Prelude.Int+getDashboardForJobRunResponse_httpStatus = Lens.lens (\GetDashboardForJobRunResponse' {httpStatus} -> httpStatus) (\s@GetDashboardForJobRunResponse' {} a -> s {httpStatus = a} :: GetDashboardForJobRunResponse)++instance Prelude.NFData GetDashboardForJobRunResponse where+  rnf GetDashboardForJobRunResponse' {..} =+    Prelude.rnf url+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EMRServerless/GetJobRun.hs view
@@ -0,0 +1,180 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRServerless.GetJobRun+-- 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.+module Amazonka.EMRServerless.GetJobRun+  ( -- * Creating a Request+    GetJobRun (..),+    newGetJobRun,++    -- * Request Lenses+    getJobRun_applicationId,+    getJobRun_jobRunId,++    -- * Destructuring the Response+    GetJobRunResponse (..),+    newGetJobRunResponse,++    -- * Response Lenses+    getJobRunResponse_httpStatus,+    getJobRunResponse_jobRun,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetJobRun' smart constructor.+data GetJobRun = GetJobRun'+  { -- | The ID of the application on which the job run is submitted.+    applicationId :: Prelude.Text,+    -- | The ID of the job run.+    jobRunId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetJobRun' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'applicationId', 'getJobRun_applicationId' - The ID of the application on which the job run is submitted.+--+-- 'jobRunId', 'getJobRun_jobRunId' - The ID of the job run.+newGetJobRun ::+  -- | 'applicationId'+  Prelude.Text ->+  -- | 'jobRunId'+  Prelude.Text ->+  GetJobRun+newGetJobRun pApplicationId_ pJobRunId_ =+  GetJobRun'+    { applicationId = pApplicationId_,+      jobRunId = pJobRunId_+    }++-- | The ID of the application on which the job run is submitted.+getJobRun_applicationId :: Lens.Lens' GetJobRun Prelude.Text+getJobRun_applicationId = Lens.lens (\GetJobRun' {applicationId} -> applicationId) (\s@GetJobRun' {} a -> s {applicationId = a} :: GetJobRun)++-- | The ID of the job run.+getJobRun_jobRunId :: Lens.Lens' GetJobRun Prelude.Text+getJobRun_jobRunId = Lens.lens (\GetJobRun' {jobRunId} -> jobRunId) (\s@GetJobRun' {} a -> s {jobRunId = a} :: GetJobRun)++instance Core.AWSRequest GetJobRun where+  type AWSResponse GetJobRun = GetJobRunResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetJobRunResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "jobRun")+      )++instance Prelude.Hashable GetJobRun where+  hashWithSalt _salt GetJobRun' {..} =+    _salt+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` jobRunId++instance Prelude.NFData GetJobRun where+  rnf GetJobRun' {..} =+    Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf jobRunId++instance Data.ToHeaders GetJobRun where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetJobRun where+  toPath GetJobRun' {..} =+    Prelude.mconcat+      [ "/applications/",+        Data.toBS applicationId,+        "/jobruns/",+        Data.toBS jobRunId+      ]++instance Data.ToQuery GetJobRun where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetJobRunResponse' smart constructor.+data GetJobRunResponse = GetJobRunResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The output displays information about the job run.+    jobRun :: JobRun+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetJobRunResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getJobRunResponse_httpStatus' - The response's http status code.+--+-- 'jobRun', 'getJobRunResponse_jobRun' - The output displays information about the job run.+newGetJobRunResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'jobRun'+  JobRun ->+  GetJobRunResponse+newGetJobRunResponse pHttpStatus_ pJobRun_ =+  GetJobRunResponse'+    { httpStatus = pHttpStatus_,+      jobRun = pJobRun_+    }++-- | The response's http status code.+getJobRunResponse_httpStatus :: Lens.Lens' GetJobRunResponse Prelude.Int+getJobRunResponse_httpStatus = Lens.lens (\GetJobRunResponse' {httpStatus} -> httpStatus) (\s@GetJobRunResponse' {} a -> s {httpStatus = a} :: GetJobRunResponse)++-- | The output displays information about the job run.+getJobRunResponse_jobRun :: Lens.Lens' GetJobRunResponse JobRun+getJobRunResponse_jobRun = Lens.lens (\GetJobRunResponse' {jobRun} -> jobRun) (\s@GetJobRunResponse' {} a -> s {jobRun = a} :: GetJobRunResponse)++instance Prelude.NFData GetJobRunResponse where+  rnf GetJobRunResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf jobRun
+ gen/Amazonka/EMRServerless/Lens.hs view
@@ -0,0 +1,318 @@+{-# 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.EMRServerless.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.EMRServerless.Lens+  ( -- * Operations++    -- ** CancelJobRun+    cancelJobRun_applicationId,+    cancelJobRun_jobRunId,+    cancelJobRunResponse_httpStatus,+    cancelJobRunResponse_applicationId,+    cancelJobRunResponse_jobRunId,++    -- ** CreateApplication+    createApplication_architecture,+    createApplication_autoStartConfiguration,+    createApplication_autoStopConfiguration,+    createApplication_imageConfiguration,+    createApplication_initialCapacity,+    createApplication_maximumCapacity,+    createApplication_name,+    createApplication_networkConfiguration,+    createApplication_tags,+    createApplication_workerTypeSpecifications,+    createApplication_releaseLabel,+    createApplication_type,+    createApplication_clientToken,+    createApplicationResponse_name,+    createApplicationResponse_httpStatus,+    createApplicationResponse_applicationId,+    createApplicationResponse_arn,++    -- ** DeleteApplication+    deleteApplication_applicationId,+    deleteApplicationResponse_httpStatus,++    -- ** GetApplication+    getApplication_applicationId,+    getApplicationResponse_httpStatus,+    getApplicationResponse_application,++    -- ** GetDashboardForJobRun+    getDashboardForJobRun_applicationId,+    getDashboardForJobRun_jobRunId,+    getDashboardForJobRunResponse_url,+    getDashboardForJobRunResponse_httpStatus,++    -- ** GetJobRun+    getJobRun_applicationId,+    getJobRun_jobRunId,+    getJobRunResponse_httpStatus,+    getJobRunResponse_jobRun,++    -- ** ListApplications+    listApplications_maxResults,+    listApplications_nextToken,+    listApplications_states,+    listApplicationsResponse_nextToken,+    listApplicationsResponse_httpStatus,+    listApplicationsResponse_applications,++    -- ** ListJobRuns+    listJobRuns_createdAtAfter,+    listJobRuns_createdAtBefore,+    listJobRuns_maxResults,+    listJobRuns_nextToken,+    listJobRuns_states,+    listJobRuns_applicationId,+    listJobRunsResponse_nextToken,+    listJobRunsResponse_httpStatus,+    listJobRunsResponse_jobRuns,++    -- ** ListTagsForResource+    listTagsForResource_resourceArn,+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,++    -- ** StartApplication+    startApplication_applicationId,+    startApplicationResponse_httpStatus,++    -- ** StartJobRun+    startJobRun_configurationOverrides,+    startJobRun_executionTimeoutMinutes,+    startJobRun_jobDriver,+    startJobRun_name,+    startJobRun_tags,+    startJobRun_applicationId,+    startJobRun_clientToken,+    startJobRun_executionRoleArn,+    startJobRunResponse_httpStatus,+    startJobRunResponse_applicationId,+    startJobRunResponse_jobRunId,+    startJobRunResponse_arn,++    -- ** StopApplication+    stopApplication_applicationId,+    stopApplicationResponse_httpStatus,++    -- ** TagResource+    tagResource_resourceArn,+    tagResource_tags,+    tagResourceResponse_httpStatus,++    -- ** UntagResource+    untagResource_resourceArn,+    untagResource_tagKeys,+    untagResourceResponse_httpStatus,++    -- ** UpdateApplication+    updateApplication_architecture,+    updateApplication_autoStartConfiguration,+    updateApplication_autoStopConfiguration,+    updateApplication_imageConfiguration,+    updateApplication_initialCapacity,+    updateApplication_maximumCapacity,+    updateApplication_networkConfiguration,+    updateApplication_workerTypeSpecifications,+    updateApplication_applicationId,+    updateApplication_clientToken,+    updateApplicationResponse_httpStatus,+    updateApplicationResponse_application,++    -- * Types++    -- ** Application+    application_architecture,+    application_autoStartConfiguration,+    application_autoStopConfiguration,+    application_imageConfiguration,+    application_initialCapacity,+    application_maximumCapacity,+    application_name,+    application_networkConfiguration,+    application_stateDetails,+    application_tags,+    application_workerTypeSpecifications,+    application_applicationId,+    application_arn,+    application_releaseLabel,+    application_type,+    application_state,+    application_createdAt,+    application_updatedAt,++    -- ** ApplicationSummary+    applicationSummary_architecture,+    applicationSummary_name,+    applicationSummary_stateDetails,+    applicationSummary_id,+    applicationSummary_arn,+    applicationSummary_releaseLabel,+    applicationSummary_type,+    applicationSummary_state,+    applicationSummary_createdAt,+    applicationSummary_updatedAt,++    -- ** AutoStartConfig+    autoStartConfig_enabled,++    -- ** AutoStopConfig+    autoStopConfig_enabled,+    autoStopConfig_idleTimeoutMinutes,++    -- ** Configuration+    configuration_configurations,+    configuration_properties,+    configuration_classification,++    -- ** ConfigurationOverrides+    configurationOverrides_applicationConfiguration,+    configurationOverrides_monitoringConfiguration,++    -- ** Hive+    hive_initQueryFile,+    hive_parameters,+    hive_query,++    -- ** ImageConfiguration+    imageConfiguration_resolvedImageDigest,+    imageConfiguration_imageUri,++    -- ** ImageConfigurationInput+    imageConfigurationInput_imageUri,++    -- ** InitialCapacityConfig+    initialCapacityConfig_workerConfiguration,+    initialCapacityConfig_workerCount,++    -- ** JobDriver+    jobDriver_hive,+    jobDriver_sparkSubmit,++    -- ** JobRun+    jobRun_configurationOverrides,+    jobRun_name,+    jobRun_networkConfiguration,+    jobRun_tags,+    jobRun_totalExecutionDurationSeconds,+    jobRun_totalResourceUtilization,+    jobRun_applicationId,+    jobRun_jobRunId,+    jobRun_arn,+    jobRun_createdBy,+    jobRun_createdAt,+    jobRun_updatedAt,+    jobRun_executionRole,+    jobRun_state,+    jobRun_stateDetails,+    jobRun_releaseLabel,+    jobRun_jobDriver,++    -- ** JobRunSummary+    jobRunSummary_name,+    jobRunSummary_type,+    jobRunSummary_applicationId,+    jobRunSummary_id,+    jobRunSummary_arn,+    jobRunSummary_createdBy,+    jobRunSummary_createdAt,+    jobRunSummary_updatedAt,+    jobRunSummary_executionRole,+    jobRunSummary_state,+    jobRunSummary_stateDetails,+    jobRunSummary_releaseLabel,++    -- ** ManagedPersistenceMonitoringConfiguration+    managedPersistenceMonitoringConfiguration_enabled,+    managedPersistenceMonitoringConfiguration_encryptionKeyArn,++    -- ** MaximumAllowedResources+    maximumAllowedResources_disk,+    maximumAllowedResources_cpu,+    maximumAllowedResources_memory,++    -- ** MonitoringConfiguration+    monitoringConfiguration_managedPersistenceMonitoringConfiguration,+    monitoringConfiguration_s3MonitoringConfiguration,++    -- ** NetworkConfiguration+    networkConfiguration_securityGroupIds,+    networkConfiguration_subnetIds,++    -- ** S3MonitoringConfiguration+    s3MonitoringConfiguration_encryptionKeyArn,+    s3MonitoringConfiguration_logUri,++    -- ** SparkSubmit+    sparkSubmit_entryPointArguments,+    sparkSubmit_sparkSubmitParameters,+    sparkSubmit_entryPoint,++    -- ** TotalResourceUtilization+    totalResourceUtilization_memoryGBHour,+    totalResourceUtilization_storageGBHour,+    totalResourceUtilization_vCPUHour,++    -- ** WorkerResourceConfig+    workerResourceConfig_disk,+    workerResourceConfig_cpu,+    workerResourceConfig_memory,++    -- ** WorkerTypeSpecification+    workerTypeSpecification_imageConfiguration,++    -- ** WorkerTypeSpecificationInput+    workerTypeSpecificationInput_imageConfiguration,+  )+where++import Amazonka.EMRServerless.CancelJobRun+import Amazonka.EMRServerless.CreateApplication+import Amazonka.EMRServerless.DeleteApplication+import Amazonka.EMRServerless.GetApplication+import Amazonka.EMRServerless.GetDashboardForJobRun+import Amazonka.EMRServerless.GetJobRun+import Amazonka.EMRServerless.ListApplications+import Amazonka.EMRServerless.ListJobRuns+import Amazonka.EMRServerless.ListTagsForResource+import Amazonka.EMRServerless.StartApplication+import Amazonka.EMRServerless.StartJobRun+import Amazonka.EMRServerless.StopApplication+import Amazonka.EMRServerless.TagResource+import Amazonka.EMRServerless.Types.Application+import Amazonka.EMRServerless.Types.ApplicationSummary+import Amazonka.EMRServerless.Types.AutoStartConfig+import Amazonka.EMRServerless.Types.AutoStopConfig+import Amazonka.EMRServerless.Types.Configuration+import Amazonka.EMRServerless.Types.ConfigurationOverrides+import Amazonka.EMRServerless.Types.Hive+import Amazonka.EMRServerless.Types.ImageConfiguration+import Amazonka.EMRServerless.Types.ImageConfigurationInput+import Amazonka.EMRServerless.Types.InitialCapacityConfig+import Amazonka.EMRServerless.Types.JobDriver+import Amazonka.EMRServerless.Types.JobRun+import Amazonka.EMRServerless.Types.JobRunSummary+import Amazonka.EMRServerless.Types.ManagedPersistenceMonitoringConfiguration+import Amazonka.EMRServerless.Types.MaximumAllowedResources+import Amazonka.EMRServerless.Types.MonitoringConfiguration+import Amazonka.EMRServerless.Types.NetworkConfiguration+import Amazonka.EMRServerless.Types.S3MonitoringConfiguration+import Amazonka.EMRServerless.Types.SparkSubmit+import Amazonka.EMRServerless.Types.TotalResourceUtilization+import Amazonka.EMRServerless.Types.WorkerResourceConfig+import Amazonka.EMRServerless.Types.WorkerTypeSpecification+import Amazonka.EMRServerless.Types.WorkerTypeSpecificationInput+import Amazonka.EMRServerless.UntagResource+import Amazonka.EMRServerless.UpdateApplication
+ gen/Amazonka/EMRServerless/ListApplications.hs view
@@ -0,0 +1,235 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRServerless.ListApplications+-- 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 applications based on a set of parameters.+--+-- This operation returns paginated results.+module Amazonka.EMRServerless.ListApplications+  ( -- * Creating a Request+    ListApplications (..),+    newListApplications,++    -- * Request Lenses+    listApplications_maxResults,+    listApplications_nextToken,+    listApplications_states,++    -- * Destructuring the Response+    ListApplicationsResponse (..),+    newListApplicationsResponse,++    -- * Response Lenses+    listApplicationsResponse_nextToken,+    listApplicationsResponse_httpStatus,+    listApplicationsResponse_applications,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListApplications' smart constructor.+data ListApplications = ListApplications'+  { -- | The maximum number of applications that can be listed.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token for the next set of application results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | An optional filter for application states. Note that if this filter+    -- contains multiple states, the resulting list will be grouped by the+    -- state.+    states :: Prelude.Maybe (Prelude.NonEmpty ApplicationState)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListApplications' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listApplications_maxResults' - The maximum number of applications that can be listed.+--+-- 'nextToken', 'listApplications_nextToken' - The token for the next set of application results.+--+-- 'states', 'listApplications_states' - An optional filter for application states. Note that if this filter+-- contains multiple states, the resulting list will be grouped by the+-- state.+newListApplications ::+  ListApplications+newListApplications =+  ListApplications'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      states = Prelude.Nothing+    }++-- | The maximum number of applications that can be listed.+listApplications_maxResults :: Lens.Lens' ListApplications (Prelude.Maybe Prelude.Natural)+listApplications_maxResults = Lens.lens (\ListApplications' {maxResults} -> maxResults) (\s@ListApplications' {} a -> s {maxResults = a} :: ListApplications)++-- | The token for the next set of application results.+listApplications_nextToken :: Lens.Lens' ListApplications (Prelude.Maybe Prelude.Text)+listApplications_nextToken = Lens.lens (\ListApplications' {nextToken} -> nextToken) (\s@ListApplications' {} a -> s {nextToken = a} :: ListApplications)++-- | An optional filter for application states. Note that if this filter+-- contains multiple states, the resulting list will be grouped by the+-- state.+listApplications_states :: Lens.Lens' ListApplications (Prelude.Maybe (Prelude.NonEmpty ApplicationState))+listApplications_states = Lens.lens (\ListApplications' {states} -> states) (\s@ListApplications' {} a -> s {states = a} :: ListApplications) Prelude.. Lens.mapping Lens.coerced++instance Core.AWSPager ListApplications where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listApplicationsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        (rs Lens.^. listApplicationsResponse_applications) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listApplications_nextToken+          Lens..~ rs+          Lens.^? listApplicationsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListApplications where+  type+    AWSResponse ListApplications =+      ListApplicationsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListApplicationsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..?> "applications" Core..!@ Prelude.mempty)+      )++instance Prelude.Hashable ListApplications where+  hashWithSalt _salt ListApplications' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` states++instance Prelude.NFData ListApplications where+  rnf ListApplications' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf states++instance Data.ToHeaders ListApplications where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListApplications where+  toPath = Prelude.const "/applications"++instance Data.ToQuery ListApplications where+  toQuery ListApplications' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken,+        "states"+          Data.=: Data.toQuery+            (Data.toQueryList "member" Prelude.<$> states)+      ]++-- | /See:/ 'newListApplicationsResponse' smart constructor.+data ListApplicationsResponse = ListApplicationsResponse'+  { -- | The output displays the token for the next set of application results.+    -- This is required for pagination and is available as a response of the+    -- previous request.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The output lists the specified applications.+    applications :: [ApplicationSummary]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListApplicationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listApplicationsResponse_nextToken' - The output displays the token for the next set of application results.+-- This is required for pagination and is available as a response of the+-- previous request.+--+-- 'httpStatus', 'listApplicationsResponse_httpStatus' - The response's http status code.+--+-- 'applications', 'listApplicationsResponse_applications' - The output lists the specified applications.+newListApplicationsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListApplicationsResponse+newListApplicationsResponse pHttpStatus_ =+  ListApplicationsResponse'+    { nextToken =+        Prelude.Nothing,+      httpStatus = pHttpStatus_,+      applications = Prelude.mempty+    }++-- | The output displays the token for the next set of application results.+-- This is required for pagination and is available as a response of the+-- previous request.+listApplicationsResponse_nextToken :: Lens.Lens' ListApplicationsResponse (Prelude.Maybe Prelude.Text)+listApplicationsResponse_nextToken = Lens.lens (\ListApplicationsResponse' {nextToken} -> nextToken) (\s@ListApplicationsResponse' {} a -> s {nextToken = a} :: ListApplicationsResponse)++-- | The response's http status code.+listApplicationsResponse_httpStatus :: Lens.Lens' ListApplicationsResponse Prelude.Int+listApplicationsResponse_httpStatus = Lens.lens (\ListApplicationsResponse' {httpStatus} -> httpStatus) (\s@ListApplicationsResponse' {} a -> s {httpStatus = a} :: ListApplicationsResponse)++-- | The output lists the specified applications.+listApplicationsResponse_applications :: Lens.Lens' ListApplicationsResponse [ApplicationSummary]+listApplicationsResponse_applications = Lens.lens (\ListApplicationsResponse' {applications} -> applications) (\s@ListApplicationsResponse' {} a -> s {applications = a} :: ListApplicationsResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListApplicationsResponse where+  rnf ListApplicationsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf applications
+ gen/Amazonka/EMRServerless/ListJobRuns.hs view
@@ -0,0 +1,273 @@+{-# 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.EMRServerless.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.+--+-- This operation returns paginated results.+module Amazonka.EMRServerless.ListJobRuns+  ( -- * Creating a Request+    ListJobRuns (..),+    newListJobRuns,++    -- * Request Lenses+    listJobRuns_createdAtAfter,+    listJobRuns_createdAtBefore,+    listJobRuns_maxResults,+    listJobRuns_nextToken,+    listJobRuns_states,+    listJobRuns_applicationId,++    -- * Destructuring the Response+    ListJobRunsResponse (..),+    newListJobRunsResponse,++    -- * Response Lenses+    listJobRunsResponse_nextToken,+    listJobRunsResponse_httpStatus,+    listJobRunsResponse_jobRuns,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRServerless.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 lower bound of the option to filter by creation date and time.+    createdAtAfter :: Prelude.Maybe Data.POSIX,+    -- | The upper bound of the option to filter by creation date and time.+    createdAtBefore :: Prelude.Maybe Data.POSIX,+    -- | The maximum number of job runs that can be listed.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token for the next set of job run results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | An optional filter for job run states. Note that if this filter contains+    -- multiple states, the resulting list will be grouped by the state.+    states :: Prelude.Maybe [JobRunState],+    -- | The ID of the application for which to list the job run.+    applicationId :: 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:+--+-- 'createdAtAfter', 'listJobRuns_createdAtAfter' - The lower bound of the option to filter by creation date and time.+--+-- 'createdAtBefore', 'listJobRuns_createdAtBefore' - The upper bound of the option to filter by creation date and time.+--+-- 'maxResults', 'listJobRuns_maxResults' - The maximum number of job runs that can be listed.+--+-- 'nextToken', 'listJobRuns_nextToken' - The token for the next set of job run results.+--+-- 'states', 'listJobRuns_states' - An optional filter for job run states. Note that if this filter contains+-- multiple states, the resulting list will be grouped by the state.+--+-- 'applicationId', 'listJobRuns_applicationId' - The ID of the application for which to list the job run.+newListJobRuns ::+  -- | 'applicationId'+  Prelude.Text ->+  ListJobRuns+newListJobRuns pApplicationId_ =+  ListJobRuns'+    { createdAtAfter = Prelude.Nothing,+      createdAtBefore = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      states = Prelude.Nothing,+      applicationId = pApplicationId_+    }++-- | The lower bound of the option to filter by creation date and time.+listJobRuns_createdAtAfter :: Lens.Lens' ListJobRuns (Prelude.Maybe Prelude.UTCTime)+listJobRuns_createdAtAfter = Lens.lens (\ListJobRuns' {createdAtAfter} -> createdAtAfter) (\s@ListJobRuns' {} a -> s {createdAtAfter = a} :: ListJobRuns) Prelude.. Lens.mapping Data._Time++-- | The upper bound of the option to filter by creation date and time.+listJobRuns_createdAtBefore :: Lens.Lens' ListJobRuns (Prelude.Maybe Prelude.UTCTime)+listJobRuns_createdAtBefore = Lens.lens (\ListJobRuns' {createdAtBefore} -> createdAtBefore) (\s@ListJobRuns' {} a -> s {createdAtBefore = 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.Natural)+listJobRuns_maxResults = Lens.lens (\ListJobRuns' {maxResults} -> maxResults) (\s@ListJobRuns' {} a -> s {maxResults = a} :: ListJobRuns)++-- | The token for the next set of job run results.+listJobRuns_nextToken :: Lens.Lens' ListJobRuns (Prelude.Maybe Prelude.Text)+listJobRuns_nextToken = Lens.lens (\ListJobRuns' {nextToken} -> nextToken) (\s@ListJobRuns' {} a -> s {nextToken = a} :: ListJobRuns)++-- | An optional filter for job run states. Note that if this filter contains+-- multiple states, the resulting list will be grouped by the state.+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 application for which to list the job run.+listJobRuns_applicationId :: Lens.Lens' ListJobRuns Prelude.Text+listJobRuns_applicationId = Lens.lens (\ListJobRuns' {applicationId} -> applicationId) (\s@ListJobRuns' {} a -> s {applicationId = 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.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..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..?> "jobRuns" Core..!@ Prelude.mempty)+      )++instance Prelude.Hashable ListJobRuns where+  hashWithSalt _salt ListJobRuns' {..} =+    _salt+      `Prelude.hashWithSalt` createdAtAfter+      `Prelude.hashWithSalt` createdAtBefore+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` states+      `Prelude.hashWithSalt` applicationId++instance Prelude.NFData ListJobRuns where+  rnf ListJobRuns' {..} =+    Prelude.rnf createdAtAfter+      `Prelude.seq` Prelude.rnf createdAtBefore+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf states+      `Prelude.seq` Prelude.rnf applicationId++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+      [ "/applications/",+        Data.toBS applicationId,+        "/jobruns"+      ]++instance Data.ToQuery ListJobRuns where+  toQuery ListJobRuns' {..} =+    Prelude.mconcat+      [ "createdAtAfter" Data.=: createdAtAfter,+        "createdAtBefore" Data.=: createdAtBefore,+        "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken,+        "states"+          Data.=: Data.toQuery+            (Data.toQueryList "member" Prelude.<$> states)+      ]++-- | /See:/ 'newListJobRunsResponse' smart constructor.+data ListJobRunsResponse = ListJobRunsResponse'+  { -- | The output displays the token for the next set of job run results. This+    -- is required for pagination and is available as a response of the+    -- previous request.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The output lists information about the specified job runs.+    jobRuns :: [JobRunSummary]+  }+  deriving (Prelude.Eq, Prelude.Read, 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:+--+-- 'nextToken', 'listJobRunsResponse_nextToken' - The output displays the token for the next set of job run results. This+-- is required for pagination and is available as a response of the+-- previous request.+--+-- 'httpStatus', 'listJobRunsResponse_httpStatus' - The response's http status code.+--+-- 'jobRuns', 'listJobRunsResponse_jobRuns' - The output lists information about the specified job runs.+newListJobRunsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListJobRunsResponse+newListJobRunsResponse pHttpStatus_ =+  ListJobRunsResponse'+    { nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_,+      jobRuns = Prelude.mempty+    }++-- | The output displays the token for the next set of job run results. This+-- is required for pagination and is available as a response of the+-- previous request.+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)++-- | The output lists information about the specified job runs.+listJobRunsResponse_jobRuns :: Lens.Lens' ListJobRunsResponse [JobRunSummary]+listJobRunsResponse_jobRuns = Lens.lens (\ListJobRunsResponse' {jobRuns} -> jobRuns) (\s@ListJobRunsResponse' {} a -> s {jobRuns = a} :: ListJobRunsResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListJobRunsResponse where+  rnf ListJobRunsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf jobRuns
+ gen/Amazonka/EMRServerless/ListTagsForResource.hs view
@@ -0,0 +1,165 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRServerless.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.EMRServerless.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.EMRServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListTagsForResource' smart constructor.+data ListTagsForResource = ListTagsForResource'+  { -- | The Amazon Resource Name (ARN) that identifies the resource to list the+    -- tags for. Currently, the supported resources are Amazon EMR Serverless+    -- applications and job runs.+    resourceArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'listTagsForResource_resourceArn' - The Amazon Resource Name (ARN) that identifies the resource to list the+-- tags for. Currently, the supported resources are Amazon EMR Serverless+-- applications and job runs.+newListTagsForResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  ListTagsForResource+newListTagsForResource pResourceArn_ =+  ListTagsForResource' {resourceArn = pResourceArn_}++-- | The Amazon Resource Name (ARN) that identifies the resource to list the+-- tags for. Currently, the supported resources are Amazon EMR Serverless+-- applications and job runs.+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 for the resource.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tags', 'listTagsForResourceResponse_tags' - The tags for the resource.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+  ListTagsForResourceResponse'+    { tags =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The tags for the resource.+listTagsForResourceResponse_tags :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+listTagsForResourceResponse_tags = Lens.lens (\ListTagsForResourceResponse' {tags} -> tags) (\s@ListTagsForResourceResponse' {} a -> s {tags = a} :: ListTagsForResourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listTagsForResourceResponse_httpStatus :: Lens.Lens' ListTagsForResourceResponse Prelude.Int+listTagsForResourceResponse_httpStatus = Lens.lens (\ListTagsForResourceResponse' {httpStatus} -> httpStatus) (\s@ListTagsForResourceResponse' {} a -> s {httpStatus = a} :: ListTagsForResourceResponse)++instance Prelude.NFData ListTagsForResourceResponse where+  rnf ListTagsForResourceResponse' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/EMRServerless/StartApplication.hs view
@@ -0,0 +1,151 @@+{-# 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.EMRServerless.StartApplication+-- 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 specified application and initializes initial capacity if+-- configured.+module Amazonka.EMRServerless.StartApplication+  ( -- * Creating a Request+    StartApplication (..),+    newStartApplication,++    -- * Request Lenses+    startApplication_applicationId,++    -- * Destructuring the Response+    StartApplicationResponse (..),+    newStartApplicationResponse,++    -- * Response Lenses+    startApplicationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStartApplication' smart constructor.+data StartApplication = StartApplication'+  { -- | The ID of the application to start.+    applicationId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartApplication' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'applicationId', 'startApplication_applicationId' - The ID of the application to start.+newStartApplication ::+  -- | 'applicationId'+  Prelude.Text ->+  StartApplication+newStartApplication pApplicationId_ =+  StartApplication' {applicationId = pApplicationId_}++-- | The ID of the application to start.+startApplication_applicationId :: Lens.Lens' StartApplication Prelude.Text+startApplication_applicationId = Lens.lens (\StartApplication' {applicationId} -> applicationId) (\s@StartApplication' {} a -> s {applicationId = a} :: StartApplication)++instance Core.AWSRequest StartApplication where+  type+    AWSResponse StartApplication =+      StartApplicationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          StartApplicationResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable StartApplication where+  hashWithSalt _salt StartApplication' {..} =+    _salt `Prelude.hashWithSalt` applicationId++instance Prelude.NFData StartApplication where+  rnf StartApplication' {..} = Prelude.rnf applicationId++instance Data.ToHeaders StartApplication where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON StartApplication where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath StartApplication where+  toPath StartApplication' {..} =+    Prelude.mconcat+      ["/applications/", Data.toBS applicationId, "/start"]++instance Data.ToQuery StartApplication where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStartApplicationResponse' smart constructor.+data StartApplicationResponse = StartApplicationResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartApplicationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'startApplicationResponse_httpStatus' - The response's http status code.+newStartApplicationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  StartApplicationResponse+newStartApplicationResponse pHttpStatus_ =+  StartApplicationResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+startApplicationResponse_httpStatus :: Lens.Lens' StartApplicationResponse Prelude.Int+startApplicationResponse_httpStatus = Lens.lens (\StartApplicationResponse' {httpStatus} -> httpStatus) (\s@StartApplicationResponse' {} a -> s {httpStatus = a} :: StartApplicationResponse)++instance Prelude.NFData StartApplicationResponse where+  rnf StartApplicationResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/EMRServerless/StartJobRun.hs view
@@ -0,0 +1,315 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRServerless.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.+module Amazonka.EMRServerless.StartJobRun+  ( -- * Creating a Request+    StartJobRun (..),+    newStartJobRun,++    -- * Request Lenses+    startJobRun_configurationOverrides,+    startJobRun_executionTimeoutMinutes,+    startJobRun_jobDriver,+    startJobRun_name,+    startJobRun_tags,+    startJobRun_applicationId,+    startJobRun_clientToken,+    startJobRun_executionRoleArn,++    -- * Destructuring the Response+    StartJobRunResponse (..),+    newStartJobRunResponse,++    -- * Response Lenses+    startJobRunResponse_httpStatus,+    startJobRunResponse_applicationId,+    startJobRunResponse_jobRunId,+    startJobRunResponse_arn,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRServerless.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 maximum duration for the job run to run. If the job run runs beyond+    -- this duration, it will be automatically cancelled.+    executionTimeoutMinutes :: Prelude.Maybe Prelude.Natural,+    -- | The job driver for the job run.+    jobDriver :: Prelude.Maybe JobDriver,+    -- | The optional job run name. This doesn\'t have to be unique.+    name :: Prelude.Maybe Prelude.Text,+    -- | The tags assigned to the job run.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The ID of the application on which to run the job.+    applicationId :: Prelude.Text,+    -- | The client idempotency token of the job run to start. Its value must be+    -- unique for each request.+    clientToken :: Prelude.Text,+    -- | The execution role ARN for the job run.+    executionRoleArn :: 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.+--+-- 'executionTimeoutMinutes', 'startJobRun_executionTimeoutMinutes' - The maximum duration for the job run to run. If the job run runs beyond+-- this duration, it will be automatically cancelled.+--+-- 'jobDriver', 'startJobRun_jobDriver' - The job driver for the job run.+--+-- 'name', 'startJobRun_name' - The optional job run name. This doesn\'t have to be unique.+--+-- 'tags', 'startJobRun_tags' - The tags assigned to the job run.+--+-- 'applicationId', 'startJobRun_applicationId' - The ID of the application on which to run the job.+--+-- 'clientToken', 'startJobRun_clientToken' - The client idempotency token of the job run to start. Its value must be+-- unique for each request.+--+-- 'executionRoleArn', 'startJobRun_executionRoleArn' - The execution role ARN for the job run.+newStartJobRun ::+  -- | 'applicationId'+  Prelude.Text ->+  -- | 'clientToken'+  Prelude.Text ->+  -- | 'executionRoleArn'+  Prelude.Text ->+  StartJobRun+newStartJobRun+  pApplicationId_+  pClientToken_+  pExecutionRoleArn_ =+    StartJobRun'+      { configurationOverrides =+          Prelude.Nothing,+        executionTimeoutMinutes = Prelude.Nothing,+        jobDriver = Prelude.Nothing,+        name = Prelude.Nothing,+        tags = Prelude.Nothing,+        applicationId = pApplicationId_,+        clientToken = pClientToken_,+        executionRoleArn = pExecutionRoleArn_+      }++-- | 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 maximum duration for the job run to run. If the job run runs beyond+-- this duration, it will be automatically cancelled.+startJobRun_executionTimeoutMinutes :: Lens.Lens' StartJobRun (Prelude.Maybe Prelude.Natural)+startJobRun_executionTimeoutMinutes = Lens.lens (\StartJobRun' {executionTimeoutMinutes} -> executionTimeoutMinutes) (\s@StartJobRun' {} a -> s {executionTimeoutMinutes = 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 optional job run name. This doesn\'t have to be unique.+startJobRun_name :: Lens.Lens' StartJobRun (Prelude.Maybe Prelude.Text)+startJobRun_name = Lens.lens (\StartJobRun' {name} -> name) (\s@StartJobRun' {} a -> s {name = a} :: StartJobRun)++-- | The tags assigned to the job run.+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 ID of the application on which to run the job.+startJobRun_applicationId :: Lens.Lens' StartJobRun Prelude.Text+startJobRun_applicationId = Lens.lens (\StartJobRun' {applicationId} -> applicationId) (\s@StartJobRun' {} a -> s {applicationId = a} :: StartJobRun)++-- | The client idempotency token of the job run to start. Its value must be+-- unique for each request.+startJobRun_clientToken :: Lens.Lens' StartJobRun Prelude.Text+startJobRun_clientToken = Lens.lens (\StartJobRun' {clientToken} -> clientToken) (\s@StartJobRun' {} a -> s {clientToken = a} :: StartJobRun)++-- | The execution role ARN for the job run.+startJobRun_executionRoleArn :: Lens.Lens' StartJobRun Prelude.Text+startJobRun_executionRoleArn = Lens.lens (\StartJobRun' {executionRoleArn} -> executionRoleArn) (\s@StartJobRun' {} a -> s {executionRoleArn = 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.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "applicationId")+            Prelude.<*> (x Data..:> "jobRunId")+            Prelude.<*> (x Data..:> "arn")+      )++instance Prelude.Hashable StartJobRun where+  hashWithSalt _salt StartJobRun' {..} =+    _salt+      `Prelude.hashWithSalt` configurationOverrides+      `Prelude.hashWithSalt` executionTimeoutMinutes+      `Prelude.hashWithSalt` jobDriver+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` executionRoleArn++instance Prelude.NFData StartJobRun where+  rnf StartJobRun' {..} =+    Prelude.rnf configurationOverrides+      `Prelude.seq` Prelude.rnf executionTimeoutMinutes+      `Prelude.seq` Prelude.rnf jobDriver+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf executionRoleArn++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,+            ("executionTimeoutMinutes" Data..=)+              Prelude.<$> executionTimeoutMinutes,+            ("jobDriver" Data..=) Prelude.<$> jobDriver,+            ("name" Data..=) Prelude.<$> name,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("clientToken" Data..= clientToken),+            Prelude.Just+              ("executionRoleArn" Data..= executionRoleArn)+          ]+      )++instance Data.ToPath StartJobRun where+  toPath StartJobRun' {..} =+    Prelude.mconcat+      [ "/applications/",+        Data.toBS applicationId,+        "/jobruns"+      ]++instance Data.ToQuery StartJobRun where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStartJobRunResponse' smart constructor.+data StartJobRunResponse = StartJobRunResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | This output displays the application ID on which the job run was+    -- submitted.+    applicationId :: Prelude.Text,+    -- | The output contains the ID of the started job run.+    jobRunId :: Prelude.Text,+    -- | The output lists the execution role ARN of the job run.+    arn :: Prelude.Text+  }+  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:+--+-- 'httpStatus', 'startJobRunResponse_httpStatus' - The response's http status code.+--+-- 'applicationId', 'startJobRunResponse_applicationId' - This output displays the application ID on which the job run was+-- submitted.+--+-- 'jobRunId', 'startJobRunResponse_jobRunId' - The output contains the ID of the started job run.+--+-- 'arn', 'startJobRunResponse_arn' - The output lists the execution role ARN of the job run.+newStartJobRunResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'applicationId'+  Prelude.Text ->+  -- | 'jobRunId'+  Prelude.Text ->+  -- | 'arn'+  Prelude.Text ->+  StartJobRunResponse+newStartJobRunResponse+  pHttpStatus_+  pApplicationId_+  pJobRunId_+  pArn_ =+    StartJobRunResponse'+      { httpStatus = pHttpStatus_,+        applicationId = pApplicationId_,+        jobRunId = pJobRunId_,+        arn = pArn_+      }++-- | 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)++-- | This output displays the application ID on which the job run was+-- submitted.+startJobRunResponse_applicationId :: Lens.Lens' StartJobRunResponse Prelude.Text+startJobRunResponse_applicationId = Lens.lens (\StartJobRunResponse' {applicationId} -> applicationId) (\s@StartJobRunResponse' {} a -> s {applicationId = a} :: StartJobRunResponse)++-- | The output contains the ID of the started job run.+startJobRunResponse_jobRunId :: Lens.Lens' StartJobRunResponse Prelude.Text+startJobRunResponse_jobRunId = Lens.lens (\StartJobRunResponse' {jobRunId} -> jobRunId) (\s@StartJobRunResponse' {} a -> s {jobRunId = a} :: StartJobRunResponse)++-- | The output lists the execution role ARN of the job run.+startJobRunResponse_arn :: Lens.Lens' StartJobRunResponse Prelude.Text+startJobRunResponse_arn = Lens.lens (\StartJobRunResponse' {arn} -> arn) (\s@StartJobRunResponse' {} a -> s {arn = a} :: StartJobRunResponse)++instance Prelude.NFData StartJobRunResponse where+  rnf StartJobRunResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf jobRunId+      `Prelude.seq` Prelude.rnf arn
+ gen/Amazonka/EMRServerless/StopApplication.hs view
@@ -0,0 +1,149 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRServerless.StopApplication+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Stops a specified application and releases initial capacity if+-- configured. All scheduled and running jobs must be completed or+-- cancelled before stopping an application.+module Amazonka.EMRServerless.StopApplication+  ( -- * Creating a Request+    StopApplication (..),+    newStopApplication,++    -- * Request Lenses+    stopApplication_applicationId,++    -- * Destructuring the Response+    StopApplicationResponse (..),+    newStopApplicationResponse,++    -- * Response Lenses+    stopApplicationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStopApplication' smart constructor.+data StopApplication = StopApplication'+  { -- | The ID of the application to stop.+    applicationId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StopApplication' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'applicationId', 'stopApplication_applicationId' - The ID of the application to stop.+newStopApplication ::+  -- | 'applicationId'+  Prelude.Text ->+  StopApplication+newStopApplication pApplicationId_ =+  StopApplication' {applicationId = pApplicationId_}++-- | The ID of the application to stop.+stopApplication_applicationId :: Lens.Lens' StopApplication Prelude.Text+stopApplication_applicationId = Lens.lens (\StopApplication' {applicationId} -> applicationId) (\s@StopApplication' {} a -> s {applicationId = a} :: StopApplication)++instance Core.AWSRequest StopApplication where+  type+    AWSResponse StopApplication =+      StopApplicationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          StopApplicationResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable StopApplication where+  hashWithSalt _salt StopApplication' {..} =+    _salt `Prelude.hashWithSalt` applicationId++instance Prelude.NFData StopApplication where+  rnf StopApplication' {..} = Prelude.rnf applicationId++instance Data.ToHeaders StopApplication where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON StopApplication where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath StopApplication where+  toPath StopApplication' {..} =+    Prelude.mconcat+      ["/applications/", Data.toBS applicationId, "/stop"]++instance Data.ToQuery StopApplication where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStopApplicationResponse' smart constructor.+data StopApplicationResponse = StopApplicationResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StopApplicationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'stopApplicationResponse_httpStatus' - The response's http status code.+newStopApplicationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  StopApplicationResponse+newStopApplicationResponse pHttpStatus_ =+  StopApplicationResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+stopApplicationResponse_httpStatus :: Lens.Lens' StopApplicationResponse Prelude.Int+stopApplicationResponse_httpStatus = Lens.lens (\StopApplicationResponse' {httpStatus} -> httpStatus) (\s@StopApplicationResponse' {} a -> s {httpStatus = a} :: StopApplicationResponse)++instance Prelude.NFData StopApplicationResponse where+  rnf StopApplicationResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/EMRServerless/TagResource.hs view
@@ -0,0 +1,174 @@+{-# 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.EMRServerless.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.+module Amazonka.EMRServerless.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.EMRServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newTagResource' smart constructor.+data TagResource = TagResource'+  { -- | The Amazon Resource Name (ARN) that identifies the resource to list the+    -- tags for. Currently, the supported resources are Amazon EMR Serverless+    -- applications and job runs.+    resourceArn :: Prelude.Text,+    -- | The tags to add to the resource. A tag is an array of key-value pairs.+    tags :: Prelude.HashMap Prelude.Text Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'tagResource_resourceArn' - The Amazon Resource Name (ARN) that identifies the resource to list the+-- tags for. Currently, the supported resources are Amazon EMR Serverless+-- applications and job runs.+--+-- 'tags', 'tagResource_tags' - The tags to add to the resource. A tag is an array of key-value pairs.+newTagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  TagResource+newTagResource pResourceArn_ =+  TagResource'+    { resourceArn = pResourceArn_,+      tags = Prelude.mempty+    }++-- | The Amazon Resource Name (ARN) that identifies the resource to list the+-- tags for. Currently, the supported resources are Amazon EMR Serverless+-- applications and job runs.+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++-- | The tags to add to the resource. A tag is an array of key-value pairs.+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/EMRServerless/Types.hs view
@@ -0,0 +1,368 @@+{-# 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.EMRServerless.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.EMRServerless.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _ConflictException,+    _InternalServerException,+    _ResourceNotFoundException,+    _ServiceQuotaExceededException,+    _ValidationException,++    -- * ApplicationState+    ApplicationState (..),++    -- * Architecture+    Architecture (..),++    -- * JobRunState+    JobRunState (..),++    -- * Application+    Application (..),+    newApplication,+    application_architecture,+    application_autoStartConfiguration,+    application_autoStopConfiguration,+    application_imageConfiguration,+    application_initialCapacity,+    application_maximumCapacity,+    application_name,+    application_networkConfiguration,+    application_stateDetails,+    application_tags,+    application_workerTypeSpecifications,+    application_applicationId,+    application_arn,+    application_releaseLabel,+    application_type,+    application_state,+    application_createdAt,+    application_updatedAt,++    -- * ApplicationSummary+    ApplicationSummary (..),+    newApplicationSummary,+    applicationSummary_architecture,+    applicationSummary_name,+    applicationSummary_stateDetails,+    applicationSummary_id,+    applicationSummary_arn,+    applicationSummary_releaseLabel,+    applicationSummary_type,+    applicationSummary_state,+    applicationSummary_createdAt,+    applicationSummary_updatedAt,++    -- * AutoStartConfig+    AutoStartConfig (..),+    newAutoStartConfig,+    autoStartConfig_enabled,++    -- * AutoStopConfig+    AutoStopConfig (..),+    newAutoStopConfig,+    autoStopConfig_enabled,+    autoStopConfig_idleTimeoutMinutes,++    -- * Configuration+    Configuration (..),+    newConfiguration,+    configuration_configurations,+    configuration_properties,+    configuration_classification,++    -- * ConfigurationOverrides+    ConfigurationOverrides (..),+    newConfigurationOverrides,+    configurationOverrides_applicationConfiguration,+    configurationOverrides_monitoringConfiguration,++    -- * Hive+    Hive (..),+    newHive,+    hive_initQueryFile,+    hive_parameters,+    hive_query,++    -- * ImageConfiguration+    ImageConfiguration (..),+    newImageConfiguration,+    imageConfiguration_resolvedImageDigest,+    imageConfiguration_imageUri,++    -- * ImageConfigurationInput+    ImageConfigurationInput (..),+    newImageConfigurationInput,+    imageConfigurationInput_imageUri,++    -- * InitialCapacityConfig+    InitialCapacityConfig (..),+    newInitialCapacityConfig,+    initialCapacityConfig_workerConfiguration,+    initialCapacityConfig_workerCount,++    -- * JobDriver+    JobDriver (..),+    newJobDriver,+    jobDriver_hive,+    jobDriver_sparkSubmit,++    -- * JobRun+    JobRun (..),+    newJobRun,+    jobRun_configurationOverrides,+    jobRun_name,+    jobRun_networkConfiguration,+    jobRun_tags,+    jobRun_totalExecutionDurationSeconds,+    jobRun_totalResourceUtilization,+    jobRun_applicationId,+    jobRun_jobRunId,+    jobRun_arn,+    jobRun_createdBy,+    jobRun_createdAt,+    jobRun_updatedAt,+    jobRun_executionRole,+    jobRun_state,+    jobRun_stateDetails,+    jobRun_releaseLabel,+    jobRun_jobDriver,++    -- * JobRunSummary+    JobRunSummary (..),+    newJobRunSummary,+    jobRunSummary_name,+    jobRunSummary_type,+    jobRunSummary_applicationId,+    jobRunSummary_id,+    jobRunSummary_arn,+    jobRunSummary_createdBy,+    jobRunSummary_createdAt,+    jobRunSummary_updatedAt,+    jobRunSummary_executionRole,+    jobRunSummary_state,+    jobRunSummary_stateDetails,+    jobRunSummary_releaseLabel,++    -- * ManagedPersistenceMonitoringConfiguration+    ManagedPersistenceMonitoringConfiguration (..),+    newManagedPersistenceMonitoringConfiguration,+    managedPersistenceMonitoringConfiguration_enabled,+    managedPersistenceMonitoringConfiguration_encryptionKeyArn,++    -- * MaximumAllowedResources+    MaximumAllowedResources (..),+    newMaximumAllowedResources,+    maximumAllowedResources_disk,+    maximumAllowedResources_cpu,+    maximumAllowedResources_memory,++    -- * MonitoringConfiguration+    MonitoringConfiguration (..),+    newMonitoringConfiguration,+    monitoringConfiguration_managedPersistenceMonitoringConfiguration,+    monitoringConfiguration_s3MonitoringConfiguration,++    -- * NetworkConfiguration+    NetworkConfiguration (..),+    newNetworkConfiguration,+    networkConfiguration_securityGroupIds,+    networkConfiguration_subnetIds,++    -- * S3MonitoringConfiguration+    S3MonitoringConfiguration (..),+    newS3MonitoringConfiguration,+    s3MonitoringConfiguration_encryptionKeyArn,+    s3MonitoringConfiguration_logUri,++    -- * SparkSubmit+    SparkSubmit (..),+    newSparkSubmit,+    sparkSubmit_entryPointArguments,+    sparkSubmit_sparkSubmitParameters,+    sparkSubmit_entryPoint,++    -- * TotalResourceUtilization+    TotalResourceUtilization (..),+    newTotalResourceUtilization,+    totalResourceUtilization_memoryGBHour,+    totalResourceUtilization_storageGBHour,+    totalResourceUtilization_vCPUHour,++    -- * WorkerResourceConfig+    WorkerResourceConfig (..),+    newWorkerResourceConfig,+    workerResourceConfig_disk,+    workerResourceConfig_cpu,+    workerResourceConfig_memory,++    -- * WorkerTypeSpecification+    WorkerTypeSpecification (..),+    newWorkerTypeSpecification,+    workerTypeSpecification_imageConfiguration,++    -- * WorkerTypeSpecificationInput+    WorkerTypeSpecificationInput (..),+    newWorkerTypeSpecificationInput,+    workerTypeSpecificationInput_imageConfiguration,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.EMRServerless.Types.Application+import Amazonka.EMRServerless.Types.ApplicationState+import Amazonka.EMRServerless.Types.ApplicationSummary+import Amazonka.EMRServerless.Types.Architecture+import Amazonka.EMRServerless.Types.AutoStartConfig+import Amazonka.EMRServerless.Types.AutoStopConfig+import Amazonka.EMRServerless.Types.Configuration+import Amazonka.EMRServerless.Types.ConfigurationOverrides+import Amazonka.EMRServerless.Types.Hive+import Amazonka.EMRServerless.Types.ImageConfiguration+import Amazonka.EMRServerless.Types.ImageConfigurationInput+import Amazonka.EMRServerless.Types.InitialCapacityConfig+import Amazonka.EMRServerless.Types.JobDriver+import Amazonka.EMRServerless.Types.JobRun+import Amazonka.EMRServerless.Types.JobRunState+import Amazonka.EMRServerless.Types.JobRunSummary+import Amazonka.EMRServerless.Types.ManagedPersistenceMonitoringConfiguration+import Amazonka.EMRServerless.Types.MaximumAllowedResources+import Amazonka.EMRServerless.Types.MonitoringConfiguration+import Amazonka.EMRServerless.Types.NetworkConfiguration+import Amazonka.EMRServerless.Types.S3MonitoringConfiguration+import Amazonka.EMRServerless.Types.SparkSubmit+import Amazonka.EMRServerless.Types.TotalResourceUtilization+import Amazonka.EMRServerless.Types.WorkerResourceConfig+import Amazonka.EMRServerless.Types.WorkerTypeSpecification+import Amazonka.EMRServerless.Types.WorkerTypeSpecificationInput+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2021-07-13@ of the Amazon EMR Serverless SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "EMRServerless",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "emr-serverless",+      Core.signingName = "emr-serverless",+      Core.version = "2021-07-13",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "EMRServerless",+      Core.retry = retry+    }+  where+    retry =+      Core.Exponential+        { Core.base = 5.0e-2,+          Core.growth = 2,+          Core.attempts = 5,+          Core.check = check+        }+    check e+      | Lens.has (Core.hasStatus 502) e =+          Prelude.Just "bad_gateway"+      | Lens.has (Core.hasStatus 504) e =+          Prelude.Just "gateway_timeout"+      | Lens.has (Core.hasStatus 500) e =+          Prelude.Just "general_server_error"+      | Lens.has (Core.hasStatus 509) e =+          Prelude.Just "limit_exceeded"+      | Lens.has+          ( Core.hasCode "RequestThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "request_throttled_exception"+      | Lens.has (Core.hasStatus 503) e =+          Prelude.Just "service_unavailable"+      | Lens.has+          ( Core.hasCode "ThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttled_exception"+      | Lens.has+          ( Core.hasCode "Throttling"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling"+      | Lens.has+          ( Core.hasCode "ThrottlingException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling_exception"+      | Lens.has+          ( Core.hasCode+              "ProvisionedThroughputExceededException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throughput_exceeded"+      | Lens.has (Core.hasStatus 429) e =+          Prelude.Just "too_many_requests"+      | Prelude.otherwise = Prelude.Nothing++-- | The request could not be processed because of conflict in the current+-- state of the resource.+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+  Core._MatchServiceError+    defaultService+    "ConflictException"+    Prelude.. Core.hasStatus 409++-- | Request processing failed because of an error or failure with the+-- service.+_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 404++-- | The maximum number of resources per account has been reached.+_ServiceQuotaExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceQuotaExceededException =+  Core._MatchServiceError+    defaultService+    "ServiceQuotaExceededException"+    Prelude.. Core.hasStatus 402++-- | The input fails to satisfy the constraints specified by an AWS service.+_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ValidationException =+  Core._MatchServiceError+    defaultService+    "ValidationException"+    Prelude.. Core.hasStatus 400
+ gen/Amazonka/EMRServerless/Types/Application.hs view
@@ -0,0 +1,331 @@+{-# 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.EMRServerless.Types.Application+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRServerless.Types.Application where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRServerless.Types.ApplicationState+import Amazonka.EMRServerless.Types.Architecture+import Amazonka.EMRServerless.Types.AutoStartConfig+import Amazonka.EMRServerless.Types.AutoStopConfig+import Amazonka.EMRServerless.Types.ImageConfiguration+import Amazonka.EMRServerless.Types.InitialCapacityConfig+import Amazonka.EMRServerless.Types.MaximumAllowedResources+import Amazonka.EMRServerless.Types.NetworkConfiguration+import Amazonka.EMRServerless.Types.WorkerTypeSpecification+import qualified Amazonka.Prelude as Prelude++-- | Information about an application. EMR Serverless uses applications to+-- run jobs.+--+-- /See:/ 'newApplication' smart constructor.+data Application = Application'+  { -- | The CPU architecture of an application.+    architecture :: Prelude.Maybe Architecture,+    -- | The configuration for an application to automatically start on job+    -- submission.+    autoStartConfiguration :: Prelude.Maybe AutoStartConfig,+    -- | The configuration for an application to automatically stop after a+    -- certain amount of time being idle.+    autoStopConfiguration :: Prelude.Maybe AutoStopConfig,+    -- | The image configuration applied to all worker types.+    imageConfiguration :: Prelude.Maybe ImageConfiguration,+    -- | The initial capacity of the application.+    initialCapacity :: Prelude.Maybe (Prelude.HashMap Prelude.Text InitialCapacityConfig),+    -- | The maximum capacity of the application. This is cumulative across all+    -- workers at any given point in time during the lifespan of the+    -- application is created. No new resources will be created once any one of+    -- the defined limits is hit.+    maximumCapacity :: Prelude.Maybe MaximumAllowedResources,+    -- | The name of the application.+    name :: Prelude.Maybe Prelude.Text,+    -- | The network configuration for customer VPC connectivity for the+    -- application.+    networkConfiguration :: Prelude.Maybe NetworkConfiguration,+    -- | The state details of the application.+    stateDetails :: Prelude.Maybe Prelude.Text,+    -- | The tags assigned to the application.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The specification applied to each worker type.+    workerTypeSpecifications :: Prelude.Maybe (Prelude.HashMap Prelude.Text WorkerTypeSpecification),+    -- | The ID of the application.+    applicationId :: Prelude.Text,+    -- | The ARN of the application.+    arn :: Prelude.Text,+    -- | The EMR release associated with the application.+    releaseLabel :: Prelude.Text,+    -- | The type of application, such as Spark or Hive.+    type' :: Prelude.Text,+    -- | The state of the application.+    state :: ApplicationState,+    -- | The date and time when the application run was created.+    createdAt :: Data.POSIX,+    -- | The date and time when the application run was last updated.+    updatedAt :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Application' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'architecture', 'application_architecture' - The CPU architecture of an application.+--+-- 'autoStartConfiguration', 'application_autoStartConfiguration' - The configuration for an application to automatically start on job+-- submission.+--+-- 'autoStopConfiguration', 'application_autoStopConfiguration' - The configuration for an application to automatically stop after a+-- certain amount of time being idle.+--+-- 'imageConfiguration', 'application_imageConfiguration' - The image configuration applied to all worker types.+--+-- 'initialCapacity', 'application_initialCapacity' - The initial capacity of the application.+--+-- 'maximumCapacity', 'application_maximumCapacity' - The maximum capacity of the application. This is cumulative across all+-- workers at any given point in time during the lifespan of the+-- application is created. No new resources will be created once any one of+-- the defined limits is hit.+--+-- 'name', 'application_name' - The name of the application.+--+-- 'networkConfiguration', 'application_networkConfiguration' - The network configuration for customer VPC connectivity for the+-- application.+--+-- 'stateDetails', 'application_stateDetails' - The state details of the application.+--+-- 'tags', 'application_tags' - The tags assigned to the application.+--+-- 'workerTypeSpecifications', 'application_workerTypeSpecifications' - The specification applied to each worker type.+--+-- 'applicationId', 'application_applicationId' - The ID of the application.+--+-- 'arn', 'application_arn' - The ARN of the application.+--+-- 'releaseLabel', 'application_releaseLabel' - The EMR release associated with the application.+--+-- 'type'', 'application_type' - The type of application, such as Spark or Hive.+--+-- 'state', 'application_state' - The state of the application.+--+-- 'createdAt', 'application_createdAt' - The date and time when the application run was created.+--+-- 'updatedAt', 'application_updatedAt' - The date and time when the application run was last updated.+newApplication ::+  -- | 'applicationId'+  Prelude.Text ->+  -- | 'arn'+  Prelude.Text ->+  -- | 'releaseLabel'+  Prelude.Text ->+  -- | 'type''+  Prelude.Text ->+  -- | 'state'+  ApplicationState ->+  -- | 'createdAt'+  Prelude.UTCTime ->+  -- | 'updatedAt'+  Prelude.UTCTime ->+  Application+newApplication+  pApplicationId_+  pArn_+  pReleaseLabel_+  pType_+  pState_+  pCreatedAt_+  pUpdatedAt_ =+    Application'+      { architecture = Prelude.Nothing,+        autoStartConfiguration = Prelude.Nothing,+        autoStopConfiguration = Prelude.Nothing,+        imageConfiguration = Prelude.Nothing,+        initialCapacity = Prelude.Nothing,+        maximumCapacity = Prelude.Nothing,+        name = Prelude.Nothing,+        networkConfiguration = Prelude.Nothing,+        stateDetails = Prelude.Nothing,+        tags = Prelude.Nothing,+        workerTypeSpecifications = Prelude.Nothing,+        applicationId = pApplicationId_,+        arn = pArn_,+        releaseLabel = pReleaseLabel_,+        type' = pType_,+        state = pState_,+        createdAt = Data._Time Lens.# pCreatedAt_,+        updatedAt = Data._Time Lens.# pUpdatedAt_+      }++-- | The CPU architecture of an application.+application_architecture :: Lens.Lens' Application (Prelude.Maybe Architecture)+application_architecture = Lens.lens (\Application' {architecture} -> architecture) (\s@Application' {} a -> s {architecture = a} :: Application)++-- | The configuration for an application to automatically start on job+-- submission.+application_autoStartConfiguration :: Lens.Lens' Application (Prelude.Maybe AutoStartConfig)+application_autoStartConfiguration = Lens.lens (\Application' {autoStartConfiguration} -> autoStartConfiguration) (\s@Application' {} a -> s {autoStartConfiguration = a} :: Application)++-- | The configuration for an application to automatically stop after a+-- certain amount of time being idle.+application_autoStopConfiguration :: Lens.Lens' Application (Prelude.Maybe AutoStopConfig)+application_autoStopConfiguration = Lens.lens (\Application' {autoStopConfiguration} -> autoStopConfiguration) (\s@Application' {} a -> s {autoStopConfiguration = a} :: Application)++-- | The image configuration applied to all worker types.+application_imageConfiguration :: Lens.Lens' Application (Prelude.Maybe ImageConfiguration)+application_imageConfiguration = Lens.lens (\Application' {imageConfiguration} -> imageConfiguration) (\s@Application' {} a -> s {imageConfiguration = a} :: Application)++-- | The initial capacity of the application.+application_initialCapacity :: Lens.Lens' Application (Prelude.Maybe (Prelude.HashMap Prelude.Text InitialCapacityConfig))+application_initialCapacity = Lens.lens (\Application' {initialCapacity} -> initialCapacity) (\s@Application' {} a -> s {initialCapacity = a} :: Application) Prelude.. Lens.mapping Lens.coerced++-- | The maximum capacity of the application. This is cumulative across all+-- workers at any given point in time during the lifespan of the+-- application is created. No new resources will be created once any one of+-- the defined limits is hit.+application_maximumCapacity :: Lens.Lens' Application (Prelude.Maybe MaximumAllowedResources)+application_maximumCapacity = Lens.lens (\Application' {maximumCapacity} -> maximumCapacity) (\s@Application' {} a -> s {maximumCapacity = a} :: Application)++-- | The name of the application.+application_name :: Lens.Lens' Application (Prelude.Maybe Prelude.Text)+application_name = Lens.lens (\Application' {name} -> name) (\s@Application' {} a -> s {name = a} :: Application)++-- | The network configuration for customer VPC connectivity for the+-- application.+application_networkConfiguration :: Lens.Lens' Application (Prelude.Maybe NetworkConfiguration)+application_networkConfiguration = Lens.lens (\Application' {networkConfiguration} -> networkConfiguration) (\s@Application' {} a -> s {networkConfiguration = a} :: Application)++-- | The state details of the application.+application_stateDetails :: Lens.Lens' Application (Prelude.Maybe Prelude.Text)+application_stateDetails = Lens.lens (\Application' {stateDetails} -> stateDetails) (\s@Application' {} a -> s {stateDetails = a} :: Application)++-- | The tags assigned to the application.+application_tags :: Lens.Lens' Application (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+application_tags = Lens.lens (\Application' {tags} -> tags) (\s@Application' {} a -> s {tags = a} :: Application) Prelude.. Lens.mapping Lens.coerced++-- | The specification applied to each worker type.+application_workerTypeSpecifications :: Lens.Lens' Application (Prelude.Maybe (Prelude.HashMap Prelude.Text WorkerTypeSpecification))+application_workerTypeSpecifications = Lens.lens (\Application' {workerTypeSpecifications} -> workerTypeSpecifications) (\s@Application' {} a -> s {workerTypeSpecifications = a} :: Application) Prelude.. Lens.mapping Lens.coerced++-- | The ID of the application.+application_applicationId :: Lens.Lens' Application Prelude.Text+application_applicationId = Lens.lens (\Application' {applicationId} -> applicationId) (\s@Application' {} a -> s {applicationId = a} :: Application)++-- | The ARN of the application.+application_arn :: Lens.Lens' Application Prelude.Text+application_arn = Lens.lens (\Application' {arn} -> arn) (\s@Application' {} a -> s {arn = a} :: Application)++-- | The EMR release associated with the application.+application_releaseLabel :: Lens.Lens' Application Prelude.Text+application_releaseLabel = Lens.lens (\Application' {releaseLabel} -> releaseLabel) (\s@Application' {} a -> s {releaseLabel = a} :: Application)++-- | The type of application, such as Spark or Hive.+application_type :: Lens.Lens' Application Prelude.Text+application_type = Lens.lens (\Application' {type'} -> type') (\s@Application' {} a -> s {type' = a} :: Application)++-- | The state of the application.+application_state :: Lens.Lens' Application ApplicationState+application_state = Lens.lens (\Application' {state} -> state) (\s@Application' {} a -> s {state = a} :: Application)++-- | The date and time when the application run was created.+application_createdAt :: Lens.Lens' Application Prelude.UTCTime+application_createdAt = Lens.lens (\Application' {createdAt} -> createdAt) (\s@Application' {} a -> s {createdAt = a} :: Application) Prelude.. Data._Time++-- | The date and time when the application run was last updated.+application_updatedAt :: Lens.Lens' Application Prelude.UTCTime+application_updatedAt = Lens.lens (\Application' {updatedAt} -> updatedAt) (\s@Application' {} a -> s {updatedAt = a} :: Application) Prelude.. Data._Time++instance Data.FromJSON Application where+  parseJSON =+    Data.withObject+      "Application"+      ( \x ->+          Application'+            Prelude.<$> (x Data..:? "architecture")+            Prelude.<*> (x Data..:? "autoStartConfiguration")+            Prelude.<*> (x Data..:? "autoStopConfiguration")+            Prelude.<*> (x Data..:? "imageConfiguration")+            Prelude.<*> ( x+                            Data..:? "initialCapacity"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "maximumCapacity")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "networkConfiguration")+            Prelude.<*> (x Data..:? "stateDetails")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> ( x+                            Data..:? "workerTypeSpecifications"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..: "applicationId")+            Prelude.<*> (x Data..: "arn")+            Prelude.<*> (x Data..: "releaseLabel")+            Prelude.<*> (x Data..: "type")+            Prelude.<*> (x Data..: "state")+            Prelude.<*> (x Data..: "createdAt")+            Prelude.<*> (x Data..: "updatedAt")+      )++instance Prelude.Hashable Application where+  hashWithSalt _salt Application' {..} =+    _salt+      `Prelude.hashWithSalt` architecture+      `Prelude.hashWithSalt` autoStartConfiguration+      `Prelude.hashWithSalt` autoStopConfiguration+      `Prelude.hashWithSalt` imageConfiguration+      `Prelude.hashWithSalt` initialCapacity+      `Prelude.hashWithSalt` maximumCapacity+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` networkConfiguration+      `Prelude.hashWithSalt` stateDetails+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` workerTypeSpecifications+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` releaseLabel+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` state+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` updatedAt++instance Prelude.NFData Application where+  rnf Application' {..} =+    Prelude.rnf architecture+      `Prelude.seq` Prelude.rnf autoStartConfiguration+      `Prelude.seq` Prelude.rnf autoStopConfiguration+      `Prelude.seq` Prelude.rnf imageConfiguration+      `Prelude.seq` Prelude.rnf initialCapacity+      `Prelude.seq` Prelude.rnf maximumCapacity+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf networkConfiguration+      `Prelude.seq` Prelude.rnf stateDetails+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf workerTypeSpecifications+      `Prelude.seq` Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf releaseLabel+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf state+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf updatedAt
+ gen/Amazonka/EMRServerless/Types/ApplicationState.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.EMRServerless.Types.ApplicationState+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRServerless.Types.ApplicationState+  ( ApplicationState+      ( ..,+        ApplicationState_CREATED,+        ApplicationState_CREATING,+        ApplicationState_STARTED,+        ApplicationState_STARTING,+        ApplicationState_STOPPED,+        ApplicationState_STOPPING,+        ApplicationState_TERMINATED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ApplicationState = ApplicationState'+  { fromApplicationState ::+      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 ApplicationState_CREATED :: ApplicationState+pattern ApplicationState_CREATED = ApplicationState' "CREATED"++pattern ApplicationState_CREATING :: ApplicationState+pattern ApplicationState_CREATING = ApplicationState' "CREATING"++pattern ApplicationState_STARTED :: ApplicationState+pattern ApplicationState_STARTED = ApplicationState' "STARTED"++pattern ApplicationState_STARTING :: ApplicationState+pattern ApplicationState_STARTING = ApplicationState' "STARTING"++pattern ApplicationState_STOPPED :: ApplicationState+pattern ApplicationState_STOPPED = ApplicationState' "STOPPED"++pattern ApplicationState_STOPPING :: ApplicationState+pattern ApplicationState_STOPPING = ApplicationState' "STOPPING"++pattern ApplicationState_TERMINATED :: ApplicationState+pattern ApplicationState_TERMINATED = ApplicationState' "TERMINATED"++{-# COMPLETE+  ApplicationState_CREATED,+  ApplicationState_CREATING,+  ApplicationState_STARTED,+  ApplicationState_STARTING,+  ApplicationState_STOPPED,+  ApplicationState_STOPPING,+  ApplicationState_TERMINATED,+  ApplicationState'+  #-}
+ gen/Amazonka/EMRServerless/Types/ApplicationSummary.hs view
@@ -0,0 +1,203 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRServerless.Types.ApplicationSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRServerless.Types.ApplicationSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRServerless.Types.ApplicationState+import Amazonka.EMRServerless.Types.Architecture+import qualified Amazonka.Prelude as Prelude++-- | The summary of attributes associated with an application.+--+-- /See:/ 'newApplicationSummary' smart constructor.+data ApplicationSummary = ApplicationSummary'+  { -- | The CPU architecture of an application.+    architecture :: Prelude.Maybe Architecture,+    -- | The name of the application.+    name :: Prelude.Maybe Prelude.Text,+    -- | The state details of the application.+    stateDetails :: Prelude.Maybe Prelude.Text,+    -- | The ID of the application.+    id :: Prelude.Text,+    -- | The ARN of the application.+    arn :: Prelude.Text,+    -- | The EMR release associated with the application.+    releaseLabel :: Prelude.Text,+    -- | The type of application, such as Spark or Hive.+    type' :: Prelude.Text,+    -- | The state of the application.+    state :: ApplicationState,+    -- | The date and time when the application was created.+    createdAt :: Data.POSIX,+    -- | The date and time when the application was last updated.+    updatedAt :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ApplicationSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'architecture', 'applicationSummary_architecture' - The CPU architecture of an application.+--+-- 'name', 'applicationSummary_name' - The name of the application.+--+-- 'stateDetails', 'applicationSummary_stateDetails' - The state details of the application.+--+-- 'id', 'applicationSummary_id' - The ID of the application.+--+-- 'arn', 'applicationSummary_arn' - The ARN of the application.+--+-- 'releaseLabel', 'applicationSummary_releaseLabel' - The EMR release associated with the application.+--+-- 'type'', 'applicationSummary_type' - The type of application, such as Spark or Hive.+--+-- 'state', 'applicationSummary_state' - The state of the application.+--+-- 'createdAt', 'applicationSummary_createdAt' - The date and time when the application was created.+--+-- 'updatedAt', 'applicationSummary_updatedAt' - The date and time when the application was last updated.+newApplicationSummary ::+  -- | 'id'+  Prelude.Text ->+  -- | 'arn'+  Prelude.Text ->+  -- | 'releaseLabel'+  Prelude.Text ->+  -- | 'type''+  Prelude.Text ->+  -- | 'state'+  ApplicationState ->+  -- | 'createdAt'+  Prelude.UTCTime ->+  -- | 'updatedAt'+  Prelude.UTCTime ->+  ApplicationSummary+newApplicationSummary+  pId_+  pArn_+  pReleaseLabel_+  pType_+  pState_+  pCreatedAt_+  pUpdatedAt_ =+    ApplicationSummary'+      { architecture = Prelude.Nothing,+        name = Prelude.Nothing,+        stateDetails = Prelude.Nothing,+        id = pId_,+        arn = pArn_,+        releaseLabel = pReleaseLabel_,+        type' = pType_,+        state = pState_,+        createdAt = Data._Time Lens.# pCreatedAt_,+        updatedAt = Data._Time Lens.# pUpdatedAt_+      }++-- | The CPU architecture of an application.+applicationSummary_architecture :: Lens.Lens' ApplicationSummary (Prelude.Maybe Architecture)+applicationSummary_architecture = Lens.lens (\ApplicationSummary' {architecture} -> architecture) (\s@ApplicationSummary' {} a -> s {architecture = a} :: ApplicationSummary)++-- | The name of the application.+applicationSummary_name :: Lens.Lens' ApplicationSummary (Prelude.Maybe Prelude.Text)+applicationSummary_name = Lens.lens (\ApplicationSummary' {name} -> name) (\s@ApplicationSummary' {} a -> s {name = a} :: ApplicationSummary)++-- | The state details of the application.+applicationSummary_stateDetails :: Lens.Lens' ApplicationSummary (Prelude.Maybe Prelude.Text)+applicationSummary_stateDetails = Lens.lens (\ApplicationSummary' {stateDetails} -> stateDetails) (\s@ApplicationSummary' {} a -> s {stateDetails = a} :: ApplicationSummary)++-- | The ID of the application.+applicationSummary_id :: Lens.Lens' ApplicationSummary Prelude.Text+applicationSummary_id = Lens.lens (\ApplicationSummary' {id} -> id) (\s@ApplicationSummary' {} a -> s {id = a} :: ApplicationSummary)++-- | The ARN of the application.+applicationSummary_arn :: Lens.Lens' ApplicationSummary Prelude.Text+applicationSummary_arn = Lens.lens (\ApplicationSummary' {arn} -> arn) (\s@ApplicationSummary' {} a -> s {arn = a} :: ApplicationSummary)++-- | The EMR release associated with the application.+applicationSummary_releaseLabel :: Lens.Lens' ApplicationSummary Prelude.Text+applicationSummary_releaseLabel = Lens.lens (\ApplicationSummary' {releaseLabel} -> releaseLabel) (\s@ApplicationSummary' {} a -> s {releaseLabel = a} :: ApplicationSummary)++-- | The type of application, such as Spark or Hive.+applicationSummary_type :: Lens.Lens' ApplicationSummary Prelude.Text+applicationSummary_type = Lens.lens (\ApplicationSummary' {type'} -> type') (\s@ApplicationSummary' {} a -> s {type' = a} :: ApplicationSummary)++-- | The state of the application.+applicationSummary_state :: Lens.Lens' ApplicationSummary ApplicationState+applicationSummary_state = Lens.lens (\ApplicationSummary' {state} -> state) (\s@ApplicationSummary' {} a -> s {state = a} :: ApplicationSummary)++-- | The date and time when the application was created.+applicationSummary_createdAt :: Lens.Lens' ApplicationSummary Prelude.UTCTime+applicationSummary_createdAt = Lens.lens (\ApplicationSummary' {createdAt} -> createdAt) (\s@ApplicationSummary' {} a -> s {createdAt = a} :: ApplicationSummary) Prelude.. Data._Time++-- | The date and time when the application was last updated.+applicationSummary_updatedAt :: Lens.Lens' ApplicationSummary Prelude.UTCTime+applicationSummary_updatedAt = Lens.lens (\ApplicationSummary' {updatedAt} -> updatedAt) (\s@ApplicationSummary' {} a -> s {updatedAt = a} :: ApplicationSummary) Prelude.. Data._Time++instance Data.FromJSON ApplicationSummary where+  parseJSON =+    Data.withObject+      "ApplicationSummary"+      ( \x ->+          ApplicationSummary'+            Prelude.<$> (x Data..:? "architecture")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "stateDetails")+            Prelude.<*> (x Data..: "id")+            Prelude.<*> (x Data..: "arn")+            Prelude.<*> (x Data..: "releaseLabel")+            Prelude.<*> (x Data..: "type")+            Prelude.<*> (x Data..: "state")+            Prelude.<*> (x Data..: "createdAt")+            Prelude.<*> (x Data..: "updatedAt")+      )++instance Prelude.Hashable ApplicationSummary where+  hashWithSalt _salt ApplicationSummary' {..} =+    _salt+      `Prelude.hashWithSalt` architecture+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` stateDetails+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` releaseLabel+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` state+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` updatedAt++instance Prelude.NFData ApplicationSummary where+  rnf ApplicationSummary' {..} =+    Prelude.rnf architecture+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf stateDetails+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf releaseLabel+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf state+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf updatedAt
+ gen/Amazonka/EMRServerless/Types/Architecture.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.EMRServerless.Types.Architecture+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRServerless.Types.Architecture+  ( Architecture+      ( ..,+        Architecture_ARM64,+        Architecture_X86_64+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Architecture = Architecture'+  { fromArchitecture ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern Architecture_ARM64 :: Architecture+pattern Architecture_ARM64 = Architecture' "ARM64"++pattern Architecture_X86_64 :: Architecture+pattern Architecture_X86_64 = Architecture' "X86_64"++{-# COMPLETE+  Architecture_ARM64,+  Architecture_X86_64,+  Architecture'+  #-}
+ gen/Amazonka/EMRServerless/Types/AutoStartConfig.hs view
@@ -0,0 +1,78 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRServerless.Types.AutoStartConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRServerless.Types.AutoStartConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The configuration for an application to automatically start on job+-- submission.+--+-- /See:/ 'newAutoStartConfig' smart constructor.+data AutoStartConfig = AutoStartConfig'+  { -- | Enables the application to automatically start on job submission.+    -- Defaults to true.+    enabled :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AutoStartConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'enabled', 'autoStartConfig_enabled' - Enables the application to automatically start on job submission.+-- Defaults to true.+newAutoStartConfig ::+  AutoStartConfig+newAutoStartConfig =+  AutoStartConfig' {enabled = Prelude.Nothing}++-- | Enables the application to automatically start on job submission.+-- Defaults to true.+autoStartConfig_enabled :: Lens.Lens' AutoStartConfig (Prelude.Maybe Prelude.Bool)+autoStartConfig_enabled = Lens.lens (\AutoStartConfig' {enabled} -> enabled) (\s@AutoStartConfig' {} a -> s {enabled = a} :: AutoStartConfig)++instance Data.FromJSON AutoStartConfig where+  parseJSON =+    Data.withObject+      "AutoStartConfig"+      ( \x ->+          AutoStartConfig' Prelude.<$> (x Data..:? "enabled")+      )++instance Prelude.Hashable AutoStartConfig where+  hashWithSalt _salt AutoStartConfig' {..} =+    _salt `Prelude.hashWithSalt` enabled++instance Prelude.NFData AutoStartConfig where+  rnf AutoStartConfig' {..} = Prelude.rnf enabled++instance Data.ToJSON AutoStartConfig where+  toJSON AutoStartConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [("enabled" Data..=) Prelude.<$> enabled]+      )
+ gen/Amazonka/EMRServerless/Types/AutoStopConfig.hs view
@@ -0,0 +1,101 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRServerless.Types.AutoStopConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRServerless.Types.AutoStopConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The configuration for an application to automatically stop after a+-- certain amount of time being idle.+--+-- /See:/ 'newAutoStopConfig' smart constructor.+data AutoStopConfig = AutoStopConfig'+  { -- | Enables the application to automatically stop after a certain amount of+    -- time being idle. Defaults to true.+    enabled :: Prelude.Maybe Prelude.Bool,+    -- | The amount of idle time in minutes after which your application will+    -- automatically stop. Defaults to 15 minutes.+    idleTimeoutMinutes :: Prelude.Maybe Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AutoStopConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'enabled', 'autoStopConfig_enabled' - Enables the application to automatically stop after a certain amount of+-- time being idle. Defaults to true.+--+-- 'idleTimeoutMinutes', 'autoStopConfig_idleTimeoutMinutes' - The amount of idle time in minutes after which your application will+-- automatically stop. Defaults to 15 minutes.+newAutoStopConfig ::+  AutoStopConfig+newAutoStopConfig =+  AutoStopConfig'+    { enabled = Prelude.Nothing,+      idleTimeoutMinutes = Prelude.Nothing+    }++-- | Enables the application to automatically stop after a certain amount of+-- time being idle. Defaults to true.+autoStopConfig_enabled :: Lens.Lens' AutoStopConfig (Prelude.Maybe Prelude.Bool)+autoStopConfig_enabled = Lens.lens (\AutoStopConfig' {enabled} -> enabled) (\s@AutoStopConfig' {} a -> s {enabled = a} :: AutoStopConfig)++-- | The amount of idle time in minutes after which your application will+-- automatically stop. Defaults to 15 minutes.+autoStopConfig_idleTimeoutMinutes :: Lens.Lens' AutoStopConfig (Prelude.Maybe Prelude.Natural)+autoStopConfig_idleTimeoutMinutes = Lens.lens (\AutoStopConfig' {idleTimeoutMinutes} -> idleTimeoutMinutes) (\s@AutoStopConfig' {} a -> s {idleTimeoutMinutes = a} :: AutoStopConfig)++instance Data.FromJSON AutoStopConfig where+  parseJSON =+    Data.withObject+      "AutoStopConfig"+      ( \x ->+          AutoStopConfig'+            Prelude.<$> (x Data..:? "enabled")+            Prelude.<*> (x Data..:? "idleTimeoutMinutes")+      )++instance Prelude.Hashable AutoStopConfig where+  hashWithSalt _salt AutoStopConfig' {..} =+    _salt+      `Prelude.hashWithSalt` enabled+      `Prelude.hashWithSalt` idleTimeoutMinutes++instance Prelude.NFData AutoStopConfig where+  rnf AutoStopConfig' {..} =+    Prelude.rnf enabled+      `Prelude.seq` Prelude.rnf idleTimeoutMinutes++instance Data.ToJSON AutoStopConfig where+  toJSON AutoStopConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("enabled" Data..=) Prelude.<$> enabled,+            ("idleTimeoutMinutes" Data..=)+              Prelude.<$> idleTimeoutMinutes+          ]+      )
+ gen/Amazonka/EMRServerless/Types/Configuration.hs view
@@ -0,0 +1,117 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRServerless.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.EMRServerless.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 an+-- application. 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/EMRServerless/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.EMRServerless.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.EMRServerless.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.EMRServerless.Types.Configuration+import Amazonka.EMRServerless.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 override configurations for the application.+    applicationConfiguration :: Prelude.Maybe [Configuration],+    -- | The override 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 override configurations for the application.+--+-- 'monitoringConfiguration', 'configurationOverrides_monitoringConfiguration' - The override configurations for monitoring.+newConfigurationOverrides ::+  ConfigurationOverrides+newConfigurationOverrides =+  ConfigurationOverrides'+    { applicationConfiguration =+        Prelude.Nothing,+      monitoringConfiguration = Prelude.Nothing+    }++-- | The override configurations for the application.+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 override 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/EMRServerless/Types/Hive.hs view
@@ -0,0 +1,108 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRServerless.Types.Hive+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRServerless.Types.Hive 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 configurations for the Hive job driver.+--+-- /See:/ 'newHive' smart constructor.+data Hive = Hive'+  { -- | The query file for the Hive job run.+    initQueryFile :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The parameters for the Hive job run.+    parameters :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The query for the Hive job run.+    query :: Data.Sensitive Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Hive' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'initQueryFile', 'hive_initQueryFile' - The query file for the Hive job run.+--+-- 'parameters', 'hive_parameters' - The parameters for the Hive job run.+--+-- 'query', 'hive_query' - The query for the Hive job run.+newHive ::+  -- | 'query'+  Prelude.Text ->+  Hive+newHive pQuery_ =+  Hive'+    { initQueryFile = Prelude.Nothing,+      parameters = Prelude.Nothing,+      query = Data._Sensitive Lens.# pQuery_+    }++-- | The query file for the Hive job run.+hive_initQueryFile :: Lens.Lens' Hive (Prelude.Maybe Prelude.Text)+hive_initQueryFile = Lens.lens (\Hive' {initQueryFile} -> initQueryFile) (\s@Hive' {} a -> s {initQueryFile = a} :: Hive) Prelude.. Lens.mapping Data._Sensitive++-- | The parameters for the Hive job run.+hive_parameters :: Lens.Lens' Hive (Prelude.Maybe Prelude.Text)+hive_parameters = Lens.lens (\Hive' {parameters} -> parameters) (\s@Hive' {} a -> s {parameters = a} :: Hive) Prelude.. Lens.mapping Data._Sensitive++-- | The query for the Hive job run.+hive_query :: Lens.Lens' Hive Prelude.Text+hive_query = Lens.lens (\Hive' {query} -> query) (\s@Hive' {} a -> s {query = a} :: Hive) Prelude.. Data._Sensitive++instance Data.FromJSON Hive where+  parseJSON =+    Data.withObject+      "Hive"+      ( \x ->+          Hive'+            Prelude.<$> (x Data..:? "initQueryFile")+            Prelude.<*> (x Data..:? "parameters")+            Prelude.<*> (x Data..: "query")+      )++instance Prelude.Hashable Hive where+  hashWithSalt _salt Hive' {..} =+    _salt+      `Prelude.hashWithSalt` initQueryFile+      `Prelude.hashWithSalt` parameters+      `Prelude.hashWithSalt` query++instance Prelude.NFData Hive where+  rnf Hive' {..} =+    Prelude.rnf initQueryFile+      `Prelude.seq` Prelude.rnf parameters+      `Prelude.seq` Prelude.rnf query++instance Data.ToJSON Hive where+  toJSON Hive' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("initQueryFile" Data..=) Prelude.<$> initQueryFile,+            ("parameters" Data..=) Prelude.<$> parameters,+            Prelude.Just ("query" Data..= query)+          ]+      )
+ gen/Amazonka/EMRServerless/Types/ImageConfiguration.hs view
@@ -0,0 +1,93 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRServerless.Types.ImageConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRServerless.Types.ImageConfiguration 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 applied image configuration.+--+-- /See:/ 'newImageConfiguration' smart constructor.+data ImageConfiguration = ImageConfiguration'+  { -- | The SHA256 digest of the image URI. This indicates which specific image+    -- the application is configured for. The image digest doesn\'t exist until+    -- an application has started.+    resolvedImageDigest :: Prelude.Maybe Prelude.Text,+    -- | The image URI.+    imageUri :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImageConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resolvedImageDigest', 'imageConfiguration_resolvedImageDigest' - The SHA256 digest of the image URI. This indicates which specific image+-- the application is configured for. The image digest doesn\'t exist until+-- an application has started.+--+-- 'imageUri', 'imageConfiguration_imageUri' - The image URI.+newImageConfiguration ::+  -- | 'imageUri'+  Prelude.Text ->+  ImageConfiguration+newImageConfiguration pImageUri_ =+  ImageConfiguration'+    { resolvedImageDigest =+        Prelude.Nothing,+      imageUri = pImageUri_+    }++-- | The SHA256 digest of the image URI. This indicates which specific image+-- the application is configured for. The image digest doesn\'t exist until+-- an application has started.+imageConfiguration_resolvedImageDigest :: Lens.Lens' ImageConfiguration (Prelude.Maybe Prelude.Text)+imageConfiguration_resolvedImageDigest = Lens.lens (\ImageConfiguration' {resolvedImageDigest} -> resolvedImageDigest) (\s@ImageConfiguration' {} a -> s {resolvedImageDigest = a} :: ImageConfiguration)++-- | The image URI.+imageConfiguration_imageUri :: Lens.Lens' ImageConfiguration Prelude.Text+imageConfiguration_imageUri = Lens.lens (\ImageConfiguration' {imageUri} -> imageUri) (\s@ImageConfiguration' {} a -> s {imageUri = a} :: ImageConfiguration)++instance Data.FromJSON ImageConfiguration where+  parseJSON =+    Data.withObject+      "ImageConfiguration"+      ( \x ->+          ImageConfiguration'+            Prelude.<$> (x Data..:? "resolvedImageDigest")+            Prelude.<*> (x Data..: "imageUri")+      )++instance Prelude.Hashable ImageConfiguration where+  hashWithSalt _salt ImageConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` resolvedImageDigest+      `Prelude.hashWithSalt` imageUri++instance Prelude.NFData ImageConfiguration where+  rnf ImageConfiguration' {..} =+    Prelude.rnf resolvedImageDigest+      `Prelude.seq` Prelude.rnf imageUri
+ gen/Amazonka/EMRServerless/Types/ImageConfigurationInput.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.EMRServerless.Types.ImageConfigurationInput+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRServerless.Types.ImageConfigurationInput 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 image configuration.+--+-- /See:/ 'newImageConfigurationInput' smart constructor.+data ImageConfigurationInput = ImageConfigurationInput'+  { -- | The URI of an image in the Amazon ECR registry. This field is required+    -- when you create a new application. If you leave this field blank in an+    -- update, Amazon EMR will remove the image configuration.+    imageUri :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImageConfigurationInput' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'imageUri', 'imageConfigurationInput_imageUri' - The URI of an image in the Amazon ECR registry. This field is required+-- when you create a new application. If you leave this field blank in an+-- update, Amazon EMR will remove the image configuration.+newImageConfigurationInput ::+  ImageConfigurationInput+newImageConfigurationInput =+  ImageConfigurationInput'+    { imageUri =+        Prelude.Nothing+    }++-- | The URI of an image in the Amazon ECR registry. This field is required+-- when you create a new application. If you leave this field blank in an+-- update, Amazon EMR will remove the image configuration.+imageConfigurationInput_imageUri :: Lens.Lens' ImageConfigurationInput (Prelude.Maybe Prelude.Text)+imageConfigurationInput_imageUri = Lens.lens (\ImageConfigurationInput' {imageUri} -> imageUri) (\s@ImageConfigurationInput' {} a -> s {imageUri = a} :: ImageConfigurationInput)++instance Prelude.Hashable ImageConfigurationInput where+  hashWithSalt _salt ImageConfigurationInput' {..} =+    _salt `Prelude.hashWithSalt` imageUri++instance Prelude.NFData ImageConfigurationInput where+  rnf ImageConfigurationInput' {..} =+    Prelude.rnf imageUri++instance Data.ToJSON ImageConfigurationInput where+  toJSON ImageConfigurationInput' {..} =+    Data.object+      ( Prelude.catMaybes+          [("imageUri" Data..=) Prelude.<$> imageUri]+      )
+ gen/Amazonka/EMRServerless/Types/InitialCapacityConfig.hs view
@@ -0,0 +1,98 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRServerless.Types.InitialCapacityConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRServerless.Types.InitialCapacityConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRServerless.Types.WorkerResourceConfig+import qualified Amazonka.Prelude as Prelude++-- | The initial capacity configuration per worker.+--+-- /See:/ 'newInitialCapacityConfig' smart constructor.+data InitialCapacityConfig = InitialCapacityConfig'+  { -- | The resource configuration of the initial capacity configuration.+    workerConfiguration :: Prelude.Maybe WorkerResourceConfig,+    -- | The number of workers in the initial capacity configuration.+    workerCount :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InitialCapacityConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'workerConfiguration', 'initialCapacityConfig_workerConfiguration' - The resource configuration of the initial capacity configuration.+--+-- 'workerCount', 'initialCapacityConfig_workerCount' - The number of workers in the initial capacity configuration.+newInitialCapacityConfig ::+  -- | 'workerCount'+  Prelude.Natural ->+  InitialCapacityConfig+newInitialCapacityConfig pWorkerCount_ =+  InitialCapacityConfig'+    { workerConfiguration =+        Prelude.Nothing,+      workerCount = pWorkerCount_+    }++-- | The resource configuration of the initial capacity configuration.+initialCapacityConfig_workerConfiguration :: Lens.Lens' InitialCapacityConfig (Prelude.Maybe WorkerResourceConfig)+initialCapacityConfig_workerConfiguration = Lens.lens (\InitialCapacityConfig' {workerConfiguration} -> workerConfiguration) (\s@InitialCapacityConfig' {} a -> s {workerConfiguration = a} :: InitialCapacityConfig)++-- | The number of workers in the initial capacity configuration.+initialCapacityConfig_workerCount :: Lens.Lens' InitialCapacityConfig Prelude.Natural+initialCapacityConfig_workerCount = Lens.lens (\InitialCapacityConfig' {workerCount} -> workerCount) (\s@InitialCapacityConfig' {} a -> s {workerCount = a} :: InitialCapacityConfig)++instance Data.FromJSON InitialCapacityConfig where+  parseJSON =+    Data.withObject+      "InitialCapacityConfig"+      ( \x ->+          InitialCapacityConfig'+            Prelude.<$> (x Data..:? "workerConfiguration")+            Prelude.<*> (x Data..: "workerCount")+      )++instance Prelude.Hashable InitialCapacityConfig where+  hashWithSalt _salt InitialCapacityConfig' {..} =+    _salt+      `Prelude.hashWithSalt` workerConfiguration+      `Prelude.hashWithSalt` workerCount++instance Prelude.NFData InitialCapacityConfig where+  rnf InitialCapacityConfig' {..} =+    Prelude.rnf workerConfiguration+      `Prelude.seq` Prelude.rnf workerCount++instance Data.ToJSON InitialCapacityConfig where+  toJSON InitialCapacityConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("workerConfiguration" Data..=)+              Prelude.<$> workerConfiguration,+            Prelude.Just ("workerCount" Data..= workerCount)+          ]+      )
+ gen/Amazonka/EMRServerless/Types/JobDriver.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.EMRServerless.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.EMRServerless.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.EMRServerless.Types.Hive+import Amazonka.EMRServerless.Types.SparkSubmit+import qualified Amazonka.Prelude as Prelude++-- | The driver that the job runs on.+--+-- /See:/ 'newJobDriver' smart constructor.+data JobDriver = JobDriver'+  { -- | The job driver parameters specified for Hive.+    hive :: Prelude.Maybe Hive,+    -- | The job driver parameters specified for Spark.+    sparkSubmit :: Prelude.Maybe SparkSubmit+  }+  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:+--+-- 'hive', 'jobDriver_hive' - The job driver parameters specified for Hive.+--+-- 'sparkSubmit', 'jobDriver_sparkSubmit' - The job driver parameters specified for Spark.+newJobDriver ::+  JobDriver+newJobDriver =+  JobDriver'+    { hive = Prelude.Nothing,+      sparkSubmit = Prelude.Nothing+    }++-- | The job driver parameters specified for Hive.+jobDriver_hive :: Lens.Lens' JobDriver (Prelude.Maybe Hive)+jobDriver_hive = Lens.lens (\JobDriver' {hive} -> hive) (\s@JobDriver' {} a -> s {hive = a} :: JobDriver)++-- | The job driver parameters specified for Spark.+jobDriver_sparkSubmit :: Lens.Lens' JobDriver (Prelude.Maybe SparkSubmit)+jobDriver_sparkSubmit = Lens.lens (\JobDriver' {sparkSubmit} -> sparkSubmit) (\s@JobDriver' {} a -> s {sparkSubmit = a} :: JobDriver)++instance Data.FromJSON JobDriver where+  parseJSON =+    Data.withObject+      "JobDriver"+      ( \x ->+          JobDriver'+            Prelude.<$> (x Data..:? "hive")+            Prelude.<*> (x Data..:? "sparkSubmit")+      )++instance Prelude.Hashable JobDriver where+  hashWithSalt _salt JobDriver' {..} =+    _salt+      `Prelude.hashWithSalt` hive+      `Prelude.hashWithSalt` sparkSubmit++instance Prelude.NFData JobDriver where+  rnf JobDriver' {..} =+    Prelude.rnf hive+      `Prelude.seq` Prelude.rnf sparkSubmit++instance Data.ToJSON JobDriver where+  toJSON JobDriver' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("hive" Data..=) Prelude.<$> hive,+            ("sparkSubmit" Data..=) Prelude.<$> sparkSubmit+          ]+      )
+ gen/Amazonka/EMRServerless/Types/JobRun.hs view
@@ -0,0 +1,315 @@+{-# 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.EMRServerless.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.EMRServerless.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.EMRServerless.Types.ConfigurationOverrides+import Amazonka.EMRServerless.Types.JobDriver+import Amazonka.EMRServerless.Types.JobRunState+import Amazonka.EMRServerless.Types.NetworkConfiguration+import Amazonka.EMRServerless.Types.TotalResourceUtilization+import qualified Amazonka.Prelude as Prelude++-- | Information about a job run. A job run is a unit of work, such as a+-- Spark JAR, Hive query, or SparkSQL query, that you submit to an EMR+-- Serverless application.+--+-- /See:/ 'newJobRun' smart constructor.+data JobRun = JobRun'+  { -- | The configuration settings that are used to override default+    -- configuration.+    configurationOverrides :: Prelude.Maybe ConfigurationOverrides,+    -- | The optional job run name. This doesn\'t have to be unique.+    name :: Prelude.Maybe Prelude.Text,+    networkConfiguration :: Prelude.Maybe NetworkConfiguration,+    -- | The tags assigned to the job run.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The job run total execution duration in seconds. This field is only+    -- available for job runs in a @COMPLETED@, @FAILED@, or @CANCELLED@ state.+    totalExecutionDurationSeconds :: Prelude.Maybe Prelude.Int,+    -- | The aggregate vCPU, memory, and storage resources used from the time job+    -- start executing till the time job is terminated, rounded up to the+    -- nearest second.+    totalResourceUtilization :: Prelude.Maybe TotalResourceUtilization,+    -- | The ID of the application the job is running on.+    applicationId :: Prelude.Text,+    -- | The ID of the job run.+    jobRunId :: Prelude.Text,+    -- | The execution role ARN of the job run.+    arn :: Prelude.Text,+    -- | The user who created the job run.+    createdBy :: Prelude.Text,+    -- | The date and time when the job run was created.+    createdAt :: Data.POSIX,+    -- | The date and time when the job run was updated.+    updatedAt :: Data.POSIX,+    -- | The execution role ARN of the job run.+    executionRole :: Prelude.Text,+    -- | The state of the job run.+    state :: JobRunState,+    -- | The state details of the job run.+    stateDetails :: Prelude.Text,+    -- | The EMR release associated with the application your job is running on.+    releaseLabel :: Prelude.Text,+    -- | The job driver for the job run.+    jobDriver :: JobDriver+  }+  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:+--+-- 'configurationOverrides', 'jobRun_configurationOverrides' - The configuration settings that are used to override default+-- configuration.+--+-- 'name', 'jobRun_name' - The optional job run name. This doesn\'t have to be unique.+--+-- 'networkConfiguration', 'jobRun_networkConfiguration' - Undocumented member.+--+-- 'tags', 'jobRun_tags' - The tags assigned to the job run.+--+-- 'totalExecutionDurationSeconds', 'jobRun_totalExecutionDurationSeconds' - The job run total execution duration in seconds. This field is only+-- available for job runs in a @COMPLETED@, @FAILED@, or @CANCELLED@ state.+--+-- 'totalResourceUtilization', 'jobRun_totalResourceUtilization' - The aggregate vCPU, memory, and storage resources used from the time job+-- start executing till the time job is terminated, rounded up to the+-- nearest second.+--+-- 'applicationId', 'jobRun_applicationId' - The ID of the application the job is running on.+--+-- 'jobRunId', 'jobRun_jobRunId' - The ID of the job run.+--+-- 'arn', 'jobRun_arn' - The execution role ARN of the job run.+--+-- 'createdBy', 'jobRun_createdBy' - The user who created the job run.+--+-- 'createdAt', 'jobRun_createdAt' - The date and time when the job run was created.+--+-- 'updatedAt', 'jobRun_updatedAt' - The date and time when the job run was updated.+--+-- 'executionRole', 'jobRun_executionRole' - The execution role ARN of the job run.+--+-- 'state', 'jobRun_state' - The state of the job run.+--+-- 'stateDetails', 'jobRun_stateDetails' - The state details of the job run.+--+-- 'releaseLabel', 'jobRun_releaseLabel' - The EMR release associated with the application your job is running on.+--+-- 'jobDriver', 'jobRun_jobDriver' - The job driver for the job run.+newJobRun ::+  -- | 'applicationId'+  Prelude.Text ->+  -- | 'jobRunId'+  Prelude.Text ->+  -- | 'arn'+  Prelude.Text ->+  -- | 'createdBy'+  Prelude.Text ->+  -- | 'createdAt'+  Prelude.UTCTime ->+  -- | 'updatedAt'+  Prelude.UTCTime ->+  -- | 'executionRole'+  Prelude.Text ->+  -- | 'state'+  JobRunState ->+  -- | 'stateDetails'+  Prelude.Text ->+  -- | 'releaseLabel'+  Prelude.Text ->+  -- | 'jobDriver'+  JobDriver ->+  JobRun+newJobRun+  pApplicationId_+  pJobRunId_+  pArn_+  pCreatedBy_+  pCreatedAt_+  pUpdatedAt_+  pExecutionRole_+  pState_+  pStateDetails_+  pReleaseLabel_+  pJobDriver_ =+    JobRun'+      { configurationOverrides = Prelude.Nothing,+        name = Prelude.Nothing,+        networkConfiguration = Prelude.Nothing,+        tags = Prelude.Nothing,+        totalExecutionDurationSeconds = Prelude.Nothing,+        totalResourceUtilization = Prelude.Nothing,+        applicationId = pApplicationId_,+        jobRunId = pJobRunId_,+        arn = pArn_,+        createdBy = pCreatedBy_,+        createdAt = Data._Time Lens.# pCreatedAt_,+        updatedAt = Data._Time Lens.# pUpdatedAt_,+        executionRole = pExecutionRole_,+        state = pState_,+        stateDetails = pStateDetails_,+        releaseLabel = pReleaseLabel_,+        jobDriver = pJobDriver_+      }++-- | 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 optional job run name. This doesn\'t have to be unique.+jobRun_name :: Lens.Lens' JobRun (Prelude.Maybe Prelude.Text)+jobRun_name = Lens.lens (\JobRun' {name} -> name) (\s@JobRun' {} a -> s {name = a} :: JobRun)++-- | Undocumented member.+jobRun_networkConfiguration :: Lens.Lens' JobRun (Prelude.Maybe NetworkConfiguration)+jobRun_networkConfiguration = Lens.lens (\JobRun' {networkConfiguration} -> networkConfiguration) (\s@JobRun' {} a -> s {networkConfiguration = a} :: JobRun)++-- | The tags assigned to 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 job run total execution duration in seconds. This field is only+-- available for job runs in a @COMPLETED@, @FAILED@, or @CANCELLED@ state.+jobRun_totalExecutionDurationSeconds :: Lens.Lens' JobRun (Prelude.Maybe Prelude.Int)+jobRun_totalExecutionDurationSeconds = Lens.lens (\JobRun' {totalExecutionDurationSeconds} -> totalExecutionDurationSeconds) (\s@JobRun' {} a -> s {totalExecutionDurationSeconds = a} :: JobRun)++-- | The aggregate vCPU, memory, and storage resources used from the time job+-- start executing till the time job is terminated, rounded up to the+-- nearest second.+jobRun_totalResourceUtilization :: Lens.Lens' JobRun (Prelude.Maybe TotalResourceUtilization)+jobRun_totalResourceUtilization = Lens.lens (\JobRun' {totalResourceUtilization} -> totalResourceUtilization) (\s@JobRun' {} a -> s {totalResourceUtilization = a} :: JobRun)++-- | The ID of the application the job is running on.+jobRun_applicationId :: Lens.Lens' JobRun Prelude.Text+jobRun_applicationId = Lens.lens (\JobRun' {applicationId} -> applicationId) (\s@JobRun' {} a -> s {applicationId = a} :: JobRun)++-- | The ID of the job run.+jobRun_jobRunId :: Lens.Lens' JobRun Prelude.Text+jobRun_jobRunId = Lens.lens (\JobRun' {jobRunId} -> jobRunId) (\s@JobRun' {} a -> s {jobRunId = a} :: JobRun)++-- | The execution role ARN of the job run.+jobRun_arn :: Lens.Lens' JobRun Prelude.Text+jobRun_arn = Lens.lens (\JobRun' {arn} -> arn) (\s@JobRun' {} a -> s {arn = a} :: JobRun)++-- | The user who created the job run.+jobRun_createdBy :: Lens.Lens' JobRun Prelude.Text+jobRun_createdBy = Lens.lens (\JobRun' {createdBy} -> createdBy) (\s@JobRun' {} a -> s {createdBy = a} :: JobRun)++-- | The date and time when the job run was created.+jobRun_createdAt :: Lens.Lens' JobRun Prelude.UTCTime+jobRun_createdAt = Lens.lens (\JobRun' {createdAt} -> createdAt) (\s@JobRun' {} a -> s {createdAt = a} :: JobRun) Prelude.. Data._Time++-- | The date and time when the job run was updated.+jobRun_updatedAt :: Lens.Lens' JobRun Prelude.UTCTime+jobRun_updatedAt = Lens.lens (\JobRun' {updatedAt} -> updatedAt) (\s@JobRun' {} a -> s {updatedAt = a} :: JobRun) Prelude.. Data._Time++-- | The execution role ARN of the job run.+jobRun_executionRole :: Lens.Lens' JobRun Prelude.Text+jobRun_executionRole = Lens.lens (\JobRun' {executionRole} -> executionRole) (\s@JobRun' {} a -> s {executionRole = a} :: JobRun)++-- | The state of the job run.+jobRun_state :: Lens.Lens' JobRun JobRunState+jobRun_state = Lens.lens (\JobRun' {state} -> state) (\s@JobRun' {} a -> s {state = a} :: JobRun)++-- | The state details of the job run.+jobRun_stateDetails :: Lens.Lens' JobRun Prelude.Text+jobRun_stateDetails = Lens.lens (\JobRun' {stateDetails} -> stateDetails) (\s@JobRun' {} a -> s {stateDetails = a} :: JobRun)++-- | The EMR release associated with the application your job is running on.+jobRun_releaseLabel :: Lens.Lens' JobRun Prelude.Text+jobRun_releaseLabel = Lens.lens (\JobRun' {releaseLabel} -> releaseLabel) (\s@JobRun' {} a -> s {releaseLabel = a} :: JobRun)++-- | The job driver for the job run.+jobRun_jobDriver :: Lens.Lens' JobRun JobDriver+jobRun_jobDriver = Lens.lens (\JobRun' {jobDriver} -> jobDriver) (\s@JobRun' {} a -> s {jobDriver = a} :: JobRun)++instance Data.FromJSON JobRun where+  parseJSON =+    Data.withObject+      "JobRun"+      ( \x ->+          JobRun'+            Prelude.<$> (x Data..:? "configurationOverrides")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "networkConfiguration")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "totalExecutionDurationSeconds")+            Prelude.<*> (x Data..:? "totalResourceUtilization")+            Prelude.<*> (x Data..: "applicationId")+            Prelude.<*> (x Data..: "jobRunId")+            Prelude.<*> (x Data..: "arn")+            Prelude.<*> (x Data..: "createdBy")+            Prelude.<*> (x Data..: "createdAt")+            Prelude.<*> (x Data..: "updatedAt")+            Prelude.<*> (x Data..: "executionRole")+            Prelude.<*> (x Data..: "state")+            Prelude.<*> (x Data..: "stateDetails")+            Prelude.<*> (x Data..: "releaseLabel")+            Prelude.<*> (x Data..: "jobDriver")+      )++instance Prelude.Hashable JobRun where+  hashWithSalt _salt JobRun' {..} =+    _salt+      `Prelude.hashWithSalt` configurationOverrides+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` networkConfiguration+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` totalExecutionDurationSeconds+      `Prelude.hashWithSalt` totalResourceUtilization+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` jobRunId+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` createdBy+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` updatedAt+      `Prelude.hashWithSalt` executionRole+      `Prelude.hashWithSalt` state+      `Prelude.hashWithSalt` stateDetails+      `Prelude.hashWithSalt` releaseLabel+      `Prelude.hashWithSalt` jobDriver++instance Prelude.NFData JobRun where+  rnf JobRun' {..} =+    Prelude.rnf configurationOverrides+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf networkConfiguration+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf totalExecutionDurationSeconds+      `Prelude.seq` Prelude.rnf totalResourceUtilization+      `Prelude.seq` Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf jobRunId+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdBy+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf updatedAt+      `Prelude.seq` Prelude.rnf executionRole+      `Prelude.seq` Prelude.rnf state+      `Prelude.seq` Prelude.rnf stateDetails+      `Prelude.seq` Prelude.rnf releaseLabel+      `Prelude.seq` Prelude.rnf jobDriver
+ gen/Amazonka/EMRServerless/Types/JobRunState.hs view
@@ -0,0 +1,101 @@+{-# 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.EMRServerless.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.EMRServerless.Types.JobRunState+  ( JobRunState+      ( ..,+        JobRunState_CANCELLED,+        JobRunState_CANCELLING,+        JobRunState_FAILED,+        JobRunState_PENDING,+        JobRunState_RUNNING,+        JobRunState_SCHEDULED,+        JobRunState_SUBMITTED,+        JobRunState_SUCCESS+      ),+  )+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_CANCELLING :: JobRunState+pattern JobRunState_CANCELLING = JobRunState' "CANCELLING"++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_SCHEDULED :: JobRunState+pattern JobRunState_SCHEDULED = JobRunState' "SCHEDULED"++pattern JobRunState_SUBMITTED :: JobRunState+pattern JobRunState_SUBMITTED = JobRunState' "SUBMITTED"++pattern JobRunState_SUCCESS :: JobRunState+pattern JobRunState_SUCCESS = JobRunState' "SUCCESS"++{-# COMPLETE+  JobRunState_CANCELLED,+  JobRunState_CANCELLING,+  JobRunState_FAILED,+  JobRunState_PENDING,+  JobRunState_RUNNING,+  JobRunState_SCHEDULED,+  JobRunState_SUBMITTED,+  JobRunState_SUCCESS,+  JobRunState'+  #-}
+ gen/Amazonka/EMRServerless/Types/JobRunSummary.hs view
@@ -0,0 +1,235 @@+{-# 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.EMRServerless.Types.JobRunSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRServerless.Types.JobRunSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRServerless.Types.JobRunState+import qualified Amazonka.Prelude as Prelude++-- | The summary of attributes associated with a job run.+--+-- /See:/ 'newJobRunSummary' smart constructor.+data JobRunSummary = JobRunSummary'+  { -- | The optional job run name. This doesn\'t have to be unique.+    name :: Prelude.Maybe Prelude.Text,+    -- | The type of job run, such as Spark or Hive.+    type' :: Prelude.Maybe Prelude.Text,+    -- | The ID of the application the job is running on.+    applicationId :: Prelude.Text,+    -- | The ID of the job run.+    id :: Prelude.Text,+    -- | The ARN of the job run.+    arn :: Prelude.Text,+    -- | The user who created the job run.+    createdBy :: Prelude.Text,+    -- | The date and time when the job run was created.+    createdAt :: Data.POSIX,+    -- | The date and time when the job run was last updated.+    updatedAt :: Data.POSIX,+    -- | The execution role ARN of the job run.+    executionRole :: Prelude.Text,+    -- | The state of the job run.+    state :: JobRunState,+    -- | The state details of the job run.+    stateDetails :: Prelude.Text,+    -- | The EMR release associated with the application your job is running on.+    releaseLabel :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'JobRunSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'jobRunSummary_name' - The optional job run name. This doesn\'t have to be unique.+--+-- 'type'', 'jobRunSummary_type' - The type of job run, such as Spark or Hive.+--+-- 'applicationId', 'jobRunSummary_applicationId' - The ID of the application the job is running on.+--+-- 'id', 'jobRunSummary_id' - The ID of the job run.+--+-- 'arn', 'jobRunSummary_arn' - The ARN of the job run.+--+-- 'createdBy', 'jobRunSummary_createdBy' - The user who created the job run.+--+-- 'createdAt', 'jobRunSummary_createdAt' - The date and time when the job run was created.+--+-- 'updatedAt', 'jobRunSummary_updatedAt' - The date and time when the job run was last updated.+--+-- 'executionRole', 'jobRunSummary_executionRole' - The execution role ARN of the job run.+--+-- 'state', 'jobRunSummary_state' - The state of the job run.+--+-- 'stateDetails', 'jobRunSummary_stateDetails' - The state details of the job run.+--+-- 'releaseLabel', 'jobRunSummary_releaseLabel' - The EMR release associated with the application your job is running on.+newJobRunSummary ::+  -- | 'applicationId'+  Prelude.Text ->+  -- | 'id'+  Prelude.Text ->+  -- | 'arn'+  Prelude.Text ->+  -- | 'createdBy'+  Prelude.Text ->+  -- | 'createdAt'+  Prelude.UTCTime ->+  -- | 'updatedAt'+  Prelude.UTCTime ->+  -- | 'executionRole'+  Prelude.Text ->+  -- | 'state'+  JobRunState ->+  -- | 'stateDetails'+  Prelude.Text ->+  -- | 'releaseLabel'+  Prelude.Text ->+  JobRunSummary+newJobRunSummary+  pApplicationId_+  pId_+  pArn_+  pCreatedBy_+  pCreatedAt_+  pUpdatedAt_+  pExecutionRole_+  pState_+  pStateDetails_+  pReleaseLabel_ =+    JobRunSummary'+      { name = Prelude.Nothing,+        type' = Prelude.Nothing,+        applicationId = pApplicationId_,+        id = pId_,+        arn = pArn_,+        createdBy = pCreatedBy_,+        createdAt = Data._Time Lens.# pCreatedAt_,+        updatedAt = Data._Time Lens.# pUpdatedAt_,+        executionRole = pExecutionRole_,+        state = pState_,+        stateDetails = pStateDetails_,+        releaseLabel = pReleaseLabel_+      }++-- | The optional job run name. This doesn\'t have to be unique.+jobRunSummary_name :: Lens.Lens' JobRunSummary (Prelude.Maybe Prelude.Text)+jobRunSummary_name = Lens.lens (\JobRunSummary' {name} -> name) (\s@JobRunSummary' {} a -> s {name = a} :: JobRunSummary)++-- | The type of job run, such as Spark or Hive.+jobRunSummary_type :: Lens.Lens' JobRunSummary (Prelude.Maybe Prelude.Text)+jobRunSummary_type = Lens.lens (\JobRunSummary' {type'} -> type') (\s@JobRunSummary' {} a -> s {type' = a} :: JobRunSummary)++-- | The ID of the application the job is running on.+jobRunSummary_applicationId :: Lens.Lens' JobRunSummary Prelude.Text+jobRunSummary_applicationId = Lens.lens (\JobRunSummary' {applicationId} -> applicationId) (\s@JobRunSummary' {} a -> s {applicationId = a} :: JobRunSummary)++-- | The ID of the job run.+jobRunSummary_id :: Lens.Lens' JobRunSummary Prelude.Text+jobRunSummary_id = Lens.lens (\JobRunSummary' {id} -> id) (\s@JobRunSummary' {} a -> s {id = a} :: JobRunSummary)++-- | The ARN of the job run.+jobRunSummary_arn :: Lens.Lens' JobRunSummary Prelude.Text+jobRunSummary_arn = Lens.lens (\JobRunSummary' {arn} -> arn) (\s@JobRunSummary' {} a -> s {arn = a} :: JobRunSummary)++-- | The user who created the job run.+jobRunSummary_createdBy :: Lens.Lens' JobRunSummary Prelude.Text+jobRunSummary_createdBy = Lens.lens (\JobRunSummary' {createdBy} -> createdBy) (\s@JobRunSummary' {} a -> s {createdBy = a} :: JobRunSummary)++-- | The date and time when the job run was created.+jobRunSummary_createdAt :: Lens.Lens' JobRunSummary Prelude.UTCTime+jobRunSummary_createdAt = Lens.lens (\JobRunSummary' {createdAt} -> createdAt) (\s@JobRunSummary' {} a -> s {createdAt = a} :: JobRunSummary) Prelude.. Data._Time++-- | The date and time when the job run was last updated.+jobRunSummary_updatedAt :: Lens.Lens' JobRunSummary Prelude.UTCTime+jobRunSummary_updatedAt = Lens.lens (\JobRunSummary' {updatedAt} -> updatedAt) (\s@JobRunSummary' {} a -> s {updatedAt = a} :: JobRunSummary) Prelude.. Data._Time++-- | The execution role ARN of the job run.+jobRunSummary_executionRole :: Lens.Lens' JobRunSummary Prelude.Text+jobRunSummary_executionRole = Lens.lens (\JobRunSummary' {executionRole} -> executionRole) (\s@JobRunSummary' {} a -> s {executionRole = a} :: JobRunSummary)++-- | The state of the job run.+jobRunSummary_state :: Lens.Lens' JobRunSummary JobRunState+jobRunSummary_state = Lens.lens (\JobRunSummary' {state} -> state) (\s@JobRunSummary' {} a -> s {state = a} :: JobRunSummary)++-- | The state details of the job run.+jobRunSummary_stateDetails :: Lens.Lens' JobRunSummary Prelude.Text+jobRunSummary_stateDetails = Lens.lens (\JobRunSummary' {stateDetails} -> stateDetails) (\s@JobRunSummary' {} a -> s {stateDetails = a} :: JobRunSummary)++-- | The EMR release associated with the application your job is running on.+jobRunSummary_releaseLabel :: Lens.Lens' JobRunSummary Prelude.Text+jobRunSummary_releaseLabel = Lens.lens (\JobRunSummary' {releaseLabel} -> releaseLabel) (\s@JobRunSummary' {} a -> s {releaseLabel = a} :: JobRunSummary)++instance Data.FromJSON JobRunSummary where+  parseJSON =+    Data.withObject+      "JobRunSummary"+      ( \x ->+          JobRunSummary'+            Prelude.<$> (x Data..:? "name")+            Prelude.<*> (x Data..:? "type")+            Prelude.<*> (x Data..: "applicationId")+            Prelude.<*> (x Data..: "id")+            Prelude.<*> (x Data..: "arn")+            Prelude.<*> (x Data..: "createdBy")+            Prelude.<*> (x Data..: "createdAt")+            Prelude.<*> (x Data..: "updatedAt")+            Prelude.<*> (x Data..: "executionRole")+            Prelude.<*> (x Data..: "state")+            Prelude.<*> (x Data..: "stateDetails")+            Prelude.<*> (x Data..: "releaseLabel")+      )++instance Prelude.Hashable JobRunSummary where+  hashWithSalt _salt JobRunSummary' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` createdBy+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` updatedAt+      `Prelude.hashWithSalt` executionRole+      `Prelude.hashWithSalt` state+      `Prelude.hashWithSalt` stateDetails+      `Prelude.hashWithSalt` releaseLabel++instance Prelude.NFData JobRunSummary where+  rnf JobRunSummary' {..} =+    Prelude.rnf name+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdBy+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf updatedAt+      `Prelude.seq` Prelude.rnf executionRole+      `Prelude.seq` Prelude.rnf state+      `Prelude.seq` Prelude.rnf stateDetails+      `Prelude.seq` Prelude.rnf releaseLabel
+ gen/Amazonka/EMRServerless/Types/ManagedPersistenceMonitoringConfiguration.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.EMRServerless.Types.ManagedPersistenceMonitoringConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRServerless.Types.ManagedPersistenceMonitoringConfiguration 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 managed log persistence configuration for a job run.+--+-- /See:/ 'newManagedPersistenceMonitoringConfiguration' smart constructor.+data ManagedPersistenceMonitoringConfiguration = ManagedPersistenceMonitoringConfiguration'+  { -- | Enables managed logging and defaults to true. If set to false, managed+    -- logging will be turned off.+    enabled :: Prelude.Maybe Prelude.Bool,+    -- | The KMS key ARN to encrypt the logs stored in managed log persistence.+    encryptionKeyArn :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ManagedPersistenceMonitoringConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'enabled', 'managedPersistenceMonitoringConfiguration_enabled' - Enables managed logging and defaults to true. If set to false, managed+-- logging will be turned off.+--+-- 'encryptionKeyArn', 'managedPersistenceMonitoringConfiguration_encryptionKeyArn' - The KMS key ARN to encrypt the logs stored in managed log persistence.+newManagedPersistenceMonitoringConfiguration ::+  ManagedPersistenceMonitoringConfiguration+newManagedPersistenceMonitoringConfiguration =+  ManagedPersistenceMonitoringConfiguration'+    { enabled =+        Prelude.Nothing,+      encryptionKeyArn =+        Prelude.Nothing+    }++-- | Enables managed logging and defaults to true. If set to false, managed+-- logging will be turned off.+managedPersistenceMonitoringConfiguration_enabled :: Lens.Lens' ManagedPersistenceMonitoringConfiguration (Prelude.Maybe Prelude.Bool)+managedPersistenceMonitoringConfiguration_enabled = Lens.lens (\ManagedPersistenceMonitoringConfiguration' {enabled} -> enabled) (\s@ManagedPersistenceMonitoringConfiguration' {} a -> s {enabled = a} :: ManagedPersistenceMonitoringConfiguration)++-- | The KMS key ARN to encrypt the logs stored in managed log persistence.+managedPersistenceMonitoringConfiguration_encryptionKeyArn :: Lens.Lens' ManagedPersistenceMonitoringConfiguration (Prelude.Maybe Prelude.Text)+managedPersistenceMonitoringConfiguration_encryptionKeyArn = Lens.lens (\ManagedPersistenceMonitoringConfiguration' {encryptionKeyArn} -> encryptionKeyArn) (\s@ManagedPersistenceMonitoringConfiguration' {} a -> s {encryptionKeyArn = a} :: ManagedPersistenceMonitoringConfiguration)++instance+  Data.FromJSON+    ManagedPersistenceMonitoringConfiguration+  where+  parseJSON =+    Data.withObject+      "ManagedPersistenceMonitoringConfiguration"+      ( \x ->+          ManagedPersistenceMonitoringConfiguration'+            Prelude.<$> (x Data..:? "enabled")+            Prelude.<*> (x Data..:? "encryptionKeyArn")+      )++instance+  Prelude.Hashable+    ManagedPersistenceMonitoringConfiguration+  where+  hashWithSalt+    _salt+    ManagedPersistenceMonitoringConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` enabled+        `Prelude.hashWithSalt` encryptionKeyArn++instance+  Prelude.NFData+    ManagedPersistenceMonitoringConfiguration+  where+  rnf ManagedPersistenceMonitoringConfiguration' {..} =+    Prelude.rnf enabled+      `Prelude.seq` Prelude.rnf encryptionKeyArn++instance+  Data.ToJSON+    ManagedPersistenceMonitoringConfiguration+  where+  toJSON ManagedPersistenceMonitoringConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("enabled" Data..=) Prelude.<$> enabled,+            ("encryptionKeyArn" Data..=)+              Prelude.<$> encryptionKeyArn+          ]+      )
+ gen/Amazonka/EMRServerless/Types/MaximumAllowedResources.hs view
@@ -0,0 +1,111 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRServerless.Types.MaximumAllowedResources+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRServerless.Types.MaximumAllowedResources 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 maximum allowed cumulative resources for an application. No new+-- resources will be created once the limit is hit.+--+-- /See:/ 'newMaximumAllowedResources' smart constructor.+data MaximumAllowedResources = MaximumAllowedResources'+  { -- | The maximum allowed disk for an application.+    disk :: Prelude.Maybe Prelude.Text,+    -- | The maximum allowed CPU for an application.+    cpu :: Prelude.Text,+    -- | The maximum allowed resources for an application.+    memory :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MaximumAllowedResources' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'disk', 'maximumAllowedResources_disk' - The maximum allowed disk for an application.+--+-- 'cpu', 'maximumAllowedResources_cpu' - The maximum allowed CPU for an application.+--+-- 'memory', 'maximumAllowedResources_memory' - The maximum allowed resources for an application.+newMaximumAllowedResources ::+  -- | 'cpu'+  Prelude.Text ->+  -- | 'memory'+  Prelude.Text ->+  MaximumAllowedResources+newMaximumAllowedResources pCpu_ pMemory_ =+  MaximumAllowedResources'+    { disk = Prelude.Nothing,+      cpu = pCpu_,+      memory = pMemory_+    }++-- | The maximum allowed disk for an application.+maximumAllowedResources_disk :: Lens.Lens' MaximumAllowedResources (Prelude.Maybe Prelude.Text)+maximumAllowedResources_disk = Lens.lens (\MaximumAllowedResources' {disk} -> disk) (\s@MaximumAllowedResources' {} a -> s {disk = a} :: MaximumAllowedResources)++-- | The maximum allowed CPU for an application.+maximumAllowedResources_cpu :: Lens.Lens' MaximumAllowedResources Prelude.Text+maximumAllowedResources_cpu = Lens.lens (\MaximumAllowedResources' {cpu} -> cpu) (\s@MaximumAllowedResources' {} a -> s {cpu = a} :: MaximumAllowedResources)++-- | The maximum allowed resources for an application.+maximumAllowedResources_memory :: Lens.Lens' MaximumAllowedResources Prelude.Text+maximumAllowedResources_memory = Lens.lens (\MaximumAllowedResources' {memory} -> memory) (\s@MaximumAllowedResources' {} a -> s {memory = a} :: MaximumAllowedResources)++instance Data.FromJSON MaximumAllowedResources where+  parseJSON =+    Data.withObject+      "MaximumAllowedResources"+      ( \x ->+          MaximumAllowedResources'+            Prelude.<$> (x Data..:? "disk")+            Prelude.<*> (x Data..: "cpu")+            Prelude.<*> (x Data..: "memory")+      )++instance Prelude.Hashable MaximumAllowedResources where+  hashWithSalt _salt MaximumAllowedResources' {..} =+    _salt+      `Prelude.hashWithSalt` disk+      `Prelude.hashWithSalt` cpu+      `Prelude.hashWithSalt` memory++instance Prelude.NFData MaximumAllowedResources where+  rnf MaximumAllowedResources' {..} =+    Prelude.rnf disk+      `Prelude.seq` Prelude.rnf cpu+      `Prelude.seq` Prelude.rnf memory++instance Data.ToJSON MaximumAllowedResources where+  toJSON MaximumAllowedResources' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("disk" Data..=) Prelude.<$> disk,+            Prelude.Just ("cpu" Data..= cpu),+            Prelude.Just ("memory" Data..= memory)+          ]+      )
+ gen/Amazonka/EMRServerless/Types/MonitoringConfiguration.hs view
@@ -0,0 +1,103 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRServerless.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.EMRServerless.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.EMRServerless.Types.ManagedPersistenceMonitoringConfiguration+import Amazonka.EMRServerless.Types.S3MonitoringConfiguration+import qualified Amazonka.Prelude as Prelude++-- | The configuration setting for monitoring.+--+-- /See:/ 'newMonitoringConfiguration' smart constructor.+data MonitoringConfiguration = MonitoringConfiguration'+  { -- | The managed log persistence configuration for a job run.+    managedPersistenceMonitoringConfiguration :: Prelude.Maybe ManagedPersistenceMonitoringConfiguration,+    -- | The 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:+--+-- 'managedPersistenceMonitoringConfiguration', 'monitoringConfiguration_managedPersistenceMonitoringConfiguration' - The managed log persistence configuration for a job run.+--+-- 's3MonitoringConfiguration', 'monitoringConfiguration_s3MonitoringConfiguration' - The Amazon S3 configuration for monitoring log publishing.+newMonitoringConfiguration ::+  MonitoringConfiguration+newMonitoringConfiguration =+  MonitoringConfiguration'+    { managedPersistenceMonitoringConfiguration =+        Prelude.Nothing,+      s3MonitoringConfiguration = Prelude.Nothing+    }++-- | The managed log persistence configuration for a job run.+monitoringConfiguration_managedPersistenceMonitoringConfiguration :: Lens.Lens' MonitoringConfiguration (Prelude.Maybe ManagedPersistenceMonitoringConfiguration)+monitoringConfiguration_managedPersistenceMonitoringConfiguration = Lens.lens (\MonitoringConfiguration' {managedPersistenceMonitoringConfiguration} -> managedPersistenceMonitoringConfiguration) (\s@MonitoringConfiguration' {} a -> s {managedPersistenceMonitoringConfiguration = a} :: MonitoringConfiguration)++-- | The 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..:? "managedPersistenceMonitoringConfiguration"+                        )+            Prelude.<*> (x Data..:? "s3MonitoringConfiguration")+      )++instance Prelude.Hashable MonitoringConfiguration where+  hashWithSalt _salt MonitoringConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` managedPersistenceMonitoringConfiguration+      `Prelude.hashWithSalt` s3MonitoringConfiguration++instance Prelude.NFData MonitoringConfiguration where+  rnf MonitoringConfiguration' {..} =+    Prelude.rnf+      managedPersistenceMonitoringConfiguration+      `Prelude.seq` Prelude.rnf s3MonitoringConfiguration++instance Data.ToJSON MonitoringConfiguration where+  toJSON MonitoringConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ( "managedPersistenceMonitoringConfiguration"+                Data..=+            )+              Prelude.<$> managedPersistenceMonitoringConfiguration,+            ("s3MonitoringConfiguration" Data..=)+              Prelude.<$> s3MonitoringConfiguration+          ]+      )
+ gen/Amazonka/EMRServerless/Types/NetworkConfiguration.hs view
@@ -0,0 +1,98 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRServerless.Types.NetworkConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRServerless.Types.NetworkConfiguration 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 network configuration for customer VPC connectivity.+--+-- /See:/ 'newNetworkConfiguration' smart constructor.+data NetworkConfiguration = NetworkConfiguration'+  { -- | The array of security group Ids for customer VPC connectivity.+    securityGroupIds :: Prelude.Maybe [Prelude.Text],+    -- | The array of subnet Ids for customer VPC connectivity.+    subnetIds :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NetworkConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'securityGroupIds', 'networkConfiguration_securityGroupIds' - The array of security group Ids for customer VPC connectivity.+--+-- 'subnetIds', 'networkConfiguration_subnetIds' - The array of subnet Ids for customer VPC connectivity.+newNetworkConfiguration ::+  NetworkConfiguration+newNetworkConfiguration =+  NetworkConfiguration'+    { securityGroupIds =+        Prelude.Nothing,+      subnetIds = Prelude.Nothing+    }++-- | The array of security group Ids for customer VPC connectivity.+networkConfiguration_securityGroupIds :: Lens.Lens' NetworkConfiguration (Prelude.Maybe [Prelude.Text])+networkConfiguration_securityGroupIds = Lens.lens (\NetworkConfiguration' {securityGroupIds} -> securityGroupIds) (\s@NetworkConfiguration' {} a -> s {securityGroupIds = a} :: NetworkConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The array of subnet Ids for customer VPC connectivity.+networkConfiguration_subnetIds :: Lens.Lens' NetworkConfiguration (Prelude.Maybe [Prelude.Text])+networkConfiguration_subnetIds = Lens.lens (\NetworkConfiguration' {subnetIds} -> subnetIds) (\s@NetworkConfiguration' {} a -> s {subnetIds = a} :: NetworkConfiguration) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON NetworkConfiguration where+  parseJSON =+    Data.withObject+      "NetworkConfiguration"+      ( \x ->+          NetworkConfiguration'+            Prelude.<$> ( x+                            Data..:? "securityGroupIds"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "subnetIds" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable NetworkConfiguration where+  hashWithSalt _salt NetworkConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` securityGroupIds+      `Prelude.hashWithSalt` subnetIds++instance Prelude.NFData NetworkConfiguration where+  rnf NetworkConfiguration' {..} =+    Prelude.rnf securityGroupIds+      `Prelude.seq` Prelude.rnf subnetIds++instance Data.ToJSON NetworkConfiguration where+  toJSON NetworkConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("securityGroupIds" Data..=)+              Prelude.<$> securityGroupIds,+            ("subnetIds" Data..=) Prelude.<$> subnetIds+          ]+      )
+ gen/Amazonka/EMRServerless/Types/S3MonitoringConfiguration.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.EMRServerless.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.EMRServerless.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++-- | The 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'+  { -- | The KMS key ARN to encrypt the logs published to the given Amazon S3+    -- destination.+    encryptionKeyArn :: Prelude.Maybe Prelude.Text,+    -- | The 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 '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:+--+-- 'encryptionKeyArn', 's3MonitoringConfiguration_encryptionKeyArn' - The KMS key ARN to encrypt the logs published to the given Amazon S3+-- destination.+--+-- 'logUri', 's3MonitoringConfiguration_logUri' - The Amazon S3 destination URI for log publishing.+newS3MonitoringConfiguration ::+  S3MonitoringConfiguration+newS3MonitoringConfiguration =+  S3MonitoringConfiguration'+    { encryptionKeyArn =+        Prelude.Nothing,+      logUri = Prelude.Nothing+    }++-- | The KMS key ARN to encrypt the logs published to the given Amazon S3+-- destination.+s3MonitoringConfiguration_encryptionKeyArn :: Lens.Lens' S3MonitoringConfiguration (Prelude.Maybe Prelude.Text)+s3MonitoringConfiguration_encryptionKeyArn = Lens.lens (\S3MonitoringConfiguration' {encryptionKeyArn} -> encryptionKeyArn) (\s@S3MonitoringConfiguration' {} a -> s {encryptionKeyArn = a} :: S3MonitoringConfiguration)++-- | The Amazon S3 destination URI for log publishing.+s3MonitoringConfiguration_logUri :: Lens.Lens' S3MonitoringConfiguration (Prelude.Maybe 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..:? "encryptionKeyArn")+            Prelude.<*> (x Data..:? "logUri")+      )++instance Prelude.Hashable S3MonitoringConfiguration where+  hashWithSalt _salt S3MonitoringConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` encryptionKeyArn+      `Prelude.hashWithSalt` logUri++instance Prelude.NFData S3MonitoringConfiguration where+  rnf S3MonitoringConfiguration' {..} =+    Prelude.rnf encryptionKeyArn+      `Prelude.seq` Prelude.rnf logUri++instance Data.ToJSON S3MonitoringConfiguration where+  toJSON S3MonitoringConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("encryptionKeyArn" Data..=)+              Prelude.<$> encryptionKeyArn,+            ("logUri" Data..=) Prelude.<$> logUri+          ]+      )
+ gen/Amazonka/EMRServerless/Types/SparkSubmit.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.EMRServerless.Types.SparkSubmit+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRServerless.Types.SparkSubmit 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 configurations for the Spark submit job driver.+--+-- /See:/ 'newSparkSubmit' smart constructor.+data SparkSubmit = SparkSubmit'+  { -- | The arguments for the Spark submit job run.+    entryPointArguments :: Prelude.Maybe [Data.Sensitive Prelude.Text],+    -- | The parameters for the Spark submit job run.+    sparkSubmitParameters :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The entry point for the Spark submit job run.+    entryPoint :: Data.Sensitive Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SparkSubmit' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'sparkSubmit_entryPointArguments' - The arguments for the Spark submit job run.+--+-- 'sparkSubmitParameters', 'sparkSubmit_sparkSubmitParameters' - The parameters for the Spark submit job run.+--+-- 'entryPoint', 'sparkSubmit_entryPoint' - The entry point for the Spark submit job run.+newSparkSubmit ::+  -- | 'entryPoint'+  Prelude.Text ->+  SparkSubmit+newSparkSubmit pEntryPoint_ =+  SparkSubmit'+    { entryPointArguments = Prelude.Nothing,+      sparkSubmitParameters = Prelude.Nothing,+      entryPoint = Data._Sensitive Lens.# pEntryPoint_+    }++-- | The arguments for the Spark submit job run.+sparkSubmit_entryPointArguments :: Lens.Lens' SparkSubmit (Prelude.Maybe [Prelude.Text])+sparkSubmit_entryPointArguments = Lens.lens (\SparkSubmit' {entryPointArguments} -> entryPointArguments) (\s@SparkSubmit' {} a -> s {entryPointArguments = a} :: SparkSubmit) Prelude.. Lens.mapping Lens.coerced++-- | The parameters for the Spark submit job run.+sparkSubmit_sparkSubmitParameters :: Lens.Lens' SparkSubmit (Prelude.Maybe Prelude.Text)+sparkSubmit_sparkSubmitParameters = Lens.lens (\SparkSubmit' {sparkSubmitParameters} -> sparkSubmitParameters) (\s@SparkSubmit' {} a -> s {sparkSubmitParameters = a} :: SparkSubmit) Prelude.. Lens.mapping Data._Sensitive++-- | The entry point for the Spark submit job run.+sparkSubmit_entryPoint :: Lens.Lens' SparkSubmit Prelude.Text+sparkSubmit_entryPoint = Lens.lens (\SparkSubmit' {entryPoint} -> entryPoint) (\s@SparkSubmit' {} a -> s {entryPoint = a} :: SparkSubmit) Prelude.. Data._Sensitive++instance Data.FromJSON SparkSubmit where+  parseJSON =+    Data.withObject+      "SparkSubmit"+      ( \x ->+          SparkSubmit'+            Prelude.<$> ( x+                            Data..:? "entryPointArguments"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "sparkSubmitParameters")+            Prelude.<*> (x Data..: "entryPoint")+      )++instance Prelude.Hashable SparkSubmit where+  hashWithSalt _salt SparkSubmit' {..} =+    _salt+      `Prelude.hashWithSalt` entryPointArguments+      `Prelude.hashWithSalt` sparkSubmitParameters+      `Prelude.hashWithSalt` entryPoint++instance Prelude.NFData SparkSubmit where+  rnf SparkSubmit' {..} =+    Prelude.rnf entryPointArguments+      `Prelude.seq` Prelude.rnf sparkSubmitParameters+      `Prelude.seq` Prelude.rnf entryPoint++instance Data.ToJSON SparkSubmit where+  toJSON SparkSubmit' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("entryPointArguments" Data..=)+              Prelude.<$> entryPointArguments,+            ("sparkSubmitParameters" Data..=)+              Prelude.<$> sparkSubmitParameters,+            Prelude.Just ("entryPoint" Data..= entryPoint)+          ]+      )
+ gen/Amazonka/EMRServerless/Types/TotalResourceUtilization.hs view
@@ -0,0 +1,108 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRServerless.Types.TotalResourceUtilization+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRServerless.Types.TotalResourceUtilization 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 aggregate vCPU, memory, and storage resources used from the time job+-- start executing till the time job is terminated, rounded up to the+-- nearest second.+--+-- /See:/ 'newTotalResourceUtilization' smart constructor.+data TotalResourceUtilization = TotalResourceUtilization'+  { -- | The aggregated memory used per hour from the time job start executing+    -- till the time job is terminated.+    memoryGBHour :: Prelude.Maybe Prelude.Double,+    -- | The aggregated storage used per hour from the time job start executing+    -- till the time job is terminated.+    storageGBHour :: Prelude.Maybe Prelude.Double,+    -- | The aggregated vCPU used per hour from the time job start executing till+    -- the time job is terminated.+    vCPUHour :: Prelude.Maybe Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TotalResourceUtilization' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'memoryGBHour', 'totalResourceUtilization_memoryGBHour' - The aggregated memory used per hour from the time job start executing+-- till the time job is terminated.+--+-- 'storageGBHour', 'totalResourceUtilization_storageGBHour' - The aggregated storage used per hour from the time job start executing+-- till the time job is terminated.+--+-- 'vCPUHour', 'totalResourceUtilization_vCPUHour' - The aggregated vCPU used per hour from the time job start executing till+-- the time job is terminated.+newTotalResourceUtilization ::+  TotalResourceUtilization+newTotalResourceUtilization =+  TotalResourceUtilization'+    { memoryGBHour =+        Prelude.Nothing,+      storageGBHour = Prelude.Nothing,+      vCPUHour = Prelude.Nothing+    }++-- | The aggregated memory used per hour from the time job start executing+-- till the time job is terminated.+totalResourceUtilization_memoryGBHour :: Lens.Lens' TotalResourceUtilization (Prelude.Maybe Prelude.Double)+totalResourceUtilization_memoryGBHour = Lens.lens (\TotalResourceUtilization' {memoryGBHour} -> memoryGBHour) (\s@TotalResourceUtilization' {} a -> s {memoryGBHour = a} :: TotalResourceUtilization)++-- | The aggregated storage used per hour from the time job start executing+-- till the time job is terminated.+totalResourceUtilization_storageGBHour :: Lens.Lens' TotalResourceUtilization (Prelude.Maybe Prelude.Double)+totalResourceUtilization_storageGBHour = Lens.lens (\TotalResourceUtilization' {storageGBHour} -> storageGBHour) (\s@TotalResourceUtilization' {} a -> s {storageGBHour = a} :: TotalResourceUtilization)++-- | The aggregated vCPU used per hour from the time job start executing till+-- the time job is terminated.+totalResourceUtilization_vCPUHour :: Lens.Lens' TotalResourceUtilization (Prelude.Maybe Prelude.Double)+totalResourceUtilization_vCPUHour = Lens.lens (\TotalResourceUtilization' {vCPUHour} -> vCPUHour) (\s@TotalResourceUtilization' {} a -> s {vCPUHour = a} :: TotalResourceUtilization)++instance Data.FromJSON TotalResourceUtilization where+  parseJSON =+    Data.withObject+      "TotalResourceUtilization"+      ( \x ->+          TotalResourceUtilization'+            Prelude.<$> (x Data..:? "memoryGBHour")+            Prelude.<*> (x Data..:? "storageGBHour")+            Prelude.<*> (x Data..:? "vCPUHour")+      )++instance Prelude.Hashable TotalResourceUtilization where+  hashWithSalt _salt TotalResourceUtilization' {..} =+    _salt+      `Prelude.hashWithSalt` memoryGBHour+      `Prelude.hashWithSalt` storageGBHour+      `Prelude.hashWithSalt` vCPUHour++instance Prelude.NFData TotalResourceUtilization where+  rnf TotalResourceUtilization' {..} =+    Prelude.rnf memoryGBHour+      `Prelude.seq` Prelude.rnf storageGBHour+      `Prelude.seq` Prelude.rnf vCPUHour
+ gen/Amazonka/EMRServerless/Types/WorkerResourceConfig.hs view
@@ -0,0 +1,111 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRServerless.Types.WorkerResourceConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRServerless.Types.WorkerResourceConfig 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 cumulative configuration requirements for every worker instance of+-- the worker type.+--+-- /See:/ 'newWorkerResourceConfig' smart constructor.+data WorkerResourceConfig = WorkerResourceConfig'+  { -- | The disk requirements for every worker instance of the worker type.+    disk :: Prelude.Maybe Prelude.Text,+    -- | The CPU requirements for every worker instance of the worker type.+    cpu :: Prelude.Text,+    -- | The memory requirements for every worker instance of the worker type.+    memory :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'WorkerResourceConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'disk', 'workerResourceConfig_disk' - The disk requirements for every worker instance of the worker type.+--+-- 'cpu', 'workerResourceConfig_cpu' - The CPU requirements for every worker instance of the worker type.+--+-- 'memory', 'workerResourceConfig_memory' - The memory requirements for every worker instance of the worker type.+newWorkerResourceConfig ::+  -- | 'cpu'+  Prelude.Text ->+  -- | 'memory'+  Prelude.Text ->+  WorkerResourceConfig+newWorkerResourceConfig pCpu_ pMemory_ =+  WorkerResourceConfig'+    { disk = Prelude.Nothing,+      cpu = pCpu_,+      memory = pMemory_+    }++-- | The disk requirements for every worker instance of the worker type.+workerResourceConfig_disk :: Lens.Lens' WorkerResourceConfig (Prelude.Maybe Prelude.Text)+workerResourceConfig_disk = Lens.lens (\WorkerResourceConfig' {disk} -> disk) (\s@WorkerResourceConfig' {} a -> s {disk = a} :: WorkerResourceConfig)++-- | The CPU requirements for every worker instance of the worker type.+workerResourceConfig_cpu :: Lens.Lens' WorkerResourceConfig Prelude.Text+workerResourceConfig_cpu = Lens.lens (\WorkerResourceConfig' {cpu} -> cpu) (\s@WorkerResourceConfig' {} a -> s {cpu = a} :: WorkerResourceConfig)++-- | The memory requirements for every worker instance of the worker type.+workerResourceConfig_memory :: Lens.Lens' WorkerResourceConfig Prelude.Text+workerResourceConfig_memory = Lens.lens (\WorkerResourceConfig' {memory} -> memory) (\s@WorkerResourceConfig' {} a -> s {memory = a} :: WorkerResourceConfig)++instance Data.FromJSON WorkerResourceConfig where+  parseJSON =+    Data.withObject+      "WorkerResourceConfig"+      ( \x ->+          WorkerResourceConfig'+            Prelude.<$> (x Data..:? "disk")+            Prelude.<*> (x Data..: "cpu")+            Prelude.<*> (x Data..: "memory")+      )++instance Prelude.Hashable WorkerResourceConfig where+  hashWithSalt _salt WorkerResourceConfig' {..} =+    _salt+      `Prelude.hashWithSalt` disk+      `Prelude.hashWithSalt` cpu+      `Prelude.hashWithSalt` memory++instance Prelude.NFData WorkerResourceConfig where+  rnf WorkerResourceConfig' {..} =+    Prelude.rnf disk+      `Prelude.seq` Prelude.rnf cpu+      `Prelude.seq` Prelude.rnf memory++instance Data.ToJSON WorkerResourceConfig where+  toJSON WorkerResourceConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("disk" Data..=) Prelude.<$> disk,+            Prelude.Just ("cpu" Data..= cpu),+            Prelude.Just ("memory" Data..= memory)+          ]+      )
+ gen/Amazonka/EMRServerless/Types/WorkerTypeSpecification.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.EMRServerless.Types.WorkerTypeSpecification+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRServerless.Types.WorkerTypeSpecification where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRServerless.Types.ImageConfiguration+import qualified Amazonka.Prelude as Prelude++-- | The specifications for a worker type.+--+-- /See:/ 'newWorkerTypeSpecification' smart constructor.+data WorkerTypeSpecification = WorkerTypeSpecification'+  { -- | The image configuration for a worker type.+    imageConfiguration :: Prelude.Maybe ImageConfiguration+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'WorkerTypeSpecification' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'imageConfiguration', 'workerTypeSpecification_imageConfiguration' - The image configuration for a worker type.+newWorkerTypeSpecification ::+  WorkerTypeSpecification+newWorkerTypeSpecification =+  WorkerTypeSpecification'+    { imageConfiguration =+        Prelude.Nothing+    }++-- | The image configuration for a worker type.+workerTypeSpecification_imageConfiguration :: Lens.Lens' WorkerTypeSpecification (Prelude.Maybe ImageConfiguration)+workerTypeSpecification_imageConfiguration = Lens.lens (\WorkerTypeSpecification' {imageConfiguration} -> imageConfiguration) (\s@WorkerTypeSpecification' {} a -> s {imageConfiguration = a} :: WorkerTypeSpecification)++instance Data.FromJSON WorkerTypeSpecification where+  parseJSON =+    Data.withObject+      "WorkerTypeSpecification"+      ( \x ->+          WorkerTypeSpecification'+            Prelude.<$> (x Data..:? "imageConfiguration")+      )++instance Prelude.Hashable WorkerTypeSpecification where+  hashWithSalt _salt WorkerTypeSpecification' {..} =+    _salt `Prelude.hashWithSalt` imageConfiguration++instance Prelude.NFData WorkerTypeSpecification where+  rnf WorkerTypeSpecification' {..} =+    Prelude.rnf imageConfiguration
+ gen/Amazonka/EMRServerless/Types/WorkerTypeSpecificationInput.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.EMRServerless.Types.WorkerTypeSpecificationInput+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.EMRServerless.Types.WorkerTypeSpecificationInput where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRServerless.Types.ImageConfigurationInput+import qualified Amazonka.Prelude as Prelude++-- | The specifications for a worker type.+--+-- /See:/ 'newWorkerTypeSpecificationInput' smart constructor.+data WorkerTypeSpecificationInput = WorkerTypeSpecificationInput'+  { -- | The image configuration for a worker type.+    imageConfiguration :: Prelude.Maybe ImageConfigurationInput+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'WorkerTypeSpecificationInput' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'imageConfiguration', 'workerTypeSpecificationInput_imageConfiguration' - The image configuration for a worker type.+newWorkerTypeSpecificationInput ::+  WorkerTypeSpecificationInput+newWorkerTypeSpecificationInput =+  WorkerTypeSpecificationInput'+    { imageConfiguration =+        Prelude.Nothing+    }++-- | The image configuration for a worker type.+workerTypeSpecificationInput_imageConfiguration :: Lens.Lens' WorkerTypeSpecificationInput (Prelude.Maybe ImageConfigurationInput)+workerTypeSpecificationInput_imageConfiguration = Lens.lens (\WorkerTypeSpecificationInput' {imageConfiguration} -> imageConfiguration) (\s@WorkerTypeSpecificationInput' {} a -> s {imageConfiguration = a} :: WorkerTypeSpecificationInput)++instance+  Prelude.Hashable+    WorkerTypeSpecificationInput+  where+  hashWithSalt _salt WorkerTypeSpecificationInput' {..} =+    _salt `Prelude.hashWithSalt` imageConfiguration++instance Prelude.NFData WorkerTypeSpecificationInput where+  rnf WorkerTypeSpecificationInput' {..} =+    Prelude.rnf imageConfiguration++instance Data.ToJSON WorkerTypeSpecificationInput where+  toJSON WorkerTypeSpecificationInput' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("imageConfiguration" Data..=)+              Prelude.<$> imageConfiguration+          ]+      )
+ gen/Amazonka/EMRServerless/UntagResource.hs view
@@ -0,0 +1,169 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRServerless.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.EMRServerless.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.EMRServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUntagResource' smart constructor.+data UntagResource = UntagResource'+  { -- | The Amazon Resource Name (ARN) that identifies the resource to list the+    -- tags for. Currently, the supported resources are Amazon EMR Serverless+    -- applications and job runs.+    resourceArn :: Prelude.Text,+    -- | The keys of the tags to be removed.+    tagKeys :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'untagResource_resourceArn' - The Amazon Resource Name (ARN) that identifies the resource to list the+-- tags for. Currently, the supported resources are Amazon EMR Serverless+-- applications and job runs.+--+-- 'tagKeys', 'untagResource_tagKeys' - The keys of the tags to be removed.+newUntagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  -- | 'tagKeys'+  Prelude.NonEmpty Prelude.Text ->+  UntagResource+newUntagResource pResourceArn_ pTagKeys_ =+  UntagResource'+    { resourceArn = pResourceArn_,+      tagKeys = Lens.coerced Lens.# pTagKeys_+    }++-- | The Amazon Resource Name (ARN) that identifies the resource to list the+-- tags for. Currently, the supported resources are Amazon EMR Serverless+-- applications and job runs.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | The keys of the tags to be removed.+untagResource_tagKeys :: Lens.Lens' UntagResource (Prelude.NonEmpty 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/EMRServerless/UpdateApplication.hs view
@@ -0,0 +1,342 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.EMRServerless.UpdateApplication+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a specified application. An application has to be in a stopped+-- or created state in order to be updated.+module Amazonka.EMRServerless.UpdateApplication+  ( -- * Creating a Request+    UpdateApplication (..),+    newUpdateApplication,++    -- * Request Lenses+    updateApplication_architecture,+    updateApplication_autoStartConfiguration,+    updateApplication_autoStopConfiguration,+    updateApplication_imageConfiguration,+    updateApplication_initialCapacity,+    updateApplication_maximumCapacity,+    updateApplication_networkConfiguration,+    updateApplication_workerTypeSpecifications,+    updateApplication_applicationId,+    updateApplication_clientToken,++    -- * Destructuring the Response+    UpdateApplicationResponse (..),+    newUpdateApplicationResponse,++    -- * Response Lenses+    updateApplicationResponse_httpStatus,+    updateApplicationResponse_application,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRServerless.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateApplication' smart constructor.+data UpdateApplication = UpdateApplication'+  { -- | The CPU architecture of an application.+    architecture :: Prelude.Maybe Architecture,+    -- | The configuration for an application to automatically start on job+    -- submission.+    autoStartConfiguration :: Prelude.Maybe AutoStartConfig,+    -- | The configuration for an application to automatically stop after a+    -- certain amount of time being idle.+    autoStopConfiguration :: Prelude.Maybe AutoStopConfig,+    -- | The image configuration to be used for all worker types. You can either+    -- set this parameter or @imageConfiguration@ for each worker type in+    -- @WorkerTypeSpecificationInput@.+    imageConfiguration :: Prelude.Maybe ImageConfigurationInput,+    -- | The capacity to initialize when the application is updated.+    initialCapacity :: Prelude.Maybe (Prelude.HashMap Prelude.Text InitialCapacityConfig),+    -- | The maximum capacity to allocate when the application is updated. This+    -- is cumulative across all workers at any given point in time during the+    -- lifespan of the application. No new resources will be created once any+    -- one of the defined limits is hit.+    maximumCapacity :: Prelude.Maybe MaximumAllowedResources,+    networkConfiguration :: Prelude.Maybe NetworkConfiguration,+    -- | The key-value pairs that specify worker type to+    -- @WorkerTypeSpecificationInput@. This parameter must contain all valid+    -- worker types for a Spark or Hive application. Valid worker types include+    -- @Driver@ and @Executor@ for Spark applications and @HiveDriver@ and+    -- @TezTask@ for Hive applications. You can either set image details in+    -- this parameter for each worker type, or in @imageConfiguration@ for all+    -- worker types.+    workerTypeSpecifications :: Prelude.Maybe (Prelude.HashMap Prelude.Text WorkerTypeSpecificationInput),+    -- | The ID of the application to update.+    applicationId :: Prelude.Text,+    -- | The client idempotency token of the application to update. Its value+    -- must be unique for each request.+    clientToken :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateApplication' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'architecture', 'updateApplication_architecture' - The CPU architecture of an application.+--+-- 'autoStartConfiguration', 'updateApplication_autoStartConfiguration' - The configuration for an application to automatically start on job+-- submission.+--+-- 'autoStopConfiguration', 'updateApplication_autoStopConfiguration' - The configuration for an application to automatically stop after a+-- certain amount of time being idle.+--+-- 'imageConfiguration', 'updateApplication_imageConfiguration' - The image configuration to be used for all worker types. You can either+-- set this parameter or @imageConfiguration@ for each worker type in+-- @WorkerTypeSpecificationInput@.+--+-- 'initialCapacity', 'updateApplication_initialCapacity' - The capacity to initialize when the application is updated.+--+-- 'maximumCapacity', 'updateApplication_maximumCapacity' - The maximum capacity to allocate when the application is updated. This+-- is cumulative across all workers at any given point in time during the+-- lifespan of the application. No new resources will be created once any+-- one of the defined limits is hit.+--+-- 'networkConfiguration', 'updateApplication_networkConfiguration' - Undocumented member.+--+-- 'workerTypeSpecifications', 'updateApplication_workerTypeSpecifications' - The key-value pairs that specify worker type to+-- @WorkerTypeSpecificationInput@. This parameter must contain all valid+-- worker types for a Spark or Hive application. Valid worker types include+-- @Driver@ and @Executor@ for Spark applications and @HiveDriver@ and+-- @TezTask@ for Hive applications. You can either set image details in+-- this parameter for each worker type, or in @imageConfiguration@ for all+-- worker types.+--+-- 'applicationId', 'updateApplication_applicationId' - The ID of the application to update.+--+-- 'clientToken', 'updateApplication_clientToken' - The client idempotency token of the application to update. Its value+-- must be unique for each request.+newUpdateApplication ::+  -- | 'applicationId'+  Prelude.Text ->+  -- | 'clientToken'+  Prelude.Text ->+  UpdateApplication+newUpdateApplication pApplicationId_ pClientToken_ =+  UpdateApplication'+    { architecture = Prelude.Nothing,+      autoStartConfiguration = Prelude.Nothing,+      autoStopConfiguration = Prelude.Nothing,+      imageConfiguration = Prelude.Nothing,+      initialCapacity = Prelude.Nothing,+      maximumCapacity = Prelude.Nothing,+      networkConfiguration = Prelude.Nothing,+      workerTypeSpecifications = Prelude.Nothing,+      applicationId = pApplicationId_,+      clientToken = pClientToken_+    }++-- | The CPU architecture of an application.+updateApplication_architecture :: Lens.Lens' UpdateApplication (Prelude.Maybe Architecture)+updateApplication_architecture = Lens.lens (\UpdateApplication' {architecture} -> architecture) (\s@UpdateApplication' {} a -> s {architecture = a} :: UpdateApplication)++-- | The configuration for an application to automatically start on job+-- submission.+updateApplication_autoStartConfiguration :: Lens.Lens' UpdateApplication (Prelude.Maybe AutoStartConfig)+updateApplication_autoStartConfiguration = Lens.lens (\UpdateApplication' {autoStartConfiguration} -> autoStartConfiguration) (\s@UpdateApplication' {} a -> s {autoStartConfiguration = a} :: UpdateApplication)++-- | The configuration for an application to automatically stop after a+-- certain amount of time being idle.+updateApplication_autoStopConfiguration :: Lens.Lens' UpdateApplication (Prelude.Maybe AutoStopConfig)+updateApplication_autoStopConfiguration = Lens.lens (\UpdateApplication' {autoStopConfiguration} -> autoStopConfiguration) (\s@UpdateApplication' {} a -> s {autoStopConfiguration = a} :: UpdateApplication)++-- | The image configuration to be used for all worker types. You can either+-- set this parameter or @imageConfiguration@ for each worker type in+-- @WorkerTypeSpecificationInput@.+updateApplication_imageConfiguration :: Lens.Lens' UpdateApplication (Prelude.Maybe ImageConfigurationInput)+updateApplication_imageConfiguration = Lens.lens (\UpdateApplication' {imageConfiguration} -> imageConfiguration) (\s@UpdateApplication' {} a -> s {imageConfiguration = a} :: UpdateApplication)++-- | The capacity to initialize when the application is updated.+updateApplication_initialCapacity :: Lens.Lens' UpdateApplication (Prelude.Maybe (Prelude.HashMap Prelude.Text InitialCapacityConfig))+updateApplication_initialCapacity = Lens.lens (\UpdateApplication' {initialCapacity} -> initialCapacity) (\s@UpdateApplication' {} a -> s {initialCapacity = a} :: UpdateApplication) Prelude.. Lens.mapping Lens.coerced++-- | The maximum capacity to allocate when the application is updated. This+-- is cumulative across all workers at any given point in time during the+-- lifespan of the application. No new resources will be created once any+-- one of the defined limits is hit.+updateApplication_maximumCapacity :: Lens.Lens' UpdateApplication (Prelude.Maybe MaximumAllowedResources)+updateApplication_maximumCapacity = Lens.lens (\UpdateApplication' {maximumCapacity} -> maximumCapacity) (\s@UpdateApplication' {} a -> s {maximumCapacity = a} :: UpdateApplication)++-- | Undocumented member.+updateApplication_networkConfiguration :: Lens.Lens' UpdateApplication (Prelude.Maybe NetworkConfiguration)+updateApplication_networkConfiguration = Lens.lens (\UpdateApplication' {networkConfiguration} -> networkConfiguration) (\s@UpdateApplication' {} a -> s {networkConfiguration = a} :: UpdateApplication)++-- | The key-value pairs that specify worker type to+-- @WorkerTypeSpecificationInput@. This parameter must contain all valid+-- worker types for a Spark or Hive application. Valid worker types include+-- @Driver@ and @Executor@ for Spark applications and @HiveDriver@ and+-- @TezTask@ for Hive applications. You can either set image details in+-- this parameter for each worker type, or in @imageConfiguration@ for all+-- worker types.+updateApplication_workerTypeSpecifications :: Lens.Lens' UpdateApplication (Prelude.Maybe (Prelude.HashMap Prelude.Text WorkerTypeSpecificationInput))+updateApplication_workerTypeSpecifications = Lens.lens (\UpdateApplication' {workerTypeSpecifications} -> workerTypeSpecifications) (\s@UpdateApplication' {} a -> s {workerTypeSpecifications = a} :: UpdateApplication) Prelude.. Lens.mapping Lens.coerced++-- | The ID of the application to update.+updateApplication_applicationId :: Lens.Lens' UpdateApplication Prelude.Text+updateApplication_applicationId = Lens.lens (\UpdateApplication' {applicationId} -> applicationId) (\s@UpdateApplication' {} a -> s {applicationId = a} :: UpdateApplication)++-- | The client idempotency token of the application to update. Its value+-- must be unique for each request.+updateApplication_clientToken :: Lens.Lens' UpdateApplication Prelude.Text+updateApplication_clientToken = Lens.lens (\UpdateApplication' {clientToken} -> clientToken) (\s@UpdateApplication' {} a -> s {clientToken = a} :: UpdateApplication)++instance Core.AWSRequest UpdateApplication where+  type+    AWSResponse UpdateApplication =+      UpdateApplicationResponse+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateApplicationResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "application")+      )++instance Prelude.Hashable UpdateApplication where+  hashWithSalt _salt UpdateApplication' {..} =+    _salt+      `Prelude.hashWithSalt` architecture+      `Prelude.hashWithSalt` autoStartConfiguration+      `Prelude.hashWithSalt` autoStopConfiguration+      `Prelude.hashWithSalt` imageConfiguration+      `Prelude.hashWithSalt` initialCapacity+      `Prelude.hashWithSalt` maximumCapacity+      `Prelude.hashWithSalt` networkConfiguration+      `Prelude.hashWithSalt` workerTypeSpecifications+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` clientToken++instance Prelude.NFData UpdateApplication where+  rnf UpdateApplication' {..} =+    Prelude.rnf architecture+      `Prelude.seq` Prelude.rnf autoStartConfiguration+      `Prelude.seq` Prelude.rnf autoStopConfiguration+      `Prelude.seq` Prelude.rnf imageConfiguration+      `Prelude.seq` Prelude.rnf initialCapacity+      `Prelude.seq` Prelude.rnf maximumCapacity+      `Prelude.seq` Prelude.rnf networkConfiguration+      `Prelude.seq` Prelude.rnf workerTypeSpecifications+      `Prelude.seq` Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf clientToken++instance Data.ToHeaders UpdateApplication where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateApplication where+  toJSON UpdateApplication' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("architecture" Data..=) Prelude.<$> architecture,+            ("autoStartConfiguration" Data..=)+              Prelude.<$> autoStartConfiguration,+            ("autoStopConfiguration" Data..=)+              Prelude.<$> autoStopConfiguration,+            ("imageConfiguration" Data..=)+              Prelude.<$> imageConfiguration,+            ("initialCapacity" Data..=)+              Prelude.<$> initialCapacity,+            ("maximumCapacity" Data..=)+              Prelude.<$> maximumCapacity,+            ("networkConfiguration" Data..=)+              Prelude.<$> networkConfiguration,+            ("workerTypeSpecifications" Data..=)+              Prelude.<$> workerTypeSpecifications,+            Prelude.Just ("clientToken" Data..= clientToken)+          ]+      )++instance Data.ToPath UpdateApplication where+  toPath UpdateApplication' {..} =+    Prelude.mconcat+      ["/applications/", Data.toBS applicationId]++instance Data.ToQuery UpdateApplication where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateApplicationResponse' smart constructor.+data UpdateApplicationResponse = UpdateApplicationResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Information about the updated application.+    application :: Application+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateApplicationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateApplicationResponse_httpStatus' - The response's http status code.+--+-- 'application', 'updateApplicationResponse_application' - Information about the updated application.+newUpdateApplicationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'application'+  Application ->+  UpdateApplicationResponse+newUpdateApplicationResponse+  pHttpStatus_+  pApplication_ =+    UpdateApplicationResponse'+      { httpStatus =+          pHttpStatus_,+        application = pApplication_+      }++-- | The response's http status code.+updateApplicationResponse_httpStatus :: Lens.Lens' UpdateApplicationResponse Prelude.Int+updateApplicationResponse_httpStatus = Lens.lens (\UpdateApplicationResponse' {httpStatus} -> httpStatus) (\s@UpdateApplicationResponse' {} a -> s {httpStatus = a} :: UpdateApplicationResponse)++-- | Information about the updated application.+updateApplicationResponse_application :: Lens.Lens' UpdateApplicationResponse Application+updateApplicationResponse_application = Lens.lens (\UpdateApplicationResponse' {application} -> application) (\s@UpdateApplicationResponse' {} a -> s {application = a} :: UpdateApplicationResponse)++instance Prelude.NFData UpdateApplicationResponse where+  rnf UpdateApplicationResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf application
+ gen/Amazonka/EMRServerless/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.EMRServerless.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.EMRServerless.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.EMRServerless.Lens+import Amazonka.EMRServerless.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.EMRServerless+import Test.Amazonka.EMRServerless.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "EMRServerless"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/EMRServerless.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.EMRServerless+-- Copyright   : (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.EMRServerless+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/EMRServerless/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.EMRServerless.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.EMRServerless.Internal where
+ test/Test/Amazonka/Gen/EMRServerless.hs view
@@ -0,0 +1,338 @@+{-# 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.EMRServerless+-- Copyright   : (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.EMRServerless where++import Amazonka.EMRServerless+import qualified Data.Proxy as Proxy+import Test.Amazonka.EMRServerless.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+--+--         , requestCreateApplication $+--             newCreateApplication+--+--         , requestDeleteApplication $+--             newDeleteApplication+--+--         , requestGetApplication $+--             newGetApplication+--+--         , requestGetDashboardForJobRun $+--             newGetDashboardForJobRun+--+--         , requestGetJobRun $+--             newGetJobRun+--+--         , requestListApplications $+--             newListApplications+--+--         , requestListJobRuns $+--             newListJobRuns+--+--         , requestListTagsForResource $+--             newListTagsForResource+--+--         , requestStartApplication $+--             newStartApplication+--+--         , requestStartJobRun $+--             newStartJobRun+--+--         , requestStopApplication $+--             newStopApplication+--+--         , requestTagResource $+--             newTagResource+--+--         , requestUntagResource $+--             newUntagResource+--+--         , requestUpdateApplication $+--             newUpdateApplication+--+--           ]++--     , testGroup "response"+--         [ responseCancelJobRun $+--             newCancelJobRunResponse+--+--         , responseCreateApplication $+--             newCreateApplicationResponse+--+--         , responseDeleteApplication $+--             newDeleteApplicationResponse+--+--         , responseGetApplication $+--             newGetApplicationResponse+--+--         , responseGetDashboardForJobRun $+--             newGetDashboardForJobRunResponse+--+--         , responseGetJobRun $+--             newGetJobRunResponse+--+--         , responseListApplications $+--             newListApplicationsResponse+--+--         , responseListJobRuns $+--             newListJobRunsResponse+--+--         , responseListTagsForResource $+--             newListTagsForResourceResponse+--+--         , responseStartApplication $+--             newStartApplicationResponse+--+--         , responseStartJobRun $+--             newStartJobRunResponse+--+--         , responseStopApplication $+--             newStopApplicationResponse+--+--         , responseTagResource $+--             newTagResourceResponse+--+--         , responseUntagResource $+--             newUntagResourceResponse+--+--         , responseUpdateApplication $+--             newUpdateApplicationResponse+--+--           ]+--     ]++-- Requests++requestCancelJobRun :: CancelJobRun -> TestTree+requestCancelJobRun =+  req+    "CancelJobRun"+    "fixture/CancelJobRun.yaml"++requestCreateApplication :: CreateApplication -> TestTree+requestCreateApplication =+  req+    "CreateApplication"+    "fixture/CreateApplication.yaml"++requestDeleteApplication :: DeleteApplication -> TestTree+requestDeleteApplication =+  req+    "DeleteApplication"+    "fixture/DeleteApplication.yaml"++requestGetApplication :: GetApplication -> TestTree+requestGetApplication =+  req+    "GetApplication"+    "fixture/GetApplication.yaml"++requestGetDashboardForJobRun :: GetDashboardForJobRun -> TestTree+requestGetDashboardForJobRun =+  req+    "GetDashboardForJobRun"+    "fixture/GetDashboardForJobRun.yaml"++requestGetJobRun :: GetJobRun -> TestTree+requestGetJobRun =+  req+    "GetJobRun"+    "fixture/GetJobRun.yaml"++requestListApplications :: ListApplications -> TestTree+requestListApplications =+  req+    "ListApplications"+    "fixture/ListApplications.yaml"++requestListJobRuns :: ListJobRuns -> TestTree+requestListJobRuns =+  req+    "ListJobRuns"+    "fixture/ListJobRuns.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+  req+    "ListTagsForResource"+    "fixture/ListTagsForResource.yaml"++requestStartApplication :: StartApplication -> TestTree+requestStartApplication =+  req+    "StartApplication"+    "fixture/StartApplication.yaml"++requestStartJobRun :: StartJobRun -> TestTree+requestStartJobRun =+  req+    "StartJobRun"+    "fixture/StartJobRun.yaml"++requestStopApplication :: StopApplication -> TestTree+requestStopApplication =+  req+    "StopApplication"+    "fixture/StopApplication.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+  req+    "TagResource"+    "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+  req+    "UntagResource"+    "fixture/UntagResource.yaml"++requestUpdateApplication :: UpdateApplication -> TestTree+requestUpdateApplication =+  req+    "UpdateApplication"+    "fixture/UpdateApplication.yaml"++-- Responses++responseCancelJobRun :: CancelJobRunResponse -> TestTree+responseCancelJobRun =+  res+    "CancelJobRunResponse"+    "fixture/CancelJobRunResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CancelJobRun)++responseCreateApplication :: CreateApplicationResponse -> TestTree+responseCreateApplication =+  res+    "CreateApplicationResponse"+    "fixture/CreateApplicationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateApplication)++responseDeleteApplication :: DeleteApplicationResponse -> TestTree+responseDeleteApplication =+  res+    "DeleteApplicationResponse"+    "fixture/DeleteApplicationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteApplication)++responseGetApplication :: GetApplicationResponse -> TestTree+responseGetApplication =+  res+    "GetApplicationResponse"+    "fixture/GetApplicationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetApplication)++responseGetDashboardForJobRun :: GetDashboardForJobRunResponse -> TestTree+responseGetDashboardForJobRun =+  res+    "GetDashboardForJobRunResponse"+    "fixture/GetDashboardForJobRunResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetDashboardForJobRun)++responseGetJobRun :: GetJobRunResponse -> TestTree+responseGetJobRun =+  res+    "GetJobRunResponse"+    "fixture/GetJobRunResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetJobRun)++responseListApplications :: ListApplicationsResponse -> TestTree+responseListApplications =+  res+    "ListApplicationsResponse"+    "fixture/ListApplicationsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListApplications)++responseListJobRuns :: ListJobRunsResponse -> TestTree+responseListJobRuns =+  res+    "ListJobRunsResponse"+    "fixture/ListJobRunsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListJobRuns)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+  res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responseStartApplication :: StartApplicationResponse -> TestTree+responseStartApplication =+  res+    "StartApplicationResponse"+    "fixture/StartApplicationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StartApplication)++responseStartJobRun :: StartJobRunResponse -> TestTree+responseStartJobRun =+  res+    "StartJobRunResponse"+    "fixture/StartJobRunResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StartJobRun)++responseStopApplication :: StopApplicationResponse -> TestTree+responseStopApplication =+  res+    "StopApplicationResponse"+    "fixture/StopApplicationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StopApplication)++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)++responseUpdateApplication :: UpdateApplicationResponse -> TestTree+responseUpdateApplication =+  res+    "UpdateApplicationResponse"+    "fixture/UpdateApplicationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateApplication)