packages feed

amazonka-amplify (empty) → 2.0

raw patch · 143 files changed

+15099/−0 lines, 143 filesdep +amazonka-amplifydep +amazonka-coredep +amazonka-test

Dependencies added: amazonka-amplify, amazonka-core, 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 Amplify SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2017-07-25@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-amplify)+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.Amplify](http://hackage.haskell.org/package/amazonka-amplify/docs/Amazonka-Amplify.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-amplify` 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-amplify.cabal view
@@ -0,0 +1,140 @@+cabal-version:      2.2+name:               amazonka-amplify+version:            2.0+synopsis:           Amazon Amplify 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 @2017-07-25@ 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.Amplify.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.Amplify" 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-amplify++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.Amplify+    Amazonka.Amplify.CreateApp+    Amazonka.Amplify.CreateBackendEnvironment+    Amazonka.Amplify.CreateBranch+    Amazonka.Amplify.CreateDeployment+    Amazonka.Amplify.CreateDomainAssociation+    Amazonka.Amplify.CreateWebhook+    Amazonka.Amplify.DeleteApp+    Amazonka.Amplify.DeleteBackendEnvironment+    Amazonka.Amplify.DeleteBranch+    Amazonka.Amplify.DeleteDomainAssociation+    Amazonka.Amplify.DeleteJob+    Amazonka.Amplify.DeleteWebhook+    Amazonka.Amplify.GenerateAccessLogs+    Amazonka.Amplify.GetApp+    Amazonka.Amplify.GetArtifactUrl+    Amazonka.Amplify.GetBackendEnvironment+    Amazonka.Amplify.GetBranch+    Amazonka.Amplify.GetDomainAssociation+    Amazonka.Amplify.GetJob+    Amazonka.Amplify.GetWebhook+    Amazonka.Amplify.Lens+    Amazonka.Amplify.ListApps+    Amazonka.Amplify.ListArtifacts+    Amazonka.Amplify.ListBackendEnvironments+    Amazonka.Amplify.ListBranches+    Amazonka.Amplify.ListDomainAssociations+    Amazonka.Amplify.ListJobs+    Amazonka.Amplify.ListTagsForResource+    Amazonka.Amplify.ListWebhooks+    Amazonka.Amplify.StartDeployment+    Amazonka.Amplify.StartJob+    Amazonka.Amplify.StopJob+    Amazonka.Amplify.TagResource+    Amazonka.Amplify.Types+    Amazonka.Amplify.Types.App+    Amazonka.Amplify.Types.Artifact+    Amazonka.Amplify.Types.AutoBranchCreationConfig+    Amazonka.Amplify.Types.BackendEnvironment+    Amazonka.Amplify.Types.Branch+    Amazonka.Amplify.Types.CustomRule+    Amazonka.Amplify.Types.DomainAssociation+    Amazonka.Amplify.Types.DomainStatus+    Amazonka.Amplify.Types.Job+    Amazonka.Amplify.Types.JobStatus+    Amazonka.Amplify.Types.JobSummary+    Amazonka.Amplify.Types.JobType+    Amazonka.Amplify.Types.Platform+    Amazonka.Amplify.Types.ProductionBranch+    Amazonka.Amplify.Types.RepositoryCloneMethod+    Amazonka.Amplify.Types.Stage+    Amazonka.Amplify.Types.Step+    Amazonka.Amplify.Types.SubDomain+    Amazonka.Amplify.Types.SubDomainSetting+    Amazonka.Amplify.Types.Webhook+    Amazonka.Amplify.UntagResource+    Amazonka.Amplify.UpdateApp+    Amazonka.Amplify.UpdateBranch+    Amazonka.Amplify.UpdateDomainAssociation+    Amazonka.Amplify.UpdateWebhook+    Amazonka.Amplify.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-amplify-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.Amplify+    Test.Amazonka.Amplify.Internal+    Test.Amazonka.Gen.Amplify++  build-depends:+    , amazonka-amplify+    , amazonka-core         >=2.0 && <2.1+    , amazonka-test         >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/CreateApp.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/CreateAppResponse.proto view
+ fixture/CreateBackendEnvironment.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/CreateBackendEnvironmentResponse.proto view
+ fixture/CreateBranch.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/CreateBranchResponse.proto view
+ fixture/CreateDeployment.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/CreateDeploymentResponse.proto view
+ fixture/CreateDomainAssociation.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/CreateDomainAssociationResponse.proto view
+ fixture/CreateWebhook.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/CreateWebhookResponse.proto view
+ fixture/DeleteApp.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/DeleteAppResponse.proto view
+ fixture/DeleteBackendEnvironment.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/DeleteBackendEnvironmentResponse.proto view
+ fixture/DeleteBranch.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/DeleteBranchResponse.proto view
+ fixture/DeleteDomainAssociation.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/DeleteDomainAssociationResponse.proto view
+ fixture/DeleteJob.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/DeleteJobResponse.proto view
+ fixture/DeleteWebhook.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/DeleteWebhookResponse.proto view
+ fixture/GenerateAccessLogs.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/GenerateAccessLogsResponse.proto view
+ fixture/GetApp.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/GetAppResponse.proto view
+ fixture/GetArtifactUrl.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/GetArtifactUrlResponse.proto view
+ fixture/GetBackendEnvironment.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/GetBackendEnvironmentResponse.proto view
+ fixture/GetBranch.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/GetBranchResponse.proto view
+ fixture/GetDomainAssociation.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/GetDomainAssociationResponse.proto view
+ fixture/GetJob.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/GetJobResponse.proto view
+ fixture/GetWebhook.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/GetWebhookResponse.proto view
+ fixture/ListApps.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/ListAppsResponse.proto view
+ fixture/ListArtifacts.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/ListArtifactsResponse.proto view
+ fixture/ListBackendEnvironments.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/ListBackendEnvironmentsResponse.proto view
+ fixture/ListBranches.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/ListBranchesResponse.proto view
+ fixture/ListDomainAssociations.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/ListDomainAssociationsResponse.proto view
+ fixture/ListJobs.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/ListJobsResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/ListWebhooks.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/ListWebhooksResponse.proto view
+ fixture/StartDeployment.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/StartDeploymentResponse.proto view
+ fixture/StartJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/StartJobResponse.proto view
+ fixture/StopJob.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/StopJobResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/UpdateApp.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/UpdateAppResponse.proto view
+ fixture/UpdateBranch.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/UpdateBranchResponse.proto view
+ fixture/UpdateDomainAssociation.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/UpdateDomainAssociationResponse.proto view
+ fixture/UpdateWebhook.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplify/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplify.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/UpdateWebhookResponse.proto view
+ gen/Amazonka/Amplify.hs view
@@ -0,0 +1,421 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.Amplify+-- 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 @2017-07-25@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- Amplify enables developers to develop and deploy cloud-powered mobile+-- and web apps. The Amplify Console provides a continuous delivery and+-- hosting service for web applications. For more information, see the+-- <https://docs.aws.amazon.com/amplify/latest/userguide/welcome.html Amplify Console User Guide>.+-- The Amplify Framework is a comprehensive set of SDKs, libraries, tools,+-- and documentation for client app development. For more information, see+-- the <https://docs.amplify.aws/ Amplify Framework.>+module Amazonka.Amplify+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** BadRequestException+    _BadRequestException,++    -- ** DependentServiceFailureException+    _DependentServiceFailureException,++    -- ** InternalFailureException+    _InternalFailureException,++    -- ** LimitExceededException+    _LimitExceededException,++    -- ** NotFoundException+    _NotFoundException,++    -- ** ResourceNotFoundException+    _ResourceNotFoundException,++    -- ** UnauthorizedException+    _UnauthorizedException,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** CreateApp+    CreateApp (CreateApp'),+    newCreateApp,+    CreateAppResponse (CreateAppResponse'),+    newCreateAppResponse,++    -- ** CreateBackendEnvironment+    CreateBackendEnvironment (CreateBackendEnvironment'),+    newCreateBackendEnvironment,+    CreateBackendEnvironmentResponse (CreateBackendEnvironmentResponse'),+    newCreateBackendEnvironmentResponse,++    -- ** CreateBranch+    CreateBranch (CreateBranch'),+    newCreateBranch,+    CreateBranchResponse (CreateBranchResponse'),+    newCreateBranchResponse,++    -- ** CreateDeployment+    CreateDeployment (CreateDeployment'),+    newCreateDeployment,+    CreateDeploymentResponse (CreateDeploymentResponse'),+    newCreateDeploymentResponse,++    -- ** CreateDomainAssociation+    CreateDomainAssociation (CreateDomainAssociation'),+    newCreateDomainAssociation,+    CreateDomainAssociationResponse (CreateDomainAssociationResponse'),+    newCreateDomainAssociationResponse,++    -- ** CreateWebhook+    CreateWebhook (CreateWebhook'),+    newCreateWebhook,+    CreateWebhookResponse (CreateWebhookResponse'),+    newCreateWebhookResponse,++    -- ** DeleteApp+    DeleteApp (DeleteApp'),+    newDeleteApp,+    DeleteAppResponse (DeleteAppResponse'),+    newDeleteAppResponse,++    -- ** DeleteBackendEnvironment+    DeleteBackendEnvironment (DeleteBackendEnvironment'),+    newDeleteBackendEnvironment,+    DeleteBackendEnvironmentResponse (DeleteBackendEnvironmentResponse'),+    newDeleteBackendEnvironmentResponse,++    -- ** DeleteBranch+    DeleteBranch (DeleteBranch'),+    newDeleteBranch,+    DeleteBranchResponse (DeleteBranchResponse'),+    newDeleteBranchResponse,++    -- ** DeleteDomainAssociation+    DeleteDomainAssociation (DeleteDomainAssociation'),+    newDeleteDomainAssociation,+    DeleteDomainAssociationResponse (DeleteDomainAssociationResponse'),+    newDeleteDomainAssociationResponse,++    -- ** DeleteJob+    DeleteJob (DeleteJob'),+    newDeleteJob,+    DeleteJobResponse (DeleteJobResponse'),+    newDeleteJobResponse,++    -- ** DeleteWebhook+    DeleteWebhook (DeleteWebhook'),+    newDeleteWebhook,+    DeleteWebhookResponse (DeleteWebhookResponse'),+    newDeleteWebhookResponse,++    -- ** GenerateAccessLogs+    GenerateAccessLogs (GenerateAccessLogs'),+    newGenerateAccessLogs,+    GenerateAccessLogsResponse (GenerateAccessLogsResponse'),+    newGenerateAccessLogsResponse,++    -- ** GetApp+    GetApp (GetApp'),+    newGetApp,+    GetAppResponse (GetAppResponse'),+    newGetAppResponse,++    -- ** GetArtifactUrl+    GetArtifactUrl (GetArtifactUrl'),+    newGetArtifactUrl,+    GetArtifactUrlResponse (GetArtifactUrlResponse'),+    newGetArtifactUrlResponse,++    -- ** GetBackendEnvironment+    GetBackendEnvironment (GetBackendEnvironment'),+    newGetBackendEnvironment,+    GetBackendEnvironmentResponse (GetBackendEnvironmentResponse'),+    newGetBackendEnvironmentResponse,++    -- ** GetBranch+    GetBranch (GetBranch'),+    newGetBranch,+    GetBranchResponse (GetBranchResponse'),+    newGetBranchResponse,++    -- ** GetDomainAssociation+    GetDomainAssociation (GetDomainAssociation'),+    newGetDomainAssociation,+    GetDomainAssociationResponse (GetDomainAssociationResponse'),+    newGetDomainAssociationResponse,++    -- ** GetJob+    GetJob (GetJob'),+    newGetJob,+    GetJobResponse (GetJobResponse'),+    newGetJobResponse,++    -- ** GetWebhook+    GetWebhook (GetWebhook'),+    newGetWebhook,+    GetWebhookResponse (GetWebhookResponse'),+    newGetWebhookResponse,++    -- ** ListApps (Paginated)+    ListApps (ListApps'),+    newListApps,+    ListAppsResponse (ListAppsResponse'),+    newListAppsResponse,++    -- ** ListArtifacts+    ListArtifacts (ListArtifacts'),+    newListArtifacts,+    ListArtifactsResponse (ListArtifactsResponse'),+    newListArtifactsResponse,++    -- ** ListBackendEnvironments+    ListBackendEnvironments (ListBackendEnvironments'),+    newListBackendEnvironments,+    ListBackendEnvironmentsResponse (ListBackendEnvironmentsResponse'),+    newListBackendEnvironmentsResponse,++    -- ** ListBranches (Paginated)+    ListBranches (ListBranches'),+    newListBranches,+    ListBranchesResponse (ListBranchesResponse'),+    newListBranchesResponse,++    -- ** ListDomainAssociations (Paginated)+    ListDomainAssociations (ListDomainAssociations'),+    newListDomainAssociations,+    ListDomainAssociationsResponse (ListDomainAssociationsResponse'),+    newListDomainAssociationsResponse,++    -- ** ListJobs (Paginated)+    ListJobs (ListJobs'),+    newListJobs,+    ListJobsResponse (ListJobsResponse'),+    newListJobsResponse,++    -- ** ListTagsForResource+    ListTagsForResource (ListTagsForResource'),+    newListTagsForResource,+    ListTagsForResourceResponse (ListTagsForResourceResponse'),+    newListTagsForResourceResponse,++    -- ** ListWebhooks+    ListWebhooks (ListWebhooks'),+    newListWebhooks,+    ListWebhooksResponse (ListWebhooksResponse'),+    newListWebhooksResponse,++    -- ** StartDeployment+    StartDeployment (StartDeployment'),+    newStartDeployment,+    StartDeploymentResponse (StartDeploymentResponse'),+    newStartDeploymentResponse,++    -- ** StartJob+    StartJob (StartJob'),+    newStartJob,+    StartJobResponse (StartJobResponse'),+    newStartJobResponse,++    -- ** StopJob+    StopJob (StopJob'),+    newStopJob,+    StopJobResponse (StopJobResponse'),+    newStopJobResponse,++    -- ** TagResource+    TagResource (TagResource'),+    newTagResource,+    TagResourceResponse (TagResourceResponse'),+    newTagResourceResponse,++    -- ** UntagResource+    UntagResource (UntagResource'),+    newUntagResource,+    UntagResourceResponse (UntagResourceResponse'),+    newUntagResourceResponse,++    -- ** UpdateApp+    UpdateApp (UpdateApp'),+    newUpdateApp,+    UpdateAppResponse (UpdateAppResponse'),+    newUpdateAppResponse,++    -- ** UpdateBranch+    UpdateBranch (UpdateBranch'),+    newUpdateBranch,+    UpdateBranchResponse (UpdateBranchResponse'),+    newUpdateBranchResponse,++    -- ** UpdateDomainAssociation+    UpdateDomainAssociation (UpdateDomainAssociation'),+    newUpdateDomainAssociation,+    UpdateDomainAssociationResponse (UpdateDomainAssociationResponse'),+    newUpdateDomainAssociationResponse,++    -- ** UpdateWebhook+    UpdateWebhook (UpdateWebhook'),+    newUpdateWebhook,+    UpdateWebhookResponse (UpdateWebhookResponse'),+    newUpdateWebhookResponse,++    -- * Types++    -- ** DomainStatus+    DomainStatus (..),++    -- ** JobStatus+    JobStatus (..),++    -- ** JobType+    JobType (..),++    -- ** Platform+    Platform (..),++    -- ** RepositoryCloneMethod+    RepositoryCloneMethod (..),++    -- ** Stage+    Stage (..),++    -- ** App+    App (App'),+    newApp,++    -- ** Artifact+    Artifact (Artifact'),+    newArtifact,++    -- ** AutoBranchCreationConfig+    AutoBranchCreationConfig (AutoBranchCreationConfig'),+    newAutoBranchCreationConfig,++    -- ** BackendEnvironment+    BackendEnvironment (BackendEnvironment'),+    newBackendEnvironment,++    -- ** Branch+    Branch (Branch'),+    newBranch,++    -- ** CustomRule+    CustomRule (CustomRule'),+    newCustomRule,++    -- ** DomainAssociation+    DomainAssociation (DomainAssociation'),+    newDomainAssociation,++    -- ** Job+    Job (Job'),+    newJob,++    -- ** JobSummary+    JobSummary (JobSummary'),+    newJobSummary,++    -- ** ProductionBranch+    ProductionBranch (ProductionBranch'),+    newProductionBranch,++    -- ** Step+    Step (Step'),+    newStep,++    -- ** SubDomain+    SubDomain (SubDomain'),+    newSubDomain,++    -- ** SubDomainSetting+    SubDomainSetting (SubDomainSetting'),+    newSubDomainSetting,++    -- ** Webhook+    Webhook (Webhook'),+    newWebhook,+  )+where++import Amazonka.Amplify.CreateApp+import Amazonka.Amplify.CreateBackendEnvironment+import Amazonka.Amplify.CreateBranch+import Amazonka.Amplify.CreateDeployment+import Amazonka.Amplify.CreateDomainAssociation+import Amazonka.Amplify.CreateWebhook+import Amazonka.Amplify.DeleteApp+import Amazonka.Amplify.DeleteBackendEnvironment+import Amazonka.Amplify.DeleteBranch+import Amazonka.Amplify.DeleteDomainAssociation+import Amazonka.Amplify.DeleteJob+import Amazonka.Amplify.DeleteWebhook+import Amazonka.Amplify.GenerateAccessLogs+import Amazonka.Amplify.GetApp+import Amazonka.Amplify.GetArtifactUrl+import Amazonka.Amplify.GetBackendEnvironment+import Amazonka.Amplify.GetBranch+import Amazonka.Amplify.GetDomainAssociation+import Amazonka.Amplify.GetJob+import Amazonka.Amplify.GetWebhook+import Amazonka.Amplify.Lens+import Amazonka.Amplify.ListApps+import Amazonka.Amplify.ListArtifacts+import Amazonka.Amplify.ListBackendEnvironments+import Amazonka.Amplify.ListBranches+import Amazonka.Amplify.ListDomainAssociations+import Amazonka.Amplify.ListJobs+import Amazonka.Amplify.ListTagsForResource+import Amazonka.Amplify.ListWebhooks+import Amazonka.Amplify.StartDeployment+import Amazonka.Amplify.StartJob+import Amazonka.Amplify.StopJob+import Amazonka.Amplify.TagResource+import Amazonka.Amplify.Types+import Amazonka.Amplify.UntagResource+import Amazonka.Amplify.UpdateApp+import Amazonka.Amplify.UpdateBranch+import Amazonka.Amplify.UpdateDomainAssociation+import Amazonka.Amplify.UpdateWebhook+import Amazonka.Amplify.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 'Amplify'.++-- $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/Amplify/CreateApp.hs view
@@ -0,0 +1,523 @@+{-# 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.Amplify.CreateApp+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new Amplify app.+module Amazonka.Amplify.CreateApp+  ( -- * Creating a Request+    CreateApp (..),+    newCreateApp,++    -- * Request Lenses+    createApp_accessToken,+    createApp_autoBranchCreationConfig,+    createApp_autoBranchCreationPatterns,+    createApp_basicAuthCredentials,+    createApp_buildSpec,+    createApp_customHeaders,+    createApp_customRules,+    createApp_description,+    createApp_enableAutoBranchCreation,+    createApp_enableBasicAuth,+    createApp_enableBranchAutoBuild,+    createApp_enableBranchAutoDeletion,+    createApp_environmentVariables,+    createApp_iamServiceRoleArn,+    createApp_oauthToken,+    createApp_platform,+    createApp_repository,+    createApp_tags,+    createApp_name,++    -- * Destructuring the Response+    CreateAppResponse (..),+    newCreateAppResponse,++    -- * Response Lenses+    createAppResponse_httpStatus,+    createAppResponse_app,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request structure used to create apps in Amplify.+--+-- /See:/ 'newCreateApp' smart constructor.+data CreateApp = CreateApp'+  { -- | The personal access token for a GitHub repository for an Amplify app.+    -- The personal access token is used to authorize access to a GitHub+    -- repository using the Amplify GitHub App. The token is not stored.+    --+    -- Use @accessToken@ for GitHub repositories only. To authorize access to a+    -- repository provider such as Bitbucket or CodeCommit, use @oauthToken@.+    --+    -- You must specify either @accessToken@ or @oauthToken@ when you create a+    -- new app.+    --+    -- Existing Amplify apps deployed from a GitHub repository using OAuth+    -- continue to work with CI\/CD. However, we strongly recommend that you+    -- migrate these apps to use the GitHub App. For more information, see+    -- <https://docs.aws.amazon.com/amplify/latest/UserGuide/setting-up-GitHub-access.html#migrating-to-github-app-auth Migrating an existing OAuth app to the Amplify GitHub App>+    -- in the /Amplify User Guide/ .+    accessToken :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The automated branch creation configuration for an Amplify app.+    autoBranchCreationConfig :: Prelude.Maybe AutoBranchCreationConfig,+    -- | The automated branch creation glob patterns for an Amplify app.+    autoBranchCreationPatterns :: Prelude.Maybe [Prelude.Text],+    -- | The credentials for basic authorization for an Amplify app. You must+    -- base64-encode the authorization credentials and provide them in the+    -- format @user:password@.+    basicAuthCredentials :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The build specification (build spec) for an Amplify app.+    buildSpec :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The custom HTTP headers for an Amplify app.+    customHeaders :: Prelude.Maybe Prelude.Text,+    -- | The custom rewrite and redirect rules for an Amplify app.+    customRules :: Prelude.Maybe [CustomRule],+    -- | The description for an Amplify app.+    description :: Prelude.Maybe Prelude.Text,+    -- | Enables automated branch creation for an Amplify app.+    enableAutoBranchCreation :: Prelude.Maybe Prelude.Bool,+    -- | Enables basic authorization for an Amplify app. This will apply to all+    -- branches that are part of this app.+    enableBasicAuth :: Prelude.Maybe Prelude.Bool,+    -- | Enables the auto building of branches for an Amplify app.+    enableBranchAutoBuild :: Prelude.Maybe Prelude.Bool,+    -- | Automatically disconnects a branch in the Amplify Console when you+    -- delete a branch from your Git repository.+    enableBranchAutoDeletion :: Prelude.Maybe Prelude.Bool,+    -- | The environment variables map for an Amplify app.+    environmentVariables :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The AWS Identity and Access Management (IAM) service role for an Amplify+    -- app.+    iamServiceRoleArn :: Prelude.Maybe Prelude.Text,+    -- | The OAuth token for a third-party source control system for an Amplify+    -- app. The OAuth token is used to create a webhook and a read-only deploy+    -- key using SSH cloning. The OAuth token is not stored.+    --+    -- Use @oauthToken@ for repository providers other than GitHub, such as+    -- Bitbucket or CodeCommit. To authorize access to GitHub as your+    -- repository provider, use @accessToken@.+    --+    -- You must specify either @oauthToken@ or @accessToken@ when you create a+    -- new app.+    --+    -- Existing Amplify apps deployed from a GitHub repository using OAuth+    -- continue to work with CI\/CD. However, we strongly recommend that you+    -- migrate these apps to use the GitHub App. For more information, see+    -- <https://docs.aws.amazon.com/amplify/latest/UserGuide/setting-up-GitHub-access.html#migrating-to-github-app-auth Migrating an existing OAuth app to the Amplify GitHub App>+    -- in the /Amplify User Guide/ .+    oauthToken :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The platform for the Amplify app. For a static app, set the platform+    -- type to @WEB@. For a dynamic server-side rendered (SSR) app, set the+    -- platform type to @WEB_COMPUTE@. For an app requiring Amplify Hosting\'s+    -- original SSR support only, set the platform type to @WEB_DYNAMIC@.+    platform :: Prelude.Maybe Platform,+    -- | The repository for an Amplify app.+    repository :: Prelude.Maybe Prelude.Text,+    -- | The tag for an Amplify app.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The name for an Amplify app.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateApp' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accessToken', 'createApp_accessToken' - The personal access token for a GitHub repository for an Amplify app.+-- The personal access token is used to authorize access to a GitHub+-- repository using the Amplify GitHub App. The token is not stored.+--+-- Use @accessToken@ for GitHub repositories only. To authorize access to a+-- repository provider such as Bitbucket or CodeCommit, use @oauthToken@.+--+-- You must specify either @accessToken@ or @oauthToken@ when you create a+-- new app.+--+-- Existing Amplify apps deployed from a GitHub repository using OAuth+-- continue to work with CI\/CD. However, we strongly recommend that you+-- migrate these apps to use the GitHub App. For more information, see+-- <https://docs.aws.amazon.com/amplify/latest/UserGuide/setting-up-GitHub-access.html#migrating-to-github-app-auth Migrating an existing OAuth app to the Amplify GitHub App>+-- in the /Amplify User Guide/ .+--+-- 'autoBranchCreationConfig', 'createApp_autoBranchCreationConfig' - The automated branch creation configuration for an Amplify app.+--+-- 'autoBranchCreationPatterns', 'createApp_autoBranchCreationPatterns' - The automated branch creation glob patterns for an Amplify app.+--+-- 'basicAuthCredentials', 'createApp_basicAuthCredentials' - The credentials for basic authorization for an Amplify app. You must+-- base64-encode the authorization credentials and provide them in the+-- format @user:password@.+--+-- 'buildSpec', 'createApp_buildSpec' - The build specification (build spec) for an Amplify app.+--+-- 'customHeaders', 'createApp_customHeaders' - The custom HTTP headers for an Amplify app.+--+-- 'customRules', 'createApp_customRules' - The custom rewrite and redirect rules for an Amplify app.+--+-- 'description', 'createApp_description' - The description for an Amplify app.+--+-- 'enableAutoBranchCreation', 'createApp_enableAutoBranchCreation' - Enables automated branch creation for an Amplify app.+--+-- 'enableBasicAuth', 'createApp_enableBasicAuth' - Enables basic authorization for an Amplify app. This will apply to all+-- branches that are part of this app.+--+-- 'enableBranchAutoBuild', 'createApp_enableBranchAutoBuild' - Enables the auto building of branches for an Amplify app.+--+-- 'enableBranchAutoDeletion', 'createApp_enableBranchAutoDeletion' - Automatically disconnects a branch in the Amplify Console when you+-- delete a branch from your Git repository.+--+-- 'environmentVariables', 'createApp_environmentVariables' - The environment variables map for an Amplify app.+--+-- 'iamServiceRoleArn', 'createApp_iamServiceRoleArn' - The AWS Identity and Access Management (IAM) service role for an Amplify+-- app.+--+-- 'oauthToken', 'createApp_oauthToken' - The OAuth token for a third-party source control system for an Amplify+-- app. The OAuth token is used to create a webhook and a read-only deploy+-- key using SSH cloning. The OAuth token is not stored.+--+-- Use @oauthToken@ for repository providers other than GitHub, such as+-- Bitbucket or CodeCommit. To authorize access to GitHub as your+-- repository provider, use @accessToken@.+--+-- You must specify either @oauthToken@ or @accessToken@ when you create a+-- new app.+--+-- Existing Amplify apps deployed from a GitHub repository using OAuth+-- continue to work with CI\/CD. However, we strongly recommend that you+-- migrate these apps to use the GitHub App. For more information, see+-- <https://docs.aws.amazon.com/amplify/latest/UserGuide/setting-up-GitHub-access.html#migrating-to-github-app-auth Migrating an existing OAuth app to the Amplify GitHub App>+-- in the /Amplify User Guide/ .+--+-- 'platform', 'createApp_platform' - The platform for the Amplify app. For a static app, set the platform+-- type to @WEB@. For a dynamic server-side rendered (SSR) app, set the+-- platform type to @WEB_COMPUTE@. For an app requiring Amplify Hosting\'s+-- original SSR support only, set the platform type to @WEB_DYNAMIC@.+--+-- 'repository', 'createApp_repository' - The repository for an Amplify app.+--+-- 'tags', 'createApp_tags' - The tag for an Amplify app.+--+-- 'name', 'createApp_name' - The name for an Amplify app.+newCreateApp ::+  -- | 'name'+  Prelude.Text ->+  CreateApp+newCreateApp pName_ =+  CreateApp'+    { accessToken = Prelude.Nothing,+      autoBranchCreationConfig = Prelude.Nothing,+      autoBranchCreationPatterns = Prelude.Nothing,+      basicAuthCredentials = Prelude.Nothing,+      buildSpec = Prelude.Nothing,+      customHeaders = Prelude.Nothing,+      customRules = Prelude.Nothing,+      description = Prelude.Nothing,+      enableAutoBranchCreation = Prelude.Nothing,+      enableBasicAuth = Prelude.Nothing,+      enableBranchAutoBuild = Prelude.Nothing,+      enableBranchAutoDeletion = Prelude.Nothing,+      environmentVariables = Prelude.Nothing,+      iamServiceRoleArn = Prelude.Nothing,+      oauthToken = Prelude.Nothing,+      platform = Prelude.Nothing,+      repository = Prelude.Nothing,+      tags = Prelude.Nothing,+      name = pName_+    }++-- | The personal access token for a GitHub repository for an Amplify app.+-- The personal access token is used to authorize access to a GitHub+-- repository using the Amplify GitHub App. The token is not stored.+--+-- Use @accessToken@ for GitHub repositories only. To authorize access to a+-- repository provider such as Bitbucket or CodeCommit, use @oauthToken@.+--+-- You must specify either @accessToken@ or @oauthToken@ when you create a+-- new app.+--+-- Existing Amplify apps deployed from a GitHub repository using OAuth+-- continue to work with CI\/CD. However, we strongly recommend that you+-- migrate these apps to use the GitHub App. For more information, see+-- <https://docs.aws.amazon.com/amplify/latest/UserGuide/setting-up-GitHub-access.html#migrating-to-github-app-auth Migrating an existing OAuth app to the Amplify GitHub App>+-- in the /Amplify User Guide/ .+createApp_accessToken :: Lens.Lens' CreateApp (Prelude.Maybe Prelude.Text)+createApp_accessToken = Lens.lens (\CreateApp' {accessToken} -> accessToken) (\s@CreateApp' {} a -> s {accessToken = a} :: CreateApp) Prelude.. Lens.mapping Data._Sensitive++-- | The automated branch creation configuration for an Amplify app.+createApp_autoBranchCreationConfig :: Lens.Lens' CreateApp (Prelude.Maybe AutoBranchCreationConfig)+createApp_autoBranchCreationConfig = Lens.lens (\CreateApp' {autoBranchCreationConfig} -> autoBranchCreationConfig) (\s@CreateApp' {} a -> s {autoBranchCreationConfig = a} :: CreateApp)++-- | The automated branch creation glob patterns for an Amplify app.+createApp_autoBranchCreationPatterns :: Lens.Lens' CreateApp (Prelude.Maybe [Prelude.Text])+createApp_autoBranchCreationPatterns = Lens.lens (\CreateApp' {autoBranchCreationPatterns} -> autoBranchCreationPatterns) (\s@CreateApp' {} a -> s {autoBranchCreationPatterns = a} :: CreateApp) Prelude.. Lens.mapping Lens.coerced++-- | The credentials for basic authorization for an Amplify app. You must+-- base64-encode the authorization credentials and provide them in the+-- format @user:password@.+createApp_basicAuthCredentials :: Lens.Lens' CreateApp (Prelude.Maybe Prelude.Text)+createApp_basicAuthCredentials = Lens.lens (\CreateApp' {basicAuthCredentials} -> basicAuthCredentials) (\s@CreateApp' {} a -> s {basicAuthCredentials = a} :: CreateApp) Prelude.. Lens.mapping Data._Sensitive++-- | The build specification (build spec) for an Amplify app.+createApp_buildSpec :: Lens.Lens' CreateApp (Prelude.Maybe Prelude.Text)+createApp_buildSpec = Lens.lens (\CreateApp' {buildSpec} -> buildSpec) (\s@CreateApp' {} a -> s {buildSpec = a} :: CreateApp) Prelude.. Lens.mapping Data._Sensitive++-- | The custom HTTP headers for an Amplify app.+createApp_customHeaders :: Lens.Lens' CreateApp (Prelude.Maybe Prelude.Text)+createApp_customHeaders = Lens.lens (\CreateApp' {customHeaders} -> customHeaders) (\s@CreateApp' {} a -> s {customHeaders = a} :: CreateApp)++-- | The custom rewrite and redirect rules for an Amplify app.+createApp_customRules :: Lens.Lens' CreateApp (Prelude.Maybe [CustomRule])+createApp_customRules = Lens.lens (\CreateApp' {customRules} -> customRules) (\s@CreateApp' {} a -> s {customRules = a} :: CreateApp) Prelude.. Lens.mapping Lens.coerced++-- | The description for an Amplify app.+createApp_description :: Lens.Lens' CreateApp (Prelude.Maybe Prelude.Text)+createApp_description = Lens.lens (\CreateApp' {description} -> description) (\s@CreateApp' {} a -> s {description = a} :: CreateApp)++-- | Enables automated branch creation for an Amplify app.+createApp_enableAutoBranchCreation :: Lens.Lens' CreateApp (Prelude.Maybe Prelude.Bool)+createApp_enableAutoBranchCreation = Lens.lens (\CreateApp' {enableAutoBranchCreation} -> enableAutoBranchCreation) (\s@CreateApp' {} a -> s {enableAutoBranchCreation = a} :: CreateApp)++-- | Enables basic authorization for an Amplify app. This will apply to all+-- branches that are part of this app.+createApp_enableBasicAuth :: Lens.Lens' CreateApp (Prelude.Maybe Prelude.Bool)+createApp_enableBasicAuth = Lens.lens (\CreateApp' {enableBasicAuth} -> enableBasicAuth) (\s@CreateApp' {} a -> s {enableBasicAuth = a} :: CreateApp)++-- | Enables the auto building of branches for an Amplify app.+createApp_enableBranchAutoBuild :: Lens.Lens' CreateApp (Prelude.Maybe Prelude.Bool)+createApp_enableBranchAutoBuild = Lens.lens (\CreateApp' {enableBranchAutoBuild} -> enableBranchAutoBuild) (\s@CreateApp' {} a -> s {enableBranchAutoBuild = a} :: CreateApp)++-- | Automatically disconnects a branch in the Amplify Console when you+-- delete a branch from your Git repository.+createApp_enableBranchAutoDeletion :: Lens.Lens' CreateApp (Prelude.Maybe Prelude.Bool)+createApp_enableBranchAutoDeletion = Lens.lens (\CreateApp' {enableBranchAutoDeletion} -> enableBranchAutoDeletion) (\s@CreateApp' {} a -> s {enableBranchAutoDeletion = a} :: CreateApp)++-- | The environment variables map for an Amplify app.+createApp_environmentVariables :: Lens.Lens' CreateApp (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createApp_environmentVariables = Lens.lens (\CreateApp' {environmentVariables} -> environmentVariables) (\s@CreateApp' {} a -> s {environmentVariables = a} :: CreateApp) Prelude.. Lens.mapping Lens.coerced++-- | The AWS Identity and Access Management (IAM) service role for an Amplify+-- app.+createApp_iamServiceRoleArn :: Lens.Lens' CreateApp (Prelude.Maybe Prelude.Text)+createApp_iamServiceRoleArn = Lens.lens (\CreateApp' {iamServiceRoleArn} -> iamServiceRoleArn) (\s@CreateApp' {} a -> s {iamServiceRoleArn = a} :: CreateApp)++-- | The OAuth token for a third-party source control system for an Amplify+-- app. The OAuth token is used to create a webhook and a read-only deploy+-- key using SSH cloning. The OAuth token is not stored.+--+-- Use @oauthToken@ for repository providers other than GitHub, such as+-- Bitbucket or CodeCommit. To authorize access to GitHub as your+-- repository provider, use @accessToken@.+--+-- You must specify either @oauthToken@ or @accessToken@ when you create a+-- new app.+--+-- Existing Amplify apps deployed from a GitHub repository using OAuth+-- continue to work with CI\/CD. However, we strongly recommend that you+-- migrate these apps to use the GitHub App. For more information, see+-- <https://docs.aws.amazon.com/amplify/latest/UserGuide/setting-up-GitHub-access.html#migrating-to-github-app-auth Migrating an existing OAuth app to the Amplify GitHub App>+-- in the /Amplify User Guide/ .+createApp_oauthToken :: Lens.Lens' CreateApp (Prelude.Maybe Prelude.Text)+createApp_oauthToken = Lens.lens (\CreateApp' {oauthToken} -> oauthToken) (\s@CreateApp' {} a -> s {oauthToken = a} :: CreateApp) Prelude.. Lens.mapping Data._Sensitive++-- | The platform for the Amplify app. For a static app, set the platform+-- type to @WEB@. For a dynamic server-side rendered (SSR) app, set the+-- platform type to @WEB_COMPUTE@. For an app requiring Amplify Hosting\'s+-- original SSR support only, set the platform type to @WEB_DYNAMIC@.+createApp_platform :: Lens.Lens' CreateApp (Prelude.Maybe Platform)+createApp_platform = Lens.lens (\CreateApp' {platform} -> platform) (\s@CreateApp' {} a -> s {platform = a} :: CreateApp)++-- | The repository for an Amplify app.+createApp_repository :: Lens.Lens' CreateApp (Prelude.Maybe Prelude.Text)+createApp_repository = Lens.lens (\CreateApp' {repository} -> repository) (\s@CreateApp' {} a -> s {repository = a} :: CreateApp)++-- | The tag for an Amplify app.+createApp_tags :: Lens.Lens' CreateApp (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createApp_tags = Lens.lens (\CreateApp' {tags} -> tags) (\s@CreateApp' {} a -> s {tags = a} :: CreateApp) Prelude.. Lens.mapping Lens.coerced++-- | The name for an Amplify app.+createApp_name :: Lens.Lens' CreateApp Prelude.Text+createApp_name = Lens.lens (\CreateApp' {name} -> name) (\s@CreateApp' {} a -> s {name = a} :: CreateApp)++instance Core.AWSRequest CreateApp where+  type AWSResponse CreateApp = CreateAppResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateAppResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "app")+      )++instance Prelude.Hashable CreateApp where+  hashWithSalt _salt CreateApp' {..} =+    _salt+      `Prelude.hashWithSalt` accessToken+      `Prelude.hashWithSalt` autoBranchCreationConfig+      `Prelude.hashWithSalt` autoBranchCreationPatterns+      `Prelude.hashWithSalt` basicAuthCredentials+      `Prelude.hashWithSalt` buildSpec+      `Prelude.hashWithSalt` customHeaders+      `Prelude.hashWithSalt` customRules+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` enableAutoBranchCreation+      `Prelude.hashWithSalt` enableBasicAuth+      `Prelude.hashWithSalt` enableBranchAutoBuild+      `Prelude.hashWithSalt` enableBranchAutoDeletion+      `Prelude.hashWithSalt` environmentVariables+      `Prelude.hashWithSalt` iamServiceRoleArn+      `Prelude.hashWithSalt` oauthToken+      `Prelude.hashWithSalt` platform+      `Prelude.hashWithSalt` repository+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name++instance Prelude.NFData CreateApp where+  rnf CreateApp' {..} =+    Prelude.rnf accessToken+      `Prelude.seq` Prelude.rnf autoBranchCreationConfig+      `Prelude.seq` Prelude.rnf autoBranchCreationPatterns+      `Prelude.seq` Prelude.rnf basicAuthCredentials+      `Prelude.seq` Prelude.rnf buildSpec+      `Prelude.seq` Prelude.rnf customHeaders+      `Prelude.seq` Prelude.rnf customRules+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf enableAutoBranchCreation+      `Prelude.seq` Prelude.rnf enableBasicAuth+      `Prelude.seq` Prelude.rnf enableBranchAutoBuild+      `Prelude.seq` Prelude.rnf enableBranchAutoDeletion+      `Prelude.seq` Prelude.rnf environmentVariables+      `Prelude.seq` Prelude.rnf iamServiceRoleArn+      `Prelude.seq` Prelude.rnf oauthToken+      `Prelude.seq` Prelude.rnf platform+      `Prelude.seq` Prelude.rnf repository+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders CreateApp where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateApp where+  toJSON CreateApp' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("accessToken" Data..=) Prelude.<$> accessToken,+            ("autoBranchCreationConfig" Data..=)+              Prelude.<$> autoBranchCreationConfig,+            ("autoBranchCreationPatterns" Data..=)+              Prelude.<$> autoBranchCreationPatterns,+            ("basicAuthCredentials" Data..=)+              Prelude.<$> basicAuthCredentials,+            ("buildSpec" Data..=) Prelude.<$> buildSpec,+            ("customHeaders" Data..=) Prelude.<$> customHeaders,+            ("customRules" Data..=) Prelude.<$> customRules,+            ("description" Data..=) Prelude.<$> description,+            ("enableAutoBranchCreation" Data..=)+              Prelude.<$> enableAutoBranchCreation,+            ("enableBasicAuth" Data..=)+              Prelude.<$> enableBasicAuth,+            ("enableBranchAutoBuild" Data..=)+              Prelude.<$> enableBranchAutoBuild,+            ("enableBranchAutoDeletion" Data..=)+              Prelude.<$> enableBranchAutoDeletion,+            ("environmentVariables" Data..=)+              Prelude.<$> environmentVariables,+            ("iamServiceRoleArn" Data..=)+              Prelude.<$> iamServiceRoleArn,+            ("oauthToken" Data..=) Prelude.<$> oauthToken,+            ("platform" Data..=) Prelude.<$> platform,+            ("repository" Data..=) Prelude.<$> repository,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("name" Data..= name)+          ]+      )++instance Data.ToPath CreateApp where+  toPath = Prelude.const "/apps"++instance Data.ToQuery CreateApp where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateAppResponse' smart constructor.+data CreateAppResponse = CreateAppResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    app :: App+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateAppResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createAppResponse_httpStatus' - The response's http status code.+--+-- 'app', 'createAppResponse_app' - Undocumented member.+newCreateAppResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'app'+  App ->+  CreateAppResponse+newCreateAppResponse pHttpStatus_ pApp_ =+  CreateAppResponse'+    { httpStatus = pHttpStatus_,+      app = pApp_+    }++-- | The response's http status code.+createAppResponse_httpStatus :: Lens.Lens' CreateAppResponse Prelude.Int+createAppResponse_httpStatus = Lens.lens (\CreateAppResponse' {httpStatus} -> httpStatus) (\s@CreateAppResponse' {} a -> s {httpStatus = a} :: CreateAppResponse)++-- | Undocumented member.+createAppResponse_app :: Lens.Lens' CreateAppResponse App+createAppResponse_app = Lens.lens (\CreateAppResponse' {app} -> app) (\s@CreateAppResponse' {} a -> s {app = a} :: CreateAppResponse)++instance Prelude.NFData CreateAppResponse where+  rnf CreateAppResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf app
+ gen/Amazonka/Amplify/CreateBackendEnvironment.hs view
@@ -0,0 +1,225 @@+{-# 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.Amplify.CreateBackendEnvironment+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new backend environment for an Amplify app.+module Amazonka.Amplify.CreateBackendEnvironment+  ( -- * Creating a Request+    CreateBackendEnvironment (..),+    newCreateBackendEnvironment,++    -- * Request Lenses+    createBackendEnvironment_deploymentArtifacts,+    createBackendEnvironment_stackName,+    createBackendEnvironment_appId,+    createBackendEnvironment_environmentName,++    -- * Destructuring the Response+    CreateBackendEnvironmentResponse (..),+    newCreateBackendEnvironmentResponse,++    -- * Response Lenses+    createBackendEnvironmentResponse_httpStatus,+    createBackendEnvironmentResponse_backendEnvironment,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request structure for the backend environment create request.+--+-- /See:/ 'newCreateBackendEnvironment' smart constructor.+data CreateBackendEnvironment = CreateBackendEnvironment'+  { -- | The name of deployment artifacts.+    deploymentArtifacts :: Prelude.Maybe Prelude.Text,+    -- | The AWS CloudFormation stack name of a backend environment.+    stackName :: Prelude.Maybe Prelude.Text,+    -- | The unique ID for an Amplify app.+    appId :: Prelude.Text,+    -- | The name for the backend environment.+    environmentName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateBackendEnvironment' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'deploymentArtifacts', 'createBackendEnvironment_deploymentArtifacts' - The name of deployment artifacts.+--+-- 'stackName', 'createBackendEnvironment_stackName' - The AWS CloudFormation stack name of a backend environment.+--+-- 'appId', 'createBackendEnvironment_appId' - The unique ID for an Amplify app.+--+-- 'environmentName', 'createBackendEnvironment_environmentName' - The name for the backend environment.+newCreateBackendEnvironment ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'environmentName'+  Prelude.Text ->+  CreateBackendEnvironment+newCreateBackendEnvironment pAppId_ pEnvironmentName_ =+  CreateBackendEnvironment'+    { deploymentArtifacts =+        Prelude.Nothing,+      stackName = Prelude.Nothing,+      appId = pAppId_,+      environmentName = pEnvironmentName_+    }++-- | The name of deployment artifacts.+createBackendEnvironment_deploymentArtifacts :: Lens.Lens' CreateBackendEnvironment (Prelude.Maybe Prelude.Text)+createBackendEnvironment_deploymentArtifacts = Lens.lens (\CreateBackendEnvironment' {deploymentArtifacts} -> deploymentArtifacts) (\s@CreateBackendEnvironment' {} a -> s {deploymentArtifacts = a} :: CreateBackendEnvironment)++-- | The AWS CloudFormation stack name of a backend environment.+createBackendEnvironment_stackName :: Lens.Lens' CreateBackendEnvironment (Prelude.Maybe Prelude.Text)+createBackendEnvironment_stackName = Lens.lens (\CreateBackendEnvironment' {stackName} -> stackName) (\s@CreateBackendEnvironment' {} a -> s {stackName = a} :: CreateBackendEnvironment)++-- | The unique ID for an Amplify app.+createBackendEnvironment_appId :: Lens.Lens' CreateBackendEnvironment Prelude.Text+createBackendEnvironment_appId = Lens.lens (\CreateBackendEnvironment' {appId} -> appId) (\s@CreateBackendEnvironment' {} a -> s {appId = a} :: CreateBackendEnvironment)++-- | The name for the backend environment.+createBackendEnvironment_environmentName :: Lens.Lens' CreateBackendEnvironment Prelude.Text+createBackendEnvironment_environmentName = Lens.lens (\CreateBackendEnvironment' {environmentName} -> environmentName) (\s@CreateBackendEnvironment' {} a -> s {environmentName = a} :: CreateBackendEnvironment)++instance Core.AWSRequest CreateBackendEnvironment where+  type+    AWSResponse CreateBackendEnvironment =+      CreateBackendEnvironmentResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateBackendEnvironmentResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "backendEnvironment")+      )++instance Prelude.Hashable CreateBackendEnvironment where+  hashWithSalt _salt CreateBackendEnvironment' {..} =+    _salt+      `Prelude.hashWithSalt` deploymentArtifacts+      `Prelude.hashWithSalt` stackName+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` environmentName++instance Prelude.NFData CreateBackendEnvironment where+  rnf CreateBackendEnvironment' {..} =+    Prelude.rnf deploymentArtifacts+      `Prelude.seq` Prelude.rnf stackName+      `Prelude.seq` Prelude.rnf appId+      `Prelude.seq` Prelude.rnf environmentName++instance Data.ToHeaders CreateBackendEnvironment where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateBackendEnvironment where+  toJSON CreateBackendEnvironment' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("deploymentArtifacts" Data..=)+              Prelude.<$> deploymentArtifacts,+            ("stackName" Data..=) Prelude.<$> stackName,+            Prelude.Just+              ("environmentName" Data..= environmentName)+          ]+      )++instance Data.ToPath CreateBackendEnvironment where+  toPath CreateBackendEnvironment' {..} =+    Prelude.mconcat+      ["/apps/", Data.toBS appId, "/backendenvironments"]++instance Data.ToQuery CreateBackendEnvironment where+  toQuery = Prelude.const Prelude.mempty++-- | The result structure for the create backend environment request.+--+-- /See:/ 'newCreateBackendEnvironmentResponse' smart constructor.+data CreateBackendEnvironmentResponse = CreateBackendEnvironmentResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Describes the backend environment for an Amplify app.+    backendEnvironment :: BackendEnvironment+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateBackendEnvironmentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createBackendEnvironmentResponse_httpStatus' - The response's http status code.+--+-- 'backendEnvironment', 'createBackendEnvironmentResponse_backendEnvironment' - Describes the backend environment for an Amplify app.+newCreateBackendEnvironmentResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'backendEnvironment'+  BackendEnvironment ->+  CreateBackendEnvironmentResponse+newCreateBackendEnvironmentResponse+  pHttpStatus_+  pBackendEnvironment_ =+    CreateBackendEnvironmentResponse'+      { httpStatus =+          pHttpStatus_,+        backendEnvironment = pBackendEnvironment_+      }++-- | The response's http status code.+createBackendEnvironmentResponse_httpStatus :: Lens.Lens' CreateBackendEnvironmentResponse Prelude.Int+createBackendEnvironmentResponse_httpStatus = Lens.lens (\CreateBackendEnvironmentResponse' {httpStatus} -> httpStatus) (\s@CreateBackendEnvironmentResponse' {} a -> s {httpStatus = a} :: CreateBackendEnvironmentResponse)++-- | Describes the backend environment for an Amplify app.+createBackendEnvironmentResponse_backendEnvironment :: Lens.Lens' CreateBackendEnvironmentResponse BackendEnvironment+createBackendEnvironmentResponse_backendEnvironment = Lens.lens (\CreateBackendEnvironmentResponse' {backendEnvironment} -> backendEnvironment) (\s@CreateBackendEnvironmentResponse' {} a -> s {backendEnvironment = a} :: CreateBackendEnvironmentResponse)++instance+  Prelude.NFData+    CreateBackendEnvironmentResponse+  where+  rnf CreateBackendEnvironmentResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf backendEnvironment
+ gen/Amazonka/Amplify/CreateBranch.hs view
@@ -0,0 +1,436 @@+{-# 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.Amplify.CreateBranch+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new branch for an Amplify app.+module Amazonka.Amplify.CreateBranch+  ( -- * Creating a Request+    CreateBranch (..),+    newCreateBranch,++    -- * Request Lenses+    createBranch_backendEnvironmentArn,+    createBranch_basicAuthCredentials,+    createBranch_buildSpec,+    createBranch_description,+    createBranch_displayName,+    createBranch_enableAutoBuild,+    createBranch_enableBasicAuth,+    createBranch_enableNotification,+    createBranch_enablePerformanceMode,+    createBranch_enablePullRequestPreview,+    createBranch_environmentVariables,+    createBranch_framework,+    createBranch_pullRequestEnvironmentName,+    createBranch_stage,+    createBranch_tags,+    createBranch_ttl,+    createBranch_appId,+    createBranch_branchName,++    -- * Destructuring the Response+    CreateBranchResponse (..),+    newCreateBranchResponse,++    -- * Response Lenses+    createBranchResponse_httpStatus,+    createBranchResponse_branch,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request structure for the create branch request.+--+-- /See:/ 'newCreateBranch' smart constructor.+data CreateBranch = CreateBranch'+  { -- | The Amazon Resource Name (ARN) for a backend environment that is part of+    -- an Amplify app.+    backendEnvironmentArn :: Prelude.Maybe Prelude.Text,+    -- | The basic authorization credentials for the branch. You must+    -- base64-encode the authorization credentials and provide them in the+    -- format @user:password@.+    basicAuthCredentials :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The build specification (build spec) for the branch.+    buildSpec :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The description for the branch.+    description :: Prelude.Maybe Prelude.Text,+    -- | The display name for a branch. This is used as the default domain+    -- prefix.+    displayName :: Prelude.Maybe Prelude.Text,+    -- | Enables auto building for the branch.+    enableAutoBuild :: Prelude.Maybe Prelude.Bool,+    -- | Enables basic authorization for the branch.+    enableBasicAuth :: Prelude.Maybe Prelude.Bool,+    -- | Enables notifications for the branch.+    enableNotification :: Prelude.Maybe Prelude.Bool,+    -- | Enables performance mode for the branch.+    --+    -- Performance mode optimizes for faster hosting performance by keeping+    -- content cached at the edge for a longer interval. When performance mode+    -- is enabled, hosting configuration or code changes can take up to 10+    -- minutes to roll out.+    enablePerformanceMode :: Prelude.Maybe Prelude.Bool,+    -- | Enables pull request previews for this branch.+    enablePullRequestPreview :: Prelude.Maybe Prelude.Bool,+    -- | The environment variables for the branch.+    environmentVariables :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The framework for the branch.+    framework :: Prelude.Maybe Prelude.Text,+    -- | The Amplify environment name for the pull request.+    pullRequestEnvironmentName :: Prelude.Maybe Prelude.Text,+    -- | Describes the current stage for the branch.+    stage :: Prelude.Maybe Stage,+    -- | The tag for the branch.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The content Time To Live (TTL) for the website in seconds.+    ttl :: Prelude.Maybe Prelude.Text,+    -- | The unique ID for an Amplify app.+    appId :: Prelude.Text,+    -- | The name for the branch.+    branchName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateBranch' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'backendEnvironmentArn', 'createBranch_backendEnvironmentArn' - The Amazon Resource Name (ARN) for a backend environment that is part of+-- an Amplify app.+--+-- 'basicAuthCredentials', 'createBranch_basicAuthCredentials' - The basic authorization credentials for the branch. You must+-- base64-encode the authorization credentials and provide them in the+-- format @user:password@.+--+-- 'buildSpec', 'createBranch_buildSpec' - The build specification (build spec) for the branch.+--+-- 'description', 'createBranch_description' - The description for the branch.+--+-- 'displayName', 'createBranch_displayName' - The display name for a branch. This is used as the default domain+-- prefix.+--+-- 'enableAutoBuild', 'createBranch_enableAutoBuild' - Enables auto building for the branch.+--+-- 'enableBasicAuth', 'createBranch_enableBasicAuth' - Enables basic authorization for the branch.+--+-- 'enableNotification', 'createBranch_enableNotification' - Enables notifications for the branch.+--+-- 'enablePerformanceMode', 'createBranch_enablePerformanceMode' - Enables performance mode for the branch.+--+-- Performance mode optimizes for faster hosting performance by keeping+-- content cached at the edge for a longer interval. When performance mode+-- is enabled, hosting configuration or code changes can take up to 10+-- minutes to roll out.+--+-- 'enablePullRequestPreview', 'createBranch_enablePullRequestPreview' - Enables pull request previews for this branch.+--+-- 'environmentVariables', 'createBranch_environmentVariables' - The environment variables for the branch.+--+-- 'framework', 'createBranch_framework' - The framework for the branch.+--+-- 'pullRequestEnvironmentName', 'createBranch_pullRequestEnvironmentName' - The Amplify environment name for the pull request.+--+-- 'stage', 'createBranch_stage' - Describes the current stage for the branch.+--+-- 'tags', 'createBranch_tags' - The tag for the branch.+--+-- 'ttl', 'createBranch_ttl' - The content Time To Live (TTL) for the website in seconds.+--+-- 'appId', 'createBranch_appId' - The unique ID for an Amplify app.+--+-- 'branchName', 'createBranch_branchName' - The name for the branch.+newCreateBranch ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'branchName'+  Prelude.Text ->+  CreateBranch+newCreateBranch pAppId_ pBranchName_ =+  CreateBranch'+    { backendEnvironmentArn =+        Prelude.Nothing,+      basicAuthCredentials = Prelude.Nothing,+      buildSpec = Prelude.Nothing,+      description = Prelude.Nothing,+      displayName = Prelude.Nothing,+      enableAutoBuild = Prelude.Nothing,+      enableBasicAuth = Prelude.Nothing,+      enableNotification = Prelude.Nothing,+      enablePerformanceMode = Prelude.Nothing,+      enablePullRequestPreview = Prelude.Nothing,+      environmentVariables = Prelude.Nothing,+      framework = Prelude.Nothing,+      pullRequestEnvironmentName = Prelude.Nothing,+      stage = Prelude.Nothing,+      tags = Prelude.Nothing,+      ttl = Prelude.Nothing,+      appId = pAppId_,+      branchName = pBranchName_+    }++-- | The Amazon Resource Name (ARN) for a backend environment that is part of+-- an Amplify app.+createBranch_backendEnvironmentArn :: Lens.Lens' CreateBranch (Prelude.Maybe Prelude.Text)+createBranch_backendEnvironmentArn = Lens.lens (\CreateBranch' {backendEnvironmentArn} -> backendEnvironmentArn) (\s@CreateBranch' {} a -> s {backendEnvironmentArn = a} :: CreateBranch)++-- | The basic authorization credentials for the branch. You must+-- base64-encode the authorization credentials and provide them in the+-- format @user:password@.+createBranch_basicAuthCredentials :: Lens.Lens' CreateBranch (Prelude.Maybe Prelude.Text)+createBranch_basicAuthCredentials = Lens.lens (\CreateBranch' {basicAuthCredentials} -> basicAuthCredentials) (\s@CreateBranch' {} a -> s {basicAuthCredentials = a} :: CreateBranch) Prelude.. Lens.mapping Data._Sensitive++-- | The build specification (build spec) for the branch.+createBranch_buildSpec :: Lens.Lens' CreateBranch (Prelude.Maybe Prelude.Text)+createBranch_buildSpec = Lens.lens (\CreateBranch' {buildSpec} -> buildSpec) (\s@CreateBranch' {} a -> s {buildSpec = a} :: CreateBranch) Prelude.. Lens.mapping Data._Sensitive++-- | The description for the branch.+createBranch_description :: Lens.Lens' CreateBranch (Prelude.Maybe Prelude.Text)+createBranch_description = Lens.lens (\CreateBranch' {description} -> description) (\s@CreateBranch' {} a -> s {description = a} :: CreateBranch)++-- | The display name for a branch. This is used as the default domain+-- prefix.+createBranch_displayName :: Lens.Lens' CreateBranch (Prelude.Maybe Prelude.Text)+createBranch_displayName = Lens.lens (\CreateBranch' {displayName} -> displayName) (\s@CreateBranch' {} a -> s {displayName = a} :: CreateBranch)++-- | Enables auto building for the branch.+createBranch_enableAutoBuild :: Lens.Lens' CreateBranch (Prelude.Maybe Prelude.Bool)+createBranch_enableAutoBuild = Lens.lens (\CreateBranch' {enableAutoBuild} -> enableAutoBuild) (\s@CreateBranch' {} a -> s {enableAutoBuild = a} :: CreateBranch)++-- | Enables basic authorization for the branch.+createBranch_enableBasicAuth :: Lens.Lens' CreateBranch (Prelude.Maybe Prelude.Bool)+createBranch_enableBasicAuth = Lens.lens (\CreateBranch' {enableBasicAuth} -> enableBasicAuth) (\s@CreateBranch' {} a -> s {enableBasicAuth = a} :: CreateBranch)++-- | Enables notifications for the branch.+createBranch_enableNotification :: Lens.Lens' CreateBranch (Prelude.Maybe Prelude.Bool)+createBranch_enableNotification = Lens.lens (\CreateBranch' {enableNotification} -> enableNotification) (\s@CreateBranch' {} a -> s {enableNotification = a} :: CreateBranch)++-- | Enables performance mode for the branch.+--+-- Performance mode optimizes for faster hosting performance by keeping+-- content cached at the edge for a longer interval. When performance mode+-- is enabled, hosting configuration or code changes can take up to 10+-- minutes to roll out.+createBranch_enablePerformanceMode :: Lens.Lens' CreateBranch (Prelude.Maybe Prelude.Bool)+createBranch_enablePerformanceMode = Lens.lens (\CreateBranch' {enablePerformanceMode} -> enablePerformanceMode) (\s@CreateBranch' {} a -> s {enablePerformanceMode = a} :: CreateBranch)++-- | Enables pull request previews for this branch.+createBranch_enablePullRequestPreview :: Lens.Lens' CreateBranch (Prelude.Maybe Prelude.Bool)+createBranch_enablePullRequestPreview = Lens.lens (\CreateBranch' {enablePullRequestPreview} -> enablePullRequestPreview) (\s@CreateBranch' {} a -> s {enablePullRequestPreview = a} :: CreateBranch)++-- | The environment variables for the branch.+createBranch_environmentVariables :: Lens.Lens' CreateBranch (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createBranch_environmentVariables = Lens.lens (\CreateBranch' {environmentVariables} -> environmentVariables) (\s@CreateBranch' {} a -> s {environmentVariables = a} :: CreateBranch) Prelude.. Lens.mapping Lens.coerced++-- | The framework for the branch.+createBranch_framework :: Lens.Lens' CreateBranch (Prelude.Maybe Prelude.Text)+createBranch_framework = Lens.lens (\CreateBranch' {framework} -> framework) (\s@CreateBranch' {} a -> s {framework = a} :: CreateBranch)++-- | The Amplify environment name for the pull request.+createBranch_pullRequestEnvironmentName :: Lens.Lens' CreateBranch (Prelude.Maybe Prelude.Text)+createBranch_pullRequestEnvironmentName = Lens.lens (\CreateBranch' {pullRequestEnvironmentName} -> pullRequestEnvironmentName) (\s@CreateBranch' {} a -> s {pullRequestEnvironmentName = a} :: CreateBranch)++-- | Describes the current stage for the branch.+createBranch_stage :: Lens.Lens' CreateBranch (Prelude.Maybe Stage)+createBranch_stage = Lens.lens (\CreateBranch' {stage} -> stage) (\s@CreateBranch' {} a -> s {stage = a} :: CreateBranch)++-- | The tag for the branch.+createBranch_tags :: Lens.Lens' CreateBranch (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createBranch_tags = Lens.lens (\CreateBranch' {tags} -> tags) (\s@CreateBranch' {} a -> s {tags = a} :: CreateBranch) Prelude.. Lens.mapping Lens.coerced++-- | The content Time To Live (TTL) for the website in seconds.+createBranch_ttl :: Lens.Lens' CreateBranch (Prelude.Maybe Prelude.Text)+createBranch_ttl = Lens.lens (\CreateBranch' {ttl} -> ttl) (\s@CreateBranch' {} a -> s {ttl = a} :: CreateBranch)++-- | The unique ID for an Amplify app.+createBranch_appId :: Lens.Lens' CreateBranch Prelude.Text+createBranch_appId = Lens.lens (\CreateBranch' {appId} -> appId) (\s@CreateBranch' {} a -> s {appId = a} :: CreateBranch)++-- | The name for the branch.+createBranch_branchName :: Lens.Lens' CreateBranch Prelude.Text+createBranch_branchName = Lens.lens (\CreateBranch' {branchName} -> branchName) (\s@CreateBranch' {} a -> s {branchName = a} :: CreateBranch)++instance Core.AWSRequest CreateBranch where+  type AWSResponse CreateBranch = CreateBranchResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateBranchResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "branch")+      )++instance Prelude.Hashable CreateBranch where+  hashWithSalt _salt CreateBranch' {..} =+    _salt+      `Prelude.hashWithSalt` backendEnvironmentArn+      `Prelude.hashWithSalt` basicAuthCredentials+      `Prelude.hashWithSalt` buildSpec+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` displayName+      `Prelude.hashWithSalt` enableAutoBuild+      `Prelude.hashWithSalt` enableBasicAuth+      `Prelude.hashWithSalt` enableNotification+      `Prelude.hashWithSalt` enablePerformanceMode+      `Prelude.hashWithSalt` enablePullRequestPreview+      `Prelude.hashWithSalt` environmentVariables+      `Prelude.hashWithSalt` framework+      `Prelude.hashWithSalt` pullRequestEnvironmentName+      `Prelude.hashWithSalt` stage+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` ttl+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` branchName++instance Prelude.NFData CreateBranch where+  rnf CreateBranch' {..} =+    Prelude.rnf backendEnvironmentArn+      `Prelude.seq` Prelude.rnf basicAuthCredentials+      `Prelude.seq` Prelude.rnf buildSpec+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf displayName+      `Prelude.seq` Prelude.rnf enableAutoBuild+      `Prelude.seq` Prelude.rnf enableBasicAuth+      `Prelude.seq` Prelude.rnf enableNotification+      `Prelude.seq` Prelude.rnf enablePerformanceMode+      `Prelude.seq` Prelude.rnf enablePullRequestPreview+      `Prelude.seq` Prelude.rnf environmentVariables+      `Prelude.seq` Prelude.rnf framework+      `Prelude.seq` Prelude.rnf pullRequestEnvironmentName+      `Prelude.seq` Prelude.rnf stage+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf ttl+      `Prelude.seq` Prelude.rnf appId+      `Prelude.seq` Prelude.rnf branchName++instance Data.ToHeaders CreateBranch where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateBranch where+  toJSON CreateBranch' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("backendEnvironmentArn" Data..=)+              Prelude.<$> backendEnvironmentArn,+            ("basicAuthCredentials" Data..=)+              Prelude.<$> basicAuthCredentials,+            ("buildSpec" Data..=) Prelude.<$> buildSpec,+            ("description" Data..=) Prelude.<$> description,+            ("displayName" Data..=) Prelude.<$> displayName,+            ("enableAutoBuild" Data..=)+              Prelude.<$> enableAutoBuild,+            ("enableBasicAuth" Data..=)+              Prelude.<$> enableBasicAuth,+            ("enableNotification" Data..=)+              Prelude.<$> enableNotification,+            ("enablePerformanceMode" Data..=)+              Prelude.<$> enablePerformanceMode,+            ("enablePullRequestPreview" Data..=)+              Prelude.<$> enablePullRequestPreview,+            ("environmentVariables" Data..=)+              Prelude.<$> environmentVariables,+            ("framework" Data..=) Prelude.<$> framework,+            ("pullRequestEnvironmentName" Data..=)+              Prelude.<$> pullRequestEnvironmentName,+            ("stage" Data..=) Prelude.<$> stage,+            ("tags" Data..=) Prelude.<$> tags,+            ("ttl" Data..=) Prelude.<$> ttl,+            Prelude.Just ("branchName" Data..= branchName)+          ]+      )++instance Data.ToPath CreateBranch where+  toPath CreateBranch' {..} =+    Prelude.mconcat+      ["/apps/", Data.toBS appId, "/branches"]++instance Data.ToQuery CreateBranch where+  toQuery = Prelude.const Prelude.mempty++-- | The result structure for create branch request.+--+-- /See:/ 'newCreateBranchResponse' smart constructor.+data CreateBranchResponse = CreateBranchResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Describes the branch for an Amplify app, which maps to a third-party+    -- repository branch.+    branch :: Branch+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateBranchResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createBranchResponse_httpStatus' - The response's http status code.+--+-- 'branch', 'createBranchResponse_branch' - Describes the branch for an Amplify app, which maps to a third-party+-- repository branch.+newCreateBranchResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'branch'+  Branch ->+  CreateBranchResponse+newCreateBranchResponse pHttpStatus_ pBranch_ =+  CreateBranchResponse'+    { httpStatus = pHttpStatus_,+      branch = pBranch_+    }++-- | The response's http status code.+createBranchResponse_httpStatus :: Lens.Lens' CreateBranchResponse Prelude.Int+createBranchResponse_httpStatus = Lens.lens (\CreateBranchResponse' {httpStatus} -> httpStatus) (\s@CreateBranchResponse' {} a -> s {httpStatus = a} :: CreateBranchResponse)++-- | Describes the branch for an Amplify app, which maps to a third-party+-- repository branch.+createBranchResponse_branch :: Lens.Lens' CreateBranchResponse Branch+createBranchResponse_branch = Lens.lens (\CreateBranchResponse' {branch} -> branch) (\s@CreateBranchResponse' {} a -> s {branch = a} :: CreateBranchResponse)++instance Prelude.NFData CreateBranchResponse where+  rnf CreateBranchResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf branch
+ gen/Amazonka/Amplify/CreateDeployment.hs view
@@ -0,0 +1,248 @@+{-# 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.Amplify.CreateDeployment+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a deployment for a manually deployed Amplify app. Manually+-- deployed apps are not connected to a repository.+module Amazonka.Amplify.CreateDeployment+  ( -- * Creating a Request+    CreateDeployment (..),+    newCreateDeployment,++    -- * Request Lenses+    createDeployment_fileMap,+    createDeployment_appId,+    createDeployment_branchName,++    -- * Destructuring the Response+    CreateDeploymentResponse (..),+    newCreateDeploymentResponse,++    -- * Response Lenses+    createDeploymentResponse_jobId,+    createDeploymentResponse_httpStatus,+    createDeploymentResponse_fileUploadUrls,+    createDeploymentResponse_zipUploadUrl,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request structure for the create a new deployment request.+--+-- /See:/ 'newCreateDeployment' smart constructor.+data CreateDeployment = CreateDeployment'+  { -- | An optional file map that contains the file name as the key and the file+    -- content md5 hash as the value. If this argument is provided, the service+    -- will generate a unique upload URL per file. Otherwise, the service will+    -- only generate a single upload URL for the zipped files.+    fileMap :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The unique ID for an Amplify app.+    appId :: Prelude.Text,+    -- | The name for the branch, for the job.+    branchName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDeployment' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'fileMap', 'createDeployment_fileMap' - An optional file map that contains the file name as the key and the file+-- content md5 hash as the value. If this argument is provided, the service+-- will generate a unique upload URL per file. Otherwise, the service will+-- only generate a single upload URL for the zipped files.+--+-- 'appId', 'createDeployment_appId' - The unique ID for an Amplify app.+--+-- 'branchName', 'createDeployment_branchName' - The name for the branch, for the job.+newCreateDeployment ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'branchName'+  Prelude.Text ->+  CreateDeployment+newCreateDeployment pAppId_ pBranchName_ =+  CreateDeployment'+    { fileMap = Prelude.Nothing,+      appId = pAppId_,+      branchName = pBranchName_+    }++-- | An optional file map that contains the file name as the key and the file+-- content md5 hash as the value. If this argument is provided, the service+-- will generate a unique upload URL per file. Otherwise, the service will+-- only generate a single upload URL for the zipped files.+createDeployment_fileMap :: Lens.Lens' CreateDeployment (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createDeployment_fileMap = Lens.lens (\CreateDeployment' {fileMap} -> fileMap) (\s@CreateDeployment' {} a -> s {fileMap = a} :: CreateDeployment) Prelude.. Lens.mapping Lens.coerced++-- | The unique ID for an Amplify app.+createDeployment_appId :: Lens.Lens' CreateDeployment Prelude.Text+createDeployment_appId = Lens.lens (\CreateDeployment' {appId} -> appId) (\s@CreateDeployment' {} a -> s {appId = a} :: CreateDeployment)++-- | The name for the branch, for the job.+createDeployment_branchName :: Lens.Lens' CreateDeployment Prelude.Text+createDeployment_branchName = Lens.lens (\CreateDeployment' {branchName} -> branchName) (\s@CreateDeployment' {} a -> s {branchName = a} :: CreateDeployment)++instance Core.AWSRequest CreateDeployment where+  type+    AWSResponse CreateDeployment =+      CreateDeploymentResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateDeploymentResponse'+            Prelude.<$> (x Data..?> "jobId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..?> "fileUploadUrls" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..:> "zipUploadUrl")+      )++instance Prelude.Hashable CreateDeployment where+  hashWithSalt _salt CreateDeployment' {..} =+    _salt+      `Prelude.hashWithSalt` fileMap+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` branchName++instance Prelude.NFData CreateDeployment where+  rnf CreateDeployment' {..} =+    Prelude.rnf fileMap+      `Prelude.seq` Prelude.rnf appId+      `Prelude.seq` Prelude.rnf branchName++instance Data.ToHeaders CreateDeployment where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateDeployment where+  toJSON CreateDeployment' {..} =+    Data.object+      ( Prelude.catMaybes+          [("fileMap" Data..=) Prelude.<$> fileMap]+      )++instance Data.ToPath CreateDeployment where+  toPath CreateDeployment' {..} =+    Prelude.mconcat+      [ "/apps/",+        Data.toBS appId,+        "/branches/",+        Data.toBS branchName,+        "/deployments"+      ]++instance Data.ToQuery CreateDeployment where+  toQuery = Prelude.const Prelude.mempty++-- | The result structure for the create a new deployment request.+--+-- /See:/ 'newCreateDeploymentResponse' smart constructor.+data CreateDeploymentResponse = CreateDeploymentResponse'+  { -- | The job ID for this deployment. will supply to start deployment api.+    jobId :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | When the @fileMap@ argument is provided in the request, @fileUploadUrls@+    -- will contain a map of file names to upload URLs.+    fileUploadUrls :: Prelude.HashMap Prelude.Text Prelude.Text,+    -- | When the @fileMap@ argument is not provided in the request, this+    -- @zipUploadUrl@ is returned.+    zipUploadUrl :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDeploymentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'jobId', 'createDeploymentResponse_jobId' - The job ID for this deployment. will supply to start deployment api.+--+-- 'httpStatus', 'createDeploymentResponse_httpStatus' - The response's http status code.+--+-- 'fileUploadUrls', 'createDeploymentResponse_fileUploadUrls' - When the @fileMap@ argument is provided in the request, @fileUploadUrls@+-- will contain a map of file names to upload URLs.+--+-- 'zipUploadUrl', 'createDeploymentResponse_zipUploadUrl' - When the @fileMap@ argument is not provided in the request, this+-- @zipUploadUrl@ is returned.+newCreateDeploymentResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'zipUploadUrl'+  Prelude.Text ->+  CreateDeploymentResponse+newCreateDeploymentResponse+  pHttpStatus_+  pZipUploadUrl_ =+    CreateDeploymentResponse'+      { jobId = Prelude.Nothing,+        httpStatus = pHttpStatus_,+        fileUploadUrls = Prelude.mempty,+        zipUploadUrl = pZipUploadUrl_+      }++-- | The job ID for this deployment. will supply to start deployment api.+createDeploymentResponse_jobId :: Lens.Lens' CreateDeploymentResponse (Prelude.Maybe Prelude.Text)+createDeploymentResponse_jobId = Lens.lens (\CreateDeploymentResponse' {jobId} -> jobId) (\s@CreateDeploymentResponse' {} a -> s {jobId = a} :: CreateDeploymentResponse)++-- | The response's http status code.+createDeploymentResponse_httpStatus :: Lens.Lens' CreateDeploymentResponse Prelude.Int+createDeploymentResponse_httpStatus = Lens.lens (\CreateDeploymentResponse' {httpStatus} -> httpStatus) (\s@CreateDeploymentResponse' {} a -> s {httpStatus = a} :: CreateDeploymentResponse)++-- | When the @fileMap@ argument is provided in the request, @fileUploadUrls@+-- will contain a map of file names to upload URLs.+createDeploymentResponse_fileUploadUrls :: Lens.Lens' CreateDeploymentResponse (Prelude.HashMap Prelude.Text Prelude.Text)+createDeploymentResponse_fileUploadUrls = Lens.lens (\CreateDeploymentResponse' {fileUploadUrls} -> fileUploadUrls) (\s@CreateDeploymentResponse' {} a -> s {fileUploadUrls = a} :: CreateDeploymentResponse) Prelude.. Lens.coerced++-- | When the @fileMap@ argument is not provided in the request, this+-- @zipUploadUrl@ is returned.+createDeploymentResponse_zipUploadUrl :: Lens.Lens' CreateDeploymentResponse Prelude.Text+createDeploymentResponse_zipUploadUrl = Lens.lens (\CreateDeploymentResponse' {zipUploadUrl} -> zipUploadUrl) (\s@CreateDeploymentResponse' {} a -> s {zipUploadUrl = a} :: CreateDeploymentResponse)++instance Prelude.NFData CreateDeploymentResponse where+  rnf CreateDeploymentResponse' {..} =+    Prelude.rnf jobId+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf fileUploadUrls+      `Prelude.seq` Prelude.rnf zipUploadUrl
+ gen/Amazonka/Amplify/CreateDomainAssociation.hs view
@@ -0,0 +1,260 @@+{-# 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.Amplify.CreateDomainAssociation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new domain association for an Amplify app. This action+-- associates a custom domain with the Amplify app+module Amazonka.Amplify.CreateDomainAssociation+  ( -- * Creating a Request+    CreateDomainAssociation (..),+    newCreateDomainAssociation,++    -- * Request Lenses+    createDomainAssociation_autoSubDomainCreationPatterns,+    createDomainAssociation_autoSubDomainIAMRole,+    createDomainAssociation_enableAutoSubDomain,+    createDomainAssociation_appId,+    createDomainAssociation_domainName,+    createDomainAssociation_subDomainSettings,++    -- * Destructuring the Response+    CreateDomainAssociationResponse (..),+    newCreateDomainAssociationResponse,++    -- * Response Lenses+    createDomainAssociationResponse_httpStatus,+    createDomainAssociationResponse_domainAssociation,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request structure for the create domain association request.+--+-- /See:/ 'newCreateDomainAssociation' smart constructor.+data CreateDomainAssociation = CreateDomainAssociation'+  { -- | Sets the branch patterns for automatic subdomain creation.+    autoSubDomainCreationPatterns :: Prelude.Maybe [Prelude.Text],+    -- | The required AWS Identity and Access Management (IAM) service role for+    -- the Amazon Resource Name (ARN) for automatically creating subdomains.+    autoSubDomainIAMRole :: Prelude.Maybe Prelude.Text,+    -- | Enables the automated creation of subdomains for branches.+    enableAutoSubDomain :: Prelude.Maybe Prelude.Bool,+    -- | The unique ID for an Amplify app.+    appId :: Prelude.Text,+    -- | The domain name for the domain association.+    domainName :: Prelude.Text,+    -- | The setting for the subdomain.+    subDomainSettings :: [SubDomainSetting]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDomainAssociation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'autoSubDomainCreationPatterns', 'createDomainAssociation_autoSubDomainCreationPatterns' - Sets the branch patterns for automatic subdomain creation.+--+-- 'autoSubDomainIAMRole', 'createDomainAssociation_autoSubDomainIAMRole' - The required AWS Identity and Access Management (IAM) service role for+-- the Amazon Resource Name (ARN) for automatically creating subdomains.+--+-- 'enableAutoSubDomain', 'createDomainAssociation_enableAutoSubDomain' - Enables the automated creation of subdomains for branches.+--+-- 'appId', 'createDomainAssociation_appId' - The unique ID for an Amplify app.+--+-- 'domainName', 'createDomainAssociation_domainName' - The domain name for the domain association.+--+-- 'subDomainSettings', 'createDomainAssociation_subDomainSettings' - The setting for the subdomain.+newCreateDomainAssociation ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'domainName'+  Prelude.Text ->+  CreateDomainAssociation+newCreateDomainAssociation pAppId_ pDomainName_ =+  CreateDomainAssociation'+    { autoSubDomainCreationPatterns =+        Prelude.Nothing,+      autoSubDomainIAMRole = Prelude.Nothing,+      enableAutoSubDomain = Prelude.Nothing,+      appId = pAppId_,+      domainName = pDomainName_,+      subDomainSettings = Prelude.mempty+    }++-- | Sets the branch patterns for automatic subdomain creation.+createDomainAssociation_autoSubDomainCreationPatterns :: Lens.Lens' CreateDomainAssociation (Prelude.Maybe [Prelude.Text])+createDomainAssociation_autoSubDomainCreationPatterns = Lens.lens (\CreateDomainAssociation' {autoSubDomainCreationPatterns} -> autoSubDomainCreationPatterns) (\s@CreateDomainAssociation' {} a -> s {autoSubDomainCreationPatterns = a} :: CreateDomainAssociation) Prelude.. Lens.mapping Lens.coerced++-- | The required AWS Identity and Access Management (IAM) service role for+-- the Amazon Resource Name (ARN) for automatically creating subdomains.+createDomainAssociation_autoSubDomainIAMRole :: Lens.Lens' CreateDomainAssociation (Prelude.Maybe Prelude.Text)+createDomainAssociation_autoSubDomainIAMRole = Lens.lens (\CreateDomainAssociation' {autoSubDomainIAMRole} -> autoSubDomainIAMRole) (\s@CreateDomainAssociation' {} a -> s {autoSubDomainIAMRole = a} :: CreateDomainAssociation)++-- | Enables the automated creation of subdomains for branches.+createDomainAssociation_enableAutoSubDomain :: Lens.Lens' CreateDomainAssociation (Prelude.Maybe Prelude.Bool)+createDomainAssociation_enableAutoSubDomain = Lens.lens (\CreateDomainAssociation' {enableAutoSubDomain} -> enableAutoSubDomain) (\s@CreateDomainAssociation' {} a -> s {enableAutoSubDomain = a} :: CreateDomainAssociation)++-- | The unique ID for an Amplify app.+createDomainAssociation_appId :: Lens.Lens' CreateDomainAssociation Prelude.Text+createDomainAssociation_appId = Lens.lens (\CreateDomainAssociation' {appId} -> appId) (\s@CreateDomainAssociation' {} a -> s {appId = a} :: CreateDomainAssociation)++-- | The domain name for the domain association.+createDomainAssociation_domainName :: Lens.Lens' CreateDomainAssociation Prelude.Text+createDomainAssociation_domainName = Lens.lens (\CreateDomainAssociation' {domainName} -> domainName) (\s@CreateDomainAssociation' {} a -> s {domainName = a} :: CreateDomainAssociation)++-- | The setting for the subdomain.+createDomainAssociation_subDomainSettings :: Lens.Lens' CreateDomainAssociation [SubDomainSetting]+createDomainAssociation_subDomainSettings = Lens.lens (\CreateDomainAssociation' {subDomainSettings} -> subDomainSettings) (\s@CreateDomainAssociation' {} a -> s {subDomainSettings = a} :: CreateDomainAssociation) Prelude.. Lens.coerced++instance Core.AWSRequest CreateDomainAssociation where+  type+    AWSResponse CreateDomainAssociation =+      CreateDomainAssociationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateDomainAssociationResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "domainAssociation")+      )++instance Prelude.Hashable CreateDomainAssociation where+  hashWithSalt _salt CreateDomainAssociation' {..} =+    _salt+      `Prelude.hashWithSalt` autoSubDomainCreationPatterns+      `Prelude.hashWithSalt` autoSubDomainIAMRole+      `Prelude.hashWithSalt` enableAutoSubDomain+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` domainName+      `Prelude.hashWithSalt` subDomainSettings++instance Prelude.NFData CreateDomainAssociation where+  rnf CreateDomainAssociation' {..} =+    Prelude.rnf autoSubDomainCreationPatterns+      `Prelude.seq` Prelude.rnf autoSubDomainIAMRole+      `Prelude.seq` Prelude.rnf enableAutoSubDomain+      `Prelude.seq` Prelude.rnf appId+      `Prelude.seq` Prelude.rnf domainName+      `Prelude.seq` Prelude.rnf subDomainSettings++instance Data.ToHeaders CreateDomainAssociation where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateDomainAssociation where+  toJSON CreateDomainAssociation' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("autoSubDomainCreationPatterns" Data..=)+              Prelude.<$> autoSubDomainCreationPatterns,+            ("autoSubDomainIAMRole" Data..=)+              Prelude.<$> autoSubDomainIAMRole,+            ("enableAutoSubDomain" Data..=)+              Prelude.<$> enableAutoSubDomain,+            Prelude.Just ("domainName" Data..= domainName),+            Prelude.Just+              ("subDomainSettings" Data..= subDomainSettings)+          ]+      )++instance Data.ToPath CreateDomainAssociation where+  toPath CreateDomainAssociation' {..} =+    Prelude.mconcat+      ["/apps/", Data.toBS appId, "/domains"]++instance Data.ToQuery CreateDomainAssociation where+  toQuery = Prelude.const Prelude.mempty++-- | The result structure for the create domain association request.+--+-- /See:/ 'newCreateDomainAssociationResponse' smart constructor.+data CreateDomainAssociationResponse = CreateDomainAssociationResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Describes the structure of a domain association, which associates a+    -- custom domain with an Amplify app.+    domainAssociation :: DomainAssociation+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDomainAssociationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createDomainAssociationResponse_httpStatus' - The response's http status code.+--+-- 'domainAssociation', 'createDomainAssociationResponse_domainAssociation' - Describes the structure of a domain association, which associates a+-- custom domain with an Amplify app.+newCreateDomainAssociationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'domainAssociation'+  DomainAssociation ->+  CreateDomainAssociationResponse+newCreateDomainAssociationResponse+  pHttpStatus_+  pDomainAssociation_ =+    CreateDomainAssociationResponse'+      { httpStatus =+          pHttpStatus_,+        domainAssociation = pDomainAssociation_+      }++-- | The response's http status code.+createDomainAssociationResponse_httpStatus :: Lens.Lens' CreateDomainAssociationResponse Prelude.Int+createDomainAssociationResponse_httpStatus = Lens.lens (\CreateDomainAssociationResponse' {httpStatus} -> httpStatus) (\s@CreateDomainAssociationResponse' {} a -> s {httpStatus = a} :: CreateDomainAssociationResponse)++-- | Describes the structure of a domain association, which associates a+-- custom domain with an Amplify app.+createDomainAssociationResponse_domainAssociation :: Lens.Lens' CreateDomainAssociationResponse DomainAssociation+createDomainAssociationResponse_domainAssociation = Lens.lens (\CreateDomainAssociationResponse' {domainAssociation} -> domainAssociation) (\s@CreateDomainAssociationResponse' {} a -> s {domainAssociation = a} :: CreateDomainAssociationResponse)++instance+  Prelude.NFData+    CreateDomainAssociationResponse+  where+  rnf CreateDomainAssociationResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf domainAssociation
+ gen/Amazonka/Amplify/CreateWebhook.hs view
@@ -0,0 +1,203 @@+{-# 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.Amplify.CreateWebhook+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new webhook on an Amplify app.+module Amazonka.Amplify.CreateWebhook+  ( -- * Creating a Request+    CreateWebhook (..),+    newCreateWebhook,++    -- * Request Lenses+    createWebhook_description,+    createWebhook_appId,+    createWebhook_branchName,++    -- * Destructuring the Response+    CreateWebhookResponse (..),+    newCreateWebhookResponse,++    -- * Response Lenses+    createWebhookResponse_httpStatus,+    createWebhookResponse_webhook,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request structure for the create webhook request.+--+-- /See:/ 'newCreateWebhook' smart constructor.+data CreateWebhook = CreateWebhook'+  { -- | The description for a webhook.+    description :: Prelude.Maybe Prelude.Text,+    -- | The unique ID for an Amplify app.+    appId :: Prelude.Text,+    -- | The name for a branch that is part of an Amplify app.+    branchName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateWebhook' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'createWebhook_description' - The description for a webhook.+--+-- 'appId', 'createWebhook_appId' - The unique ID for an Amplify app.+--+-- 'branchName', 'createWebhook_branchName' - The name for a branch that is part of an Amplify app.+newCreateWebhook ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'branchName'+  Prelude.Text ->+  CreateWebhook+newCreateWebhook pAppId_ pBranchName_ =+  CreateWebhook'+    { description = Prelude.Nothing,+      appId = pAppId_,+      branchName = pBranchName_+    }++-- | The description for a webhook.+createWebhook_description :: Lens.Lens' CreateWebhook (Prelude.Maybe Prelude.Text)+createWebhook_description = Lens.lens (\CreateWebhook' {description} -> description) (\s@CreateWebhook' {} a -> s {description = a} :: CreateWebhook)++-- | The unique ID for an Amplify app.+createWebhook_appId :: Lens.Lens' CreateWebhook Prelude.Text+createWebhook_appId = Lens.lens (\CreateWebhook' {appId} -> appId) (\s@CreateWebhook' {} a -> s {appId = a} :: CreateWebhook)++-- | The name for a branch that is part of an Amplify app.+createWebhook_branchName :: Lens.Lens' CreateWebhook Prelude.Text+createWebhook_branchName = Lens.lens (\CreateWebhook' {branchName} -> branchName) (\s@CreateWebhook' {} a -> s {branchName = a} :: CreateWebhook)++instance Core.AWSRequest CreateWebhook where+  type+    AWSResponse CreateWebhook =+      CreateWebhookResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateWebhookResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "webhook")+      )++instance Prelude.Hashable CreateWebhook where+  hashWithSalt _salt CreateWebhook' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` branchName++instance Prelude.NFData CreateWebhook where+  rnf CreateWebhook' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf appId+      `Prelude.seq` Prelude.rnf branchName++instance Data.ToHeaders CreateWebhook where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateWebhook where+  toJSON CreateWebhook' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            Prelude.Just ("branchName" Data..= branchName)+          ]+      )++instance Data.ToPath CreateWebhook where+  toPath CreateWebhook' {..} =+    Prelude.mconcat+      ["/apps/", Data.toBS appId, "/webhooks"]++instance Data.ToQuery CreateWebhook where+  toQuery = Prelude.const Prelude.mempty++-- | The result structure for the create webhook request.+--+-- /See:/ 'newCreateWebhookResponse' smart constructor.+data CreateWebhookResponse = CreateWebhookResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Describes a webhook that connects repository events to an Amplify app.+    webhook :: Webhook+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateWebhookResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createWebhookResponse_httpStatus' - The response's http status code.+--+-- 'webhook', 'createWebhookResponse_webhook' - Describes a webhook that connects repository events to an Amplify app.+newCreateWebhookResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'webhook'+  Webhook ->+  CreateWebhookResponse+newCreateWebhookResponse pHttpStatus_ pWebhook_ =+  CreateWebhookResponse'+    { httpStatus = pHttpStatus_,+      webhook = pWebhook_+    }++-- | The response's http status code.+createWebhookResponse_httpStatus :: Lens.Lens' CreateWebhookResponse Prelude.Int+createWebhookResponse_httpStatus = Lens.lens (\CreateWebhookResponse' {httpStatus} -> httpStatus) (\s@CreateWebhookResponse' {} a -> s {httpStatus = a} :: CreateWebhookResponse)++-- | Describes a webhook that connects repository events to an Amplify app.+createWebhookResponse_webhook :: Lens.Lens' CreateWebhookResponse Webhook+createWebhookResponse_webhook = Lens.lens (\CreateWebhookResponse' {webhook} -> webhook) (\s@CreateWebhookResponse' {} a -> s {webhook = a} :: CreateWebhookResponse)++instance Prelude.NFData CreateWebhookResponse where+  rnf CreateWebhookResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf webhook
+ gen/Amazonka/Amplify/DeleteApp.hs view
@@ -0,0 +1,159 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Amplify.DeleteApp+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an existing Amplify app specified by an app ID.+module Amazonka.Amplify.DeleteApp+  ( -- * Creating a Request+    DeleteApp (..),+    newDeleteApp,++    -- * Request Lenses+    deleteApp_appId,++    -- * Destructuring the Response+    DeleteAppResponse (..),+    newDeleteAppResponse,++    -- * Response Lenses+    deleteAppResponse_httpStatus,+    deleteAppResponse_app,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Describes the request structure for the delete app request.+--+-- /See:/ 'newDeleteApp' smart constructor.+data DeleteApp = DeleteApp'+  { -- | The unique ID for an Amplify app.+    appId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteApp' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'appId', 'deleteApp_appId' - The unique ID for an Amplify app.+newDeleteApp ::+  -- | 'appId'+  Prelude.Text ->+  DeleteApp+newDeleteApp pAppId_ = DeleteApp' {appId = pAppId_}++-- | The unique ID for an Amplify app.+deleteApp_appId :: Lens.Lens' DeleteApp Prelude.Text+deleteApp_appId = Lens.lens (\DeleteApp' {appId} -> appId) (\s@DeleteApp' {} a -> s {appId = a} :: DeleteApp)++instance Core.AWSRequest DeleteApp where+  type AWSResponse DeleteApp = DeleteAppResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteAppResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "app")+      )++instance Prelude.Hashable DeleteApp where+  hashWithSalt _salt DeleteApp' {..} =+    _salt `Prelude.hashWithSalt` appId++instance Prelude.NFData DeleteApp where+  rnf DeleteApp' {..} = Prelude.rnf appId++instance Data.ToHeaders DeleteApp where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteApp where+  toPath DeleteApp' {..} =+    Prelude.mconcat ["/apps/", Data.toBS appId]++instance Data.ToQuery DeleteApp where+  toQuery = Prelude.const Prelude.mempty++-- | The result structure for the delete app request.+--+-- /See:/ 'newDeleteAppResponse' smart constructor.+data DeleteAppResponse = DeleteAppResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    app :: App+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAppResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteAppResponse_httpStatus' - The response's http status code.+--+-- 'app', 'deleteAppResponse_app' - Undocumented member.+newDeleteAppResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'app'+  App ->+  DeleteAppResponse+newDeleteAppResponse pHttpStatus_ pApp_ =+  DeleteAppResponse'+    { httpStatus = pHttpStatus_,+      app = pApp_+    }++-- | The response's http status code.+deleteAppResponse_httpStatus :: Lens.Lens' DeleteAppResponse Prelude.Int+deleteAppResponse_httpStatus = Lens.lens (\DeleteAppResponse' {httpStatus} -> httpStatus) (\s@DeleteAppResponse' {} a -> s {httpStatus = a} :: DeleteAppResponse)++-- | Undocumented member.+deleteAppResponse_app :: Lens.Lens' DeleteAppResponse App+deleteAppResponse_app = Lens.lens (\DeleteAppResponse' {app} -> app) (\s@DeleteAppResponse' {} a -> s {app = a} :: DeleteAppResponse)++instance Prelude.NFData DeleteAppResponse where+  rnf DeleteAppResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf app
+ gen/Amazonka/Amplify/DeleteBackendEnvironment.hs view
@@ -0,0 +1,192 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Amplify.DeleteBackendEnvironment+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a backend environment for an Amplify app.+module Amazonka.Amplify.DeleteBackendEnvironment+  ( -- * Creating a Request+    DeleteBackendEnvironment (..),+    newDeleteBackendEnvironment,++    -- * Request Lenses+    deleteBackendEnvironment_appId,+    deleteBackendEnvironment_environmentName,++    -- * Destructuring the Response+    DeleteBackendEnvironmentResponse (..),+    newDeleteBackendEnvironmentResponse,++    -- * Response Lenses+    deleteBackendEnvironmentResponse_httpStatus,+    deleteBackendEnvironmentResponse_backendEnvironment,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request structure for the delete backend environment request.+--+-- /See:/ 'newDeleteBackendEnvironment' smart constructor.+data DeleteBackendEnvironment = DeleteBackendEnvironment'+  { -- | The unique ID of an Amplify app.+    appId :: Prelude.Text,+    -- | The name of a backend environment of an Amplify app.+    environmentName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteBackendEnvironment' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'appId', 'deleteBackendEnvironment_appId' - The unique ID of an Amplify app.+--+-- 'environmentName', 'deleteBackendEnvironment_environmentName' - The name of a backend environment of an Amplify app.+newDeleteBackendEnvironment ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'environmentName'+  Prelude.Text ->+  DeleteBackendEnvironment+newDeleteBackendEnvironment pAppId_ pEnvironmentName_ =+  DeleteBackendEnvironment'+    { appId = pAppId_,+      environmentName = pEnvironmentName_+    }++-- | The unique ID of an Amplify app.+deleteBackendEnvironment_appId :: Lens.Lens' DeleteBackendEnvironment Prelude.Text+deleteBackendEnvironment_appId = Lens.lens (\DeleteBackendEnvironment' {appId} -> appId) (\s@DeleteBackendEnvironment' {} a -> s {appId = a} :: DeleteBackendEnvironment)++-- | The name of a backend environment of an Amplify app.+deleteBackendEnvironment_environmentName :: Lens.Lens' DeleteBackendEnvironment Prelude.Text+deleteBackendEnvironment_environmentName = Lens.lens (\DeleteBackendEnvironment' {environmentName} -> environmentName) (\s@DeleteBackendEnvironment' {} a -> s {environmentName = a} :: DeleteBackendEnvironment)++instance Core.AWSRequest DeleteBackendEnvironment where+  type+    AWSResponse DeleteBackendEnvironment =+      DeleteBackendEnvironmentResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteBackendEnvironmentResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "backendEnvironment")+      )++instance Prelude.Hashable DeleteBackendEnvironment where+  hashWithSalt _salt DeleteBackendEnvironment' {..} =+    _salt+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` environmentName++instance Prelude.NFData DeleteBackendEnvironment where+  rnf DeleteBackendEnvironment' {..} =+    Prelude.rnf appId+      `Prelude.seq` Prelude.rnf environmentName++instance Data.ToHeaders DeleteBackendEnvironment where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteBackendEnvironment where+  toPath DeleteBackendEnvironment' {..} =+    Prelude.mconcat+      [ "/apps/",+        Data.toBS appId,+        "/backendenvironments/",+        Data.toBS environmentName+      ]++instance Data.ToQuery DeleteBackendEnvironment where+  toQuery = Prelude.const Prelude.mempty++-- | The result structure of the delete backend environment result.+--+-- /See:/ 'newDeleteBackendEnvironmentResponse' smart constructor.+data DeleteBackendEnvironmentResponse = DeleteBackendEnvironmentResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Describes the backend environment for an Amplify app.+    backendEnvironment :: BackendEnvironment+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteBackendEnvironmentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteBackendEnvironmentResponse_httpStatus' - The response's http status code.+--+-- 'backendEnvironment', 'deleteBackendEnvironmentResponse_backendEnvironment' - Describes the backend environment for an Amplify app.+newDeleteBackendEnvironmentResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'backendEnvironment'+  BackendEnvironment ->+  DeleteBackendEnvironmentResponse+newDeleteBackendEnvironmentResponse+  pHttpStatus_+  pBackendEnvironment_ =+    DeleteBackendEnvironmentResponse'+      { httpStatus =+          pHttpStatus_,+        backendEnvironment = pBackendEnvironment_+      }++-- | The response's http status code.+deleteBackendEnvironmentResponse_httpStatus :: Lens.Lens' DeleteBackendEnvironmentResponse Prelude.Int+deleteBackendEnvironmentResponse_httpStatus = Lens.lens (\DeleteBackendEnvironmentResponse' {httpStatus} -> httpStatus) (\s@DeleteBackendEnvironmentResponse' {} a -> s {httpStatus = a} :: DeleteBackendEnvironmentResponse)++-- | Describes the backend environment for an Amplify app.+deleteBackendEnvironmentResponse_backendEnvironment :: Lens.Lens' DeleteBackendEnvironmentResponse BackendEnvironment+deleteBackendEnvironmentResponse_backendEnvironment = Lens.lens (\DeleteBackendEnvironmentResponse' {backendEnvironment} -> backendEnvironment) (\s@DeleteBackendEnvironmentResponse' {} a -> s {backendEnvironment = a} :: DeleteBackendEnvironmentResponse)++instance+  Prelude.NFData+    DeleteBackendEnvironmentResponse+  where+  rnf DeleteBackendEnvironmentResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf backendEnvironment
+ gen/Amazonka/Amplify/DeleteBranch.hs view
@@ -0,0 +1,187 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Amplify.DeleteBranch+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a branch for an Amplify app.+module Amazonka.Amplify.DeleteBranch+  ( -- * Creating a Request+    DeleteBranch (..),+    newDeleteBranch,++    -- * Request Lenses+    deleteBranch_appId,+    deleteBranch_branchName,++    -- * Destructuring the Response+    DeleteBranchResponse (..),+    newDeleteBranchResponse,++    -- * Response Lenses+    deleteBranchResponse_httpStatus,+    deleteBranchResponse_branch,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request structure for the delete branch request.+--+-- /See:/ 'newDeleteBranch' smart constructor.+data DeleteBranch = DeleteBranch'+  { -- | The unique ID for an Amplify app.+    appId :: Prelude.Text,+    -- | The name for the branch.+    branchName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteBranch' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'appId', 'deleteBranch_appId' - The unique ID for an Amplify app.+--+-- 'branchName', 'deleteBranch_branchName' - The name for the branch.+newDeleteBranch ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'branchName'+  Prelude.Text ->+  DeleteBranch+newDeleteBranch pAppId_ pBranchName_ =+  DeleteBranch'+    { appId = pAppId_,+      branchName = pBranchName_+    }++-- | The unique ID for an Amplify app.+deleteBranch_appId :: Lens.Lens' DeleteBranch Prelude.Text+deleteBranch_appId = Lens.lens (\DeleteBranch' {appId} -> appId) (\s@DeleteBranch' {} a -> s {appId = a} :: DeleteBranch)++-- | The name for the branch.+deleteBranch_branchName :: Lens.Lens' DeleteBranch Prelude.Text+deleteBranch_branchName = Lens.lens (\DeleteBranch' {branchName} -> branchName) (\s@DeleteBranch' {} a -> s {branchName = a} :: DeleteBranch)++instance Core.AWSRequest DeleteBranch where+  type AWSResponse DeleteBranch = DeleteBranchResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteBranchResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "branch")+      )++instance Prelude.Hashable DeleteBranch where+  hashWithSalt _salt DeleteBranch' {..} =+    _salt+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` branchName++instance Prelude.NFData DeleteBranch where+  rnf DeleteBranch' {..} =+    Prelude.rnf appId+      `Prelude.seq` Prelude.rnf branchName++instance Data.ToHeaders DeleteBranch where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteBranch where+  toPath DeleteBranch' {..} =+    Prelude.mconcat+      [ "/apps/",+        Data.toBS appId,+        "/branches/",+        Data.toBS branchName+      ]++instance Data.ToQuery DeleteBranch where+  toQuery = Prelude.const Prelude.mempty++-- | The result structure for the delete branch request.+--+-- /See:/ 'newDeleteBranchResponse' smart constructor.+data DeleteBranchResponse = DeleteBranchResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The branch for an Amplify app, which maps to a third-party repository+    -- branch.+    branch :: Branch+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteBranchResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteBranchResponse_httpStatus' - The response's http status code.+--+-- 'branch', 'deleteBranchResponse_branch' - The branch for an Amplify app, which maps to a third-party repository+-- branch.+newDeleteBranchResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'branch'+  Branch ->+  DeleteBranchResponse+newDeleteBranchResponse pHttpStatus_ pBranch_ =+  DeleteBranchResponse'+    { httpStatus = pHttpStatus_,+      branch = pBranch_+    }++-- | The response's http status code.+deleteBranchResponse_httpStatus :: Lens.Lens' DeleteBranchResponse Prelude.Int+deleteBranchResponse_httpStatus = Lens.lens (\DeleteBranchResponse' {httpStatus} -> httpStatus) (\s@DeleteBranchResponse' {} a -> s {httpStatus = a} :: DeleteBranchResponse)++-- | The branch for an Amplify app, which maps to a third-party repository+-- branch.+deleteBranchResponse_branch :: Lens.Lens' DeleteBranchResponse Branch+deleteBranchResponse_branch = Lens.lens (\DeleteBranchResponse' {branch} -> branch) (\s@DeleteBranchResponse' {} a -> s {branch = a} :: DeleteBranchResponse)++instance Prelude.NFData DeleteBranchResponse where+  rnf DeleteBranchResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf branch
+ gen/Amazonka/Amplify/DeleteDomainAssociation.hs view
@@ -0,0 +1,189 @@+{-# 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.Amplify.DeleteDomainAssociation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a domain association for an Amplify app.+module Amazonka.Amplify.DeleteDomainAssociation+  ( -- * Creating a Request+    DeleteDomainAssociation (..),+    newDeleteDomainAssociation,++    -- * Request Lenses+    deleteDomainAssociation_appId,+    deleteDomainAssociation_domainName,++    -- * Destructuring the Response+    DeleteDomainAssociationResponse (..),+    newDeleteDomainAssociationResponse,++    -- * Response Lenses+    deleteDomainAssociationResponse_httpStatus,+    deleteDomainAssociationResponse_domainAssociation,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request structure for the delete domain association request.+--+-- /See:/ 'newDeleteDomainAssociation' smart constructor.+data DeleteDomainAssociation = DeleteDomainAssociation'+  { -- | The unique id for an Amplify app.+    appId :: Prelude.Text,+    -- | The name of the domain.+    domainName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDomainAssociation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'appId', 'deleteDomainAssociation_appId' - The unique id for an Amplify app.+--+-- 'domainName', 'deleteDomainAssociation_domainName' - The name of the domain.+newDeleteDomainAssociation ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'domainName'+  Prelude.Text ->+  DeleteDomainAssociation+newDeleteDomainAssociation pAppId_ pDomainName_ =+  DeleteDomainAssociation'+    { appId = pAppId_,+      domainName = pDomainName_+    }++-- | The unique id for an Amplify app.+deleteDomainAssociation_appId :: Lens.Lens' DeleteDomainAssociation Prelude.Text+deleteDomainAssociation_appId = Lens.lens (\DeleteDomainAssociation' {appId} -> appId) (\s@DeleteDomainAssociation' {} a -> s {appId = a} :: DeleteDomainAssociation)++-- | The name of the domain.+deleteDomainAssociation_domainName :: Lens.Lens' DeleteDomainAssociation Prelude.Text+deleteDomainAssociation_domainName = Lens.lens (\DeleteDomainAssociation' {domainName} -> domainName) (\s@DeleteDomainAssociation' {} a -> s {domainName = a} :: DeleteDomainAssociation)++instance Core.AWSRequest DeleteDomainAssociation where+  type+    AWSResponse DeleteDomainAssociation =+      DeleteDomainAssociationResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteDomainAssociationResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "domainAssociation")+      )++instance Prelude.Hashable DeleteDomainAssociation where+  hashWithSalt _salt DeleteDomainAssociation' {..} =+    _salt+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` domainName++instance Prelude.NFData DeleteDomainAssociation where+  rnf DeleteDomainAssociation' {..} =+    Prelude.rnf appId+      `Prelude.seq` Prelude.rnf domainName++instance Data.ToHeaders DeleteDomainAssociation where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteDomainAssociation where+  toPath DeleteDomainAssociation' {..} =+    Prelude.mconcat+      [ "/apps/",+        Data.toBS appId,+        "/domains/",+        Data.toBS domainName+      ]++instance Data.ToQuery DeleteDomainAssociation where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteDomainAssociationResponse' smart constructor.+data DeleteDomainAssociationResponse = DeleteDomainAssociationResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    domainAssociation :: DomainAssociation+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDomainAssociationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteDomainAssociationResponse_httpStatus' - The response's http status code.+--+-- 'domainAssociation', 'deleteDomainAssociationResponse_domainAssociation' - Undocumented member.+newDeleteDomainAssociationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'domainAssociation'+  DomainAssociation ->+  DeleteDomainAssociationResponse+newDeleteDomainAssociationResponse+  pHttpStatus_+  pDomainAssociation_ =+    DeleteDomainAssociationResponse'+      { httpStatus =+          pHttpStatus_,+        domainAssociation = pDomainAssociation_+      }++-- | The response's http status code.+deleteDomainAssociationResponse_httpStatus :: Lens.Lens' DeleteDomainAssociationResponse Prelude.Int+deleteDomainAssociationResponse_httpStatus = Lens.lens (\DeleteDomainAssociationResponse' {httpStatus} -> httpStatus) (\s@DeleteDomainAssociationResponse' {} a -> s {httpStatus = a} :: DeleteDomainAssociationResponse)++-- | Undocumented member.+deleteDomainAssociationResponse_domainAssociation :: Lens.Lens' DeleteDomainAssociationResponse DomainAssociation+deleteDomainAssociationResponse_domainAssociation = Lens.lens (\DeleteDomainAssociationResponse' {domainAssociation} -> domainAssociation) (\s@DeleteDomainAssociationResponse' {} a -> s {domainAssociation = a} :: DeleteDomainAssociationResponse)++instance+  Prelude.NFData+    DeleteDomainAssociationResponse+  where+  rnf DeleteDomainAssociationResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf domainAssociation
+ gen/Amazonka/Amplify/DeleteJob.hs view
@@ -0,0 +1,199 @@+{-# 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.Amplify.DeleteJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a job for a branch of an Amplify app.+module Amazonka.Amplify.DeleteJob+  ( -- * Creating a Request+    DeleteJob (..),+    newDeleteJob,++    -- * Request Lenses+    deleteJob_appId,+    deleteJob_branchName,+    deleteJob_jobId,++    -- * Destructuring the Response+    DeleteJobResponse (..),+    newDeleteJobResponse,++    -- * Response Lenses+    deleteJobResponse_httpStatus,+    deleteJobResponse_jobSummary,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request structure for the delete job request.+--+-- /See:/ 'newDeleteJob' smart constructor.+data DeleteJob = DeleteJob'+  { -- | The unique ID for an Amplify app.+    appId :: Prelude.Text,+    -- | The name for the branch, for the job.+    branchName :: Prelude.Text,+    -- | The unique ID for the job.+    jobId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'appId', 'deleteJob_appId' - The unique ID for an Amplify app.+--+-- 'branchName', 'deleteJob_branchName' - The name for the branch, for the job.+--+-- 'jobId', 'deleteJob_jobId' - The unique ID for the job.+newDeleteJob ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'branchName'+  Prelude.Text ->+  -- | 'jobId'+  Prelude.Text ->+  DeleteJob+newDeleteJob pAppId_ pBranchName_ pJobId_ =+  DeleteJob'+    { appId = pAppId_,+      branchName = pBranchName_,+      jobId = pJobId_+    }++-- | The unique ID for an Amplify app.+deleteJob_appId :: Lens.Lens' DeleteJob Prelude.Text+deleteJob_appId = Lens.lens (\DeleteJob' {appId} -> appId) (\s@DeleteJob' {} a -> s {appId = a} :: DeleteJob)++-- | The name for the branch, for the job.+deleteJob_branchName :: Lens.Lens' DeleteJob Prelude.Text+deleteJob_branchName = Lens.lens (\DeleteJob' {branchName} -> branchName) (\s@DeleteJob' {} a -> s {branchName = a} :: DeleteJob)++-- | The unique ID for the job.+deleteJob_jobId :: Lens.Lens' DeleteJob Prelude.Text+deleteJob_jobId = Lens.lens (\DeleteJob' {jobId} -> jobId) (\s@DeleteJob' {} a -> s {jobId = a} :: DeleteJob)++instance Core.AWSRequest DeleteJob where+  type AWSResponse DeleteJob = DeleteJobResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteJobResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "jobSummary")+      )++instance Prelude.Hashable DeleteJob where+  hashWithSalt _salt DeleteJob' {..} =+    _salt+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` branchName+      `Prelude.hashWithSalt` jobId++instance Prelude.NFData DeleteJob where+  rnf DeleteJob' {..} =+    Prelude.rnf appId+      `Prelude.seq` Prelude.rnf branchName+      `Prelude.seq` Prelude.rnf jobId++instance Data.ToHeaders DeleteJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteJob where+  toPath DeleteJob' {..} =+    Prelude.mconcat+      [ "/apps/",+        Data.toBS appId,+        "/branches/",+        Data.toBS branchName,+        "/jobs/",+        Data.toBS jobId+      ]++instance Data.ToQuery DeleteJob where+  toQuery = Prelude.const Prelude.mempty++-- | The result structure for the delete job request.+--+-- /See:/ 'newDeleteJobResponse' smart constructor.+data DeleteJobResponse = DeleteJobResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    jobSummary :: JobSummary+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteJobResponse_httpStatus' - The response's http status code.+--+-- 'jobSummary', 'deleteJobResponse_jobSummary' - Undocumented member.+newDeleteJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'jobSummary'+  JobSummary ->+  DeleteJobResponse+newDeleteJobResponse pHttpStatus_ pJobSummary_ =+  DeleteJobResponse'+    { httpStatus = pHttpStatus_,+      jobSummary = pJobSummary_+    }++-- | The response's http status code.+deleteJobResponse_httpStatus :: Lens.Lens' DeleteJobResponse Prelude.Int+deleteJobResponse_httpStatus = Lens.lens (\DeleteJobResponse' {httpStatus} -> httpStatus) (\s@DeleteJobResponse' {} a -> s {httpStatus = a} :: DeleteJobResponse)++-- | Undocumented member.+deleteJobResponse_jobSummary :: Lens.Lens' DeleteJobResponse JobSummary+deleteJobResponse_jobSummary = Lens.lens (\DeleteJobResponse' {jobSummary} -> jobSummary) (\s@DeleteJobResponse' {} a -> s {jobSummary = a} :: DeleteJobResponse)++instance Prelude.NFData DeleteJobResponse where+  rnf DeleteJobResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf jobSummary
+ gen/Amazonka/Amplify/DeleteWebhook.hs view
@@ -0,0 +1,163 @@+{-# 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.Amplify.DeleteWebhook+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a webhook.+module Amazonka.Amplify.DeleteWebhook+  ( -- * Creating a Request+    DeleteWebhook (..),+    newDeleteWebhook,++    -- * Request Lenses+    deleteWebhook_webhookId,++    -- * Destructuring the Response+    DeleteWebhookResponse (..),+    newDeleteWebhookResponse,++    -- * Response Lenses+    deleteWebhookResponse_httpStatus,+    deleteWebhookResponse_webhook,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request structure for the delete webhook request.+--+-- /See:/ 'newDeleteWebhook' smart constructor.+data DeleteWebhook = DeleteWebhook'+  { -- | The unique ID for a webhook.+    webhookId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteWebhook' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'webhookId', 'deleteWebhook_webhookId' - The unique ID for a webhook.+newDeleteWebhook ::+  -- | 'webhookId'+  Prelude.Text ->+  DeleteWebhook+newDeleteWebhook pWebhookId_ =+  DeleteWebhook' {webhookId = pWebhookId_}++-- | The unique ID for a webhook.+deleteWebhook_webhookId :: Lens.Lens' DeleteWebhook Prelude.Text+deleteWebhook_webhookId = Lens.lens (\DeleteWebhook' {webhookId} -> webhookId) (\s@DeleteWebhook' {} a -> s {webhookId = a} :: DeleteWebhook)++instance Core.AWSRequest DeleteWebhook where+  type+    AWSResponse DeleteWebhook =+      DeleteWebhookResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteWebhookResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "webhook")+      )++instance Prelude.Hashable DeleteWebhook where+  hashWithSalt _salt DeleteWebhook' {..} =+    _salt `Prelude.hashWithSalt` webhookId++instance Prelude.NFData DeleteWebhook where+  rnf DeleteWebhook' {..} = Prelude.rnf webhookId++instance Data.ToHeaders DeleteWebhook where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteWebhook where+  toPath DeleteWebhook' {..} =+    Prelude.mconcat ["/webhooks/", Data.toBS webhookId]++instance Data.ToQuery DeleteWebhook where+  toQuery = Prelude.const Prelude.mempty++-- | The result structure for the delete webhook request.+--+-- /See:/ 'newDeleteWebhookResponse' smart constructor.+data DeleteWebhookResponse = DeleteWebhookResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Describes a webhook that connects repository events to an Amplify app.+    webhook :: Webhook+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteWebhookResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteWebhookResponse_httpStatus' - The response's http status code.+--+-- 'webhook', 'deleteWebhookResponse_webhook' - Describes a webhook that connects repository events to an Amplify app.+newDeleteWebhookResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'webhook'+  Webhook ->+  DeleteWebhookResponse+newDeleteWebhookResponse pHttpStatus_ pWebhook_ =+  DeleteWebhookResponse'+    { httpStatus = pHttpStatus_,+      webhook = pWebhook_+    }++-- | The response's http status code.+deleteWebhookResponse_httpStatus :: Lens.Lens' DeleteWebhookResponse Prelude.Int+deleteWebhookResponse_httpStatus = Lens.lens (\DeleteWebhookResponse' {httpStatus} -> httpStatus) (\s@DeleteWebhookResponse' {} a -> s {httpStatus = a} :: DeleteWebhookResponse)++-- | Describes a webhook that connects repository events to an Amplify app.+deleteWebhookResponse_webhook :: Lens.Lens' DeleteWebhookResponse Webhook+deleteWebhookResponse_webhook = Lens.lens (\DeleteWebhookResponse' {webhook} -> webhook) (\s@DeleteWebhookResponse' {} a -> s {webhook = a} :: DeleteWebhookResponse)++instance Prelude.NFData DeleteWebhookResponse where+  rnf DeleteWebhookResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf webhook
+ gen/Amazonka/Amplify/GenerateAccessLogs.hs view
@@ -0,0 +1,222 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Amplify.GenerateAccessLogs+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the website access logs for a specific time range using a+-- presigned URL.+module Amazonka.Amplify.GenerateAccessLogs+  ( -- * Creating a Request+    GenerateAccessLogs (..),+    newGenerateAccessLogs,++    -- * Request Lenses+    generateAccessLogs_endTime,+    generateAccessLogs_startTime,+    generateAccessLogs_domainName,+    generateAccessLogs_appId,++    -- * Destructuring the Response+    GenerateAccessLogsResponse (..),+    newGenerateAccessLogsResponse,++    -- * Response Lenses+    generateAccessLogsResponse_logUrl,+    generateAccessLogsResponse_httpStatus,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request structure for the generate access logs request.+--+-- /See:/ 'newGenerateAccessLogs' smart constructor.+data GenerateAccessLogs = GenerateAccessLogs'+  { -- | The time at which the logs should end. The time range specified is+    -- inclusive of the end time.+    endTime :: Prelude.Maybe Data.POSIX,+    -- | The time at which the logs should start. The time range specified is+    -- inclusive of the start time.+    startTime :: Prelude.Maybe Data.POSIX,+    -- | The name of the domain.+    domainName :: Prelude.Text,+    -- | The unique ID for an Amplify app.+    appId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GenerateAccessLogs' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endTime', 'generateAccessLogs_endTime' - The time at which the logs should end. The time range specified is+-- inclusive of the end time.+--+-- 'startTime', 'generateAccessLogs_startTime' - The time at which the logs should start. The time range specified is+-- inclusive of the start time.+--+-- 'domainName', 'generateAccessLogs_domainName' - The name of the domain.+--+-- 'appId', 'generateAccessLogs_appId' - The unique ID for an Amplify app.+newGenerateAccessLogs ::+  -- | 'domainName'+  Prelude.Text ->+  -- | 'appId'+  Prelude.Text ->+  GenerateAccessLogs+newGenerateAccessLogs pDomainName_ pAppId_ =+  GenerateAccessLogs'+    { endTime = Prelude.Nothing,+      startTime = Prelude.Nothing,+      domainName = pDomainName_,+      appId = pAppId_+    }++-- | The time at which the logs should end. The time range specified is+-- inclusive of the end time.+generateAccessLogs_endTime :: Lens.Lens' GenerateAccessLogs (Prelude.Maybe Prelude.UTCTime)+generateAccessLogs_endTime = Lens.lens (\GenerateAccessLogs' {endTime} -> endTime) (\s@GenerateAccessLogs' {} a -> s {endTime = a} :: GenerateAccessLogs) Prelude.. Lens.mapping Data._Time++-- | The time at which the logs should start. The time range specified is+-- inclusive of the start time.+generateAccessLogs_startTime :: Lens.Lens' GenerateAccessLogs (Prelude.Maybe Prelude.UTCTime)+generateAccessLogs_startTime = Lens.lens (\GenerateAccessLogs' {startTime} -> startTime) (\s@GenerateAccessLogs' {} a -> s {startTime = a} :: GenerateAccessLogs) Prelude.. Lens.mapping Data._Time++-- | The name of the domain.+generateAccessLogs_domainName :: Lens.Lens' GenerateAccessLogs Prelude.Text+generateAccessLogs_domainName = Lens.lens (\GenerateAccessLogs' {domainName} -> domainName) (\s@GenerateAccessLogs' {} a -> s {domainName = a} :: GenerateAccessLogs)++-- | The unique ID for an Amplify app.+generateAccessLogs_appId :: Lens.Lens' GenerateAccessLogs Prelude.Text+generateAccessLogs_appId = Lens.lens (\GenerateAccessLogs' {appId} -> appId) (\s@GenerateAccessLogs' {} a -> s {appId = a} :: GenerateAccessLogs)++instance Core.AWSRequest GenerateAccessLogs where+  type+    AWSResponse GenerateAccessLogs =+      GenerateAccessLogsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GenerateAccessLogsResponse'+            Prelude.<$> (x Data..?> "logUrl")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GenerateAccessLogs where+  hashWithSalt _salt GenerateAccessLogs' {..} =+    _salt+      `Prelude.hashWithSalt` endTime+      `Prelude.hashWithSalt` startTime+      `Prelude.hashWithSalt` domainName+      `Prelude.hashWithSalt` appId++instance Prelude.NFData GenerateAccessLogs where+  rnf GenerateAccessLogs' {..} =+    Prelude.rnf endTime+      `Prelude.seq` Prelude.rnf startTime+      `Prelude.seq` Prelude.rnf domainName+      `Prelude.seq` Prelude.rnf appId++instance Data.ToHeaders GenerateAccessLogs where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GenerateAccessLogs where+  toJSON GenerateAccessLogs' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("endTime" Data..=) Prelude.<$> endTime,+            ("startTime" Data..=) Prelude.<$> startTime,+            Prelude.Just ("domainName" Data..= domainName)+          ]+      )++instance Data.ToPath GenerateAccessLogs where+  toPath GenerateAccessLogs' {..} =+    Prelude.mconcat+      ["/apps/", Data.toBS appId, "/accesslogs"]++instance Data.ToQuery GenerateAccessLogs where+  toQuery = Prelude.const Prelude.mempty++-- | The result structure for the generate access logs request.+--+-- /See:/ 'newGenerateAccessLogsResponse' smart constructor.+data GenerateAccessLogsResponse = GenerateAccessLogsResponse'+  { -- | The pre-signed URL for the requested access logs.+    logUrl :: 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 'GenerateAccessLogsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'logUrl', 'generateAccessLogsResponse_logUrl' - The pre-signed URL for the requested access logs.+--+-- 'httpStatus', 'generateAccessLogsResponse_httpStatus' - The response's http status code.+newGenerateAccessLogsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GenerateAccessLogsResponse+newGenerateAccessLogsResponse pHttpStatus_ =+  GenerateAccessLogsResponse'+    { logUrl =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The pre-signed URL for the requested access logs.+generateAccessLogsResponse_logUrl :: Lens.Lens' GenerateAccessLogsResponse (Prelude.Maybe Prelude.Text)+generateAccessLogsResponse_logUrl = Lens.lens (\GenerateAccessLogsResponse' {logUrl} -> logUrl) (\s@GenerateAccessLogsResponse' {} a -> s {logUrl = a} :: GenerateAccessLogsResponse)++-- | The response's http status code.+generateAccessLogsResponse_httpStatus :: Lens.Lens' GenerateAccessLogsResponse Prelude.Int+generateAccessLogsResponse_httpStatus = Lens.lens (\GenerateAccessLogsResponse' {httpStatus} -> httpStatus) (\s@GenerateAccessLogsResponse' {} a -> s {httpStatus = a} :: GenerateAccessLogsResponse)++instance Prelude.NFData GenerateAccessLogsResponse where+  rnf GenerateAccessLogsResponse' {..} =+    Prelude.rnf logUrl+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Amplify/GetApp.hs view
@@ -0,0 +1,157 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Amplify.GetApp+-- 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 an existing Amplify app by appID.+module Amazonka.Amplify.GetApp+  ( -- * Creating a Request+    GetApp (..),+    newGetApp,++    -- * Request Lenses+    getApp_appId,++    -- * Destructuring the Response+    GetAppResponse (..),+    newGetAppResponse,++    -- * Response Lenses+    getAppResponse_httpStatus,+    getAppResponse_app,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request structure for the get app request.+--+-- /See:/ 'newGetApp' smart constructor.+data GetApp = GetApp'+  { -- | The unique ID for an Amplify app.+    appId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetApp' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'appId', 'getApp_appId' - The unique ID for an Amplify app.+newGetApp ::+  -- | 'appId'+  Prelude.Text ->+  GetApp+newGetApp pAppId_ = GetApp' {appId = pAppId_}++-- | The unique ID for an Amplify app.+getApp_appId :: Lens.Lens' GetApp Prelude.Text+getApp_appId = Lens.lens (\GetApp' {appId} -> appId) (\s@GetApp' {} a -> s {appId = a} :: GetApp)++instance Core.AWSRequest GetApp where+  type AWSResponse GetApp = GetAppResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetAppResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "app")+      )++instance Prelude.Hashable GetApp where+  hashWithSalt _salt GetApp' {..} =+    _salt `Prelude.hashWithSalt` appId++instance Prelude.NFData GetApp where+  rnf GetApp' {..} = Prelude.rnf appId++instance Data.ToHeaders GetApp where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetApp where+  toPath GetApp' {..} =+    Prelude.mconcat ["/apps/", Data.toBS appId]++instance Data.ToQuery GetApp where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetAppResponse' smart constructor.+data GetAppResponse = GetAppResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    app :: App+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAppResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getAppResponse_httpStatus' - The response's http status code.+--+-- 'app', 'getAppResponse_app' - Undocumented member.+newGetAppResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'app'+  App ->+  GetAppResponse+newGetAppResponse pHttpStatus_ pApp_ =+  GetAppResponse'+    { httpStatus = pHttpStatus_,+      app = pApp_+    }++-- | The response's http status code.+getAppResponse_httpStatus :: Lens.Lens' GetAppResponse Prelude.Int+getAppResponse_httpStatus = Lens.lens (\GetAppResponse' {httpStatus} -> httpStatus) (\s@GetAppResponse' {} a -> s {httpStatus = a} :: GetAppResponse)++-- | Undocumented member.+getAppResponse_app :: Lens.Lens' GetAppResponse App+getAppResponse_app = Lens.lens (\GetAppResponse' {app} -> app) (\s@GetAppResponse' {} a -> s {app = a} :: GetAppResponse)++instance Prelude.NFData GetAppResponse where+  rnf GetAppResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf app
+ gen/Amazonka/Amplify/GetArtifactUrl.hs view
@@ -0,0 +1,181 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Amplify.GetArtifactUrl+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the artifact info that corresponds to an artifact id.+module Amazonka.Amplify.GetArtifactUrl+  ( -- * Creating a Request+    GetArtifactUrl (..),+    newGetArtifactUrl,++    -- * Request Lenses+    getArtifactUrl_artifactId,++    -- * Destructuring the Response+    GetArtifactUrlResponse (..),+    newGetArtifactUrlResponse,++    -- * Response Lenses+    getArtifactUrlResponse_httpStatus,+    getArtifactUrlResponse_artifactId,+    getArtifactUrlResponse_artifactUrl,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Returns the request structure for the get artifact request.+--+-- /See:/ 'newGetArtifactUrl' smart constructor.+data GetArtifactUrl = GetArtifactUrl'+  { -- | The unique ID for an artifact.+    artifactId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetArtifactUrl' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'artifactId', 'getArtifactUrl_artifactId' - The unique ID for an artifact.+newGetArtifactUrl ::+  -- | 'artifactId'+  Prelude.Text ->+  GetArtifactUrl+newGetArtifactUrl pArtifactId_ =+  GetArtifactUrl' {artifactId = pArtifactId_}++-- | The unique ID for an artifact.+getArtifactUrl_artifactId :: Lens.Lens' GetArtifactUrl Prelude.Text+getArtifactUrl_artifactId = Lens.lens (\GetArtifactUrl' {artifactId} -> artifactId) (\s@GetArtifactUrl' {} a -> s {artifactId = a} :: GetArtifactUrl)++instance Core.AWSRequest GetArtifactUrl where+  type+    AWSResponse GetArtifactUrl =+      GetArtifactUrlResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetArtifactUrlResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "artifactId")+            Prelude.<*> (x Data..:> "artifactUrl")+      )++instance Prelude.Hashable GetArtifactUrl where+  hashWithSalt _salt GetArtifactUrl' {..} =+    _salt `Prelude.hashWithSalt` artifactId++instance Prelude.NFData GetArtifactUrl where+  rnf GetArtifactUrl' {..} = Prelude.rnf artifactId++instance Data.ToHeaders GetArtifactUrl where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetArtifactUrl where+  toPath GetArtifactUrl' {..} =+    Prelude.mconcat+      ["/artifacts/", Data.toBS artifactId]++instance Data.ToQuery GetArtifactUrl where+  toQuery = Prelude.const Prelude.mempty++-- | Returns the result structure for the get artifact request.+--+-- /See:/ 'newGetArtifactUrlResponse' smart constructor.+data GetArtifactUrlResponse = GetArtifactUrlResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The unique ID for an artifact.+    artifactId :: Prelude.Text,+    -- | The presigned URL for the artifact.+    artifactUrl :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetArtifactUrlResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getArtifactUrlResponse_httpStatus' - The response's http status code.+--+-- 'artifactId', 'getArtifactUrlResponse_artifactId' - The unique ID for an artifact.+--+-- 'artifactUrl', 'getArtifactUrlResponse_artifactUrl' - The presigned URL for the artifact.+newGetArtifactUrlResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'artifactId'+  Prelude.Text ->+  -- | 'artifactUrl'+  Prelude.Text ->+  GetArtifactUrlResponse+newGetArtifactUrlResponse+  pHttpStatus_+  pArtifactId_+  pArtifactUrl_ =+    GetArtifactUrlResponse'+      { httpStatus = pHttpStatus_,+        artifactId = pArtifactId_,+        artifactUrl = pArtifactUrl_+      }++-- | The response's http status code.+getArtifactUrlResponse_httpStatus :: Lens.Lens' GetArtifactUrlResponse Prelude.Int+getArtifactUrlResponse_httpStatus = Lens.lens (\GetArtifactUrlResponse' {httpStatus} -> httpStatus) (\s@GetArtifactUrlResponse' {} a -> s {httpStatus = a} :: GetArtifactUrlResponse)++-- | The unique ID for an artifact.+getArtifactUrlResponse_artifactId :: Lens.Lens' GetArtifactUrlResponse Prelude.Text+getArtifactUrlResponse_artifactId = Lens.lens (\GetArtifactUrlResponse' {artifactId} -> artifactId) (\s@GetArtifactUrlResponse' {} a -> s {artifactId = a} :: GetArtifactUrlResponse)++-- | The presigned URL for the artifact.+getArtifactUrlResponse_artifactUrl :: Lens.Lens' GetArtifactUrlResponse Prelude.Text+getArtifactUrlResponse_artifactUrl = Lens.lens (\GetArtifactUrlResponse' {artifactUrl} -> artifactUrl) (\s@GetArtifactUrlResponse' {} a -> s {artifactUrl = a} :: GetArtifactUrlResponse)++instance Prelude.NFData GetArtifactUrlResponse where+  rnf GetArtifactUrlResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf artifactId+      `Prelude.seq` Prelude.rnf artifactUrl
+ gen/Amazonka/Amplify/GetBackendEnvironment.hs view
@@ -0,0 +1,189 @@+{-# 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.Amplify.GetBackendEnvironment+-- 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 backend environment for an Amplify app.+module Amazonka.Amplify.GetBackendEnvironment+  ( -- * Creating a Request+    GetBackendEnvironment (..),+    newGetBackendEnvironment,++    -- * Request Lenses+    getBackendEnvironment_appId,+    getBackendEnvironment_environmentName,++    -- * Destructuring the Response+    GetBackendEnvironmentResponse (..),+    newGetBackendEnvironmentResponse,++    -- * Response Lenses+    getBackendEnvironmentResponse_httpStatus,+    getBackendEnvironmentResponse_backendEnvironment,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request structure for the get backend environment request.+--+-- /See:/ 'newGetBackendEnvironment' smart constructor.+data GetBackendEnvironment = GetBackendEnvironment'+  { -- | The unique id for an Amplify app.+    appId :: Prelude.Text,+    -- | The name for the backend environment.+    environmentName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetBackendEnvironment' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'appId', 'getBackendEnvironment_appId' - The unique id for an Amplify app.+--+-- 'environmentName', 'getBackendEnvironment_environmentName' - The name for the backend environment.+newGetBackendEnvironment ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'environmentName'+  Prelude.Text ->+  GetBackendEnvironment+newGetBackendEnvironment pAppId_ pEnvironmentName_ =+  GetBackendEnvironment'+    { appId = pAppId_,+      environmentName = pEnvironmentName_+    }++-- | The unique id for an Amplify app.+getBackendEnvironment_appId :: Lens.Lens' GetBackendEnvironment Prelude.Text+getBackendEnvironment_appId = Lens.lens (\GetBackendEnvironment' {appId} -> appId) (\s@GetBackendEnvironment' {} a -> s {appId = a} :: GetBackendEnvironment)++-- | The name for the backend environment.+getBackendEnvironment_environmentName :: Lens.Lens' GetBackendEnvironment Prelude.Text+getBackendEnvironment_environmentName = Lens.lens (\GetBackendEnvironment' {environmentName} -> environmentName) (\s@GetBackendEnvironment' {} a -> s {environmentName = a} :: GetBackendEnvironment)++instance Core.AWSRequest GetBackendEnvironment where+  type+    AWSResponse GetBackendEnvironment =+      GetBackendEnvironmentResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetBackendEnvironmentResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "backendEnvironment")+      )++instance Prelude.Hashable GetBackendEnvironment where+  hashWithSalt _salt GetBackendEnvironment' {..} =+    _salt+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` environmentName++instance Prelude.NFData GetBackendEnvironment where+  rnf GetBackendEnvironment' {..} =+    Prelude.rnf appId+      `Prelude.seq` Prelude.rnf environmentName++instance Data.ToHeaders GetBackendEnvironment where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetBackendEnvironment where+  toPath GetBackendEnvironment' {..} =+    Prelude.mconcat+      [ "/apps/",+        Data.toBS appId,+        "/backendenvironments/",+        Data.toBS environmentName+      ]++instance Data.ToQuery GetBackendEnvironment where+  toQuery = Prelude.const Prelude.mempty++-- | The result structure for the get backend environment result.+--+-- /See:/ 'newGetBackendEnvironmentResponse' smart constructor.+data GetBackendEnvironmentResponse = GetBackendEnvironmentResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Describes the backend environment for an Amplify app.+    backendEnvironment :: BackendEnvironment+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetBackendEnvironmentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getBackendEnvironmentResponse_httpStatus' - The response's http status code.+--+-- 'backendEnvironment', 'getBackendEnvironmentResponse_backendEnvironment' - Describes the backend environment for an Amplify app.+newGetBackendEnvironmentResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'backendEnvironment'+  BackendEnvironment ->+  GetBackendEnvironmentResponse+newGetBackendEnvironmentResponse+  pHttpStatus_+  pBackendEnvironment_ =+    GetBackendEnvironmentResponse'+      { httpStatus =+          pHttpStatus_,+        backendEnvironment = pBackendEnvironment_+      }++-- | The response's http status code.+getBackendEnvironmentResponse_httpStatus :: Lens.Lens' GetBackendEnvironmentResponse Prelude.Int+getBackendEnvironmentResponse_httpStatus = Lens.lens (\GetBackendEnvironmentResponse' {httpStatus} -> httpStatus) (\s@GetBackendEnvironmentResponse' {} a -> s {httpStatus = a} :: GetBackendEnvironmentResponse)++-- | Describes the backend environment for an Amplify app.+getBackendEnvironmentResponse_backendEnvironment :: Lens.Lens' GetBackendEnvironmentResponse BackendEnvironment+getBackendEnvironmentResponse_backendEnvironment = Lens.lens (\GetBackendEnvironmentResponse' {backendEnvironment} -> backendEnvironment) (\s@GetBackendEnvironmentResponse' {} a -> s {backendEnvironment = a} :: GetBackendEnvironmentResponse)++instance Prelude.NFData GetBackendEnvironmentResponse where+  rnf GetBackendEnvironmentResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf backendEnvironment
+ gen/Amazonka/Amplify/GetBranch.hs view
@@ -0,0 +1,181 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Amplify.GetBranch+-- 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 branch for an Amplify app.+module Amazonka.Amplify.GetBranch+  ( -- * Creating a Request+    GetBranch (..),+    newGetBranch,++    -- * Request Lenses+    getBranch_appId,+    getBranch_branchName,++    -- * Destructuring the Response+    GetBranchResponse (..),+    newGetBranchResponse,++    -- * Response Lenses+    getBranchResponse_httpStatus,+    getBranchResponse_branch,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request structure for the get branch request.+--+-- /See:/ 'newGetBranch' smart constructor.+data GetBranch = GetBranch'+  { -- | The unique ID for an Amplify app.+    appId :: Prelude.Text,+    -- | The name for the branch.+    branchName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetBranch' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'appId', 'getBranch_appId' - The unique ID for an Amplify app.+--+-- 'branchName', 'getBranch_branchName' - The name for the branch.+newGetBranch ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'branchName'+  Prelude.Text ->+  GetBranch+newGetBranch pAppId_ pBranchName_ =+  GetBranch'+    { appId = pAppId_,+      branchName = pBranchName_+    }++-- | The unique ID for an Amplify app.+getBranch_appId :: Lens.Lens' GetBranch Prelude.Text+getBranch_appId = Lens.lens (\GetBranch' {appId} -> appId) (\s@GetBranch' {} a -> s {appId = a} :: GetBranch)++-- | The name for the branch.+getBranch_branchName :: Lens.Lens' GetBranch Prelude.Text+getBranch_branchName = Lens.lens (\GetBranch' {branchName} -> branchName) (\s@GetBranch' {} a -> s {branchName = a} :: GetBranch)++instance Core.AWSRequest GetBranch where+  type AWSResponse GetBranch = GetBranchResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetBranchResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "branch")+      )++instance Prelude.Hashable GetBranch where+  hashWithSalt _salt GetBranch' {..} =+    _salt+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` branchName++instance Prelude.NFData GetBranch where+  rnf GetBranch' {..} =+    Prelude.rnf appId+      `Prelude.seq` Prelude.rnf branchName++instance Data.ToHeaders GetBranch where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetBranch where+  toPath GetBranch' {..} =+    Prelude.mconcat+      [ "/apps/",+        Data.toBS appId,+        "/branches/",+        Data.toBS branchName+      ]++instance Data.ToQuery GetBranch where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetBranchResponse' smart constructor.+data GetBranchResponse = GetBranchResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    branch :: Branch+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetBranchResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getBranchResponse_httpStatus' - The response's http status code.+--+-- 'branch', 'getBranchResponse_branch' - Undocumented member.+newGetBranchResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'branch'+  Branch ->+  GetBranchResponse+newGetBranchResponse pHttpStatus_ pBranch_ =+  GetBranchResponse'+    { httpStatus = pHttpStatus_,+      branch = pBranch_+    }++-- | The response's http status code.+getBranchResponse_httpStatus :: Lens.Lens' GetBranchResponse Prelude.Int+getBranchResponse_httpStatus = Lens.lens (\GetBranchResponse' {httpStatus} -> httpStatus) (\s@GetBranchResponse' {} a -> s {httpStatus = a} :: GetBranchResponse)++-- | Undocumented member.+getBranchResponse_branch :: Lens.Lens' GetBranchResponse Branch+getBranchResponse_branch = Lens.lens (\GetBranchResponse' {branch} -> branch) (\s@GetBranchResponse' {} a -> s {branch = a} :: GetBranchResponse)++instance Prelude.NFData GetBranchResponse where+  rnf GetBranchResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf branch
+ gen/Amazonka/Amplify/GetDomainAssociation.hs view
@@ -0,0 +1,192 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Amplify.GetDomainAssociation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the domain information for an Amplify app.+module Amazonka.Amplify.GetDomainAssociation+  ( -- * Creating a Request+    GetDomainAssociation (..),+    newGetDomainAssociation,++    -- * Request Lenses+    getDomainAssociation_appId,+    getDomainAssociation_domainName,++    -- * Destructuring the Response+    GetDomainAssociationResponse (..),+    newGetDomainAssociationResponse,++    -- * Response Lenses+    getDomainAssociationResponse_httpStatus,+    getDomainAssociationResponse_domainAssociation,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request structure for the get domain association request.+--+-- /See:/ 'newGetDomainAssociation' smart constructor.+data GetDomainAssociation = GetDomainAssociation'+  { -- | The unique id for an Amplify app.+    appId :: Prelude.Text,+    -- | The name of the domain.+    domainName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDomainAssociation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'appId', 'getDomainAssociation_appId' - The unique id for an Amplify app.+--+-- 'domainName', 'getDomainAssociation_domainName' - The name of the domain.+newGetDomainAssociation ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'domainName'+  Prelude.Text ->+  GetDomainAssociation+newGetDomainAssociation pAppId_ pDomainName_ =+  GetDomainAssociation'+    { appId = pAppId_,+      domainName = pDomainName_+    }++-- | The unique id for an Amplify app.+getDomainAssociation_appId :: Lens.Lens' GetDomainAssociation Prelude.Text+getDomainAssociation_appId = Lens.lens (\GetDomainAssociation' {appId} -> appId) (\s@GetDomainAssociation' {} a -> s {appId = a} :: GetDomainAssociation)++-- | The name of the domain.+getDomainAssociation_domainName :: Lens.Lens' GetDomainAssociation Prelude.Text+getDomainAssociation_domainName = Lens.lens (\GetDomainAssociation' {domainName} -> domainName) (\s@GetDomainAssociation' {} a -> s {domainName = a} :: GetDomainAssociation)++instance Core.AWSRequest GetDomainAssociation where+  type+    AWSResponse GetDomainAssociation =+      GetDomainAssociationResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetDomainAssociationResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "domainAssociation")+      )++instance Prelude.Hashable GetDomainAssociation where+  hashWithSalt _salt GetDomainAssociation' {..} =+    _salt+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` domainName++instance Prelude.NFData GetDomainAssociation where+  rnf GetDomainAssociation' {..} =+    Prelude.rnf appId+      `Prelude.seq` Prelude.rnf domainName++instance Data.ToHeaders GetDomainAssociation where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetDomainAssociation where+  toPath GetDomainAssociation' {..} =+    Prelude.mconcat+      [ "/apps/",+        Data.toBS appId,+        "/domains/",+        Data.toBS domainName+      ]++instance Data.ToQuery GetDomainAssociation where+  toQuery = Prelude.const Prelude.mempty++-- | The result structure for the get domain association request.+--+-- /See:/ 'newGetDomainAssociationResponse' smart constructor.+data GetDomainAssociationResponse = GetDomainAssociationResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Describes the structure of a domain association, which associates a+    -- custom domain with an Amplify app.+    domainAssociation :: DomainAssociation+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDomainAssociationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getDomainAssociationResponse_httpStatus' - The response's http status code.+--+-- 'domainAssociation', 'getDomainAssociationResponse_domainAssociation' - Describes the structure of a domain association, which associates a+-- custom domain with an Amplify app.+newGetDomainAssociationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'domainAssociation'+  DomainAssociation ->+  GetDomainAssociationResponse+newGetDomainAssociationResponse+  pHttpStatus_+  pDomainAssociation_ =+    GetDomainAssociationResponse'+      { httpStatus =+          pHttpStatus_,+        domainAssociation = pDomainAssociation_+      }++-- | The response's http status code.+getDomainAssociationResponse_httpStatus :: Lens.Lens' GetDomainAssociationResponse Prelude.Int+getDomainAssociationResponse_httpStatus = Lens.lens (\GetDomainAssociationResponse' {httpStatus} -> httpStatus) (\s@GetDomainAssociationResponse' {} a -> s {httpStatus = a} :: GetDomainAssociationResponse)++-- | Describes the structure of a domain association, which associates a+-- custom domain with an Amplify app.+getDomainAssociationResponse_domainAssociation :: Lens.Lens' GetDomainAssociationResponse DomainAssociation+getDomainAssociationResponse_domainAssociation = Lens.lens (\GetDomainAssociationResponse' {domainAssociation} -> domainAssociation) (\s@GetDomainAssociationResponse' {} a -> s {domainAssociation = a} :: GetDomainAssociationResponse)++instance Prelude.NFData GetDomainAssociationResponse where+  rnf GetDomainAssociationResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf domainAssociation
+ gen/Amazonka/Amplify/GetJob.hs view
@@ -0,0 +1,197 @@+{-# 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.Amplify.GetJob+-- 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 job for a branch of an Amplify app.+module Amazonka.Amplify.GetJob+  ( -- * Creating a Request+    GetJob (..),+    newGetJob,++    -- * Request Lenses+    getJob_appId,+    getJob_branchName,+    getJob_jobId,++    -- * Destructuring the Response+    GetJobResponse (..),+    newGetJobResponse,++    -- * Response Lenses+    getJobResponse_httpStatus,+    getJobResponse_job,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request structure for the get job request.+--+-- /See:/ 'newGetJob' smart constructor.+data GetJob = GetJob'+  { -- | The unique ID for an Amplify app.+    appId :: Prelude.Text,+    -- | The branch name for the job.+    branchName :: Prelude.Text,+    -- | The unique ID for the job.+    jobId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'appId', 'getJob_appId' - The unique ID for an Amplify app.+--+-- 'branchName', 'getJob_branchName' - The branch name for the job.+--+-- 'jobId', 'getJob_jobId' - The unique ID for the job.+newGetJob ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'branchName'+  Prelude.Text ->+  -- | 'jobId'+  Prelude.Text ->+  GetJob+newGetJob pAppId_ pBranchName_ pJobId_ =+  GetJob'+    { appId = pAppId_,+      branchName = pBranchName_,+      jobId = pJobId_+    }++-- | The unique ID for an Amplify app.+getJob_appId :: Lens.Lens' GetJob Prelude.Text+getJob_appId = Lens.lens (\GetJob' {appId} -> appId) (\s@GetJob' {} a -> s {appId = a} :: GetJob)++-- | The branch name for the job.+getJob_branchName :: Lens.Lens' GetJob Prelude.Text+getJob_branchName = Lens.lens (\GetJob' {branchName} -> branchName) (\s@GetJob' {} a -> s {branchName = a} :: GetJob)++-- | The unique ID for the job.+getJob_jobId :: Lens.Lens' GetJob Prelude.Text+getJob_jobId = Lens.lens (\GetJob' {jobId} -> jobId) (\s@GetJob' {} a -> s {jobId = a} :: GetJob)++instance Core.AWSRequest GetJob where+  type AWSResponse GetJob = GetJobResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetJobResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "job")+      )++instance Prelude.Hashable GetJob where+  hashWithSalt _salt GetJob' {..} =+    _salt+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` branchName+      `Prelude.hashWithSalt` jobId++instance Prelude.NFData GetJob where+  rnf GetJob' {..} =+    Prelude.rnf appId+      `Prelude.seq` Prelude.rnf branchName+      `Prelude.seq` Prelude.rnf jobId++instance Data.ToHeaders GetJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetJob where+  toPath GetJob' {..} =+    Prelude.mconcat+      [ "/apps/",+        Data.toBS appId,+        "/branches/",+        Data.toBS branchName,+        "/jobs/",+        Data.toBS jobId+      ]++instance Data.ToQuery GetJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetJobResponse' smart constructor.+data GetJobResponse = GetJobResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    job :: Job+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getJobResponse_httpStatus' - The response's http status code.+--+-- 'job', 'getJobResponse_job' - Undocumented member.+newGetJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'job'+  Job ->+  GetJobResponse+newGetJobResponse pHttpStatus_ pJob_ =+  GetJobResponse'+    { httpStatus = pHttpStatus_,+      job = pJob_+    }++-- | The response's http status code.+getJobResponse_httpStatus :: Lens.Lens' GetJobResponse Prelude.Int+getJobResponse_httpStatus = Lens.lens (\GetJobResponse' {httpStatus} -> httpStatus) (\s@GetJobResponse' {} a -> s {httpStatus = a} :: GetJobResponse)++-- | Undocumented member.+getJobResponse_job :: Lens.Lens' GetJobResponse Job+getJobResponse_job = Lens.lens (\GetJobResponse' {job} -> job) (\s@GetJobResponse' {} a -> s {job = a} :: GetJobResponse)++instance Prelude.NFData GetJobResponse where+  rnf GetJobResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf job
+ gen/Amazonka/Amplify/GetWebhook.hs view
@@ -0,0 +1,162 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Amplify.GetWebhook+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the webhook information that corresponds to a specified webhook+-- ID.+module Amazonka.Amplify.GetWebhook+  ( -- * Creating a Request+    GetWebhook (..),+    newGetWebhook,++    -- * Request Lenses+    getWebhook_webhookId,++    -- * Destructuring the Response+    GetWebhookResponse (..),+    newGetWebhookResponse,++    -- * Response Lenses+    getWebhookResponse_httpStatus,+    getWebhookResponse_webhook,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request structure for the get webhook request.+--+-- /See:/ 'newGetWebhook' smart constructor.+data GetWebhook = GetWebhook'+  { -- | The unique ID for a webhook.+    webhookId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetWebhook' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'webhookId', 'getWebhook_webhookId' - The unique ID for a webhook.+newGetWebhook ::+  -- | 'webhookId'+  Prelude.Text ->+  GetWebhook+newGetWebhook pWebhookId_ =+  GetWebhook' {webhookId = pWebhookId_}++-- | The unique ID for a webhook.+getWebhook_webhookId :: Lens.Lens' GetWebhook Prelude.Text+getWebhook_webhookId = Lens.lens (\GetWebhook' {webhookId} -> webhookId) (\s@GetWebhook' {} a -> s {webhookId = a} :: GetWebhook)++instance Core.AWSRequest GetWebhook where+  type AWSResponse GetWebhook = GetWebhookResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetWebhookResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "webhook")+      )++instance Prelude.Hashable GetWebhook where+  hashWithSalt _salt GetWebhook' {..} =+    _salt `Prelude.hashWithSalt` webhookId++instance Prelude.NFData GetWebhook where+  rnf GetWebhook' {..} = Prelude.rnf webhookId++instance Data.ToHeaders GetWebhook where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetWebhook where+  toPath GetWebhook' {..} =+    Prelude.mconcat ["/webhooks/", Data.toBS webhookId]++instance Data.ToQuery GetWebhook where+  toQuery = Prelude.const Prelude.mempty++-- | The result structure for the get webhook request.+--+-- /See:/ 'newGetWebhookResponse' smart constructor.+data GetWebhookResponse = GetWebhookResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Describes the structure of a webhook.+    webhook :: Webhook+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetWebhookResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getWebhookResponse_httpStatus' - The response's http status code.+--+-- 'webhook', 'getWebhookResponse_webhook' - Describes the structure of a webhook.+newGetWebhookResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'webhook'+  Webhook ->+  GetWebhookResponse+newGetWebhookResponse pHttpStatus_ pWebhook_ =+  GetWebhookResponse'+    { httpStatus = pHttpStatus_,+      webhook = pWebhook_+    }++-- | The response's http status code.+getWebhookResponse_httpStatus :: Lens.Lens' GetWebhookResponse Prelude.Int+getWebhookResponse_httpStatus = Lens.lens (\GetWebhookResponse' {httpStatus} -> httpStatus) (\s@GetWebhookResponse' {} a -> s {httpStatus = a} :: GetWebhookResponse)++-- | Describes the structure of a webhook.+getWebhookResponse_webhook :: Lens.Lens' GetWebhookResponse Webhook+getWebhookResponse_webhook = Lens.lens (\GetWebhookResponse' {webhook} -> webhook) (\s@GetWebhookResponse' {} a -> s {webhook = a} :: GetWebhookResponse)++instance Prelude.NFData GetWebhookResponse where+  rnf GetWebhookResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf webhook
+ gen/Amazonka/Amplify/Lens.hs view
@@ -0,0 +1,544 @@+{-# 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.Amplify.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.Amplify.Lens+  ( -- * Operations++    -- ** CreateApp+    createApp_accessToken,+    createApp_autoBranchCreationConfig,+    createApp_autoBranchCreationPatterns,+    createApp_basicAuthCredentials,+    createApp_buildSpec,+    createApp_customHeaders,+    createApp_customRules,+    createApp_description,+    createApp_enableAutoBranchCreation,+    createApp_enableBasicAuth,+    createApp_enableBranchAutoBuild,+    createApp_enableBranchAutoDeletion,+    createApp_environmentVariables,+    createApp_iamServiceRoleArn,+    createApp_oauthToken,+    createApp_platform,+    createApp_repository,+    createApp_tags,+    createApp_name,+    createAppResponse_httpStatus,+    createAppResponse_app,++    -- ** CreateBackendEnvironment+    createBackendEnvironment_deploymentArtifacts,+    createBackendEnvironment_stackName,+    createBackendEnvironment_appId,+    createBackendEnvironment_environmentName,+    createBackendEnvironmentResponse_httpStatus,+    createBackendEnvironmentResponse_backendEnvironment,++    -- ** CreateBranch+    createBranch_backendEnvironmentArn,+    createBranch_basicAuthCredentials,+    createBranch_buildSpec,+    createBranch_description,+    createBranch_displayName,+    createBranch_enableAutoBuild,+    createBranch_enableBasicAuth,+    createBranch_enableNotification,+    createBranch_enablePerformanceMode,+    createBranch_enablePullRequestPreview,+    createBranch_environmentVariables,+    createBranch_framework,+    createBranch_pullRequestEnvironmentName,+    createBranch_stage,+    createBranch_tags,+    createBranch_ttl,+    createBranch_appId,+    createBranch_branchName,+    createBranchResponse_httpStatus,+    createBranchResponse_branch,++    -- ** CreateDeployment+    createDeployment_fileMap,+    createDeployment_appId,+    createDeployment_branchName,+    createDeploymentResponse_jobId,+    createDeploymentResponse_httpStatus,+    createDeploymentResponse_fileUploadUrls,+    createDeploymentResponse_zipUploadUrl,++    -- ** CreateDomainAssociation+    createDomainAssociation_autoSubDomainCreationPatterns,+    createDomainAssociation_autoSubDomainIAMRole,+    createDomainAssociation_enableAutoSubDomain,+    createDomainAssociation_appId,+    createDomainAssociation_domainName,+    createDomainAssociation_subDomainSettings,+    createDomainAssociationResponse_httpStatus,+    createDomainAssociationResponse_domainAssociation,++    -- ** CreateWebhook+    createWebhook_description,+    createWebhook_appId,+    createWebhook_branchName,+    createWebhookResponse_httpStatus,+    createWebhookResponse_webhook,++    -- ** DeleteApp+    deleteApp_appId,+    deleteAppResponse_httpStatus,+    deleteAppResponse_app,++    -- ** DeleteBackendEnvironment+    deleteBackendEnvironment_appId,+    deleteBackendEnvironment_environmentName,+    deleteBackendEnvironmentResponse_httpStatus,+    deleteBackendEnvironmentResponse_backendEnvironment,++    -- ** DeleteBranch+    deleteBranch_appId,+    deleteBranch_branchName,+    deleteBranchResponse_httpStatus,+    deleteBranchResponse_branch,++    -- ** DeleteDomainAssociation+    deleteDomainAssociation_appId,+    deleteDomainAssociation_domainName,+    deleteDomainAssociationResponse_httpStatus,+    deleteDomainAssociationResponse_domainAssociation,++    -- ** DeleteJob+    deleteJob_appId,+    deleteJob_branchName,+    deleteJob_jobId,+    deleteJobResponse_httpStatus,+    deleteJobResponse_jobSummary,++    -- ** DeleteWebhook+    deleteWebhook_webhookId,+    deleteWebhookResponse_httpStatus,+    deleteWebhookResponse_webhook,++    -- ** GenerateAccessLogs+    generateAccessLogs_endTime,+    generateAccessLogs_startTime,+    generateAccessLogs_domainName,+    generateAccessLogs_appId,+    generateAccessLogsResponse_logUrl,+    generateAccessLogsResponse_httpStatus,++    -- ** GetApp+    getApp_appId,+    getAppResponse_httpStatus,+    getAppResponse_app,++    -- ** GetArtifactUrl+    getArtifactUrl_artifactId,+    getArtifactUrlResponse_httpStatus,+    getArtifactUrlResponse_artifactId,+    getArtifactUrlResponse_artifactUrl,++    -- ** GetBackendEnvironment+    getBackendEnvironment_appId,+    getBackendEnvironment_environmentName,+    getBackendEnvironmentResponse_httpStatus,+    getBackendEnvironmentResponse_backendEnvironment,++    -- ** GetBranch+    getBranch_appId,+    getBranch_branchName,+    getBranchResponse_httpStatus,+    getBranchResponse_branch,++    -- ** GetDomainAssociation+    getDomainAssociation_appId,+    getDomainAssociation_domainName,+    getDomainAssociationResponse_httpStatus,+    getDomainAssociationResponse_domainAssociation,++    -- ** GetJob+    getJob_appId,+    getJob_branchName,+    getJob_jobId,+    getJobResponse_httpStatus,+    getJobResponse_job,++    -- ** GetWebhook+    getWebhook_webhookId,+    getWebhookResponse_httpStatus,+    getWebhookResponse_webhook,++    -- ** ListApps+    listApps_maxResults,+    listApps_nextToken,+    listAppsResponse_nextToken,+    listAppsResponse_httpStatus,+    listAppsResponse_apps,++    -- ** ListArtifacts+    listArtifacts_maxResults,+    listArtifacts_nextToken,+    listArtifacts_appId,+    listArtifacts_branchName,+    listArtifacts_jobId,+    listArtifactsResponse_nextToken,+    listArtifactsResponse_httpStatus,+    listArtifactsResponse_artifacts,++    -- ** ListBackendEnvironments+    listBackendEnvironments_environmentName,+    listBackendEnvironments_maxResults,+    listBackendEnvironments_nextToken,+    listBackendEnvironments_appId,+    listBackendEnvironmentsResponse_nextToken,+    listBackendEnvironmentsResponse_httpStatus,+    listBackendEnvironmentsResponse_backendEnvironments,++    -- ** ListBranches+    listBranches_maxResults,+    listBranches_nextToken,+    listBranches_appId,+    listBranchesResponse_nextToken,+    listBranchesResponse_httpStatus,+    listBranchesResponse_branches,++    -- ** ListDomainAssociations+    listDomainAssociations_maxResults,+    listDomainAssociations_nextToken,+    listDomainAssociations_appId,+    listDomainAssociationsResponse_nextToken,+    listDomainAssociationsResponse_httpStatus,+    listDomainAssociationsResponse_domainAssociations,++    -- ** ListJobs+    listJobs_maxResults,+    listJobs_nextToken,+    listJobs_appId,+    listJobs_branchName,+    listJobsResponse_nextToken,+    listJobsResponse_httpStatus,+    listJobsResponse_jobSummaries,++    -- ** ListTagsForResource+    listTagsForResource_resourceArn,+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,++    -- ** ListWebhooks+    listWebhooks_maxResults,+    listWebhooks_nextToken,+    listWebhooks_appId,+    listWebhooksResponse_nextToken,+    listWebhooksResponse_httpStatus,+    listWebhooksResponse_webhooks,++    -- ** StartDeployment+    startDeployment_jobId,+    startDeployment_sourceUrl,+    startDeployment_appId,+    startDeployment_branchName,+    startDeploymentResponse_httpStatus,+    startDeploymentResponse_jobSummary,++    -- ** StartJob+    startJob_commitId,+    startJob_commitMessage,+    startJob_commitTime,+    startJob_jobId,+    startJob_jobReason,+    startJob_appId,+    startJob_branchName,+    startJob_jobType,+    startJobResponse_httpStatus,+    startJobResponse_jobSummary,++    -- ** StopJob+    stopJob_appId,+    stopJob_branchName,+    stopJob_jobId,+    stopJobResponse_httpStatus,+    stopJobResponse_jobSummary,++    -- ** TagResource+    tagResource_resourceArn,+    tagResource_tags,+    tagResourceResponse_httpStatus,++    -- ** UntagResource+    untagResource_resourceArn,+    untagResource_tagKeys,+    untagResourceResponse_httpStatus,++    -- ** UpdateApp+    updateApp_accessToken,+    updateApp_autoBranchCreationConfig,+    updateApp_autoBranchCreationPatterns,+    updateApp_basicAuthCredentials,+    updateApp_buildSpec,+    updateApp_customHeaders,+    updateApp_customRules,+    updateApp_description,+    updateApp_enableAutoBranchCreation,+    updateApp_enableBasicAuth,+    updateApp_enableBranchAutoBuild,+    updateApp_enableBranchAutoDeletion,+    updateApp_environmentVariables,+    updateApp_iamServiceRoleArn,+    updateApp_name,+    updateApp_oauthToken,+    updateApp_platform,+    updateApp_repository,+    updateApp_appId,+    updateAppResponse_httpStatus,+    updateAppResponse_app,++    -- ** UpdateBranch+    updateBranch_backendEnvironmentArn,+    updateBranch_basicAuthCredentials,+    updateBranch_buildSpec,+    updateBranch_description,+    updateBranch_displayName,+    updateBranch_enableAutoBuild,+    updateBranch_enableBasicAuth,+    updateBranch_enableNotification,+    updateBranch_enablePerformanceMode,+    updateBranch_enablePullRequestPreview,+    updateBranch_environmentVariables,+    updateBranch_framework,+    updateBranch_pullRequestEnvironmentName,+    updateBranch_stage,+    updateBranch_ttl,+    updateBranch_appId,+    updateBranch_branchName,+    updateBranchResponse_httpStatus,+    updateBranchResponse_branch,++    -- ** UpdateDomainAssociation+    updateDomainAssociation_autoSubDomainCreationPatterns,+    updateDomainAssociation_autoSubDomainIAMRole,+    updateDomainAssociation_enableAutoSubDomain,+    updateDomainAssociation_subDomainSettings,+    updateDomainAssociation_appId,+    updateDomainAssociation_domainName,+    updateDomainAssociationResponse_httpStatus,+    updateDomainAssociationResponse_domainAssociation,++    -- ** UpdateWebhook+    updateWebhook_branchName,+    updateWebhook_description,+    updateWebhook_webhookId,+    updateWebhookResponse_httpStatus,+    updateWebhookResponse_webhook,++    -- * Types++    -- ** App+    app_autoBranchCreationConfig,+    app_autoBranchCreationPatterns,+    app_basicAuthCredentials,+    app_buildSpec,+    app_customHeaders,+    app_customRules,+    app_enableAutoBranchCreation,+    app_enableBranchAutoDeletion,+    app_iamServiceRoleArn,+    app_productionBranch,+    app_repositoryCloneMethod,+    app_tags,+    app_appId,+    app_appArn,+    app_name,+    app_description,+    app_repository,+    app_platform,+    app_createTime,+    app_updateTime,+    app_environmentVariables,+    app_defaultDomain,+    app_enableBranchAutoBuild,+    app_enableBasicAuth,++    -- ** Artifact+    artifact_artifactFileName,+    artifact_artifactId,++    -- ** AutoBranchCreationConfig+    autoBranchCreationConfig_basicAuthCredentials,+    autoBranchCreationConfig_buildSpec,+    autoBranchCreationConfig_enableAutoBuild,+    autoBranchCreationConfig_enableBasicAuth,+    autoBranchCreationConfig_enablePerformanceMode,+    autoBranchCreationConfig_enablePullRequestPreview,+    autoBranchCreationConfig_environmentVariables,+    autoBranchCreationConfig_framework,+    autoBranchCreationConfig_pullRequestEnvironmentName,+    autoBranchCreationConfig_stage,++    -- ** BackendEnvironment+    backendEnvironment_deploymentArtifacts,+    backendEnvironment_stackName,+    backendEnvironment_backendEnvironmentArn,+    backendEnvironment_environmentName,+    backendEnvironment_createTime,+    backendEnvironment_updateTime,++    -- ** Branch+    branch_associatedResources,+    branch_backendEnvironmentArn,+    branch_basicAuthCredentials,+    branch_buildSpec,+    branch_destinationBranch,+    branch_enablePerformanceMode,+    branch_pullRequestEnvironmentName,+    branch_sourceBranch,+    branch_tags,+    branch_thumbnailUrl,+    branch_branchArn,+    branch_branchName,+    branch_description,+    branch_stage,+    branch_displayName,+    branch_enableNotification,+    branch_createTime,+    branch_updateTime,+    branch_environmentVariables,+    branch_enableAutoBuild,+    branch_customDomains,+    branch_framework,+    branch_activeJobId,+    branch_totalNumberOfJobs,+    branch_enableBasicAuth,+    branch_ttl,+    branch_enablePullRequestPreview,++    -- ** CustomRule+    customRule_condition,+    customRule_status,+    customRule_source,+    customRule_target,++    -- ** DomainAssociation+    domainAssociation_autoSubDomainCreationPatterns,+    domainAssociation_autoSubDomainIAMRole,+    domainAssociation_certificateVerificationDNSRecord,+    domainAssociation_domainAssociationArn,+    domainAssociation_domainName,+    domainAssociation_enableAutoSubDomain,+    domainAssociation_domainStatus,+    domainAssociation_statusReason,+    domainAssociation_subDomains,++    -- ** Job+    job_summary,+    job_steps,++    -- ** JobSummary+    jobSummary_endTime,+    jobSummary_jobArn,+    jobSummary_jobId,+    jobSummary_commitId,+    jobSummary_commitMessage,+    jobSummary_commitTime,+    jobSummary_startTime,+    jobSummary_status,+    jobSummary_jobType,++    -- ** ProductionBranch+    productionBranch_branchName,+    productionBranch_lastDeployTime,+    productionBranch_status,+    productionBranch_thumbnailUrl,++    -- ** Step+    step_artifactsUrl,+    step_context,+    step_logUrl,+    step_screenshots,+    step_statusReason,+    step_testArtifactsUrl,+    step_testConfigUrl,+    step_stepName,+    step_startTime,+    step_status,+    step_endTime,++    -- ** SubDomain+    subDomain_subDomainSetting,+    subDomain_verified,+    subDomain_dnsRecord,++    -- ** SubDomainSetting+    subDomainSetting_prefix,+    subDomainSetting_branchName,++    -- ** Webhook+    webhook_webhookArn,+    webhook_webhookId,+    webhook_webhookUrl,+    webhook_branchName,+    webhook_description,+    webhook_createTime,+    webhook_updateTime,+  )+where++import Amazonka.Amplify.CreateApp+import Amazonka.Amplify.CreateBackendEnvironment+import Amazonka.Amplify.CreateBranch+import Amazonka.Amplify.CreateDeployment+import Amazonka.Amplify.CreateDomainAssociation+import Amazonka.Amplify.CreateWebhook+import Amazonka.Amplify.DeleteApp+import Amazonka.Amplify.DeleteBackendEnvironment+import Amazonka.Amplify.DeleteBranch+import Amazonka.Amplify.DeleteDomainAssociation+import Amazonka.Amplify.DeleteJob+import Amazonka.Amplify.DeleteWebhook+import Amazonka.Amplify.GenerateAccessLogs+import Amazonka.Amplify.GetApp+import Amazonka.Amplify.GetArtifactUrl+import Amazonka.Amplify.GetBackendEnvironment+import Amazonka.Amplify.GetBranch+import Amazonka.Amplify.GetDomainAssociation+import Amazonka.Amplify.GetJob+import Amazonka.Amplify.GetWebhook+import Amazonka.Amplify.ListApps+import Amazonka.Amplify.ListArtifacts+import Amazonka.Amplify.ListBackendEnvironments+import Amazonka.Amplify.ListBranches+import Amazonka.Amplify.ListDomainAssociations+import Amazonka.Amplify.ListJobs+import Amazonka.Amplify.ListTagsForResource+import Amazonka.Amplify.ListWebhooks+import Amazonka.Amplify.StartDeployment+import Amazonka.Amplify.StartJob+import Amazonka.Amplify.StopJob+import Amazonka.Amplify.TagResource+import Amazonka.Amplify.Types.App+import Amazonka.Amplify.Types.Artifact+import Amazonka.Amplify.Types.AutoBranchCreationConfig+import Amazonka.Amplify.Types.BackendEnvironment+import Amazonka.Amplify.Types.Branch+import Amazonka.Amplify.Types.CustomRule+import Amazonka.Amplify.Types.DomainAssociation+import Amazonka.Amplify.Types.Job+import Amazonka.Amplify.Types.JobSummary+import Amazonka.Amplify.Types.ProductionBranch+import Amazonka.Amplify.Types.Step+import Amazonka.Amplify.Types.SubDomain+import Amazonka.Amplify.Types.SubDomainSetting+import Amazonka.Amplify.Types.Webhook+import Amazonka.Amplify.UntagResource+import Amazonka.Amplify.UpdateApp+import Amazonka.Amplify.UpdateBranch+import Amazonka.Amplify.UpdateDomainAssociation+import Amazonka.Amplify.UpdateWebhook
+ gen/Amazonka/Amplify/ListApps.hs view
@@ -0,0 +1,217 @@+{-# 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.Amplify.ListApps+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of the existing Amplify apps.+--+-- This operation returns paginated results.+module Amazonka.Amplify.ListApps+  ( -- * Creating a Request+    ListApps (..),+    newListApps,++    -- * Request Lenses+    listApps_maxResults,+    listApps_nextToken,++    -- * Destructuring the Response+    ListAppsResponse (..),+    newListAppsResponse,++    -- * Response Lenses+    listAppsResponse_nextToken,+    listAppsResponse_httpStatus,+    listAppsResponse_apps,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request structure for the list apps request.+--+-- /See:/ 'newListApps' smart constructor.+data ListApps = ListApps'+  { -- | The maximum number of records to list in a single response.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A pagination token. If non-null, the pagination token is returned in a+    -- result. Pass its value in another request to retrieve more entries.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListApps' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listApps_maxResults' - The maximum number of records to list in a single response.+--+-- 'nextToken', 'listApps_nextToken' - A pagination token. If non-null, the pagination token is returned in a+-- result. Pass its value in another request to retrieve more entries.+newListApps ::+  ListApps+newListApps =+  ListApps'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of records to list in a single response.+listApps_maxResults :: Lens.Lens' ListApps (Prelude.Maybe Prelude.Natural)+listApps_maxResults = Lens.lens (\ListApps' {maxResults} -> maxResults) (\s@ListApps' {} a -> s {maxResults = a} :: ListApps)++-- | A pagination token. If non-null, the pagination token is returned in a+-- result. Pass its value in another request to retrieve more entries.+listApps_nextToken :: Lens.Lens' ListApps (Prelude.Maybe Prelude.Text)+listApps_nextToken = Lens.lens (\ListApps' {nextToken} -> nextToken) (\s@ListApps' {} a -> s {nextToken = a} :: ListApps)++instance Core.AWSPager ListApps where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listAppsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop (rs Lens.^. listAppsResponse_apps) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listApps_nextToken+          Lens..~ rs+          Lens.^? listAppsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListApps where+  type AWSResponse ListApps = ListAppsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListAppsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..?> "apps" Core..!@ Prelude.mempty)+      )++instance Prelude.Hashable ListApps where+  hashWithSalt _salt ListApps' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListApps where+  rnf ListApps' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListApps where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListApps where+  toPath = Prelude.const "/apps"++instance Data.ToQuery ListApps where+  toQuery ListApps' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | The result structure for an Amplify app list request.+--+-- /See:/ 'newListAppsResponse' smart constructor.+data ListAppsResponse = ListAppsResponse'+  { -- | A pagination token. Set to null to start listing apps from start. If+    -- non-null, the pagination token is returned in a result. Pass its value+    -- in here to list more projects.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | A list of Amplify apps.+    apps :: [App]+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAppsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listAppsResponse_nextToken' - A pagination token. Set to null to start listing apps from start. If+-- non-null, the pagination token is returned in a result. Pass its value+-- in here to list more projects.+--+-- 'httpStatus', 'listAppsResponse_httpStatus' - The response's http status code.+--+-- 'apps', 'listAppsResponse_apps' - A list of Amplify apps.+newListAppsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListAppsResponse+newListAppsResponse pHttpStatus_ =+  ListAppsResponse'+    { nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_,+      apps = Prelude.mempty+    }++-- | A pagination token. Set to null to start listing apps from start. If+-- non-null, the pagination token is returned in a result. Pass its value+-- in here to list more projects.+listAppsResponse_nextToken :: Lens.Lens' ListAppsResponse (Prelude.Maybe Prelude.Text)+listAppsResponse_nextToken = Lens.lens (\ListAppsResponse' {nextToken} -> nextToken) (\s@ListAppsResponse' {} a -> s {nextToken = a} :: ListAppsResponse)++-- | The response's http status code.+listAppsResponse_httpStatus :: Lens.Lens' ListAppsResponse Prelude.Int+listAppsResponse_httpStatus = Lens.lens (\ListAppsResponse' {httpStatus} -> httpStatus) (\s@ListAppsResponse' {} a -> s {httpStatus = a} :: ListAppsResponse)++-- | A list of Amplify apps.+listAppsResponse_apps :: Lens.Lens' ListAppsResponse [App]+listAppsResponse_apps = Lens.lens (\ListAppsResponse' {apps} -> apps) (\s@ListAppsResponse' {} a -> s {apps = a} :: ListAppsResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListAppsResponse where+  rnf ListAppsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf apps
+ gen/Amazonka/Amplify/ListArtifacts.hs view
@@ -0,0 +1,250 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Amplify.ListArtifacts+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of artifacts for a specified app, branch, and job.+module Amazonka.Amplify.ListArtifacts+  ( -- * Creating a Request+    ListArtifacts (..),+    newListArtifacts,++    -- * Request Lenses+    listArtifacts_maxResults,+    listArtifacts_nextToken,+    listArtifacts_appId,+    listArtifacts_branchName,+    listArtifacts_jobId,++    -- * Destructuring the Response+    ListArtifactsResponse (..),+    newListArtifactsResponse,++    -- * Response Lenses+    listArtifactsResponse_nextToken,+    listArtifactsResponse_httpStatus,+    listArtifactsResponse_artifacts,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Describes the request structure for the list artifacts request.+--+-- /See:/ 'newListArtifacts' smart constructor.+data ListArtifacts = ListArtifacts'+  { -- | The maximum number of records to list in a single response.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A pagination token. Set to null to start listing artifacts from start.+    -- If a non-null pagination token is returned in a result, pass its value+    -- in here to list more artifacts.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The unique ID for an Amplify app.+    appId :: Prelude.Text,+    -- | The name of a branch that is part of an Amplify app.+    branchName :: Prelude.Text,+    -- | The unique ID for a job.+    jobId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListArtifacts' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listArtifacts_maxResults' - The maximum number of records to list in a single response.+--+-- 'nextToken', 'listArtifacts_nextToken' - A pagination token. Set to null to start listing artifacts from start.+-- If a non-null pagination token is returned in a result, pass its value+-- in here to list more artifacts.+--+-- 'appId', 'listArtifacts_appId' - The unique ID for an Amplify app.+--+-- 'branchName', 'listArtifacts_branchName' - The name of a branch that is part of an Amplify app.+--+-- 'jobId', 'listArtifacts_jobId' - The unique ID for a job.+newListArtifacts ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'branchName'+  Prelude.Text ->+  -- | 'jobId'+  Prelude.Text ->+  ListArtifacts+newListArtifacts pAppId_ pBranchName_ pJobId_ =+  ListArtifacts'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      appId = pAppId_,+      branchName = pBranchName_,+      jobId = pJobId_+    }++-- | The maximum number of records to list in a single response.+listArtifacts_maxResults :: Lens.Lens' ListArtifacts (Prelude.Maybe Prelude.Natural)+listArtifacts_maxResults = Lens.lens (\ListArtifacts' {maxResults} -> maxResults) (\s@ListArtifacts' {} a -> s {maxResults = a} :: ListArtifacts)++-- | A pagination token. Set to null to start listing artifacts from start.+-- If a non-null pagination token is returned in a result, pass its value+-- in here to list more artifacts.+listArtifacts_nextToken :: Lens.Lens' ListArtifacts (Prelude.Maybe Prelude.Text)+listArtifacts_nextToken = Lens.lens (\ListArtifacts' {nextToken} -> nextToken) (\s@ListArtifacts' {} a -> s {nextToken = a} :: ListArtifacts)++-- | The unique ID for an Amplify app.+listArtifacts_appId :: Lens.Lens' ListArtifacts Prelude.Text+listArtifacts_appId = Lens.lens (\ListArtifacts' {appId} -> appId) (\s@ListArtifacts' {} a -> s {appId = a} :: ListArtifacts)++-- | The name of a branch that is part of an Amplify app.+listArtifacts_branchName :: Lens.Lens' ListArtifacts Prelude.Text+listArtifacts_branchName = Lens.lens (\ListArtifacts' {branchName} -> branchName) (\s@ListArtifacts' {} a -> s {branchName = a} :: ListArtifacts)++-- | The unique ID for a job.+listArtifacts_jobId :: Lens.Lens' ListArtifacts Prelude.Text+listArtifacts_jobId = Lens.lens (\ListArtifacts' {jobId} -> jobId) (\s@ListArtifacts' {} a -> s {jobId = a} :: ListArtifacts)++instance Core.AWSRequest ListArtifacts where+  type+    AWSResponse ListArtifacts =+      ListArtifactsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListArtifactsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..?> "artifacts" Core..!@ Prelude.mempty)+      )++instance Prelude.Hashable ListArtifacts where+  hashWithSalt _salt ListArtifacts' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` branchName+      `Prelude.hashWithSalt` jobId++instance Prelude.NFData ListArtifacts where+  rnf ListArtifacts' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf appId+      `Prelude.seq` Prelude.rnf branchName+      `Prelude.seq` Prelude.rnf jobId++instance Data.ToHeaders ListArtifacts where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListArtifacts where+  toPath ListArtifacts' {..} =+    Prelude.mconcat+      [ "/apps/",+        Data.toBS appId,+        "/branches/",+        Data.toBS branchName,+        "/jobs/",+        Data.toBS jobId,+        "/artifacts"+      ]++instance Data.ToQuery ListArtifacts where+  toQuery ListArtifacts' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | The result structure for the list artifacts request.+--+-- /See:/ 'newListArtifactsResponse' smart constructor.+data ListArtifactsResponse = ListArtifactsResponse'+  { -- | A pagination token. If a non-null pagination token is returned in a+    -- result, pass its value in another request to retrieve more entries.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | A list of artifacts.+    artifacts :: [Artifact]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListArtifactsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listArtifactsResponse_nextToken' - A pagination token. If a non-null pagination token is returned in a+-- result, pass its value in another request to retrieve more entries.+--+-- 'httpStatus', 'listArtifactsResponse_httpStatus' - The response's http status code.+--+-- 'artifacts', 'listArtifactsResponse_artifacts' - A list of artifacts.+newListArtifactsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListArtifactsResponse+newListArtifactsResponse pHttpStatus_ =+  ListArtifactsResponse'+    { nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_,+      artifacts = Prelude.mempty+    }++-- | A pagination token. If a non-null pagination token is returned in a+-- result, pass its value in another request to retrieve more entries.+listArtifactsResponse_nextToken :: Lens.Lens' ListArtifactsResponse (Prelude.Maybe Prelude.Text)+listArtifactsResponse_nextToken = Lens.lens (\ListArtifactsResponse' {nextToken} -> nextToken) (\s@ListArtifactsResponse' {} a -> s {nextToken = a} :: ListArtifactsResponse)++-- | The response's http status code.+listArtifactsResponse_httpStatus :: Lens.Lens' ListArtifactsResponse Prelude.Int+listArtifactsResponse_httpStatus = Lens.lens (\ListArtifactsResponse' {httpStatus} -> httpStatus) (\s@ListArtifactsResponse' {} a -> s {httpStatus = a} :: ListArtifactsResponse)++-- | A list of artifacts.+listArtifactsResponse_artifacts :: Lens.Lens' ListArtifactsResponse [Artifact]+listArtifactsResponse_artifacts = Lens.lens (\ListArtifactsResponse' {artifacts} -> artifacts) (\s@ListArtifactsResponse' {} a -> s {artifacts = a} :: ListArtifactsResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListArtifactsResponse where+  rnf ListArtifactsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf artifacts
+ gen/Amazonka/Amplify/ListBackendEnvironments.hs view
@@ -0,0 +1,236 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Amplify.ListBackendEnvironments+-- 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 backend environments for an Amplify app.+module Amazonka.Amplify.ListBackendEnvironments+  ( -- * Creating a Request+    ListBackendEnvironments (..),+    newListBackendEnvironments,++    -- * Request Lenses+    listBackendEnvironments_environmentName,+    listBackendEnvironments_maxResults,+    listBackendEnvironments_nextToken,+    listBackendEnvironments_appId,++    -- * Destructuring the Response+    ListBackendEnvironmentsResponse (..),+    newListBackendEnvironmentsResponse,++    -- * Response Lenses+    listBackendEnvironmentsResponse_nextToken,+    listBackendEnvironmentsResponse_httpStatus,+    listBackendEnvironmentsResponse_backendEnvironments,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request structure for the list backend environments request.+--+-- /See:/ 'newListBackendEnvironments' smart constructor.+data ListBackendEnvironments = ListBackendEnvironments'+  { -- | The name of the backend environment+    environmentName :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of records to list in a single response.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A pagination token. Set to null to start listing backend environments+    -- from the start. If a non-null pagination token is returned in a result,+    -- pass its value in here to list more backend environments.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The unique ID for an Amplify app.+    appId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListBackendEnvironments' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'environmentName', 'listBackendEnvironments_environmentName' - The name of the backend environment+--+-- 'maxResults', 'listBackendEnvironments_maxResults' - The maximum number of records to list in a single response.+--+-- 'nextToken', 'listBackendEnvironments_nextToken' - A pagination token. Set to null to start listing backend environments+-- from the start. If a non-null pagination token is returned in a result,+-- pass its value in here to list more backend environments.+--+-- 'appId', 'listBackendEnvironments_appId' - The unique ID for an Amplify app.+newListBackendEnvironments ::+  -- | 'appId'+  Prelude.Text ->+  ListBackendEnvironments+newListBackendEnvironments pAppId_ =+  ListBackendEnvironments'+    { environmentName =+        Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      appId = pAppId_+    }++-- | The name of the backend environment+listBackendEnvironments_environmentName :: Lens.Lens' ListBackendEnvironments (Prelude.Maybe Prelude.Text)+listBackendEnvironments_environmentName = Lens.lens (\ListBackendEnvironments' {environmentName} -> environmentName) (\s@ListBackendEnvironments' {} a -> s {environmentName = a} :: ListBackendEnvironments)++-- | The maximum number of records to list in a single response.+listBackendEnvironments_maxResults :: Lens.Lens' ListBackendEnvironments (Prelude.Maybe Prelude.Natural)+listBackendEnvironments_maxResults = Lens.lens (\ListBackendEnvironments' {maxResults} -> maxResults) (\s@ListBackendEnvironments' {} a -> s {maxResults = a} :: ListBackendEnvironments)++-- | A pagination token. Set to null to start listing backend environments+-- from the start. If a non-null pagination token is returned in a result,+-- pass its value in here to list more backend environments.+listBackendEnvironments_nextToken :: Lens.Lens' ListBackendEnvironments (Prelude.Maybe Prelude.Text)+listBackendEnvironments_nextToken = Lens.lens (\ListBackendEnvironments' {nextToken} -> nextToken) (\s@ListBackendEnvironments' {} a -> s {nextToken = a} :: ListBackendEnvironments)++-- | The unique ID for an Amplify app.+listBackendEnvironments_appId :: Lens.Lens' ListBackendEnvironments Prelude.Text+listBackendEnvironments_appId = Lens.lens (\ListBackendEnvironments' {appId} -> appId) (\s@ListBackendEnvironments' {} a -> s {appId = a} :: ListBackendEnvironments)++instance Core.AWSRequest ListBackendEnvironments where+  type+    AWSResponse ListBackendEnvironments =+      ListBackendEnvironmentsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListBackendEnvironmentsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> ( x+                            Data..?> "backendEnvironments"+                            Core..!@ Prelude.mempty+                        )+      )++instance Prelude.Hashable ListBackendEnvironments where+  hashWithSalt _salt ListBackendEnvironments' {..} =+    _salt+      `Prelude.hashWithSalt` environmentName+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` appId++instance Prelude.NFData ListBackendEnvironments where+  rnf ListBackendEnvironments' {..} =+    Prelude.rnf environmentName+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf appId++instance Data.ToHeaders ListBackendEnvironments where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListBackendEnvironments where+  toPath ListBackendEnvironments' {..} =+    Prelude.mconcat+      ["/apps/", Data.toBS appId, "/backendenvironments"]++instance Data.ToQuery ListBackendEnvironments where+  toQuery ListBackendEnvironments' {..} =+    Prelude.mconcat+      [ "environmentName" Data.=: environmentName,+        "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | The result structure for the list backend environments result.+--+-- /See:/ 'newListBackendEnvironmentsResponse' smart constructor.+data ListBackendEnvironmentsResponse = ListBackendEnvironmentsResponse'+  { -- | A pagination token. If a non-null pagination token is returned in a+    -- result, pass its value in another request to retrieve more entries.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The list of backend environments for an Amplify app.+    backendEnvironments :: [BackendEnvironment]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListBackendEnvironmentsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listBackendEnvironmentsResponse_nextToken' - A pagination token. If a non-null pagination token is returned in a+-- result, pass its value in another request to retrieve more entries.+--+-- 'httpStatus', 'listBackendEnvironmentsResponse_httpStatus' - The response's http status code.+--+-- 'backendEnvironments', 'listBackendEnvironmentsResponse_backendEnvironments' - The list of backend environments for an Amplify app.+newListBackendEnvironmentsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListBackendEnvironmentsResponse+newListBackendEnvironmentsResponse pHttpStatus_ =+  ListBackendEnvironmentsResponse'+    { nextToken =+        Prelude.Nothing,+      httpStatus = pHttpStatus_,+      backendEnvironments = Prelude.mempty+    }++-- | A pagination token. If a non-null pagination token is returned in a+-- result, pass its value in another request to retrieve more entries.+listBackendEnvironmentsResponse_nextToken :: Lens.Lens' ListBackendEnvironmentsResponse (Prelude.Maybe Prelude.Text)+listBackendEnvironmentsResponse_nextToken = Lens.lens (\ListBackendEnvironmentsResponse' {nextToken} -> nextToken) (\s@ListBackendEnvironmentsResponse' {} a -> s {nextToken = a} :: ListBackendEnvironmentsResponse)++-- | The response's http status code.+listBackendEnvironmentsResponse_httpStatus :: Lens.Lens' ListBackendEnvironmentsResponse Prelude.Int+listBackendEnvironmentsResponse_httpStatus = Lens.lens (\ListBackendEnvironmentsResponse' {httpStatus} -> httpStatus) (\s@ListBackendEnvironmentsResponse' {} a -> s {httpStatus = a} :: ListBackendEnvironmentsResponse)++-- | The list of backend environments for an Amplify app.+listBackendEnvironmentsResponse_backendEnvironments :: Lens.Lens' ListBackendEnvironmentsResponse [BackendEnvironment]+listBackendEnvironmentsResponse_backendEnvironments = Lens.lens (\ListBackendEnvironmentsResponse' {backendEnvironments} -> backendEnvironments) (\s@ListBackendEnvironmentsResponse' {} a -> s {backendEnvironments = a} :: ListBackendEnvironmentsResponse) Prelude.. Lens.coerced++instance+  Prelude.NFData+    ListBackendEnvironmentsResponse+  where+  rnf ListBackendEnvironmentsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf backendEnvironments
+ gen/Amazonka/Amplify/ListBranches.hs view
@@ -0,0 +1,234 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Amplify.ListBranches+-- 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 branches of an Amplify app.+--+-- This operation returns paginated results.+module Amazonka.Amplify.ListBranches+  ( -- * Creating a Request+    ListBranches (..),+    newListBranches,++    -- * Request Lenses+    listBranches_maxResults,+    listBranches_nextToken,+    listBranches_appId,++    -- * Destructuring the Response+    ListBranchesResponse (..),+    newListBranchesResponse,++    -- * Response Lenses+    listBranchesResponse_nextToken,+    listBranchesResponse_httpStatus,+    listBranchesResponse_branches,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request structure for the list branches request.+--+-- /See:/ 'newListBranches' smart constructor.+data ListBranches = ListBranches'+  { -- | The maximum number of records to list in a single response.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A pagination token. Set to null to start listing branches from the+    -- start. If a non-null pagination token is returned in a result, pass its+    -- value in here to list more branches.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The unique ID for an Amplify app.+    appId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListBranches' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listBranches_maxResults' - The maximum number of records to list in a single response.+--+-- 'nextToken', 'listBranches_nextToken' - A pagination token. Set to null to start listing branches from the+-- start. If a non-null pagination token is returned in a result, pass its+-- value in here to list more branches.+--+-- 'appId', 'listBranches_appId' - The unique ID for an Amplify app.+newListBranches ::+  -- | 'appId'+  Prelude.Text ->+  ListBranches+newListBranches pAppId_ =+  ListBranches'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      appId = pAppId_+    }++-- | The maximum number of records to list in a single response.+listBranches_maxResults :: Lens.Lens' ListBranches (Prelude.Maybe Prelude.Natural)+listBranches_maxResults = Lens.lens (\ListBranches' {maxResults} -> maxResults) (\s@ListBranches' {} a -> s {maxResults = a} :: ListBranches)++-- | A pagination token. Set to null to start listing branches from the+-- start. If a non-null pagination token is returned in a result, pass its+-- value in here to list more branches.+listBranches_nextToken :: Lens.Lens' ListBranches (Prelude.Maybe Prelude.Text)+listBranches_nextToken = Lens.lens (\ListBranches' {nextToken} -> nextToken) (\s@ListBranches' {} a -> s {nextToken = a} :: ListBranches)++-- | The unique ID for an Amplify app.+listBranches_appId :: Lens.Lens' ListBranches Prelude.Text+listBranches_appId = Lens.lens (\ListBranches' {appId} -> appId) (\s@ListBranches' {} a -> s {appId = a} :: ListBranches)++instance Core.AWSPager ListBranches where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listBranchesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        (rs Lens.^. listBranchesResponse_branches) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listBranches_nextToken+          Lens..~ rs+          Lens.^? listBranchesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListBranches where+  type AWSResponse ListBranches = ListBranchesResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListBranchesResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..?> "branches" Core..!@ Prelude.mempty)+      )++instance Prelude.Hashable ListBranches where+  hashWithSalt _salt ListBranches' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` appId++instance Prelude.NFData ListBranches where+  rnf ListBranches' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf appId++instance Data.ToHeaders ListBranches where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListBranches where+  toPath ListBranches' {..} =+    Prelude.mconcat+      ["/apps/", Data.toBS appId, "/branches"]++instance Data.ToQuery ListBranches where+  toQuery ListBranches' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | The result structure for the list branches request.+--+-- /See:/ 'newListBranchesResponse' smart constructor.+data ListBranchesResponse = ListBranchesResponse'+  { -- | A pagination token. If a non-null pagination token is returned in a+    -- result, pass its value in another request to retrieve more entries.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | A list of branches for an Amplify app.+    branches :: [Branch]+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListBranchesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listBranchesResponse_nextToken' - A pagination token. If a non-null pagination token is returned in a+-- result, pass its value in another request to retrieve more entries.+--+-- 'httpStatus', 'listBranchesResponse_httpStatus' - The response's http status code.+--+-- 'branches', 'listBranchesResponse_branches' - A list of branches for an Amplify app.+newListBranchesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListBranchesResponse+newListBranchesResponse pHttpStatus_ =+  ListBranchesResponse'+    { nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_,+      branches = Prelude.mempty+    }++-- | A pagination token. If a non-null pagination token is returned in a+-- result, pass its value in another request to retrieve more entries.+listBranchesResponse_nextToken :: Lens.Lens' ListBranchesResponse (Prelude.Maybe Prelude.Text)+listBranchesResponse_nextToken = Lens.lens (\ListBranchesResponse' {nextToken} -> nextToken) (\s@ListBranchesResponse' {} a -> s {nextToken = a} :: ListBranchesResponse)++-- | The response's http status code.+listBranchesResponse_httpStatus :: Lens.Lens' ListBranchesResponse Prelude.Int+listBranchesResponse_httpStatus = Lens.lens (\ListBranchesResponse' {httpStatus} -> httpStatus) (\s@ListBranchesResponse' {} a -> s {httpStatus = a} :: ListBranchesResponse)++-- | A list of branches for an Amplify app.+listBranchesResponse_branches :: Lens.Lens' ListBranchesResponse [Branch]+listBranchesResponse_branches = Lens.lens (\ListBranchesResponse' {branches} -> branches) (\s@ListBranchesResponse' {} a -> s {branches = a} :: ListBranchesResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListBranchesResponse where+  rnf ListBranchesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf branches
+ gen/Amazonka/Amplify/ListDomainAssociations.hs view
@@ -0,0 +1,246 @@+{-# 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.Amplify.ListDomainAssociations+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the domain associations for an Amplify app.+--+-- This operation returns paginated results.+module Amazonka.Amplify.ListDomainAssociations+  ( -- * Creating a Request+    ListDomainAssociations (..),+    newListDomainAssociations,++    -- * Request Lenses+    listDomainAssociations_maxResults,+    listDomainAssociations_nextToken,+    listDomainAssociations_appId,++    -- * Destructuring the Response+    ListDomainAssociationsResponse (..),+    newListDomainAssociationsResponse,++    -- * Response Lenses+    listDomainAssociationsResponse_nextToken,+    listDomainAssociationsResponse_httpStatus,+    listDomainAssociationsResponse_domainAssociations,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request structure for the list domain associations request.+--+-- /See:/ 'newListDomainAssociations' smart constructor.+data ListDomainAssociations = ListDomainAssociations'+  { -- | The maximum number of records to list in a single response.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A pagination token. Set to null to start listing apps from the start. If+    -- non-null, a pagination token is returned in a result. Pass its value in+    -- here to list more projects.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The unique ID for an Amplify app.+    appId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDomainAssociations' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listDomainAssociations_maxResults' - The maximum number of records to list in a single response.+--+-- 'nextToken', 'listDomainAssociations_nextToken' - A pagination token. Set to null to start listing apps from the start. If+-- non-null, a pagination token is returned in a result. Pass its value in+-- here to list more projects.+--+-- 'appId', 'listDomainAssociations_appId' - The unique ID for an Amplify app.+newListDomainAssociations ::+  -- | 'appId'+  Prelude.Text ->+  ListDomainAssociations+newListDomainAssociations pAppId_ =+  ListDomainAssociations'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      appId = pAppId_+    }++-- | The maximum number of records to list in a single response.+listDomainAssociations_maxResults :: Lens.Lens' ListDomainAssociations (Prelude.Maybe Prelude.Natural)+listDomainAssociations_maxResults = Lens.lens (\ListDomainAssociations' {maxResults} -> maxResults) (\s@ListDomainAssociations' {} a -> s {maxResults = a} :: ListDomainAssociations)++-- | A pagination token. Set to null to start listing apps from the start. If+-- non-null, a pagination token is returned in a result. Pass its value in+-- here to list more projects.+listDomainAssociations_nextToken :: Lens.Lens' ListDomainAssociations (Prelude.Maybe Prelude.Text)+listDomainAssociations_nextToken = Lens.lens (\ListDomainAssociations' {nextToken} -> nextToken) (\s@ListDomainAssociations' {} a -> s {nextToken = a} :: ListDomainAssociations)++-- | The unique ID for an Amplify app.+listDomainAssociations_appId :: Lens.Lens' ListDomainAssociations Prelude.Text+listDomainAssociations_appId = Lens.lens (\ListDomainAssociations' {appId} -> appId) (\s@ListDomainAssociations' {} a -> s {appId = a} :: ListDomainAssociations)++instance Core.AWSPager ListDomainAssociations where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listDomainAssociationsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^. listDomainAssociationsResponse_domainAssociations+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listDomainAssociations_nextToken+          Lens..~ rs+          Lens.^? listDomainAssociationsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListDomainAssociations where+  type+    AWSResponse ListDomainAssociations =+      ListDomainAssociationsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListDomainAssociationsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> ( x+                            Data..?> "domainAssociations"+                            Core..!@ Prelude.mempty+                        )+      )++instance Prelude.Hashable ListDomainAssociations where+  hashWithSalt _salt ListDomainAssociations' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` appId++instance Prelude.NFData ListDomainAssociations where+  rnf ListDomainAssociations' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf appId++instance Data.ToHeaders ListDomainAssociations where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListDomainAssociations where+  toPath ListDomainAssociations' {..} =+    Prelude.mconcat+      ["/apps/", Data.toBS appId, "/domains"]++instance Data.ToQuery ListDomainAssociations where+  toQuery ListDomainAssociations' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | The result structure for the list domain association request.+--+-- /See:/ 'newListDomainAssociationsResponse' smart constructor.+data ListDomainAssociationsResponse = ListDomainAssociationsResponse'+  { -- | A pagination token. If non-null, a pagination token is returned in a+    -- result. Pass its value in another request to retrieve more entries.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | A list of domain associations.+    domainAssociations :: [DomainAssociation]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDomainAssociationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listDomainAssociationsResponse_nextToken' - A pagination token. If non-null, a pagination token is returned in a+-- result. Pass its value in another request to retrieve more entries.+--+-- 'httpStatus', 'listDomainAssociationsResponse_httpStatus' - The response's http status code.+--+-- 'domainAssociations', 'listDomainAssociationsResponse_domainAssociations' - A list of domain associations.+newListDomainAssociationsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListDomainAssociationsResponse+newListDomainAssociationsResponse pHttpStatus_ =+  ListDomainAssociationsResponse'+    { nextToken =+        Prelude.Nothing,+      httpStatus = pHttpStatus_,+      domainAssociations = Prelude.mempty+    }++-- | A pagination token. If non-null, a pagination token is returned in a+-- result. Pass its value in another request to retrieve more entries.+listDomainAssociationsResponse_nextToken :: Lens.Lens' ListDomainAssociationsResponse (Prelude.Maybe Prelude.Text)+listDomainAssociationsResponse_nextToken = Lens.lens (\ListDomainAssociationsResponse' {nextToken} -> nextToken) (\s@ListDomainAssociationsResponse' {} a -> s {nextToken = a} :: ListDomainAssociationsResponse)++-- | The response's http status code.+listDomainAssociationsResponse_httpStatus :: Lens.Lens' ListDomainAssociationsResponse Prelude.Int+listDomainAssociationsResponse_httpStatus = Lens.lens (\ListDomainAssociationsResponse' {httpStatus} -> httpStatus) (\s@ListDomainAssociationsResponse' {} a -> s {httpStatus = a} :: ListDomainAssociationsResponse)++-- | A list of domain associations.+listDomainAssociationsResponse_domainAssociations :: Lens.Lens' ListDomainAssociationsResponse [DomainAssociation]+listDomainAssociationsResponse_domainAssociations = Lens.lens (\ListDomainAssociationsResponse' {domainAssociations} -> domainAssociations) (\s@ListDomainAssociationsResponse' {} a -> s {domainAssociations = a} :: ListDomainAssociationsResponse) Prelude.. Lens.coerced++instance+  Prelude.NFData+    ListDomainAssociationsResponse+  where+  rnf ListDomainAssociationsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf domainAssociations
+ gen/Amazonka/Amplify/ListJobs.hs view
@@ -0,0 +1,253 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Amplify.ListJobs+-- 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 jobs for a branch of an Amplify app.+--+-- This operation returns paginated results.+module Amazonka.Amplify.ListJobs+  ( -- * Creating a Request+    ListJobs (..),+    newListJobs,++    -- * Request Lenses+    listJobs_maxResults,+    listJobs_nextToken,+    listJobs_appId,+    listJobs_branchName,++    -- * Destructuring the Response+    ListJobsResponse (..),+    newListJobsResponse,++    -- * Response Lenses+    listJobsResponse_nextToken,+    listJobsResponse_httpStatus,+    listJobsResponse_jobSummaries,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request structure for the list jobs request.+--+-- /See:/ 'newListJobs' smart constructor.+data ListJobs = ListJobs'+  { -- | The maximum number of records to list in a single response.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A pagination token. Set to null to start listing steps from the start.+    -- If a non-null pagination token is returned in a result, pass its value+    -- in here to list more steps.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The unique ID for an Amplify app.+    appId :: Prelude.Text,+    -- | The name for a branch.+    branchName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListJobs' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listJobs_maxResults' - The maximum number of records to list in a single response.+--+-- 'nextToken', 'listJobs_nextToken' - A pagination token. Set to null to start listing steps from the start.+-- If a non-null pagination token is returned in a result, pass its value+-- in here to list more steps.+--+-- 'appId', 'listJobs_appId' - The unique ID for an Amplify app.+--+-- 'branchName', 'listJobs_branchName' - The name for a branch.+newListJobs ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'branchName'+  Prelude.Text ->+  ListJobs+newListJobs pAppId_ pBranchName_ =+  ListJobs'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      appId = pAppId_,+      branchName = pBranchName_+    }++-- | The maximum number of records to list in a single response.+listJobs_maxResults :: Lens.Lens' ListJobs (Prelude.Maybe Prelude.Natural)+listJobs_maxResults = Lens.lens (\ListJobs' {maxResults} -> maxResults) (\s@ListJobs' {} a -> s {maxResults = a} :: ListJobs)++-- | A pagination token. Set to null to start listing steps from the start.+-- If a non-null pagination token is returned in a result, pass its value+-- in here to list more steps.+listJobs_nextToken :: Lens.Lens' ListJobs (Prelude.Maybe Prelude.Text)+listJobs_nextToken = Lens.lens (\ListJobs' {nextToken} -> nextToken) (\s@ListJobs' {} a -> s {nextToken = a} :: ListJobs)++-- | The unique ID for an Amplify app.+listJobs_appId :: Lens.Lens' ListJobs Prelude.Text+listJobs_appId = Lens.lens (\ListJobs' {appId} -> appId) (\s@ListJobs' {} a -> s {appId = a} :: ListJobs)++-- | The name for a branch.+listJobs_branchName :: Lens.Lens' ListJobs Prelude.Text+listJobs_branchName = Lens.lens (\ListJobs' {branchName} -> branchName) (\s@ListJobs' {} a -> s {branchName = a} :: ListJobs)++instance Core.AWSPager ListJobs where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listJobsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        (rs Lens.^. listJobsResponse_jobSummaries) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listJobs_nextToken+          Lens..~ rs+          Lens.^? listJobsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListJobs where+  type AWSResponse ListJobs = ListJobsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListJobsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..?> "jobSummaries" Core..!@ Prelude.mempty)+      )++instance Prelude.Hashable ListJobs where+  hashWithSalt _salt ListJobs' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` branchName++instance Prelude.NFData ListJobs where+  rnf ListJobs' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf appId+      `Prelude.seq` Prelude.rnf branchName++instance Data.ToHeaders ListJobs where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListJobs where+  toPath ListJobs' {..} =+    Prelude.mconcat+      [ "/apps/",+        Data.toBS appId,+        "/branches/",+        Data.toBS branchName,+        "/jobs"+      ]++instance Data.ToQuery ListJobs where+  toQuery ListJobs' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | The maximum number of records to list in a single response.+--+-- /See:/ 'newListJobsResponse' smart constructor.+data ListJobsResponse = ListJobsResponse'+  { -- | A pagination token. If non-null the pagination token is returned in a+    -- result. Pass its value in another request to retrieve more entries.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The result structure for the list job result request.+    jobSummaries :: [JobSummary]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListJobsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listJobsResponse_nextToken' - A pagination token. If non-null the pagination token is returned in a+-- result. Pass its value in another request to retrieve more entries.+--+-- 'httpStatus', 'listJobsResponse_httpStatus' - The response's http status code.+--+-- 'jobSummaries', 'listJobsResponse_jobSummaries' - The result structure for the list job result request.+newListJobsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListJobsResponse+newListJobsResponse pHttpStatus_ =+  ListJobsResponse'+    { nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_,+      jobSummaries = Prelude.mempty+    }++-- | A pagination token. If non-null the pagination token is returned in a+-- result. Pass its value in another request to retrieve more entries.+listJobsResponse_nextToken :: Lens.Lens' ListJobsResponse (Prelude.Maybe Prelude.Text)+listJobsResponse_nextToken = Lens.lens (\ListJobsResponse' {nextToken} -> nextToken) (\s@ListJobsResponse' {} a -> s {nextToken = a} :: ListJobsResponse)++-- | The response's http status code.+listJobsResponse_httpStatus :: Lens.Lens' ListJobsResponse Prelude.Int+listJobsResponse_httpStatus = Lens.lens (\ListJobsResponse' {httpStatus} -> httpStatus) (\s@ListJobsResponse' {} a -> s {httpStatus = a} :: ListJobsResponse)++-- | The result structure for the list job result request.+listJobsResponse_jobSummaries :: Lens.Lens' ListJobsResponse [JobSummary]+listJobsResponse_jobSummaries = Lens.lens (\ListJobsResponse' {jobSummaries} -> jobSummaries) (\s@ListJobsResponse' {} a -> s {jobSummaries = a} :: ListJobsResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListJobsResponse where+  rnf ListJobsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf jobSummaries
+ gen/Amazonka/Amplify/ListTagsForResource.hs view
@@ -0,0 +1,163 @@+{-# 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.Amplify.ListTagsForResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of tags for a specified Amazon Resource Name (ARN).+module Amazonka.Amplify.ListTagsForResource+  ( -- * Creating a Request+    ListTagsForResource (..),+    newListTagsForResource,++    -- * Request Lenses+    listTagsForResource_resourceArn,++    -- * Destructuring the Response+    ListTagsForResourceResponse (..),+    newListTagsForResourceResponse,++    -- * Response Lenses+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request structure to use to list tags for a resource.+--+-- /See:/ 'newListTagsForResource' smart constructor.+data ListTagsForResource = ListTagsForResource'+  { -- | The Amazon Resource Name (ARN) to use to list tags.+    resourceArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'listTagsForResource_resourceArn' - The Amazon Resource Name (ARN) to use to list tags.+newListTagsForResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  ListTagsForResource+newListTagsForResource pResourceArn_ =+  ListTagsForResource' {resourceArn = pResourceArn_}++-- | The Amazon Resource Name (ARN) to use to list tags.+listTagsForResource_resourceArn :: Lens.Lens' ListTagsForResource Prelude.Text+listTagsForResource_resourceArn = Lens.lens (\ListTagsForResource' {resourceArn} -> resourceArn) (\s@ListTagsForResource' {} a -> s {resourceArn = a} :: ListTagsForResource)++instance Core.AWSRequest ListTagsForResource where+  type+    AWSResponse ListTagsForResource =+      ListTagsForResourceResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListTagsForResourceResponse'+            Prelude.<$> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListTagsForResource where+  hashWithSalt _salt ListTagsForResource' {..} =+    _salt `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData ListTagsForResource where+  rnf ListTagsForResource' {..} =+    Prelude.rnf resourceArn++instance Data.ToHeaders ListTagsForResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListTagsForResource where+  toPath ListTagsForResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery ListTagsForResource where+  toQuery = Prelude.const Prelude.mempty++-- | The response for the list tags for resource request.+--+-- /See:/ 'newListTagsForResourceResponse' smart constructor.+data ListTagsForResourceResponse = ListTagsForResourceResponse'+  { -- | A list of tags for the specified The Amazon Resource Name (ARN).+    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' - A list of tags for the specified The Amazon Resource Name (ARN).+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+  ListTagsForResourceResponse'+    { tags =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of tags for the specified The Amazon Resource Name (ARN).+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/Amplify/ListWebhooks.hs view
@@ -0,0 +1,213 @@+{-# 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.Amplify.ListWebhooks+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of webhooks for an Amplify app.+module Amazonka.Amplify.ListWebhooks+  ( -- * Creating a Request+    ListWebhooks (..),+    newListWebhooks,++    -- * Request Lenses+    listWebhooks_maxResults,+    listWebhooks_nextToken,+    listWebhooks_appId,++    -- * Destructuring the Response+    ListWebhooksResponse (..),+    newListWebhooksResponse,++    -- * Response Lenses+    listWebhooksResponse_nextToken,+    listWebhooksResponse_httpStatus,+    listWebhooksResponse_webhooks,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request structure for the list webhooks request.+--+-- /See:/ 'newListWebhooks' smart constructor.+data ListWebhooks = ListWebhooks'+  { -- | The maximum number of records to list in a single response.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A pagination token. Set to null to start listing webhooks from the+    -- start. If non-null,the pagination token is returned in a result. Pass+    -- its value in here to list more webhooks.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The unique ID for an Amplify app.+    appId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListWebhooks' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listWebhooks_maxResults' - The maximum number of records to list in a single response.+--+-- 'nextToken', 'listWebhooks_nextToken' - A pagination token. Set to null to start listing webhooks from the+-- start. If non-null,the pagination token is returned in a result. Pass+-- its value in here to list more webhooks.+--+-- 'appId', 'listWebhooks_appId' - The unique ID for an Amplify app.+newListWebhooks ::+  -- | 'appId'+  Prelude.Text ->+  ListWebhooks+newListWebhooks pAppId_ =+  ListWebhooks'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      appId = pAppId_+    }++-- | The maximum number of records to list in a single response.+listWebhooks_maxResults :: Lens.Lens' ListWebhooks (Prelude.Maybe Prelude.Natural)+listWebhooks_maxResults = Lens.lens (\ListWebhooks' {maxResults} -> maxResults) (\s@ListWebhooks' {} a -> s {maxResults = a} :: ListWebhooks)++-- | A pagination token. Set to null to start listing webhooks from the+-- start. If non-null,the pagination token is returned in a result. Pass+-- its value in here to list more webhooks.+listWebhooks_nextToken :: Lens.Lens' ListWebhooks (Prelude.Maybe Prelude.Text)+listWebhooks_nextToken = Lens.lens (\ListWebhooks' {nextToken} -> nextToken) (\s@ListWebhooks' {} a -> s {nextToken = a} :: ListWebhooks)++-- | The unique ID for an Amplify app.+listWebhooks_appId :: Lens.Lens' ListWebhooks Prelude.Text+listWebhooks_appId = Lens.lens (\ListWebhooks' {appId} -> appId) (\s@ListWebhooks' {} a -> s {appId = a} :: ListWebhooks)++instance Core.AWSRequest ListWebhooks where+  type AWSResponse ListWebhooks = ListWebhooksResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListWebhooksResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..?> "webhooks" Core..!@ Prelude.mempty)+      )++instance Prelude.Hashable ListWebhooks where+  hashWithSalt _salt ListWebhooks' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` appId++instance Prelude.NFData ListWebhooks where+  rnf ListWebhooks' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf appId++instance Data.ToHeaders ListWebhooks where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListWebhooks where+  toPath ListWebhooks' {..} =+    Prelude.mconcat+      ["/apps/", Data.toBS appId, "/webhooks"]++instance Data.ToQuery ListWebhooks where+  toQuery ListWebhooks' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | The result structure for the list webhooks request.+--+-- /See:/ 'newListWebhooksResponse' smart constructor.+data ListWebhooksResponse = ListWebhooksResponse'+  { -- | A pagination token. If non-null, the pagination token is returned in a+    -- result. Pass its value in another request to retrieve more entries.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | A list of webhooks.+    webhooks :: [Webhook]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListWebhooksResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listWebhooksResponse_nextToken' - A pagination token. If non-null, the pagination token is returned in a+-- result. Pass its value in another request to retrieve more entries.+--+-- 'httpStatus', 'listWebhooksResponse_httpStatus' - The response's http status code.+--+-- 'webhooks', 'listWebhooksResponse_webhooks' - A list of webhooks.+newListWebhooksResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListWebhooksResponse+newListWebhooksResponse pHttpStatus_ =+  ListWebhooksResponse'+    { nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_,+      webhooks = Prelude.mempty+    }++-- | A pagination token. If non-null, the pagination token is returned in a+-- result. Pass its value in another request to retrieve more entries.+listWebhooksResponse_nextToken :: Lens.Lens' ListWebhooksResponse (Prelude.Maybe Prelude.Text)+listWebhooksResponse_nextToken = Lens.lens (\ListWebhooksResponse' {nextToken} -> nextToken) (\s@ListWebhooksResponse' {} a -> s {nextToken = a} :: ListWebhooksResponse)++-- | The response's http status code.+listWebhooksResponse_httpStatus :: Lens.Lens' ListWebhooksResponse Prelude.Int+listWebhooksResponse_httpStatus = Lens.lens (\ListWebhooksResponse' {httpStatus} -> httpStatus) (\s@ListWebhooksResponse' {} a -> s {httpStatus = a} :: ListWebhooksResponse)++-- | A list of webhooks.+listWebhooksResponse_webhooks :: Lens.Lens' ListWebhooksResponse [Webhook]+listWebhooksResponse_webhooks = Lens.lens (\ListWebhooksResponse' {webhooks} -> webhooks) (\s@ListWebhooksResponse' {} a -> s {webhooks = a} :: ListWebhooksResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListWebhooksResponse where+  rnf ListWebhooksResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf webhooks
+ gen/Amazonka/Amplify/StartDeployment.hs view
@@ -0,0 +1,230 @@+{-# 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.Amplify.StartDeployment+-- 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 deployment for a manually deployed app. Manually deployed apps+-- are not connected to a repository.+module Amazonka.Amplify.StartDeployment+  ( -- * Creating a Request+    StartDeployment (..),+    newStartDeployment,++    -- * Request Lenses+    startDeployment_jobId,+    startDeployment_sourceUrl,+    startDeployment_appId,+    startDeployment_branchName,++    -- * Destructuring the Response+    StartDeploymentResponse (..),+    newStartDeploymentResponse,++    -- * Response Lenses+    startDeploymentResponse_httpStatus,+    startDeploymentResponse_jobSummary,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request structure for the start a deployment request.+--+-- /See:/ 'newStartDeployment' smart constructor.+data StartDeployment = StartDeployment'+  { -- | The job ID for this deployment, generated by the create deployment+    -- request.+    jobId :: Prelude.Maybe Prelude.Text,+    -- | The source URL for this deployment, used when calling start deployment+    -- without create deployment. The source URL can be any HTTP GET URL that+    -- is publicly accessible and downloads a single .zip file.+    sourceUrl :: Prelude.Maybe Prelude.Text,+    -- | The unique ID for an Amplify app.+    appId :: Prelude.Text,+    -- | The name for the branch, for the job.+    branchName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartDeployment' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'jobId', 'startDeployment_jobId' - The job ID for this deployment, generated by the create deployment+-- request.+--+-- 'sourceUrl', 'startDeployment_sourceUrl' - The source URL for this deployment, used when calling start deployment+-- without create deployment. The source URL can be any HTTP GET URL that+-- is publicly accessible and downloads a single .zip file.+--+-- 'appId', 'startDeployment_appId' - The unique ID for an Amplify app.+--+-- 'branchName', 'startDeployment_branchName' - The name for the branch, for the job.+newStartDeployment ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'branchName'+  Prelude.Text ->+  StartDeployment+newStartDeployment pAppId_ pBranchName_ =+  StartDeployment'+    { jobId = Prelude.Nothing,+      sourceUrl = Prelude.Nothing,+      appId = pAppId_,+      branchName = pBranchName_+    }++-- | The job ID for this deployment, generated by the create deployment+-- request.+startDeployment_jobId :: Lens.Lens' StartDeployment (Prelude.Maybe Prelude.Text)+startDeployment_jobId = Lens.lens (\StartDeployment' {jobId} -> jobId) (\s@StartDeployment' {} a -> s {jobId = a} :: StartDeployment)++-- | The source URL for this deployment, used when calling start deployment+-- without create deployment. The source URL can be any HTTP GET URL that+-- is publicly accessible and downloads a single .zip file.+startDeployment_sourceUrl :: Lens.Lens' StartDeployment (Prelude.Maybe Prelude.Text)+startDeployment_sourceUrl = Lens.lens (\StartDeployment' {sourceUrl} -> sourceUrl) (\s@StartDeployment' {} a -> s {sourceUrl = a} :: StartDeployment)++-- | The unique ID for an Amplify app.+startDeployment_appId :: Lens.Lens' StartDeployment Prelude.Text+startDeployment_appId = Lens.lens (\StartDeployment' {appId} -> appId) (\s@StartDeployment' {} a -> s {appId = a} :: StartDeployment)++-- | The name for the branch, for the job.+startDeployment_branchName :: Lens.Lens' StartDeployment Prelude.Text+startDeployment_branchName = Lens.lens (\StartDeployment' {branchName} -> branchName) (\s@StartDeployment' {} a -> s {branchName = a} :: StartDeployment)++instance Core.AWSRequest StartDeployment where+  type+    AWSResponse StartDeployment =+      StartDeploymentResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          StartDeploymentResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "jobSummary")+      )++instance Prelude.Hashable StartDeployment where+  hashWithSalt _salt StartDeployment' {..} =+    _salt+      `Prelude.hashWithSalt` jobId+      `Prelude.hashWithSalt` sourceUrl+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` branchName++instance Prelude.NFData StartDeployment where+  rnf StartDeployment' {..} =+    Prelude.rnf jobId+      `Prelude.seq` Prelude.rnf sourceUrl+      `Prelude.seq` Prelude.rnf appId+      `Prelude.seq` Prelude.rnf branchName++instance Data.ToHeaders StartDeployment where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON StartDeployment where+  toJSON StartDeployment' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("jobId" Data..=) Prelude.<$> jobId,+            ("sourceUrl" Data..=) Prelude.<$> sourceUrl+          ]+      )++instance Data.ToPath StartDeployment where+  toPath StartDeployment' {..} =+    Prelude.mconcat+      [ "/apps/",+        Data.toBS appId,+        "/branches/",+        Data.toBS branchName,+        "/deployments/start"+      ]++instance Data.ToQuery StartDeployment where+  toQuery = Prelude.const Prelude.mempty++-- | The result structure for the start a deployment request.+--+-- /See:/ 'newStartDeploymentResponse' smart constructor.+data StartDeploymentResponse = StartDeploymentResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The summary for the job.+    jobSummary :: JobSummary+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartDeploymentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'startDeploymentResponse_httpStatus' - The response's http status code.+--+-- 'jobSummary', 'startDeploymentResponse_jobSummary' - The summary for the job.+newStartDeploymentResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'jobSummary'+  JobSummary ->+  StartDeploymentResponse+newStartDeploymentResponse pHttpStatus_ pJobSummary_ =+  StartDeploymentResponse'+    { httpStatus = pHttpStatus_,+      jobSummary = pJobSummary_+    }++-- | The response's http status code.+startDeploymentResponse_httpStatus :: Lens.Lens' StartDeploymentResponse Prelude.Int+startDeploymentResponse_httpStatus = Lens.lens (\StartDeploymentResponse' {httpStatus} -> httpStatus) (\s@StartDeploymentResponse' {} a -> s {httpStatus = a} :: StartDeploymentResponse)++-- | The summary for the job.+startDeploymentResponse_jobSummary :: Lens.Lens' StartDeploymentResponse JobSummary+startDeploymentResponse_jobSummary = Lens.lens (\StartDeploymentResponse' {jobSummary} -> jobSummary) (\s@StartDeploymentResponse' {} a -> s {jobSummary = a} :: StartDeploymentResponse)++instance Prelude.NFData StartDeploymentResponse where+  rnf StartDeploymentResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf jobSummary
+ gen/Amazonka/Amplify/StartJob.hs view
@@ -0,0 +1,287 @@+{-# 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.Amplify.StartJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Starts a new job for a branch of an Amplify app.+module Amazonka.Amplify.StartJob+  ( -- * Creating a Request+    StartJob (..),+    newStartJob,++    -- * Request Lenses+    startJob_commitId,+    startJob_commitMessage,+    startJob_commitTime,+    startJob_jobId,+    startJob_jobReason,+    startJob_appId,+    startJob_branchName,+    startJob_jobType,++    -- * Destructuring the Response+    StartJobResponse (..),+    newStartJobResponse,++    -- * Response Lenses+    startJobResponse_httpStatus,+    startJobResponse_jobSummary,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request structure for the start job request.+--+-- /See:/ 'newStartJob' smart constructor.+data StartJob = StartJob'+  { -- | The commit ID from a third-party repository provider for the job.+    commitId :: Prelude.Maybe Prelude.Text,+    -- | The commit message from a third-party repository provider for the job.+    commitMessage :: Prelude.Maybe Prelude.Text,+    -- | The commit date and time for the job.+    commitTime :: Prelude.Maybe Data.POSIX,+    -- | The unique ID for an existing job. This is required if the value of+    -- @jobType@ is @RETRY@.+    jobId :: Prelude.Maybe Prelude.Text,+    -- | A descriptive reason for starting this job.+    jobReason :: Prelude.Maybe Prelude.Text,+    -- | The unique ID for an Amplify app.+    appId :: Prelude.Text,+    -- | The branch name for the job.+    branchName :: Prelude.Text,+    -- | Describes the type for the job. The job type @RELEASE@ starts a new job+    -- with the latest change from the specified branch. This value is+    -- available only for apps that are connected to a repository. The job type+    -- @RETRY@ retries an existing job. If the job type value is @RETRY@, the+    -- @jobId@ is also required.+    jobType :: JobType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'commitId', 'startJob_commitId' - The commit ID from a third-party repository provider for the job.+--+-- 'commitMessage', 'startJob_commitMessage' - The commit message from a third-party repository provider for the job.+--+-- 'commitTime', 'startJob_commitTime' - The commit date and time for the job.+--+-- 'jobId', 'startJob_jobId' - The unique ID for an existing job. This is required if the value of+-- @jobType@ is @RETRY@.+--+-- 'jobReason', 'startJob_jobReason' - A descriptive reason for starting this job.+--+-- 'appId', 'startJob_appId' - The unique ID for an Amplify app.+--+-- 'branchName', 'startJob_branchName' - The branch name for the job.+--+-- 'jobType', 'startJob_jobType' - Describes the type for the job. The job type @RELEASE@ starts a new job+-- with the latest change from the specified branch. This value is+-- available only for apps that are connected to a repository. The job type+-- @RETRY@ retries an existing job. If the job type value is @RETRY@, the+-- @jobId@ is also required.+newStartJob ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'branchName'+  Prelude.Text ->+  -- | 'jobType'+  JobType ->+  StartJob+newStartJob pAppId_ pBranchName_ pJobType_ =+  StartJob'+    { commitId = Prelude.Nothing,+      commitMessage = Prelude.Nothing,+      commitTime = Prelude.Nothing,+      jobId = Prelude.Nothing,+      jobReason = Prelude.Nothing,+      appId = pAppId_,+      branchName = pBranchName_,+      jobType = pJobType_+    }++-- | The commit ID from a third-party repository provider for the job.+startJob_commitId :: Lens.Lens' StartJob (Prelude.Maybe Prelude.Text)+startJob_commitId = Lens.lens (\StartJob' {commitId} -> commitId) (\s@StartJob' {} a -> s {commitId = a} :: StartJob)++-- | The commit message from a third-party repository provider for the job.+startJob_commitMessage :: Lens.Lens' StartJob (Prelude.Maybe Prelude.Text)+startJob_commitMessage = Lens.lens (\StartJob' {commitMessage} -> commitMessage) (\s@StartJob' {} a -> s {commitMessage = a} :: StartJob)++-- | The commit date and time for the job.+startJob_commitTime :: Lens.Lens' StartJob (Prelude.Maybe Prelude.UTCTime)+startJob_commitTime = Lens.lens (\StartJob' {commitTime} -> commitTime) (\s@StartJob' {} a -> s {commitTime = a} :: StartJob) Prelude.. Lens.mapping Data._Time++-- | The unique ID for an existing job. This is required if the value of+-- @jobType@ is @RETRY@.+startJob_jobId :: Lens.Lens' StartJob (Prelude.Maybe Prelude.Text)+startJob_jobId = Lens.lens (\StartJob' {jobId} -> jobId) (\s@StartJob' {} a -> s {jobId = a} :: StartJob)++-- | A descriptive reason for starting this job.+startJob_jobReason :: Lens.Lens' StartJob (Prelude.Maybe Prelude.Text)+startJob_jobReason = Lens.lens (\StartJob' {jobReason} -> jobReason) (\s@StartJob' {} a -> s {jobReason = a} :: StartJob)++-- | The unique ID for an Amplify app.+startJob_appId :: Lens.Lens' StartJob Prelude.Text+startJob_appId = Lens.lens (\StartJob' {appId} -> appId) (\s@StartJob' {} a -> s {appId = a} :: StartJob)++-- | The branch name for the job.+startJob_branchName :: Lens.Lens' StartJob Prelude.Text+startJob_branchName = Lens.lens (\StartJob' {branchName} -> branchName) (\s@StartJob' {} a -> s {branchName = a} :: StartJob)++-- | Describes the type for the job. The job type @RELEASE@ starts a new job+-- with the latest change from the specified branch. This value is+-- available only for apps that are connected to a repository. The job type+-- @RETRY@ retries an existing job. If the job type value is @RETRY@, the+-- @jobId@ is also required.+startJob_jobType :: Lens.Lens' StartJob JobType+startJob_jobType = Lens.lens (\StartJob' {jobType} -> jobType) (\s@StartJob' {} a -> s {jobType = a} :: StartJob)++instance Core.AWSRequest StartJob where+  type AWSResponse StartJob = StartJobResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          StartJobResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "jobSummary")+      )++instance Prelude.Hashable StartJob where+  hashWithSalt _salt StartJob' {..} =+    _salt+      `Prelude.hashWithSalt` commitId+      `Prelude.hashWithSalt` commitMessage+      `Prelude.hashWithSalt` commitTime+      `Prelude.hashWithSalt` jobId+      `Prelude.hashWithSalt` jobReason+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` branchName+      `Prelude.hashWithSalt` jobType++instance Prelude.NFData StartJob where+  rnf StartJob' {..} =+    Prelude.rnf commitId+      `Prelude.seq` Prelude.rnf commitMessage+      `Prelude.seq` Prelude.rnf commitTime+      `Prelude.seq` Prelude.rnf jobId+      `Prelude.seq` Prelude.rnf jobReason+      `Prelude.seq` Prelude.rnf appId+      `Prelude.seq` Prelude.rnf branchName+      `Prelude.seq` Prelude.rnf jobType++instance Data.ToHeaders StartJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON StartJob where+  toJSON StartJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("commitId" Data..=) Prelude.<$> commitId,+            ("commitMessage" Data..=) Prelude.<$> commitMessage,+            ("commitTime" Data..=) Prelude.<$> commitTime,+            ("jobId" Data..=) Prelude.<$> jobId,+            ("jobReason" Data..=) Prelude.<$> jobReason,+            Prelude.Just ("jobType" Data..= jobType)+          ]+      )++instance Data.ToPath StartJob where+  toPath StartJob' {..} =+    Prelude.mconcat+      [ "/apps/",+        Data.toBS appId,+        "/branches/",+        Data.toBS branchName,+        "/jobs"+      ]++instance Data.ToQuery StartJob where+  toQuery = Prelude.const Prelude.mempty++-- | The result structure for the run job request.+--+-- /See:/ 'newStartJobResponse' smart constructor.+data StartJobResponse = StartJobResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The summary for the job.+    jobSummary :: JobSummary+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'startJobResponse_httpStatus' - The response's http status code.+--+-- 'jobSummary', 'startJobResponse_jobSummary' - The summary for the job.+newStartJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'jobSummary'+  JobSummary ->+  StartJobResponse+newStartJobResponse pHttpStatus_ pJobSummary_ =+  StartJobResponse'+    { httpStatus = pHttpStatus_,+      jobSummary = pJobSummary_+    }++-- | The response's http status code.+startJobResponse_httpStatus :: Lens.Lens' StartJobResponse Prelude.Int+startJobResponse_httpStatus = Lens.lens (\StartJobResponse' {httpStatus} -> httpStatus) (\s@StartJobResponse' {} a -> s {httpStatus = a} :: StartJobResponse)++-- | The summary for the job.+startJobResponse_jobSummary :: Lens.Lens' StartJobResponse JobSummary+startJobResponse_jobSummary = Lens.lens (\StartJobResponse' {jobSummary} -> jobSummary) (\s@StartJobResponse' {} a -> s {jobSummary = a} :: StartJobResponse)++instance Prelude.NFData StartJobResponse where+  rnf StartJobResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf jobSummary
+ gen/Amazonka/Amplify/StopJob.hs view
@@ -0,0 +1,201 @@+{-# 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.Amplify.StopJob+-- 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 job that is in progress for a branch of an Amplify app.+module Amazonka.Amplify.StopJob+  ( -- * Creating a Request+    StopJob (..),+    newStopJob,++    -- * Request Lenses+    stopJob_appId,+    stopJob_branchName,+    stopJob_jobId,++    -- * Destructuring the Response+    StopJobResponse (..),+    newStopJobResponse,++    -- * Response Lenses+    stopJobResponse_httpStatus,+    stopJobResponse_jobSummary,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request structure for the stop job request.+--+-- /See:/ 'newStopJob' smart constructor.+data StopJob = StopJob'+  { -- | The unique ID for an Amplify app.+    appId :: Prelude.Text,+    -- | The name for the branch, for the job.+    branchName :: Prelude.Text,+    -- | The unique id for the job.+    jobId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StopJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'appId', 'stopJob_appId' - The unique ID for an Amplify app.+--+-- 'branchName', 'stopJob_branchName' - The name for the branch, for the job.+--+-- 'jobId', 'stopJob_jobId' - The unique id for the job.+newStopJob ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'branchName'+  Prelude.Text ->+  -- | 'jobId'+  Prelude.Text ->+  StopJob+newStopJob pAppId_ pBranchName_ pJobId_ =+  StopJob'+    { appId = pAppId_,+      branchName = pBranchName_,+      jobId = pJobId_+    }++-- | The unique ID for an Amplify app.+stopJob_appId :: Lens.Lens' StopJob Prelude.Text+stopJob_appId = Lens.lens (\StopJob' {appId} -> appId) (\s@StopJob' {} a -> s {appId = a} :: StopJob)++-- | The name for the branch, for the job.+stopJob_branchName :: Lens.Lens' StopJob Prelude.Text+stopJob_branchName = Lens.lens (\StopJob' {branchName} -> branchName) (\s@StopJob' {} a -> s {branchName = a} :: StopJob)++-- | The unique id for the job.+stopJob_jobId :: Lens.Lens' StopJob Prelude.Text+stopJob_jobId = Lens.lens (\StopJob' {jobId} -> jobId) (\s@StopJob' {} a -> s {jobId = a} :: StopJob)++instance Core.AWSRequest StopJob where+  type AWSResponse StopJob = StopJobResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          StopJobResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "jobSummary")+      )++instance Prelude.Hashable StopJob where+  hashWithSalt _salt StopJob' {..} =+    _salt+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` branchName+      `Prelude.hashWithSalt` jobId++instance Prelude.NFData StopJob where+  rnf StopJob' {..} =+    Prelude.rnf appId+      `Prelude.seq` Prelude.rnf branchName+      `Prelude.seq` Prelude.rnf jobId++instance Data.ToHeaders StopJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath StopJob where+  toPath StopJob' {..} =+    Prelude.mconcat+      [ "/apps/",+        Data.toBS appId,+        "/branches/",+        Data.toBS branchName,+        "/jobs/",+        Data.toBS jobId,+        "/stop"+      ]++instance Data.ToQuery StopJob where+  toQuery = Prelude.const Prelude.mempty++-- | The result structure for the stop job request.+--+-- /See:/ 'newStopJobResponse' smart constructor.+data StopJobResponse = StopJobResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The summary for the job.+    jobSummary :: JobSummary+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StopJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'stopJobResponse_httpStatus' - The response's http status code.+--+-- 'jobSummary', 'stopJobResponse_jobSummary' - The summary for the job.+newStopJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'jobSummary'+  JobSummary ->+  StopJobResponse+newStopJobResponse pHttpStatus_ pJobSummary_ =+  StopJobResponse'+    { httpStatus = pHttpStatus_,+      jobSummary = pJobSummary_+    }++-- | The response's http status code.+stopJobResponse_httpStatus :: Lens.Lens' StopJobResponse Prelude.Int+stopJobResponse_httpStatus = Lens.lens (\StopJobResponse' {httpStatus} -> httpStatus) (\s@StopJobResponse' {} a -> s {httpStatus = a} :: StopJobResponse)++-- | The summary for the job.+stopJobResponse_jobSummary :: Lens.Lens' StopJobResponse JobSummary+stopJobResponse_jobSummary = Lens.lens (\StopJobResponse' {jobSummary} -> jobSummary) (\s@StopJobResponse' {} a -> s {jobSummary = a} :: StopJobResponse)++instance Prelude.NFData StopJobResponse where+  rnf StopJobResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf jobSummary
+ gen/Amazonka/Amplify/TagResource.hs view
@@ -0,0 +1,167 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Amplify.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)+--+-- Tags the resource with a tag key and value.+module Amazonka.Amplify.TagResource+  ( -- * Creating a Request+    TagResource (..),+    newTagResource,++    -- * Request Lenses+    tagResource_resourceArn,+    tagResource_tags,++    -- * Destructuring the Response+    TagResourceResponse (..),+    newTagResourceResponse,++    -- * Response Lenses+    tagResourceResponse_httpStatus,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request structure to tag a resource with a tag key and value.+--+-- /See:/ 'newTagResource' smart constructor.+data TagResource = TagResource'+  { -- | The Amazon Resource Name (ARN) to use to tag a resource.+    resourceArn :: Prelude.Text,+    -- | The tags used to tag the resource.+    tags :: Prelude.HashMap Prelude.Text Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'tagResource_resourceArn' - The Amazon Resource Name (ARN) to use to tag a resource.+--+-- 'tags', 'tagResource_tags' - The tags used to tag the resource.+newTagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  TagResource+newTagResource pResourceArn_ =+  TagResource'+    { resourceArn = pResourceArn_,+      tags = Prelude.mempty+    }++-- | The Amazon Resource Name (ARN) to use to tag a resource.+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++-- | The tags used to tag the resource.+tagResource_tags :: Lens.Lens' TagResource (Prelude.HashMap Prelude.Text Prelude.Text)+tagResource_tags = Lens.lens (\TagResource' {tags} -> tags) (\s@TagResource' {} a -> s {tags = a} :: TagResource) Prelude.. Lens.coerced++instance Core.AWSRequest TagResource where+  type AWSResponse TagResource = TagResourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          TagResourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable TagResource where+  hashWithSalt _salt TagResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` tags++instance Prelude.NFData TagResource where+  rnf TagResource' {..} =+    Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf tags++instance Data.ToHeaders TagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON TagResource where+  toJSON TagResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("tags" Data..= tags)]+      )++instance Data.ToPath TagResource where+  toPath TagResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery TagResource where+  toQuery = Prelude.const Prelude.mempty++-- | The response for the tag resource request.+--+-- /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/Amplify/Types.hs view
@@ -0,0 +1,374 @@+{-# 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.Amplify.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.Amplify.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _BadRequestException,+    _DependentServiceFailureException,+    _InternalFailureException,+    _LimitExceededException,+    _NotFoundException,+    _ResourceNotFoundException,+    _UnauthorizedException,++    -- * DomainStatus+    DomainStatus (..),++    -- * JobStatus+    JobStatus (..),++    -- * JobType+    JobType (..),++    -- * Platform+    Platform (..),++    -- * RepositoryCloneMethod+    RepositoryCloneMethod (..),++    -- * Stage+    Stage (..),++    -- * App+    App (..),+    newApp,+    app_autoBranchCreationConfig,+    app_autoBranchCreationPatterns,+    app_basicAuthCredentials,+    app_buildSpec,+    app_customHeaders,+    app_customRules,+    app_enableAutoBranchCreation,+    app_enableBranchAutoDeletion,+    app_iamServiceRoleArn,+    app_productionBranch,+    app_repositoryCloneMethod,+    app_tags,+    app_appId,+    app_appArn,+    app_name,+    app_description,+    app_repository,+    app_platform,+    app_createTime,+    app_updateTime,+    app_environmentVariables,+    app_defaultDomain,+    app_enableBranchAutoBuild,+    app_enableBasicAuth,++    -- * Artifact+    Artifact (..),+    newArtifact,+    artifact_artifactFileName,+    artifact_artifactId,++    -- * AutoBranchCreationConfig+    AutoBranchCreationConfig (..),+    newAutoBranchCreationConfig,+    autoBranchCreationConfig_basicAuthCredentials,+    autoBranchCreationConfig_buildSpec,+    autoBranchCreationConfig_enableAutoBuild,+    autoBranchCreationConfig_enableBasicAuth,+    autoBranchCreationConfig_enablePerformanceMode,+    autoBranchCreationConfig_enablePullRequestPreview,+    autoBranchCreationConfig_environmentVariables,+    autoBranchCreationConfig_framework,+    autoBranchCreationConfig_pullRequestEnvironmentName,+    autoBranchCreationConfig_stage,++    -- * BackendEnvironment+    BackendEnvironment (..),+    newBackendEnvironment,+    backendEnvironment_deploymentArtifacts,+    backendEnvironment_stackName,+    backendEnvironment_backendEnvironmentArn,+    backendEnvironment_environmentName,+    backendEnvironment_createTime,+    backendEnvironment_updateTime,++    -- * Branch+    Branch (..),+    newBranch,+    branch_associatedResources,+    branch_backendEnvironmentArn,+    branch_basicAuthCredentials,+    branch_buildSpec,+    branch_destinationBranch,+    branch_enablePerformanceMode,+    branch_pullRequestEnvironmentName,+    branch_sourceBranch,+    branch_tags,+    branch_thumbnailUrl,+    branch_branchArn,+    branch_branchName,+    branch_description,+    branch_stage,+    branch_displayName,+    branch_enableNotification,+    branch_createTime,+    branch_updateTime,+    branch_environmentVariables,+    branch_enableAutoBuild,+    branch_customDomains,+    branch_framework,+    branch_activeJobId,+    branch_totalNumberOfJobs,+    branch_enableBasicAuth,+    branch_ttl,+    branch_enablePullRequestPreview,++    -- * CustomRule+    CustomRule (..),+    newCustomRule,+    customRule_condition,+    customRule_status,+    customRule_source,+    customRule_target,++    -- * DomainAssociation+    DomainAssociation (..),+    newDomainAssociation,+    domainAssociation_autoSubDomainCreationPatterns,+    domainAssociation_autoSubDomainIAMRole,+    domainAssociation_certificateVerificationDNSRecord,+    domainAssociation_domainAssociationArn,+    domainAssociation_domainName,+    domainAssociation_enableAutoSubDomain,+    domainAssociation_domainStatus,+    domainAssociation_statusReason,+    domainAssociation_subDomains,++    -- * Job+    Job (..),+    newJob,+    job_summary,+    job_steps,++    -- * JobSummary+    JobSummary (..),+    newJobSummary,+    jobSummary_endTime,+    jobSummary_jobArn,+    jobSummary_jobId,+    jobSummary_commitId,+    jobSummary_commitMessage,+    jobSummary_commitTime,+    jobSummary_startTime,+    jobSummary_status,+    jobSummary_jobType,++    -- * ProductionBranch+    ProductionBranch (..),+    newProductionBranch,+    productionBranch_branchName,+    productionBranch_lastDeployTime,+    productionBranch_status,+    productionBranch_thumbnailUrl,++    -- * Step+    Step (..),+    newStep,+    step_artifactsUrl,+    step_context,+    step_logUrl,+    step_screenshots,+    step_statusReason,+    step_testArtifactsUrl,+    step_testConfigUrl,+    step_stepName,+    step_startTime,+    step_status,+    step_endTime,++    -- * SubDomain+    SubDomain (..),+    newSubDomain,+    subDomain_subDomainSetting,+    subDomain_verified,+    subDomain_dnsRecord,++    -- * SubDomainSetting+    SubDomainSetting (..),+    newSubDomainSetting,+    subDomainSetting_prefix,+    subDomainSetting_branchName,++    -- * Webhook+    Webhook (..),+    newWebhook,+    webhook_webhookArn,+    webhook_webhookId,+    webhook_webhookUrl,+    webhook_branchName,+    webhook_description,+    webhook_createTime,+    webhook_updateTime,+  )+where++import Amazonka.Amplify.Types.App+import Amazonka.Amplify.Types.Artifact+import Amazonka.Amplify.Types.AutoBranchCreationConfig+import Amazonka.Amplify.Types.BackendEnvironment+import Amazonka.Amplify.Types.Branch+import Amazonka.Amplify.Types.CustomRule+import Amazonka.Amplify.Types.DomainAssociation+import Amazonka.Amplify.Types.DomainStatus+import Amazonka.Amplify.Types.Job+import Amazonka.Amplify.Types.JobStatus+import Amazonka.Amplify.Types.JobSummary+import Amazonka.Amplify.Types.JobType+import Amazonka.Amplify.Types.Platform+import Amazonka.Amplify.Types.ProductionBranch+import Amazonka.Amplify.Types.RepositoryCloneMethod+import Amazonka.Amplify.Types.Stage+import Amazonka.Amplify.Types.Step+import Amazonka.Amplify.Types.SubDomain+import Amazonka.Amplify.Types.SubDomainSetting+import Amazonka.Amplify.Types.Webhook+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2017-07-25@ of the Amazon Amplify SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "Amplify",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "amplify",+      Core.signingName = "amplify",+      Core.version = "2017-07-25",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "Amplify",+      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++-- | A request contains unexpected data.+_BadRequestException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_BadRequestException =+  Core._MatchServiceError+    defaultService+    "BadRequestException"+    Prelude.. Core.hasStatus 400++-- | An operation failed because a dependent service threw an exception.+_DependentServiceFailureException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_DependentServiceFailureException =+  Core._MatchServiceError+    defaultService+    "DependentServiceFailureException"+    Prelude.. Core.hasStatus 503++-- | The service failed to perform an operation due to an internal issue.+_InternalFailureException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalFailureException =+  Core._MatchServiceError+    defaultService+    "InternalFailureException"+    Prelude.. Core.hasStatus 500++-- | A resource could not be created because service quotas were exceeded.+_LimitExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_LimitExceededException =+  Core._MatchServiceError+    defaultService+    "LimitExceededException"+    Prelude.. Core.hasStatus 429++-- | An entity was not found during an operation.+_NotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_NotFoundException =+  Core._MatchServiceError+    defaultService+    "NotFoundException"+    Prelude.. Core.hasStatus 404++-- | An operation failed due to a non-existent resource.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+  Core._MatchServiceError+    defaultService+    "ResourceNotFoundException"+    Prelude.. Core.hasStatus 404++-- | An operation failed due to a lack of access.+_UnauthorizedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_UnauthorizedException =+  Core._MatchServiceError+    defaultService+    "UnauthorizedException"+    Prelude.. Core.hasStatus 401
+ gen/Amazonka/Amplify/Types/App.hs view
@@ -0,0 +1,444 @@+{-# 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.Amplify.Types.App+-- 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.Amplify.Types.App where++import Amazonka.Amplify.Types.AutoBranchCreationConfig+import Amazonka.Amplify.Types.CustomRule+import Amazonka.Amplify.Types.Platform+import Amazonka.Amplify.Types.ProductionBranch+import Amazonka.Amplify.Types.RepositoryCloneMethod+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++-- | Represents the different branches of a repository for building,+-- deploying, and hosting an Amplify app.+--+-- /See:/ 'newApp' smart constructor.+data App = App'+  { -- | Describes the automated branch creation configuration for the Amplify+    -- app.+    autoBranchCreationConfig :: Prelude.Maybe AutoBranchCreationConfig,+    -- | Describes the automated branch creation glob patterns for the Amplify+    -- app.+    autoBranchCreationPatterns :: Prelude.Maybe [Prelude.Text],+    -- | The basic authorization credentials for branches for the Amplify app.+    -- You must base64-encode the authorization credentials and provide them in+    -- the format @user:password@.+    basicAuthCredentials :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | Describes the content of the build specification (build spec) for the+    -- Amplify app.+    buildSpec :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | Describes the custom HTTP headers for the Amplify app.+    customHeaders :: Prelude.Maybe Prelude.Text,+    -- | Describes the custom redirect and rewrite rules for the Amplify app.+    customRules :: Prelude.Maybe [CustomRule],+    -- | Enables automated branch creation for the Amplify app.+    enableAutoBranchCreation :: Prelude.Maybe Prelude.Bool,+    -- | Automatically disconnect a branch in the Amplify Console when you delete+    -- a branch from your Git repository.+    enableBranchAutoDeletion :: Prelude.Maybe Prelude.Bool,+    -- | The AWS Identity and Access Management (IAM) service role for the Amazon+    -- Resource Name (ARN) of the Amplify app.+    iamServiceRoleArn :: Prelude.Maybe Prelude.Text,+    -- | Describes the information about a production branch of the Amplify app.+    productionBranch :: Prelude.Maybe ProductionBranch,+    -- | This is for internal use.+    --+    -- The Amplify service uses this parameter to specify the authentication+    -- protocol to use to access the Git repository for an Amplify app. Amplify+    -- specifies @TOKEN@ for a GitHub repository, @SIGV4@ for an Amazon Web+    -- Services CodeCommit repository, and @SSH@ for GitLab and Bitbucket+    -- repositories.+    repositoryCloneMethod :: Prelude.Maybe RepositoryCloneMethod,+    -- | The tag for the Amplify app.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The unique ID of the Amplify app.+    appId :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the Amplify app.+    appArn :: Prelude.Text,+    -- | The name for the Amplify app.+    name :: Prelude.Text,+    -- | The description for the Amplify app.+    description :: Prelude.Text,+    -- | The Git repository for the Amplify app.+    repository :: Prelude.Text,+    -- | The platform for the Amplify app. For a static app, set the platform+    -- type to @WEB@. For a dynamic server-side rendered (SSR) app, set the+    -- platform type to @WEB_COMPUTE@. For an app requiring Amplify Hosting\'s+    -- original SSR support only, set the platform type to @WEB_DYNAMIC@.+    platform :: Platform,+    -- | Creates a date and time for the Amplify app.+    createTime :: Data.POSIX,+    -- | Updates the date and time for the Amplify app.+    updateTime :: Data.POSIX,+    -- | The environment variables for the Amplify app.+    environmentVariables :: Prelude.HashMap Prelude.Text Prelude.Text,+    -- | The default domain for the Amplify app.+    defaultDomain :: Prelude.Text,+    -- | Enables the auto-building of branches for the Amplify app.+    enableBranchAutoBuild :: Prelude.Bool,+    -- | Enables basic authorization for the Amplify app\'s branches.+    enableBasicAuth :: Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'App' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'autoBranchCreationConfig', 'app_autoBranchCreationConfig' - Describes the automated branch creation configuration for the Amplify+-- app.+--+-- 'autoBranchCreationPatterns', 'app_autoBranchCreationPatterns' - Describes the automated branch creation glob patterns for the Amplify+-- app.+--+-- 'basicAuthCredentials', 'app_basicAuthCredentials' - The basic authorization credentials for branches for the Amplify app.+-- You must base64-encode the authorization credentials and provide them in+-- the format @user:password@.+--+-- 'buildSpec', 'app_buildSpec' - Describes the content of the build specification (build spec) for the+-- Amplify app.+--+-- 'customHeaders', 'app_customHeaders' - Describes the custom HTTP headers for the Amplify app.+--+-- 'customRules', 'app_customRules' - Describes the custom redirect and rewrite rules for the Amplify app.+--+-- 'enableAutoBranchCreation', 'app_enableAutoBranchCreation' - Enables automated branch creation for the Amplify app.+--+-- 'enableBranchAutoDeletion', 'app_enableBranchAutoDeletion' - Automatically disconnect a branch in the Amplify Console when you delete+-- a branch from your Git repository.+--+-- 'iamServiceRoleArn', 'app_iamServiceRoleArn' - The AWS Identity and Access Management (IAM) service role for the Amazon+-- Resource Name (ARN) of the Amplify app.+--+-- 'productionBranch', 'app_productionBranch' - Describes the information about a production branch of the Amplify app.+--+-- 'repositoryCloneMethod', 'app_repositoryCloneMethod' - This is for internal use.+--+-- The Amplify service uses this parameter to specify the authentication+-- protocol to use to access the Git repository for an Amplify app. Amplify+-- specifies @TOKEN@ for a GitHub repository, @SIGV4@ for an Amazon Web+-- Services CodeCommit repository, and @SSH@ for GitLab and Bitbucket+-- repositories.+--+-- 'tags', 'app_tags' - The tag for the Amplify app.+--+-- 'appId', 'app_appId' - The unique ID of the Amplify app.+--+-- 'appArn', 'app_appArn' - The Amazon Resource Name (ARN) of the Amplify app.+--+-- 'name', 'app_name' - The name for the Amplify app.+--+-- 'description', 'app_description' - The description for the Amplify app.+--+-- 'repository', 'app_repository' - The Git repository for the Amplify app.+--+-- 'platform', 'app_platform' - The platform for the Amplify app. For a static app, set the platform+-- type to @WEB@. For a dynamic server-side rendered (SSR) app, set the+-- platform type to @WEB_COMPUTE@. For an app requiring Amplify Hosting\'s+-- original SSR support only, set the platform type to @WEB_DYNAMIC@.+--+-- 'createTime', 'app_createTime' - Creates a date and time for the Amplify app.+--+-- 'updateTime', 'app_updateTime' - Updates the date and time for the Amplify app.+--+-- 'environmentVariables', 'app_environmentVariables' - The environment variables for the Amplify app.+--+-- 'defaultDomain', 'app_defaultDomain' - The default domain for the Amplify app.+--+-- 'enableBranchAutoBuild', 'app_enableBranchAutoBuild' - Enables the auto-building of branches for the Amplify app.+--+-- 'enableBasicAuth', 'app_enableBasicAuth' - Enables basic authorization for the Amplify app\'s branches.+newApp ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'appArn'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  -- | 'description'+  Prelude.Text ->+  -- | 'repository'+  Prelude.Text ->+  -- | 'platform'+  Platform ->+  -- | 'createTime'+  Prelude.UTCTime ->+  -- | 'updateTime'+  Prelude.UTCTime ->+  -- | 'defaultDomain'+  Prelude.Text ->+  -- | 'enableBranchAutoBuild'+  Prelude.Bool ->+  -- | 'enableBasicAuth'+  Prelude.Bool ->+  App+newApp+  pAppId_+  pAppArn_+  pName_+  pDescription_+  pRepository_+  pPlatform_+  pCreateTime_+  pUpdateTime_+  pDefaultDomain_+  pEnableBranchAutoBuild_+  pEnableBasicAuth_ =+    App'+      { autoBranchCreationConfig = Prelude.Nothing,+        autoBranchCreationPatterns = Prelude.Nothing,+        basicAuthCredentials = Prelude.Nothing,+        buildSpec = Prelude.Nothing,+        customHeaders = Prelude.Nothing,+        customRules = Prelude.Nothing,+        enableAutoBranchCreation = Prelude.Nothing,+        enableBranchAutoDeletion = Prelude.Nothing,+        iamServiceRoleArn = Prelude.Nothing,+        productionBranch = Prelude.Nothing,+        repositoryCloneMethod = Prelude.Nothing,+        tags = Prelude.Nothing,+        appId = pAppId_,+        appArn = pAppArn_,+        name = pName_,+        description = pDescription_,+        repository = pRepository_,+        platform = pPlatform_,+        createTime = Data._Time Lens.# pCreateTime_,+        updateTime = Data._Time Lens.# pUpdateTime_,+        environmentVariables = Prelude.mempty,+        defaultDomain = pDefaultDomain_,+        enableBranchAutoBuild = pEnableBranchAutoBuild_,+        enableBasicAuth = pEnableBasicAuth_+      }++-- | Describes the automated branch creation configuration for the Amplify+-- app.+app_autoBranchCreationConfig :: Lens.Lens' App (Prelude.Maybe AutoBranchCreationConfig)+app_autoBranchCreationConfig = Lens.lens (\App' {autoBranchCreationConfig} -> autoBranchCreationConfig) (\s@App' {} a -> s {autoBranchCreationConfig = a} :: App)++-- | Describes the automated branch creation glob patterns for the Amplify+-- app.+app_autoBranchCreationPatterns :: Lens.Lens' App (Prelude.Maybe [Prelude.Text])+app_autoBranchCreationPatterns = Lens.lens (\App' {autoBranchCreationPatterns} -> autoBranchCreationPatterns) (\s@App' {} a -> s {autoBranchCreationPatterns = a} :: App) Prelude.. Lens.mapping Lens.coerced++-- | The basic authorization credentials for branches for the Amplify app.+-- You must base64-encode the authorization credentials and provide them in+-- the format @user:password@.+app_basicAuthCredentials :: Lens.Lens' App (Prelude.Maybe Prelude.Text)+app_basicAuthCredentials = Lens.lens (\App' {basicAuthCredentials} -> basicAuthCredentials) (\s@App' {} a -> s {basicAuthCredentials = a} :: App) Prelude.. Lens.mapping Data._Sensitive++-- | Describes the content of the build specification (build spec) for the+-- Amplify app.+app_buildSpec :: Lens.Lens' App (Prelude.Maybe Prelude.Text)+app_buildSpec = Lens.lens (\App' {buildSpec} -> buildSpec) (\s@App' {} a -> s {buildSpec = a} :: App) Prelude.. Lens.mapping Data._Sensitive++-- | Describes the custom HTTP headers for the Amplify app.+app_customHeaders :: Lens.Lens' App (Prelude.Maybe Prelude.Text)+app_customHeaders = Lens.lens (\App' {customHeaders} -> customHeaders) (\s@App' {} a -> s {customHeaders = a} :: App)++-- | Describes the custom redirect and rewrite rules for the Amplify app.+app_customRules :: Lens.Lens' App (Prelude.Maybe [CustomRule])+app_customRules = Lens.lens (\App' {customRules} -> customRules) (\s@App' {} a -> s {customRules = a} :: App) Prelude.. Lens.mapping Lens.coerced++-- | Enables automated branch creation for the Amplify app.+app_enableAutoBranchCreation :: Lens.Lens' App (Prelude.Maybe Prelude.Bool)+app_enableAutoBranchCreation = Lens.lens (\App' {enableAutoBranchCreation} -> enableAutoBranchCreation) (\s@App' {} a -> s {enableAutoBranchCreation = a} :: App)++-- | Automatically disconnect a branch in the Amplify Console when you delete+-- a branch from your Git repository.+app_enableBranchAutoDeletion :: Lens.Lens' App (Prelude.Maybe Prelude.Bool)+app_enableBranchAutoDeletion = Lens.lens (\App' {enableBranchAutoDeletion} -> enableBranchAutoDeletion) (\s@App' {} a -> s {enableBranchAutoDeletion = a} :: App)++-- | The AWS Identity and Access Management (IAM) service role for the Amazon+-- Resource Name (ARN) of the Amplify app.+app_iamServiceRoleArn :: Lens.Lens' App (Prelude.Maybe Prelude.Text)+app_iamServiceRoleArn = Lens.lens (\App' {iamServiceRoleArn} -> iamServiceRoleArn) (\s@App' {} a -> s {iamServiceRoleArn = a} :: App)++-- | Describes the information about a production branch of the Amplify app.+app_productionBranch :: Lens.Lens' App (Prelude.Maybe ProductionBranch)+app_productionBranch = Lens.lens (\App' {productionBranch} -> productionBranch) (\s@App' {} a -> s {productionBranch = a} :: App)++-- | This is for internal use.+--+-- The Amplify service uses this parameter to specify the authentication+-- protocol to use to access the Git repository for an Amplify app. Amplify+-- specifies @TOKEN@ for a GitHub repository, @SIGV4@ for an Amazon Web+-- Services CodeCommit repository, and @SSH@ for GitLab and Bitbucket+-- repositories.+app_repositoryCloneMethod :: Lens.Lens' App (Prelude.Maybe RepositoryCloneMethod)+app_repositoryCloneMethod = Lens.lens (\App' {repositoryCloneMethod} -> repositoryCloneMethod) (\s@App' {} a -> s {repositoryCloneMethod = a} :: App)++-- | The tag for the Amplify app.+app_tags :: Lens.Lens' App (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+app_tags = Lens.lens (\App' {tags} -> tags) (\s@App' {} a -> s {tags = a} :: App) Prelude.. Lens.mapping Lens.coerced++-- | The unique ID of the Amplify app.+app_appId :: Lens.Lens' App Prelude.Text+app_appId = Lens.lens (\App' {appId} -> appId) (\s@App' {} a -> s {appId = a} :: App)++-- | The Amazon Resource Name (ARN) of the Amplify app.+app_appArn :: Lens.Lens' App Prelude.Text+app_appArn = Lens.lens (\App' {appArn} -> appArn) (\s@App' {} a -> s {appArn = a} :: App)++-- | The name for the Amplify app.+app_name :: Lens.Lens' App Prelude.Text+app_name = Lens.lens (\App' {name} -> name) (\s@App' {} a -> s {name = a} :: App)++-- | The description for the Amplify app.+app_description :: Lens.Lens' App Prelude.Text+app_description = Lens.lens (\App' {description} -> description) (\s@App' {} a -> s {description = a} :: App)++-- | The Git repository for the Amplify app.+app_repository :: Lens.Lens' App Prelude.Text+app_repository = Lens.lens (\App' {repository} -> repository) (\s@App' {} a -> s {repository = a} :: App)++-- | The platform for the Amplify app. For a static app, set the platform+-- type to @WEB@. For a dynamic server-side rendered (SSR) app, set the+-- platform type to @WEB_COMPUTE@. For an app requiring Amplify Hosting\'s+-- original SSR support only, set the platform type to @WEB_DYNAMIC@.+app_platform :: Lens.Lens' App Platform+app_platform = Lens.lens (\App' {platform} -> platform) (\s@App' {} a -> s {platform = a} :: App)++-- | Creates a date and time for the Amplify app.+app_createTime :: Lens.Lens' App Prelude.UTCTime+app_createTime = Lens.lens (\App' {createTime} -> createTime) (\s@App' {} a -> s {createTime = a} :: App) Prelude.. Data._Time++-- | Updates the date and time for the Amplify app.+app_updateTime :: Lens.Lens' App Prelude.UTCTime+app_updateTime = Lens.lens (\App' {updateTime} -> updateTime) (\s@App' {} a -> s {updateTime = a} :: App) Prelude.. Data._Time++-- | The environment variables for the Amplify app.+app_environmentVariables :: Lens.Lens' App (Prelude.HashMap Prelude.Text Prelude.Text)+app_environmentVariables = Lens.lens (\App' {environmentVariables} -> environmentVariables) (\s@App' {} a -> s {environmentVariables = a} :: App) Prelude.. Lens.coerced++-- | The default domain for the Amplify app.+app_defaultDomain :: Lens.Lens' App Prelude.Text+app_defaultDomain = Lens.lens (\App' {defaultDomain} -> defaultDomain) (\s@App' {} a -> s {defaultDomain = a} :: App)++-- | Enables the auto-building of branches for the Amplify app.+app_enableBranchAutoBuild :: Lens.Lens' App Prelude.Bool+app_enableBranchAutoBuild = Lens.lens (\App' {enableBranchAutoBuild} -> enableBranchAutoBuild) (\s@App' {} a -> s {enableBranchAutoBuild = a} :: App)++-- | Enables basic authorization for the Amplify app\'s branches.+app_enableBasicAuth :: Lens.Lens' App Prelude.Bool+app_enableBasicAuth = Lens.lens (\App' {enableBasicAuth} -> enableBasicAuth) (\s@App' {} a -> s {enableBasicAuth = a} :: App)++instance Data.FromJSON App where+  parseJSON =+    Data.withObject+      "App"+      ( \x ->+          App'+            Prelude.<$> (x Data..:? "autoBranchCreationConfig")+            Prelude.<*> ( x+                            Data..:? "autoBranchCreationPatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "basicAuthCredentials")+            Prelude.<*> (x Data..:? "buildSpec")+            Prelude.<*> (x Data..:? "customHeaders")+            Prelude.<*> (x Data..:? "customRules" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "enableAutoBranchCreation")+            Prelude.<*> (x Data..:? "enableBranchAutoDeletion")+            Prelude.<*> (x Data..:? "iamServiceRoleArn")+            Prelude.<*> (x Data..:? "productionBranch")+            Prelude.<*> (x Data..:? "repositoryCloneMethod")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "appId")+            Prelude.<*> (x Data..: "appArn")+            Prelude.<*> (x Data..: "name")+            Prelude.<*> (x Data..: "description")+            Prelude.<*> (x Data..: "repository")+            Prelude.<*> (x Data..: "platform")+            Prelude.<*> (x Data..: "createTime")+            Prelude.<*> (x Data..: "updateTime")+            Prelude.<*> ( x+                            Data..:? "environmentVariables"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..: "defaultDomain")+            Prelude.<*> (x Data..: "enableBranchAutoBuild")+            Prelude.<*> (x Data..: "enableBasicAuth")+      )++instance Prelude.Hashable App where+  hashWithSalt _salt App' {..} =+    _salt+      `Prelude.hashWithSalt` autoBranchCreationConfig+      `Prelude.hashWithSalt` autoBranchCreationPatterns+      `Prelude.hashWithSalt` basicAuthCredentials+      `Prelude.hashWithSalt` buildSpec+      `Prelude.hashWithSalt` customHeaders+      `Prelude.hashWithSalt` customRules+      `Prelude.hashWithSalt` enableAutoBranchCreation+      `Prelude.hashWithSalt` enableBranchAutoDeletion+      `Prelude.hashWithSalt` iamServiceRoleArn+      `Prelude.hashWithSalt` productionBranch+      `Prelude.hashWithSalt` repositoryCloneMethod+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` appArn+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` repository+      `Prelude.hashWithSalt` platform+      `Prelude.hashWithSalt` createTime+      `Prelude.hashWithSalt` updateTime+      `Prelude.hashWithSalt` environmentVariables+      `Prelude.hashWithSalt` defaultDomain+      `Prelude.hashWithSalt` enableBranchAutoBuild+      `Prelude.hashWithSalt` enableBasicAuth++instance Prelude.NFData App where+  rnf App' {..} =+    Prelude.rnf autoBranchCreationConfig+      `Prelude.seq` Prelude.rnf autoBranchCreationPatterns+      `Prelude.seq` Prelude.rnf basicAuthCredentials+      `Prelude.seq` Prelude.rnf buildSpec+      `Prelude.seq` Prelude.rnf customHeaders+      `Prelude.seq` Prelude.rnf customRules+      `Prelude.seq` Prelude.rnf enableAutoBranchCreation+      `Prelude.seq` Prelude.rnf enableBranchAutoDeletion+      `Prelude.seq` Prelude.rnf iamServiceRoleArn+      `Prelude.seq` Prelude.rnf productionBranch+      `Prelude.seq` Prelude.rnf repositoryCloneMethod+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf appId+      `Prelude.seq` Prelude.rnf appArn+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf repository+      `Prelude.seq` Prelude.rnf platform+      `Prelude.seq` Prelude.rnf createTime+      `Prelude.seq` Prelude.rnf updateTime+      `Prelude.seq` Prelude.rnf+        environmentVariables+      `Prelude.seq` Prelude.rnf defaultDomain+      `Prelude.seq` Prelude.rnf+        enableBranchAutoBuild+      `Prelude.seq` Prelude.rnf+        enableBasicAuth
+ gen/Amazonka/Amplify/Types/Artifact.hs view
@@ -0,0 +1,88 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Amplify.Types.Artifact+-- 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.Amplify.Types.Artifact where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Describes an artifact.+--+-- /See:/ 'newArtifact' smart constructor.+data Artifact = Artifact'+  { -- | The file name for the artifact.+    artifactFileName :: Prelude.Text,+    -- | The unique ID for the artifact.+    artifactId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Artifact' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'artifactFileName', 'artifact_artifactFileName' - The file name for the artifact.+--+-- 'artifactId', 'artifact_artifactId' - The unique ID for the artifact.+newArtifact ::+  -- | 'artifactFileName'+  Prelude.Text ->+  -- | 'artifactId'+  Prelude.Text ->+  Artifact+newArtifact pArtifactFileName_ pArtifactId_ =+  Artifact'+    { artifactFileName = pArtifactFileName_,+      artifactId = pArtifactId_+    }++-- | The file name for the artifact.+artifact_artifactFileName :: Lens.Lens' Artifact Prelude.Text+artifact_artifactFileName = Lens.lens (\Artifact' {artifactFileName} -> artifactFileName) (\s@Artifact' {} a -> s {artifactFileName = a} :: Artifact)++-- | The unique ID for the artifact.+artifact_artifactId :: Lens.Lens' Artifact Prelude.Text+artifact_artifactId = Lens.lens (\Artifact' {artifactId} -> artifactId) (\s@Artifact' {} a -> s {artifactId = a} :: Artifact)++instance Data.FromJSON Artifact where+  parseJSON =+    Data.withObject+      "Artifact"+      ( \x ->+          Artifact'+            Prelude.<$> (x Data..: "artifactFileName")+            Prelude.<*> (x Data..: "artifactId")+      )++instance Prelude.Hashable Artifact where+  hashWithSalt _salt Artifact' {..} =+    _salt+      `Prelude.hashWithSalt` artifactFileName+      `Prelude.hashWithSalt` artifactId++instance Prelude.NFData Artifact where+  rnf Artifact' {..} =+    Prelude.rnf artifactFileName+      `Prelude.seq` Prelude.rnf artifactId
+ gen/Amazonka/Amplify/Types/AutoBranchCreationConfig.hs view
@@ -0,0 +1,230 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Amplify.Types.AutoBranchCreationConfig+-- 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.Amplify.Types.AutoBranchCreationConfig where++import Amazonka.Amplify.Types.Stage+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Describes the automated branch creation configuration.+--+-- /See:/ 'newAutoBranchCreationConfig' smart constructor.+data AutoBranchCreationConfig = AutoBranchCreationConfig'+  { -- | The basic authorization credentials for the autocreated branch. You must+    -- base64-encode the authorization credentials and provide them in the+    -- format @user:password@.+    basicAuthCredentials :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The build specification (build spec) for the autocreated branch.+    buildSpec :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | Enables auto building for the autocreated branch.+    enableAutoBuild :: Prelude.Maybe Prelude.Bool,+    -- | Enables basic authorization for the autocreated branch.+    enableBasicAuth :: Prelude.Maybe Prelude.Bool,+    -- | Enables performance mode for the branch.+    --+    -- Performance mode optimizes for faster hosting performance by keeping+    -- content cached at the edge for a longer interval. When performance mode+    -- is enabled, hosting configuration or code changes can take up to 10+    -- minutes to roll out.+    enablePerformanceMode :: Prelude.Maybe Prelude.Bool,+    -- | Enables pull request previews for the autocreated branch.+    enablePullRequestPreview :: Prelude.Maybe Prelude.Bool,+    -- | The environment variables for the autocreated branch.+    environmentVariables :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The framework for the autocreated branch.+    framework :: Prelude.Maybe Prelude.Text,+    -- | The Amplify environment name for the pull request.+    pullRequestEnvironmentName :: Prelude.Maybe Prelude.Text,+    -- | Describes the current stage for the autocreated branch.+    stage :: Prelude.Maybe Stage+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AutoBranchCreationConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'basicAuthCredentials', 'autoBranchCreationConfig_basicAuthCredentials' - The basic authorization credentials for the autocreated branch. You must+-- base64-encode the authorization credentials and provide them in the+-- format @user:password@.+--+-- 'buildSpec', 'autoBranchCreationConfig_buildSpec' - The build specification (build spec) for the autocreated branch.+--+-- 'enableAutoBuild', 'autoBranchCreationConfig_enableAutoBuild' - Enables auto building for the autocreated branch.+--+-- 'enableBasicAuth', 'autoBranchCreationConfig_enableBasicAuth' - Enables basic authorization for the autocreated branch.+--+-- 'enablePerformanceMode', 'autoBranchCreationConfig_enablePerformanceMode' - Enables performance mode for the branch.+--+-- Performance mode optimizes for faster hosting performance by keeping+-- content cached at the edge for a longer interval. When performance mode+-- is enabled, hosting configuration or code changes can take up to 10+-- minutes to roll out.+--+-- 'enablePullRequestPreview', 'autoBranchCreationConfig_enablePullRequestPreview' - Enables pull request previews for the autocreated branch.+--+-- 'environmentVariables', 'autoBranchCreationConfig_environmentVariables' - The environment variables for the autocreated branch.+--+-- 'framework', 'autoBranchCreationConfig_framework' - The framework for the autocreated branch.+--+-- 'pullRequestEnvironmentName', 'autoBranchCreationConfig_pullRequestEnvironmentName' - The Amplify environment name for the pull request.+--+-- 'stage', 'autoBranchCreationConfig_stage' - Describes the current stage for the autocreated branch.+newAutoBranchCreationConfig ::+  AutoBranchCreationConfig+newAutoBranchCreationConfig =+  AutoBranchCreationConfig'+    { basicAuthCredentials =+        Prelude.Nothing,+      buildSpec = Prelude.Nothing,+      enableAutoBuild = Prelude.Nothing,+      enableBasicAuth = Prelude.Nothing,+      enablePerformanceMode = Prelude.Nothing,+      enablePullRequestPreview = Prelude.Nothing,+      environmentVariables = Prelude.Nothing,+      framework = Prelude.Nothing,+      pullRequestEnvironmentName = Prelude.Nothing,+      stage = Prelude.Nothing+    }++-- | The basic authorization credentials for the autocreated branch. You must+-- base64-encode the authorization credentials and provide them in the+-- format @user:password@.+autoBranchCreationConfig_basicAuthCredentials :: Lens.Lens' AutoBranchCreationConfig (Prelude.Maybe Prelude.Text)+autoBranchCreationConfig_basicAuthCredentials = Lens.lens (\AutoBranchCreationConfig' {basicAuthCredentials} -> basicAuthCredentials) (\s@AutoBranchCreationConfig' {} a -> s {basicAuthCredentials = a} :: AutoBranchCreationConfig) Prelude.. Lens.mapping Data._Sensitive++-- | The build specification (build spec) for the autocreated branch.+autoBranchCreationConfig_buildSpec :: Lens.Lens' AutoBranchCreationConfig (Prelude.Maybe Prelude.Text)+autoBranchCreationConfig_buildSpec = Lens.lens (\AutoBranchCreationConfig' {buildSpec} -> buildSpec) (\s@AutoBranchCreationConfig' {} a -> s {buildSpec = a} :: AutoBranchCreationConfig) Prelude.. Lens.mapping Data._Sensitive++-- | Enables auto building for the autocreated branch.+autoBranchCreationConfig_enableAutoBuild :: Lens.Lens' AutoBranchCreationConfig (Prelude.Maybe Prelude.Bool)+autoBranchCreationConfig_enableAutoBuild = Lens.lens (\AutoBranchCreationConfig' {enableAutoBuild} -> enableAutoBuild) (\s@AutoBranchCreationConfig' {} a -> s {enableAutoBuild = a} :: AutoBranchCreationConfig)++-- | Enables basic authorization for the autocreated branch.+autoBranchCreationConfig_enableBasicAuth :: Lens.Lens' AutoBranchCreationConfig (Prelude.Maybe Prelude.Bool)+autoBranchCreationConfig_enableBasicAuth = Lens.lens (\AutoBranchCreationConfig' {enableBasicAuth} -> enableBasicAuth) (\s@AutoBranchCreationConfig' {} a -> s {enableBasicAuth = a} :: AutoBranchCreationConfig)++-- | Enables performance mode for the branch.+--+-- Performance mode optimizes for faster hosting performance by keeping+-- content cached at the edge for a longer interval. When performance mode+-- is enabled, hosting configuration or code changes can take up to 10+-- minutes to roll out.+autoBranchCreationConfig_enablePerformanceMode :: Lens.Lens' AutoBranchCreationConfig (Prelude.Maybe Prelude.Bool)+autoBranchCreationConfig_enablePerformanceMode = Lens.lens (\AutoBranchCreationConfig' {enablePerformanceMode} -> enablePerformanceMode) (\s@AutoBranchCreationConfig' {} a -> s {enablePerformanceMode = a} :: AutoBranchCreationConfig)++-- | Enables pull request previews for the autocreated branch.+autoBranchCreationConfig_enablePullRequestPreview :: Lens.Lens' AutoBranchCreationConfig (Prelude.Maybe Prelude.Bool)+autoBranchCreationConfig_enablePullRequestPreview = Lens.lens (\AutoBranchCreationConfig' {enablePullRequestPreview} -> enablePullRequestPreview) (\s@AutoBranchCreationConfig' {} a -> s {enablePullRequestPreview = a} :: AutoBranchCreationConfig)++-- | The environment variables for the autocreated branch.+autoBranchCreationConfig_environmentVariables :: Lens.Lens' AutoBranchCreationConfig (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+autoBranchCreationConfig_environmentVariables = Lens.lens (\AutoBranchCreationConfig' {environmentVariables} -> environmentVariables) (\s@AutoBranchCreationConfig' {} a -> s {environmentVariables = a} :: AutoBranchCreationConfig) Prelude.. Lens.mapping Lens.coerced++-- | The framework for the autocreated branch.+autoBranchCreationConfig_framework :: Lens.Lens' AutoBranchCreationConfig (Prelude.Maybe Prelude.Text)+autoBranchCreationConfig_framework = Lens.lens (\AutoBranchCreationConfig' {framework} -> framework) (\s@AutoBranchCreationConfig' {} a -> s {framework = a} :: AutoBranchCreationConfig)++-- | The Amplify environment name for the pull request.+autoBranchCreationConfig_pullRequestEnvironmentName :: Lens.Lens' AutoBranchCreationConfig (Prelude.Maybe Prelude.Text)+autoBranchCreationConfig_pullRequestEnvironmentName = Lens.lens (\AutoBranchCreationConfig' {pullRequestEnvironmentName} -> pullRequestEnvironmentName) (\s@AutoBranchCreationConfig' {} a -> s {pullRequestEnvironmentName = a} :: AutoBranchCreationConfig)++-- | Describes the current stage for the autocreated branch.+autoBranchCreationConfig_stage :: Lens.Lens' AutoBranchCreationConfig (Prelude.Maybe Stage)+autoBranchCreationConfig_stage = Lens.lens (\AutoBranchCreationConfig' {stage} -> stage) (\s@AutoBranchCreationConfig' {} a -> s {stage = a} :: AutoBranchCreationConfig)++instance Data.FromJSON AutoBranchCreationConfig where+  parseJSON =+    Data.withObject+      "AutoBranchCreationConfig"+      ( \x ->+          AutoBranchCreationConfig'+            Prelude.<$> (x Data..:? "basicAuthCredentials")+            Prelude.<*> (x Data..:? "buildSpec")+            Prelude.<*> (x Data..:? "enableAutoBuild")+            Prelude.<*> (x Data..:? "enableBasicAuth")+            Prelude.<*> (x Data..:? "enablePerformanceMode")+            Prelude.<*> (x Data..:? "enablePullRequestPreview")+            Prelude.<*> ( x+                            Data..:? "environmentVariables"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "framework")+            Prelude.<*> (x Data..:? "pullRequestEnvironmentName")+            Prelude.<*> (x Data..:? "stage")+      )++instance Prelude.Hashable AutoBranchCreationConfig where+  hashWithSalt _salt AutoBranchCreationConfig' {..} =+    _salt+      `Prelude.hashWithSalt` basicAuthCredentials+      `Prelude.hashWithSalt` buildSpec+      `Prelude.hashWithSalt` enableAutoBuild+      `Prelude.hashWithSalt` enableBasicAuth+      `Prelude.hashWithSalt` enablePerformanceMode+      `Prelude.hashWithSalt` enablePullRequestPreview+      `Prelude.hashWithSalt` environmentVariables+      `Prelude.hashWithSalt` framework+      `Prelude.hashWithSalt` pullRequestEnvironmentName+      `Prelude.hashWithSalt` stage++instance Prelude.NFData AutoBranchCreationConfig where+  rnf AutoBranchCreationConfig' {..} =+    Prelude.rnf basicAuthCredentials+      `Prelude.seq` Prelude.rnf buildSpec+      `Prelude.seq` Prelude.rnf enableAutoBuild+      `Prelude.seq` Prelude.rnf enableBasicAuth+      `Prelude.seq` Prelude.rnf enablePerformanceMode+      `Prelude.seq` Prelude.rnf enablePullRequestPreview+      `Prelude.seq` Prelude.rnf environmentVariables+      `Prelude.seq` Prelude.rnf framework+      `Prelude.seq` Prelude.rnf pullRequestEnvironmentName+      `Prelude.seq` Prelude.rnf stage++instance Data.ToJSON AutoBranchCreationConfig where+  toJSON AutoBranchCreationConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("basicAuthCredentials" Data..=)+              Prelude.<$> basicAuthCredentials,+            ("buildSpec" Data..=) Prelude.<$> buildSpec,+            ("enableAutoBuild" Data..=)+              Prelude.<$> enableAutoBuild,+            ("enableBasicAuth" Data..=)+              Prelude.<$> enableBasicAuth,+            ("enablePerformanceMode" Data..=)+              Prelude.<$> enablePerformanceMode,+            ("enablePullRequestPreview" Data..=)+              Prelude.<$> enablePullRequestPreview,+            ("environmentVariables" Data..=)+              Prelude.<$> environmentVariables,+            ("framework" Data..=) Prelude.<$> framework,+            ("pullRequestEnvironmentName" Data..=)+              Prelude.<$> pullRequestEnvironmentName,+            ("stage" Data..=) Prelude.<$> stage+          ]+      )
+ gen/Amazonka/Amplify/Types/BackendEnvironment.hs view
@@ -0,0 +1,154 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Amplify.Types.BackendEnvironment+-- 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.Amplify.Types.BackendEnvironment where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Describes the backend environment for an Amplify app.+--+-- /See:/ 'newBackendEnvironment' smart constructor.+data BackendEnvironment = BackendEnvironment'+  { -- | The name of deployment artifacts.+    deploymentArtifacts :: Prelude.Maybe Prelude.Text,+    -- | The AWS CloudFormation stack name of a backend environment.+    stackName :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) for a backend environment that is part of+    -- an Amplify app.+    backendEnvironmentArn :: Prelude.Text,+    -- | The name for a backend environment that is part of an Amplify app.+    environmentName :: Prelude.Text,+    -- | The creation date and time for a backend environment that is part of an+    -- Amplify app.+    createTime :: Data.POSIX,+    -- | The last updated date and time for a backend environment that is part of+    -- an Amplify app.+    updateTime :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BackendEnvironment' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'deploymentArtifacts', 'backendEnvironment_deploymentArtifacts' - The name of deployment artifacts.+--+-- 'stackName', 'backendEnvironment_stackName' - The AWS CloudFormation stack name of a backend environment.+--+-- 'backendEnvironmentArn', 'backendEnvironment_backendEnvironmentArn' - The Amazon Resource Name (ARN) for a backend environment that is part of+-- an Amplify app.+--+-- 'environmentName', 'backendEnvironment_environmentName' - The name for a backend environment that is part of an Amplify app.+--+-- 'createTime', 'backendEnvironment_createTime' - The creation date and time for a backend environment that is part of an+-- Amplify app.+--+-- 'updateTime', 'backendEnvironment_updateTime' - The last updated date and time for a backend environment that is part of+-- an Amplify app.+newBackendEnvironment ::+  -- | 'backendEnvironmentArn'+  Prelude.Text ->+  -- | 'environmentName'+  Prelude.Text ->+  -- | 'createTime'+  Prelude.UTCTime ->+  -- | 'updateTime'+  Prelude.UTCTime ->+  BackendEnvironment+newBackendEnvironment+  pBackendEnvironmentArn_+  pEnvironmentName_+  pCreateTime_+  pUpdateTime_ =+    BackendEnvironment'+      { deploymentArtifacts =+          Prelude.Nothing,+        stackName = Prelude.Nothing,+        backendEnvironmentArn = pBackendEnvironmentArn_,+        environmentName = pEnvironmentName_,+        createTime = Data._Time Lens.# pCreateTime_,+        updateTime = Data._Time Lens.# pUpdateTime_+      }++-- | The name of deployment artifacts.+backendEnvironment_deploymentArtifacts :: Lens.Lens' BackendEnvironment (Prelude.Maybe Prelude.Text)+backendEnvironment_deploymentArtifacts = Lens.lens (\BackendEnvironment' {deploymentArtifacts} -> deploymentArtifacts) (\s@BackendEnvironment' {} a -> s {deploymentArtifacts = a} :: BackendEnvironment)++-- | The AWS CloudFormation stack name of a backend environment.+backendEnvironment_stackName :: Lens.Lens' BackendEnvironment (Prelude.Maybe Prelude.Text)+backendEnvironment_stackName = Lens.lens (\BackendEnvironment' {stackName} -> stackName) (\s@BackendEnvironment' {} a -> s {stackName = a} :: BackendEnvironment)++-- | The Amazon Resource Name (ARN) for a backend environment that is part of+-- an Amplify app.+backendEnvironment_backendEnvironmentArn :: Lens.Lens' BackendEnvironment Prelude.Text+backendEnvironment_backendEnvironmentArn = Lens.lens (\BackendEnvironment' {backendEnvironmentArn} -> backendEnvironmentArn) (\s@BackendEnvironment' {} a -> s {backendEnvironmentArn = a} :: BackendEnvironment)++-- | The name for a backend environment that is part of an Amplify app.+backendEnvironment_environmentName :: Lens.Lens' BackendEnvironment Prelude.Text+backendEnvironment_environmentName = Lens.lens (\BackendEnvironment' {environmentName} -> environmentName) (\s@BackendEnvironment' {} a -> s {environmentName = a} :: BackendEnvironment)++-- | The creation date and time for a backend environment that is part of an+-- Amplify app.+backendEnvironment_createTime :: Lens.Lens' BackendEnvironment Prelude.UTCTime+backendEnvironment_createTime = Lens.lens (\BackendEnvironment' {createTime} -> createTime) (\s@BackendEnvironment' {} a -> s {createTime = a} :: BackendEnvironment) Prelude.. Data._Time++-- | The last updated date and time for a backend environment that is part of+-- an Amplify app.+backendEnvironment_updateTime :: Lens.Lens' BackendEnvironment Prelude.UTCTime+backendEnvironment_updateTime = Lens.lens (\BackendEnvironment' {updateTime} -> updateTime) (\s@BackendEnvironment' {} a -> s {updateTime = a} :: BackendEnvironment) Prelude.. Data._Time++instance Data.FromJSON BackendEnvironment where+  parseJSON =+    Data.withObject+      "BackendEnvironment"+      ( \x ->+          BackendEnvironment'+            Prelude.<$> (x Data..:? "deploymentArtifacts")+            Prelude.<*> (x Data..:? "stackName")+            Prelude.<*> (x Data..: "backendEnvironmentArn")+            Prelude.<*> (x Data..: "environmentName")+            Prelude.<*> (x Data..: "createTime")+            Prelude.<*> (x Data..: "updateTime")+      )++instance Prelude.Hashable BackendEnvironment where+  hashWithSalt _salt BackendEnvironment' {..} =+    _salt+      `Prelude.hashWithSalt` deploymentArtifacts+      `Prelude.hashWithSalt` stackName+      `Prelude.hashWithSalt` backendEnvironmentArn+      `Prelude.hashWithSalt` environmentName+      `Prelude.hashWithSalt` createTime+      `Prelude.hashWithSalt` updateTime++instance Prelude.NFData BackendEnvironment where+  rnf BackendEnvironment' {..} =+    Prelude.rnf deploymentArtifacts+      `Prelude.seq` Prelude.rnf stackName+      `Prelude.seq` Prelude.rnf backendEnvironmentArn+      `Prelude.seq` Prelude.rnf environmentName+      `Prelude.seq` Prelude.rnf createTime+      `Prelude.seq` Prelude.rnf updateTime
+ gen/Amazonka/Amplify/Types/Branch.hs view
@@ -0,0 +1,477 @@+{-# 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.Amplify.Types.Branch+-- 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.Amplify.Types.Branch where++import Amazonka.Amplify.Types.Stage+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 branch for an Amplify app, which maps to a third-party repository+-- branch.+--+-- /See:/ 'newBranch' smart constructor.+data Branch = Branch'+  { -- | A list of custom resources that are linked to this branch.+    associatedResources :: Prelude.Maybe [Prelude.Text],+    -- | The Amazon Resource Name (ARN) for a backend environment that is part of+    -- an Amplify app.+    backendEnvironmentArn :: Prelude.Maybe Prelude.Text,+    -- | The basic authorization credentials for a branch of an Amplify app. You+    -- must base64-encode the authorization credentials and provide them in the+    -- format @user:password@.+    basicAuthCredentials :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The build specification (build spec) content for the branch of an+    -- Amplify app.+    buildSpec :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The destination branch if the branch is a pull request branch.+    destinationBranch :: Prelude.Maybe Prelude.Text,+    -- | Enables performance mode for the branch.+    --+    -- Performance mode optimizes for faster hosting performance by keeping+    -- content cached at the edge for a longer interval. When performance mode+    -- is enabled, hosting configuration or code changes can take up to 10+    -- minutes to roll out.+    enablePerformanceMode :: Prelude.Maybe Prelude.Bool,+    -- | The Amplify environment name for the pull request.+    pullRequestEnvironmentName :: Prelude.Maybe Prelude.Text,+    -- | The source branch if the branch is a pull request branch.+    sourceBranch :: Prelude.Maybe Prelude.Text,+    -- | The tag for the branch of an Amplify app.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The thumbnail URL for the branch of an Amplify app.+    thumbnailUrl :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) for a branch that is part of an Amplify+    -- app.+    branchArn :: Prelude.Text,+    -- | The name for the branch that is part of an Amplify app.+    branchName :: Prelude.Text,+    -- | The description for the branch that is part of an Amplify app.+    description :: Prelude.Text,+    -- | The current stage for the branch that is part of an Amplify app.+    stage :: Stage,+    -- | The display name for the branch. This is used as the default domain+    -- prefix.+    displayName :: Prelude.Text,+    -- | Enables notifications for a branch that is part of an Amplify app.+    enableNotification :: Prelude.Bool,+    -- | The creation date and time for a branch that is part of an Amplify app.+    createTime :: Data.POSIX,+    -- | The last updated date and time for a branch that is part of an Amplify+    -- app.+    updateTime :: Data.POSIX,+    -- | The environment variables specific to a branch of an Amplify app.+    environmentVariables :: Prelude.HashMap Prelude.Text Prelude.Text,+    -- | Enables auto-building on push for a branch of an Amplify app.+    enableAutoBuild :: Prelude.Bool,+    -- | The custom domains for a branch of an Amplify app.+    customDomains :: [Prelude.Text],+    -- | The framework for a branch of an Amplify app.+    framework :: Prelude.Text,+    -- | The ID of the active job for a branch of an Amplify app.+    activeJobId :: Prelude.Text,+    -- | The total number of jobs that are part of an Amplify app.+    totalNumberOfJobs :: Prelude.Text,+    -- | Enables basic authorization for a branch of an Amplify app.+    enableBasicAuth :: Prelude.Bool,+    -- | The content Time to Live (TTL) for the website in seconds.+    ttl :: Prelude.Text,+    -- | Enables pull request previews for the branch.+    enablePullRequestPreview :: Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Branch' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'associatedResources', 'branch_associatedResources' - A list of custom resources that are linked to this branch.+--+-- 'backendEnvironmentArn', 'branch_backendEnvironmentArn' - The Amazon Resource Name (ARN) for a backend environment that is part of+-- an Amplify app.+--+-- 'basicAuthCredentials', 'branch_basicAuthCredentials' - The basic authorization credentials for a branch of an Amplify app. You+-- must base64-encode the authorization credentials and provide them in the+-- format @user:password@.+--+-- 'buildSpec', 'branch_buildSpec' - The build specification (build spec) content for the branch of an+-- Amplify app.+--+-- 'destinationBranch', 'branch_destinationBranch' - The destination branch if the branch is a pull request branch.+--+-- 'enablePerformanceMode', 'branch_enablePerformanceMode' - Enables performance mode for the branch.+--+-- Performance mode optimizes for faster hosting performance by keeping+-- content cached at the edge for a longer interval. When performance mode+-- is enabled, hosting configuration or code changes can take up to 10+-- minutes to roll out.+--+-- 'pullRequestEnvironmentName', 'branch_pullRequestEnvironmentName' - The Amplify environment name for the pull request.+--+-- 'sourceBranch', 'branch_sourceBranch' - The source branch if the branch is a pull request branch.+--+-- 'tags', 'branch_tags' - The tag for the branch of an Amplify app.+--+-- 'thumbnailUrl', 'branch_thumbnailUrl' - The thumbnail URL for the branch of an Amplify app.+--+-- 'branchArn', 'branch_branchArn' - The Amazon Resource Name (ARN) for a branch that is part of an Amplify+-- app.+--+-- 'branchName', 'branch_branchName' - The name for the branch that is part of an Amplify app.+--+-- 'description', 'branch_description' - The description for the branch that is part of an Amplify app.+--+-- 'stage', 'branch_stage' - The current stage for the branch that is part of an Amplify app.+--+-- 'displayName', 'branch_displayName' - The display name for the branch. This is used as the default domain+-- prefix.+--+-- 'enableNotification', 'branch_enableNotification' - Enables notifications for a branch that is part of an Amplify app.+--+-- 'createTime', 'branch_createTime' - The creation date and time for a branch that is part of an Amplify app.+--+-- 'updateTime', 'branch_updateTime' - The last updated date and time for a branch that is part of an Amplify+-- app.+--+-- 'environmentVariables', 'branch_environmentVariables' - The environment variables specific to a branch of an Amplify app.+--+-- 'enableAutoBuild', 'branch_enableAutoBuild' - Enables auto-building on push for a branch of an Amplify app.+--+-- 'customDomains', 'branch_customDomains' - The custom domains for a branch of an Amplify app.+--+-- 'framework', 'branch_framework' - The framework for a branch of an Amplify app.+--+-- 'activeJobId', 'branch_activeJobId' - The ID of the active job for a branch of an Amplify app.+--+-- 'totalNumberOfJobs', 'branch_totalNumberOfJobs' - The total number of jobs that are part of an Amplify app.+--+-- 'enableBasicAuth', 'branch_enableBasicAuth' - Enables basic authorization for a branch of an Amplify app.+--+-- 'ttl', 'branch_ttl' - The content Time to Live (TTL) for the website in seconds.+--+-- 'enablePullRequestPreview', 'branch_enablePullRequestPreview' - Enables pull request previews for the branch.+newBranch ::+  -- | 'branchArn'+  Prelude.Text ->+  -- | 'branchName'+  Prelude.Text ->+  -- | 'description'+  Prelude.Text ->+  -- | 'stage'+  Stage ->+  -- | 'displayName'+  Prelude.Text ->+  -- | 'enableNotification'+  Prelude.Bool ->+  -- | 'createTime'+  Prelude.UTCTime ->+  -- | 'updateTime'+  Prelude.UTCTime ->+  -- | 'enableAutoBuild'+  Prelude.Bool ->+  -- | 'framework'+  Prelude.Text ->+  -- | 'activeJobId'+  Prelude.Text ->+  -- | 'totalNumberOfJobs'+  Prelude.Text ->+  -- | 'enableBasicAuth'+  Prelude.Bool ->+  -- | 'ttl'+  Prelude.Text ->+  -- | 'enablePullRequestPreview'+  Prelude.Bool ->+  Branch+newBranch+  pBranchArn_+  pBranchName_+  pDescription_+  pStage_+  pDisplayName_+  pEnableNotification_+  pCreateTime_+  pUpdateTime_+  pEnableAutoBuild_+  pFramework_+  pActiveJobId_+  pTotalNumberOfJobs_+  pEnableBasicAuth_+  pTtl_+  pEnablePullRequestPreview_ =+    Branch'+      { associatedResources = Prelude.Nothing,+        backendEnvironmentArn = Prelude.Nothing,+        basicAuthCredentials = Prelude.Nothing,+        buildSpec = Prelude.Nothing,+        destinationBranch = Prelude.Nothing,+        enablePerformanceMode = Prelude.Nothing,+        pullRequestEnvironmentName = Prelude.Nothing,+        sourceBranch = Prelude.Nothing,+        tags = Prelude.Nothing,+        thumbnailUrl = Prelude.Nothing,+        branchArn = pBranchArn_,+        branchName = pBranchName_,+        description = pDescription_,+        stage = pStage_,+        displayName = pDisplayName_,+        enableNotification = pEnableNotification_,+        createTime = Data._Time Lens.# pCreateTime_,+        updateTime = Data._Time Lens.# pUpdateTime_,+        environmentVariables = Prelude.mempty,+        enableAutoBuild = pEnableAutoBuild_,+        customDomains = Prelude.mempty,+        framework = pFramework_,+        activeJobId = pActiveJobId_,+        totalNumberOfJobs = pTotalNumberOfJobs_,+        enableBasicAuth = pEnableBasicAuth_,+        ttl = pTtl_,+        enablePullRequestPreview =+          pEnablePullRequestPreview_+      }++-- | A list of custom resources that are linked to this branch.+branch_associatedResources :: Lens.Lens' Branch (Prelude.Maybe [Prelude.Text])+branch_associatedResources = Lens.lens (\Branch' {associatedResources} -> associatedResources) (\s@Branch' {} a -> s {associatedResources = a} :: Branch) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) for a backend environment that is part of+-- an Amplify app.+branch_backendEnvironmentArn :: Lens.Lens' Branch (Prelude.Maybe Prelude.Text)+branch_backendEnvironmentArn = Lens.lens (\Branch' {backendEnvironmentArn} -> backendEnvironmentArn) (\s@Branch' {} a -> s {backendEnvironmentArn = a} :: Branch)++-- | The basic authorization credentials for a branch of an Amplify app. You+-- must base64-encode the authorization credentials and provide them in the+-- format @user:password@.+branch_basicAuthCredentials :: Lens.Lens' Branch (Prelude.Maybe Prelude.Text)+branch_basicAuthCredentials = Lens.lens (\Branch' {basicAuthCredentials} -> basicAuthCredentials) (\s@Branch' {} a -> s {basicAuthCredentials = a} :: Branch) Prelude.. Lens.mapping Data._Sensitive++-- | The build specification (build spec) content for the branch of an+-- Amplify app.+branch_buildSpec :: Lens.Lens' Branch (Prelude.Maybe Prelude.Text)+branch_buildSpec = Lens.lens (\Branch' {buildSpec} -> buildSpec) (\s@Branch' {} a -> s {buildSpec = a} :: Branch) Prelude.. Lens.mapping Data._Sensitive++-- | The destination branch if the branch is a pull request branch.+branch_destinationBranch :: Lens.Lens' Branch (Prelude.Maybe Prelude.Text)+branch_destinationBranch = Lens.lens (\Branch' {destinationBranch} -> destinationBranch) (\s@Branch' {} a -> s {destinationBranch = a} :: Branch)++-- | Enables performance mode for the branch.+--+-- Performance mode optimizes for faster hosting performance by keeping+-- content cached at the edge for a longer interval. When performance mode+-- is enabled, hosting configuration or code changes can take up to 10+-- minutes to roll out.+branch_enablePerformanceMode :: Lens.Lens' Branch (Prelude.Maybe Prelude.Bool)+branch_enablePerformanceMode = Lens.lens (\Branch' {enablePerformanceMode} -> enablePerformanceMode) (\s@Branch' {} a -> s {enablePerformanceMode = a} :: Branch)++-- | The Amplify environment name for the pull request.+branch_pullRequestEnvironmentName :: Lens.Lens' Branch (Prelude.Maybe Prelude.Text)+branch_pullRequestEnvironmentName = Lens.lens (\Branch' {pullRequestEnvironmentName} -> pullRequestEnvironmentName) (\s@Branch' {} a -> s {pullRequestEnvironmentName = a} :: Branch)++-- | The source branch if the branch is a pull request branch.+branch_sourceBranch :: Lens.Lens' Branch (Prelude.Maybe Prelude.Text)+branch_sourceBranch = Lens.lens (\Branch' {sourceBranch} -> sourceBranch) (\s@Branch' {} a -> s {sourceBranch = a} :: Branch)++-- | The tag for the branch of an Amplify app.+branch_tags :: Lens.Lens' Branch (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+branch_tags = Lens.lens (\Branch' {tags} -> tags) (\s@Branch' {} a -> s {tags = a} :: Branch) Prelude.. Lens.mapping Lens.coerced++-- | The thumbnail URL for the branch of an Amplify app.+branch_thumbnailUrl :: Lens.Lens' Branch (Prelude.Maybe Prelude.Text)+branch_thumbnailUrl = Lens.lens (\Branch' {thumbnailUrl} -> thumbnailUrl) (\s@Branch' {} a -> s {thumbnailUrl = a} :: Branch)++-- | The Amazon Resource Name (ARN) for a branch that is part of an Amplify+-- app.+branch_branchArn :: Lens.Lens' Branch Prelude.Text+branch_branchArn = Lens.lens (\Branch' {branchArn} -> branchArn) (\s@Branch' {} a -> s {branchArn = a} :: Branch)++-- | The name for the branch that is part of an Amplify app.+branch_branchName :: Lens.Lens' Branch Prelude.Text+branch_branchName = Lens.lens (\Branch' {branchName} -> branchName) (\s@Branch' {} a -> s {branchName = a} :: Branch)++-- | The description for the branch that is part of an Amplify app.+branch_description :: Lens.Lens' Branch Prelude.Text+branch_description = Lens.lens (\Branch' {description} -> description) (\s@Branch' {} a -> s {description = a} :: Branch)++-- | The current stage for the branch that is part of an Amplify app.+branch_stage :: Lens.Lens' Branch Stage+branch_stage = Lens.lens (\Branch' {stage} -> stage) (\s@Branch' {} a -> s {stage = a} :: Branch)++-- | The display name for the branch. This is used as the default domain+-- prefix.+branch_displayName :: Lens.Lens' Branch Prelude.Text+branch_displayName = Lens.lens (\Branch' {displayName} -> displayName) (\s@Branch' {} a -> s {displayName = a} :: Branch)++-- | Enables notifications for a branch that is part of an Amplify app.+branch_enableNotification :: Lens.Lens' Branch Prelude.Bool+branch_enableNotification = Lens.lens (\Branch' {enableNotification} -> enableNotification) (\s@Branch' {} a -> s {enableNotification = a} :: Branch)++-- | The creation date and time for a branch that is part of an Amplify app.+branch_createTime :: Lens.Lens' Branch Prelude.UTCTime+branch_createTime = Lens.lens (\Branch' {createTime} -> createTime) (\s@Branch' {} a -> s {createTime = a} :: Branch) Prelude.. Data._Time++-- | The last updated date and time for a branch that is part of an Amplify+-- app.+branch_updateTime :: Lens.Lens' Branch Prelude.UTCTime+branch_updateTime = Lens.lens (\Branch' {updateTime} -> updateTime) (\s@Branch' {} a -> s {updateTime = a} :: Branch) Prelude.. Data._Time++-- | The environment variables specific to a branch of an Amplify app.+branch_environmentVariables :: Lens.Lens' Branch (Prelude.HashMap Prelude.Text Prelude.Text)+branch_environmentVariables = Lens.lens (\Branch' {environmentVariables} -> environmentVariables) (\s@Branch' {} a -> s {environmentVariables = a} :: Branch) Prelude.. Lens.coerced++-- | Enables auto-building on push for a branch of an Amplify app.+branch_enableAutoBuild :: Lens.Lens' Branch Prelude.Bool+branch_enableAutoBuild = Lens.lens (\Branch' {enableAutoBuild} -> enableAutoBuild) (\s@Branch' {} a -> s {enableAutoBuild = a} :: Branch)++-- | The custom domains for a branch of an Amplify app.+branch_customDomains :: Lens.Lens' Branch [Prelude.Text]+branch_customDomains = Lens.lens (\Branch' {customDomains} -> customDomains) (\s@Branch' {} a -> s {customDomains = a} :: Branch) Prelude.. Lens.coerced++-- | The framework for a branch of an Amplify app.+branch_framework :: Lens.Lens' Branch Prelude.Text+branch_framework = Lens.lens (\Branch' {framework} -> framework) (\s@Branch' {} a -> s {framework = a} :: Branch)++-- | The ID of the active job for a branch of an Amplify app.+branch_activeJobId :: Lens.Lens' Branch Prelude.Text+branch_activeJobId = Lens.lens (\Branch' {activeJobId} -> activeJobId) (\s@Branch' {} a -> s {activeJobId = a} :: Branch)++-- | The total number of jobs that are part of an Amplify app.+branch_totalNumberOfJobs :: Lens.Lens' Branch Prelude.Text+branch_totalNumberOfJobs = Lens.lens (\Branch' {totalNumberOfJobs} -> totalNumberOfJobs) (\s@Branch' {} a -> s {totalNumberOfJobs = a} :: Branch)++-- | Enables basic authorization for a branch of an Amplify app.+branch_enableBasicAuth :: Lens.Lens' Branch Prelude.Bool+branch_enableBasicAuth = Lens.lens (\Branch' {enableBasicAuth} -> enableBasicAuth) (\s@Branch' {} a -> s {enableBasicAuth = a} :: Branch)++-- | The content Time to Live (TTL) for the website in seconds.+branch_ttl :: Lens.Lens' Branch Prelude.Text+branch_ttl = Lens.lens (\Branch' {ttl} -> ttl) (\s@Branch' {} a -> s {ttl = a} :: Branch)++-- | Enables pull request previews for the branch.+branch_enablePullRequestPreview :: Lens.Lens' Branch Prelude.Bool+branch_enablePullRequestPreview = Lens.lens (\Branch' {enablePullRequestPreview} -> enablePullRequestPreview) (\s@Branch' {} a -> s {enablePullRequestPreview = a} :: Branch)++instance Data.FromJSON Branch where+  parseJSON =+    Data.withObject+      "Branch"+      ( \x ->+          Branch'+            Prelude.<$> ( x+                            Data..:? "associatedResources"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "backendEnvironmentArn")+            Prelude.<*> (x Data..:? "basicAuthCredentials")+            Prelude.<*> (x Data..:? "buildSpec")+            Prelude.<*> (x Data..:? "destinationBranch")+            Prelude.<*> (x Data..:? "enablePerformanceMode")+            Prelude.<*> (x Data..:? "pullRequestEnvironmentName")+            Prelude.<*> (x Data..:? "sourceBranch")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "thumbnailUrl")+            Prelude.<*> (x Data..: "branchArn")+            Prelude.<*> (x Data..: "branchName")+            Prelude.<*> (x Data..: "description")+            Prelude.<*> (x Data..: "stage")+            Prelude.<*> (x Data..: "displayName")+            Prelude.<*> (x Data..: "enableNotification")+            Prelude.<*> (x Data..: "createTime")+            Prelude.<*> (x Data..: "updateTime")+            Prelude.<*> ( x+                            Data..:? "environmentVariables"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..: "enableAutoBuild")+            Prelude.<*> (x Data..:? "customDomains" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "framework")+            Prelude.<*> (x Data..: "activeJobId")+            Prelude.<*> (x Data..: "totalNumberOfJobs")+            Prelude.<*> (x Data..: "enableBasicAuth")+            Prelude.<*> (x Data..: "ttl")+            Prelude.<*> (x Data..: "enablePullRequestPreview")+      )++instance Prelude.Hashable Branch where+  hashWithSalt _salt Branch' {..} =+    _salt+      `Prelude.hashWithSalt` associatedResources+      `Prelude.hashWithSalt` backendEnvironmentArn+      `Prelude.hashWithSalt` basicAuthCredentials+      `Prelude.hashWithSalt` buildSpec+      `Prelude.hashWithSalt` destinationBranch+      `Prelude.hashWithSalt` enablePerformanceMode+      `Prelude.hashWithSalt` pullRequestEnvironmentName+      `Prelude.hashWithSalt` sourceBranch+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` thumbnailUrl+      `Prelude.hashWithSalt` branchArn+      `Prelude.hashWithSalt` branchName+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` stage+      `Prelude.hashWithSalt` displayName+      `Prelude.hashWithSalt` enableNotification+      `Prelude.hashWithSalt` createTime+      `Prelude.hashWithSalt` updateTime+      `Prelude.hashWithSalt` environmentVariables+      `Prelude.hashWithSalt` enableAutoBuild+      `Prelude.hashWithSalt` customDomains+      `Prelude.hashWithSalt` framework+      `Prelude.hashWithSalt` activeJobId+      `Prelude.hashWithSalt` totalNumberOfJobs+      `Prelude.hashWithSalt` enableBasicAuth+      `Prelude.hashWithSalt` ttl+      `Prelude.hashWithSalt` enablePullRequestPreview++instance Prelude.NFData Branch where+  rnf Branch' {..} =+    Prelude.rnf associatedResources+      `Prelude.seq` Prelude.rnf backendEnvironmentArn+      `Prelude.seq` Prelude.rnf basicAuthCredentials+      `Prelude.seq` Prelude.rnf buildSpec+      `Prelude.seq` Prelude.rnf destinationBranch+      `Prelude.seq` Prelude.rnf enablePerformanceMode+      `Prelude.seq` Prelude.rnf pullRequestEnvironmentName+      `Prelude.seq` Prelude.rnf sourceBranch+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf thumbnailUrl+      `Prelude.seq` Prelude.rnf branchArn+      `Prelude.seq` Prelude.rnf branchName+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf stage+      `Prelude.seq` Prelude.rnf displayName+      `Prelude.seq` Prelude.rnf enableNotification+      `Prelude.seq` Prelude.rnf createTime+      `Prelude.seq` Prelude.rnf updateTime+      `Prelude.seq` Prelude.rnf environmentVariables+      `Prelude.seq` Prelude.rnf enableAutoBuild+      `Prelude.seq` Prelude.rnf customDomains+      `Prelude.seq` Prelude.rnf framework+      `Prelude.seq` Prelude.rnf activeJobId+      `Prelude.seq` Prelude.rnf+        totalNumberOfJobs+      `Prelude.seq` Prelude.rnf+        enableBasicAuth+      `Prelude.seq` Prelude.rnf ttl+      `Prelude.seq` Prelude.rnf+        enablePullRequestPreview
+ gen/Amazonka/Amplify/Types/CustomRule.hs view
@@ -0,0 +1,174 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Amplify.Types.CustomRule+-- 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.Amplify.Types.CustomRule where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Describes a custom rewrite or redirect rule.+--+-- /See:/ 'newCustomRule' smart constructor.+data CustomRule = CustomRule'+  { -- | The condition for a URL rewrite or redirect rule, such as a country+    -- code.+    condition :: Prelude.Maybe Prelude.Text,+    -- | The status code for a URL rewrite or redirect rule.+    --+    -- [200]+    --     Represents a 200 rewrite rule.+    --+    -- [301]+    --     Represents a 301 (moved pemanently) redirect rule. This and all+    --     future requests should be directed to the target URL.+    --+    -- [302]+    --     Represents a 302 temporary redirect rule.+    --+    -- [404]+    --     Represents a 404 redirect rule.+    --+    -- [404-200]+    --     Represents a 404 rewrite rule.+    status :: Prelude.Maybe Prelude.Text,+    -- | The source pattern for a URL rewrite or redirect rule.+    source :: Prelude.Text,+    -- | The target pattern for a URL rewrite or redirect rule.+    target :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CustomRule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'condition', 'customRule_condition' - The condition for a URL rewrite or redirect rule, such as a country+-- code.+--+-- 'status', 'customRule_status' - The status code for a URL rewrite or redirect rule.+--+-- [200]+--     Represents a 200 rewrite rule.+--+-- [301]+--     Represents a 301 (moved pemanently) redirect rule. This and all+--     future requests should be directed to the target URL.+--+-- [302]+--     Represents a 302 temporary redirect rule.+--+-- [404]+--     Represents a 404 redirect rule.+--+-- [404-200]+--     Represents a 404 rewrite rule.+--+-- 'source', 'customRule_source' - The source pattern for a URL rewrite or redirect rule.+--+-- 'target', 'customRule_target' - The target pattern for a URL rewrite or redirect rule.+newCustomRule ::+  -- | 'source'+  Prelude.Text ->+  -- | 'target'+  Prelude.Text ->+  CustomRule+newCustomRule pSource_ pTarget_ =+  CustomRule'+    { condition = Prelude.Nothing,+      status = Prelude.Nothing,+      source = pSource_,+      target = pTarget_+    }++-- | The condition for a URL rewrite or redirect rule, such as a country+-- code.+customRule_condition :: Lens.Lens' CustomRule (Prelude.Maybe Prelude.Text)+customRule_condition = Lens.lens (\CustomRule' {condition} -> condition) (\s@CustomRule' {} a -> s {condition = a} :: CustomRule)++-- | The status code for a URL rewrite or redirect rule.+--+-- [200]+--     Represents a 200 rewrite rule.+--+-- [301]+--     Represents a 301 (moved pemanently) redirect rule. This and all+--     future requests should be directed to the target URL.+--+-- [302]+--     Represents a 302 temporary redirect rule.+--+-- [404]+--     Represents a 404 redirect rule.+--+-- [404-200]+--     Represents a 404 rewrite rule.+customRule_status :: Lens.Lens' CustomRule (Prelude.Maybe Prelude.Text)+customRule_status = Lens.lens (\CustomRule' {status} -> status) (\s@CustomRule' {} a -> s {status = a} :: CustomRule)++-- | The source pattern for a URL rewrite or redirect rule.+customRule_source :: Lens.Lens' CustomRule Prelude.Text+customRule_source = Lens.lens (\CustomRule' {source} -> source) (\s@CustomRule' {} a -> s {source = a} :: CustomRule)++-- | The target pattern for a URL rewrite or redirect rule.+customRule_target :: Lens.Lens' CustomRule Prelude.Text+customRule_target = Lens.lens (\CustomRule' {target} -> target) (\s@CustomRule' {} a -> s {target = a} :: CustomRule)++instance Data.FromJSON CustomRule where+  parseJSON =+    Data.withObject+      "CustomRule"+      ( \x ->+          CustomRule'+            Prelude.<$> (x Data..:? "condition")+            Prelude.<*> (x Data..:? "status")+            Prelude.<*> (x Data..: "source")+            Prelude.<*> (x Data..: "target")+      )++instance Prelude.Hashable CustomRule where+  hashWithSalt _salt CustomRule' {..} =+    _salt+      `Prelude.hashWithSalt` condition+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` source+      `Prelude.hashWithSalt` target++instance Prelude.NFData CustomRule where+  rnf CustomRule' {..} =+    Prelude.rnf condition+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf source+      `Prelude.seq` Prelude.rnf target++instance Data.ToJSON CustomRule where+  toJSON CustomRule' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("condition" Data..=) Prelude.<$> condition,+            ("status" Data..=) Prelude.<$> status,+            Prelude.Just ("source" Data..= source),+            Prelude.Just ("target" Data..= target)+          ]+      )
+ gen/Amazonka/Amplify/Types/DomainAssociation.hs view
@@ -0,0 +1,193 @@+{-# 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.Amplify.Types.DomainAssociation+-- 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.Amplify.Types.DomainAssociation where++import Amazonka.Amplify.Types.DomainStatus+import Amazonka.Amplify.Types.SubDomain+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Describes a domain association that associates a custom domain with an+-- Amplify app.+--+-- /See:/ 'newDomainAssociation' smart constructor.+data DomainAssociation = DomainAssociation'+  { -- | Sets branch patterns for automatic subdomain creation.+    autoSubDomainCreationPatterns :: Prelude.Maybe [Prelude.Text],+    -- | The required AWS Identity and Access Management (IAM) service role for+    -- the Amazon Resource Name (ARN) for automatically creating subdomains.+    autoSubDomainIAMRole :: Prelude.Maybe Prelude.Text,+    -- | The DNS record for certificate verification.+    certificateVerificationDNSRecord :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) for the domain association.+    domainAssociationArn :: Prelude.Text,+    -- | The name of the domain.+    domainName :: Prelude.Text,+    -- | Enables the automated creation of subdomains for branches.+    enableAutoSubDomain :: Prelude.Bool,+    -- | The current status of the domain association.+    domainStatus :: DomainStatus,+    -- | The reason for the current status of the domain association.+    statusReason :: Prelude.Text,+    -- | The subdomains for the domain association.+    subDomains :: [SubDomain]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DomainAssociation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'autoSubDomainCreationPatterns', 'domainAssociation_autoSubDomainCreationPatterns' - Sets branch patterns for automatic subdomain creation.+--+-- 'autoSubDomainIAMRole', 'domainAssociation_autoSubDomainIAMRole' - The required AWS Identity and Access Management (IAM) service role for+-- the Amazon Resource Name (ARN) for automatically creating subdomains.+--+-- 'certificateVerificationDNSRecord', 'domainAssociation_certificateVerificationDNSRecord' - The DNS record for certificate verification.+--+-- 'domainAssociationArn', 'domainAssociation_domainAssociationArn' - The Amazon Resource Name (ARN) for the domain association.+--+-- 'domainName', 'domainAssociation_domainName' - The name of the domain.+--+-- 'enableAutoSubDomain', 'domainAssociation_enableAutoSubDomain' - Enables the automated creation of subdomains for branches.+--+-- 'domainStatus', 'domainAssociation_domainStatus' - The current status of the domain association.+--+-- 'statusReason', 'domainAssociation_statusReason' - The reason for the current status of the domain association.+--+-- 'subDomains', 'domainAssociation_subDomains' - The subdomains for the domain association.+newDomainAssociation ::+  -- | 'domainAssociationArn'+  Prelude.Text ->+  -- | 'domainName'+  Prelude.Text ->+  -- | 'enableAutoSubDomain'+  Prelude.Bool ->+  -- | 'domainStatus'+  DomainStatus ->+  -- | 'statusReason'+  Prelude.Text ->+  DomainAssociation+newDomainAssociation+  pDomainAssociationArn_+  pDomainName_+  pEnableAutoSubDomain_+  pDomainStatus_+  pStatusReason_ =+    DomainAssociation'+      { autoSubDomainCreationPatterns =+          Prelude.Nothing,+        autoSubDomainIAMRole = Prelude.Nothing,+        certificateVerificationDNSRecord = Prelude.Nothing,+        domainAssociationArn = pDomainAssociationArn_,+        domainName = pDomainName_,+        enableAutoSubDomain = pEnableAutoSubDomain_,+        domainStatus = pDomainStatus_,+        statusReason = pStatusReason_,+        subDomains = Prelude.mempty+      }++-- | Sets branch patterns for automatic subdomain creation.+domainAssociation_autoSubDomainCreationPatterns :: Lens.Lens' DomainAssociation (Prelude.Maybe [Prelude.Text])+domainAssociation_autoSubDomainCreationPatterns = Lens.lens (\DomainAssociation' {autoSubDomainCreationPatterns} -> autoSubDomainCreationPatterns) (\s@DomainAssociation' {} a -> s {autoSubDomainCreationPatterns = a} :: DomainAssociation) Prelude.. Lens.mapping Lens.coerced++-- | The required AWS Identity and Access Management (IAM) service role for+-- the Amazon Resource Name (ARN) for automatically creating subdomains.+domainAssociation_autoSubDomainIAMRole :: Lens.Lens' DomainAssociation (Prelude.Maybe Prelude.Text)+domainAssociation_autoSubDomainIAMRole = Lens.lens (\DomainAssociation' {autoSubDomainIAMRole} -> autoSubDomainIAMRole) (\s@DomainAssociation' {} a -> s {autoSubDomainIAMRole = a} :: DomainAssociation)++-- | The DNS record for certificate verification.+domainAssociation_certificateVerificationDNSRecord :: Lens.Lens' DomainAssociation (Prelude.Maybe Prelude.Text)+domainAssociation_certificateVerificationDNSRecord = Lens.lens (\DomainAssociation' {certificateVerificationDNSRecord} -> certificateVerificationDNSRecord) (\s@DomainAssociation' {} a -> s {certificateVerificationDNSRecord = a} :: DomainAssociation)++-- | The Amazon Resource Name (ARN) for the domain association.+domainAssociation_domainAssociationArn :: Lens.Lens' DomainAssociation Prelude.Text+domainAssociation_domainAssociationArn = Lens.lens (\DomainAssociation' {domainAssociationArn} -> domainAssociationArn) (\s@DomainAssociation' {} a -> s {domainAssociationArn = a} :: DomainAssociation)++-- | The name of the domain.+domainAssociation_domainName :: Lens.Lens' DomainAssociation Prelude.Text+domainAssociation_domainName = Lens.lens (\DomainAssociation' {domainName} -> domainName) (\s@DomainAssociation' {} a -> s {domainName = a} :: DomainAssociation)++-- | Enables the automated creation of subdomains for branches.+domainAssociation_enableAutoSubDomain :: Lens.Lens' DomainAssociation Prelude.Bool+domainAssociation_enableAutoSubDomain = Lens.lens (\DomainAssociation' {enableAutoSubDomain} -> enableAutoSubDomain) (\s@DomainAssociation' {} a -> s {enableAutoSubDomain = a} :: DomainAssociation)++-- | The current status of the domain association.+domainAssociation_domainStatus :: Lens.Lens' DomainAssociation DomainStatus+domainAssociation_domainStatus = Lens.lens (\DomainAssociation' {domainStatus} -> domainStatus) (\s@DomainAssociation' {} a -> s {domainStatus = a} :: DomainAssociation)++-- | The reason for the current status of the domain association.+domainAssociation_statusReason :: Lens.Lens' DomainAssociation Prelude.Text+domainAssociation_statusReason = Lens.lens (\DomainAssociation' {statusReason} -> statusReason) (\s@DomainAssociation' {} a -> s {statusReason = a} :: DomainAssociation)++-- | The subdomains for the domain association.+domainAssociation_subDomains :: Lens.Lens' DomainAssociation [SubDomain]+domainAssociation_subDomains = Lens.lens (\DomainAssociation' {subDomains} -> subDomains) (\s@DomainAssociation' {} a -> s {subDomains = a} :: DomainAssociation) Prelude.. Lens.coerced++instance Data.FromJSON DomainAssociation where+  parseJSON =+    Data.withObject+      "DomainAssociation"+      ( \x ->+          DomainAssociation'+            Prelude.<$> ( x+                            Data..:? "autoSubDomainCreationPatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "autoSubDomainIAMRole")+            Prelude.<*> (x Data..:? "certificateVerificationDNSRecord")+            Prelude.<*> (x Data..: "domainAssociationArn")+            Prelude.<*> (x Data..: "domainName")+            Prelude.<*> (x Data..: "enableAutoSubDomain")+            Prelude.<*> (x Data..: "domainStatus")+            Prelude.<*> (x Data..: "statusReason")+            Prelude.<*> (x Data..:? "subDomains" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable DomainAssociation where+  hashWithSalt _salt DomainAssociation' {..} =+    _salt+      `Prelude.hashWithSalt` autoSubDomainCreationPatterns+      `Prelude.hashWithSalt` autoSubDomainIAMRole+      `Prelude.hashWithSalt` certificateVerificationDNSRecord+      `Prelude.hashWithSalt` domainAssociationArn+      `Prelude.hashWithSalt` domainName+      `Prelude.hashWithSalt` enableAutoSubDomain+      `Prelude.hashWithSalt` domainStatus+      `Prelude.hashWithSalt` statusReason+      `Prelude.hashWithSalt` subDomains++instance Prelude.NFData DomainAssociation where+  rnf DomainAssociation' {..} =+    Prelude.rnf autoSubDomainCreationPatterns+      `Prelude.seq` Prelude.rnf autoSubDomainIAMRole+      `Prelude.seq` Prelude.rnf certificateVerificationDNSRecord+      `Prelude.seq` Prelude.rnf domainAssociationArn+      `Prelude.seq` Prelude.rnf domainName+      `Prelude.seq` Prelude.rnf enableAutoSubDomain+      `Prelude.seq` Prelude.rnf domainStatus+      `Prelude.seq` Prelude.rnf statusReason+      `Prelude.seq` Prelude.rnf subDomains
+ gen/Amazonka/Amplify/Types/DomainStatus.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.Amplify.Types.DomainStatus+-- 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.Amplify.Types.DomainStatus+  ( DomainStatus+      ( ..,+        DomainStatus_AVAILABLE,+        DomainStatus_CREATING,+        DomainStatus_FAILED,+        DomainStatus_IN_PROGRESS,+        DomainStatus_PENDING_DEPLOYMENT,+        DomainStatus_PENDING_VERIFICATION,+        DomainStatus_REQUESTING_CERTIFICATE,+        DomainStatus_UPDATING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DomainStatus = DomainStatus'+  { fromDomainStatus ::+      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 DomainStatus_AVAILABLE :: DomainStatus+pattern DomainStatus_AVAILABLE = DomainStatus' "AVAILABLE"++pattern DomainStatus_CREATING :: DomainStatus+pattern DomainStatus_CREATING = DomainStatus' "CREATING"++pattern DomainStatus_FAILED :: DomainStatus+pattern DomainStatus_FAILED = DomainStatus' "FAILED"++pattern DomainStatus_IN_PROGRESS :: DomainStatus+pattern DomainStatus_IN_PROGRESS = DomainStatus' "IN_PROGRESS"++pattern DomainStatus_PENDING_DEPLOYMENT :: DomainStatus+pattern DomainStatus_PENDING_DEPLOYMENT = DomainStatus' "PENDING_DEPLOYMENT"++pattern DomainStatus_PENDING_VERIFICATION :: DomainStatus+pattern DomainStatus_PENDING_VERIFICATION = DomainStatus' "PENDING_VERIFICATION"++pattern DomainStatus_REQUESTING_CERTIFICATE :: DomainStatus+pattern DomainStatus_REQUESTING_CERTIFICATE = DomainStatus' "REQUESTING_CERTIFICATE"++pattern DomainStatus_UPDATING :: DomainStatus+pattern DomainStatus_UPDATING = DomainStatus' "UPDATING"++{-# COMPLETE+  DomainStatus_AVAILABLE,+  DomainStatus_CREATING,+  DomainStatus_FAILED,+  DomainStatus_IN_PROGRESS,+  DomainStatus_PENDING_DEPLOYMENT,+  DomainStatus_PENDING_VERIFICATION,+  DomainStatus_REQUESTING_CERTIFICATE,+  DomainStatus_UPDATING,+  DomainStatus'+  #-}
+ gen/Amazonka/Amplify/Types/Job.hs view
@@ -0,0 +1,84 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Amplify.Types.Job+-- 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.Amplify.Types.Job where++import Amazonka.Amplify.Types.JobSummary+import Amazonka.Amplify.Types.Step+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Describes an execution job for an Amplify app.+--+-- /See:/ 'newJob' smart constructor.+data Job = Job'+  { -- | Describes the summary for an execution job for an Amplify app.+    summary :: JobSummary,+    -- | The execution steps for an execution job, for an Amplify app.+    steps :: [Step]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Job' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'summary', 'job_summary' - Describes the summary for an execution job for an Amplify app.+--+-- 'steps', 'job_steps' - The execution steps for an execution job, for an Amplify app.+newJob ::+  -- | 'summary'+  JobSummary ->+  Job+newJob pSummary_ =+  Job' {summary = pSummary_, steps = Prelude.mempty}++-- | Describes the summary for an execution job for an Amplify app.+job_summary :: Lens.Lens' Job JobSummary+job_summary = Lens.lens (\Job' {summary} -> summary) (\s@Job' {} a -> s {summary = a} :: Job)++-- | The execution steps for an execution job, for an Amplify app.+job_steps :: Lens.Lens' Job [Step]+job_steps = Lens.lens (\Job' {steps} -> steps) (\s@Job' {} a -> s {steps = a} :: Job) Prelude.. Lens.coerced++instance Data.FromJSON Job where+  parseJSON =+    Data.withObject+      "Job"+      ( \x ->+          Job'+            Prelude.<$> (x Data..: "summary")+            Prelude.<*> (x Data..:? "steps" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable Job where+  hashWithSalt _salt Job' {..} =+    _salt+      `Prelude.hashWithSalt` summary+      `Prelude.hashWithSalt` steps++instance Prelude.NFData Job where+  rnf Job' {..} =+    Prelude.rnf summary `Prelude.seq` Prelude.rnf steps
+ gen/Amazonka/Amplify/Types/JobStatus.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.Amplify.Types.JobStatus+-- 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.Amplify.Types.JobStatus+  ( JobStatus+      ( ..,+        JobStatus_CANCELLED,+        JobStatus_CANCELLING,+        JobStatus_FAILED,+        JobStatus_PENDING,+        JobStatus_PROVISIONING,+        JobStatus_RUNNING,+        JobStatus_SUCCEED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype JobStatus = JobStatus'+  { fromJobStatus ::+      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 JobStatus_CANCELLED :: JobStatus+pattern JobStatus_CANCELLED = JobStatus' "CANCELLED"++pattern JobStatus_CANCELLING :: JobStatus+pattern JobStatus_CANCELLING = JobStatus' "CANCELLING"++pattern JobStatus_FAILED :: JobStatus+pattern JobStatus_FAILED = JobStatus' "FAILED"++pattern JobStatus_PENDING :: JobStatus+pattern JobStatus_PENDING = JobStatus' "PENDING"++pattern JobStatus_PROVISIONING :: JobStatus+pattern JobStatus_PROVISIONING = JobStatus' "PROVISIONING"++pattern JobStatus_RUNNING :: JobStatus+pattern JobStatus_RUNNING = JobStatus' "RUNNING"++pattern JobStatus_SUCCEED :: JobStatus+pattern JobStatus_SUCCEED = JobStatus' "SUCCEED"++{-# COMPLETE+  JobStatus_CANCELLED,+  JobStatus_CANCELLING,+  JobStatus_FAILED,+  JobStatus_PENDING,+  JobStatus_PROVISIONING,+  JobStatus_RUNNING,+  JobStatus_SUCCEED,+  JobStatus'+  #-}
+ gen/Amazonka/Amplify/Types/JobSummary.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.Amplify.Types.JobSummary+-- 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.Amplify.Types.JobSummary where++import Amazonka.Amplify.Types.JobStatus+import Amazonka.Amplify.Types.JobType+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Describes the summary for an execution job for an Amplify app.+--+-- /See:/ 'newJobSummary' smart constructor.+data JobSummary = JobSummary'+  { -- | The end date and time for the job.+    endTime :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) for the job.+    jobArn :: Prelude.Text,+    -- | The unique ID for the job.+    jobId :: Prelude.Text,+    -- | The commit ID from a third-party repository provider for the job.+    commitId :: Prelude.Text,+    -- | The commit message from a third-party repository provider for the job.+    commitMessage :: Prelude.Text,+    -- | The commit date and time for the job.+    commitTime :: Data.POSIX,+    -- | The start date and time for the job.+    startTime :: Data.POSIX,+    -- | The current status for the job.+    status :: JobStatus,+    -- | The type for the job. If the value is @RELEASE@, the job was manually+    -- released from its source by using the @StartJob@ API. If the value is+    -- @RETRY@, the job was manually retried using the @StartJob@ API. If the+    -- value is @WEB_HOOK@, the job was automatically triggered by webhooks.+    jobType :: JobType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'JobSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endTime', 'jobSummary_endTime' - The end date and time for the job.+--+-- 'jobArn', 'jobSummary_jobArn' - The Amazon Resource Name (ARN) for the job.+--+-- 'jobId', 'jobSummary_jobId' - The unique ID for the job.+--+-- 'commitId', 'jobSummary_commitId' - The commit ID from a third-party repository provider for the job.+--+-- 'commitMessage', 'jobSummary_commitMessage' - The commit message from a third-party repository provider for the job.+--+-- 'commitTime', 'jobSummary_commitTime' - The commit date and time for the job.+--+-- 'startTime', 'jobSummary_startTime' - The start date and time for the job.+--+-- 'status', 'jobSummary_status' - The current status for the job.+--+-- 'jobType', 'jobSummary_jobType' - The type for the job. If the value is @RELEASE@, the job was manually+-- released from its source by using the @StartJob@ API. If the value is+-- @RETRY@, the job was manually retried using the @StartJob@ API. If the+-- value is @WEB_HOOK@, the job was automatically triggered by webhooks.+newJobSummary ::+  -- | 'jobArn'+  Prelude.Text ->+  -- | 'jobId'+  Prelude.Text ->+  -- | 'commitId'+  Prelude.Text ->+  -- | 'commitMessage'+  Prelude.Text ->+  -- | 'commitTime'+  Prelude.UTCTime ->+  -- | 'startTime'+  Prelude.UTCTime ->+  -- | 'status'+  JobStatus ->+  -- | 'jobType'+  JobType ->+  JobSummary+newJobSummary+  pJobArn_+  pJobId_+  pCommitId_+  pCommitMessage_+  pCommitTime_+  pStartTime_+  pStatus_+  pJobType_ =+    JobSummary'+      { endTime = Prelude.Nothing,+        jobArn = pJobArn_,+        jobId = pJobId_,+        commitId = pCommitId_,+        commitMessage = pCommitMessage_,+        commitTime = Data._Time Lens.# pCommitTime_,+        startTime = Data._Time Lens.# pStartTime_,+        status = pStatus_,+        jobType = pJobType_+      }++-- | The end date and time for the job.+jobSummary_endTime :: Lens.Lens' JobSummary (Prelude.Maybe Prelude.UTCTime)+jobSummary_endTime = Lens.lens (\JobSummary' {endTime} -> endTime) (\s@JobSummary' {} a -> s {endTime = a} :: JobSummary) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) for the job.+jobSummary_jobArn :: Lens.Lens' JobSummary Prelude.Text+jobSummary_jobArn = Lens.lens (\JobSummary' {jobArn} -> jobArn) (\s@JobSummary' {} a -> s {jobArn = a} :: JobSummary)++-- | The unique ID for the job.+jobSummary_jobId :: Lens.Lens' JobSummary Prelude.Text+jobSummary_jobId = Lens.lens (\JobSummary' {jobId} -> jobId) (\s@JobSummary' {} a -> s {jobId = a} :: JobSummary)++-- | The commit ID from a third-party repository provider for the job.+jobSummary_commitId :: Lens.Lens' JobSummary Prelude.Text+jobSummary_commitId = Lens.lens (\JobSummary' {commitId} -> commitId) (\s@JobSummary' {} a -> s {commitId = a} :: JobSummary)++-- | The commit message from a third-party repository provider for the job.+jobSummary_commitMessage :: Lens.Lens' JobSummary Prelude.Text+jobSummary_commitMessage = Lens.lens (\JobSummary' {commitMessage} -> commitMessage) (\s@JobSummary' {} a -> s {commitMessage = a} :: JobSummary)++-- | The commit date and time for the job.+jobSummary_commitTime :: Lens.Lens' JobSummary Prelude.UTCTime+jobSummary_commitTime = Lens.lens (\JobSummary' {commitTime} -> commitTime) (\s@JobSummary' {} a -> s {commitTime = a} :: JobSummary) Prelude.. Data._Time++-- | The start date and time for the job.+jobSummary_startTime :: Lens.Lens' JobSummary Prelude.UTCTime+jobSummary_startTime = Lens.lens (\JobSummary' {startTime} -> startTime) (\s@JobSummary' {} a -> s {startTime = a} :: JobSummary) Prelude.. Data._Time++-- | The current status for the job.+jobSummary_status :: Lens.Lens' JobSummary JobStatus+jobSummary_status = Lens.lens (\JobSummary' {status} -> status) (\s@JobSummary' {} a -> s {status = a} :: JobSummary)++-- | The type for the job. If the value is @RELEASE@, the job was manually+-- released from its source by using the @StartJob@ API. If the value is+-- @RETRY@, the job was manually retried using the @StartJob@ API. If the+-- value is @WEB_HOOK@, the job was automatically triggered by webhooks.+jobSummary_jobType :: Lens.Lens' JobSummary JobType+jobSummary_jobType = Lens.lens (\JobSummary' {jobType} -> jobType) (\s@JobSummary' {} a -> s {jobType = a} :: JobSummary)++instance Data.FromJSON JobSummary where+  parseJSON =+    Data.withObject+      "JobSummary"+      ( \x ->+          JobSummary'+            Prelude.<$> (x Data..:? "endTime")+            Prelude.<*> (x Data..: "jobArn")+            Prelude.<*> (x Data..: "jobId")+            Prelude.<*> (x Data..: "commitId")+            Prelude.<*> (x Data..: "commitMessage")+            Prelude.<*> (x Data..: "commitTime")+            Prelude.<*> (x Data..: "startTime")+            Prelude.<*> (x Data..: "status")+            Prelude.<*> (x Data..: "jobType")+      )++instance Prelude.Hashable JobSummary where+  hashWithSalt _salt JobSummary' {..} =+    _salt+      `Prelude.hashWithSalt` endTime+      `Prelude.hashWithSalt` jobArn+      `Prelude.hashWithSalt` jobId+      `Prelude.hashWithSalt` commitId+      `Prelude.hashWithSalt` commitMessage+      `Prelude.hashWithSalt` commitTime+      `Prelude.hashWithSalt` startTime+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` jobType++instance Prelude.NFData JobSummary where+  rnf JobSummary' {..} =+    Prelude.rnf endTime+      `Prelude.seq` Prelude.rnf jobArn+      `Prelude.seq` Prelude.rnf jobId+      `Prelude.seq` Prelude.rnf commitId+      `Prelude.seq` Prelude.rnf commitMessage+      `Prelude.seq` Prelude.rnf commitTime+      `Prelude.seq` Prelude.rnf startTime+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf jobType
+ gen/Amazonka/Amplify/Types/JobType.hs view
@@ -0,0 +1,78 @@+{-# 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.Amplify.Types.JobType+-- 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.Amplify.Types.JobType+  ( JobType+      ( ..,+        JobType_MANUAL,+        JobType_RELEASE,+        JobType_RETRY,+        JobType_WEB_HOOK+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype JobType = JobType' {fromJobType :: 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 JobType_MANUAL :: JobType+pattern JobType_MANUAL = JobType' "MANUAL"++pattern JobType_RELEASE :: JobType+pattern JobType_RELEASE = JobType' "RELEASE"++pattern JobType_RETRY :: JobType+pattern JobType_RETRY = JobType' "RETRY"++pattern JobType_WEB_HOOK :: JobType+pattern JobType_WEB_HOOK = JobType' "WEB_HOOK"++{-# COMPLETE+  JobType_MANUAL,+  JobType_RELEASE,+  JobType_RETRY,+  JobType_WEB_HOOK,+  JobType'+  #-}
+ gen/Amazonka/Amplify/Types/Platform.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Amplify.Types.Platform+-- 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.Amplify.Types.Platform+  ( Platform+      ( ..,+        Platform_WEB,+        Platform_WEB_COMPUTE,+        Platform_WEB_DYNAMIC+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Platform = Platform'+  { fromPlatform ::+      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 Platform_WEB :: Platform+pattern Platform_WEB = Platform' "WEB"++pattern Platform_WEB_COMPUTE :: Platform+pattern Platform_WEB_COMPUTE = Platform' "WEB_COMPUTE"++pattern Platform_WEB_DYNAMIC :: Platform+pattern Platform_WEB_DYNAMIC = Platform' "WEB_DYNAMIC"++{-# COMPLETE+  Platform_WEB,+  Platform_WEB_COMPUTE,+  Platform_WEB_DYNAMIC,+  Platform'+  #-}
+ gen/Amazonka/Amplify/Types/ProductionBranch.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.Amplify.Types.ProductionBranch+-- 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.Amplify.Types.ProductionBranch where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Describes the information about a production branch for an Amplify app.+--+-- /See:/ 'newProductionBranch' smart constructor.+data ProductionBranch = ProductionBranch'+  { -- | The branch name for the production branch.+    branchName :: Prelude.Maybe Prelude.Text,+    -- | The last deploy time of the production branch.+    lastDeployTime :: Prelude.Maybe Data.POSIX,+    -- | The status of the production branch.+    status :: Prelude.Maybe Prelude.Text,+    -- | The thumbnail URL for the production branch.+    thumbnailUrl :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ProductionBranch' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'branchName', 'productionBranch_branchName' - The branch name for the production branch.+--+-- 'lastDeployTime', 'productionBranch_lastDeployTime' - The last deploy time of the production branch.+--+-- 'status', 'productionBranch_status' - The status of the production branch.+--+-- 'thumbnailUrl', 'productionBranch_thumbnailUrl' - The thumbnail URL for the production branch.+newProductionBranch ::+  ProductionBranch+newProductionBranch =+  ProductionBranch'+    { branchName = Prelude.Nothing,+      lastDeployTime = Prelude.Nothing,+      status = Prelude.Nothing,+      thumbnailUrl = Prelude.Nothing+    }++-- | The branch name for the production branch.+productionBranch_branchName :: Lens.Lens' ProductionBranch (Prelude.Maybe Prelude.Text)+productionBranch_branchName = Lens.lens (\ProductionBranch' {branchName} -> branchName) (\s@ProductionBranch' {} a -> s {branchName = a} :: ProductionBranch)++-- | The last deploy time of the production branch.+productionBranch_lastDeployTime :: Lens.Lens' ProductionBranch (Prelude.Maybe Prelude.UTCTime)+productionBranch_lastDeployTime = Lens.lens (\ProductionBranch' {lastDeployTime} -> lastDeployTime) (\s@ProductionBranch' {} a -> s {lastDeployTime = a} :: ProductionBranch) Prelude.. Lens.mapping Data._Time++-- | The status of the production branch.+productionBranch_status :: Lens.Lens' ProductionBranch (Prelude.Maybe Prelude.Text)+productionBranch_status = Lens.lens (\ProductionBranch' {status} -> status) (\s@ProductionBranch' {} a -> s {status = a} :: ProductionBranch)++-- | The thumbnail URL for the production branch.+productionBranch_thumbnailUrl :: Lens.Lens' ProductionBranch (Prelude.Maybe Prelude.Text)+productionBranch_thumbnailUrl = Lens.lens (\ProductionBranch' {thumbnailUrl} -> thumbnailUrl) (\s@ProductionBranch' {} a -> s {thumbnailUrl = a} :: ProductionBranch)++instance Data.FromJSON ProductionBranch where+  parseJSON =+    Data.withObject+      "ProductionBranch"+      ( \x ->+          ProductionBranch'+            Prelude.<$> (x Data..:? "branchName")+            Prelude.<*> (x Data..:? "lastDeployTime")+            Prelude.<*> (x Data..:? "status")+            Prelude.<*> (x Data..:? "thumbnailUrl")+      )++instance Prelude.Hashable ProductionBranch where+  hashWithSalt _salt ProductionBranch' {..} =+    _salt+      `Prelude.hashWithSalt` branchName+      `Prelude.hashWithSalt` lastDeployTime+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` thumbnailUrl++instance Prelude.NFData ProductionBranch where+  rnf ProductionBranch' {..} =+    Prelude.rnf branchName+      `Prelude.seq` Prelude.rnf lastDeployTime+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf thumbnailUrl
+ gen/Amazonka/Amplify/Types/RepositoryCloneMethod.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Amplify.Types.RepositoryCloneMethod+-- 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.Amplify.Types.RepositoryCloneMethod+  ( RepositoryCloneMethod+      ( ..,+        RepositoryCloneMethod_SIGV4,+        RepositoryCloneMethod_SSH,+        RepositoryCloneMethod_TOKEN+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype RepositoryCloneMethod = RepositoryCloneMethod'+  { fromRepositoryCloneMethod ::+      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 RepositoryCloneMethod_SIGV4 :: RepositoryCloneMethod+pattern RepositoryCloneMethod_SIGV4 = RepositoryCloneMethod' "SIGV4"++pattern RepositoryCloneMethod_SSH :: RepositoryCloneMethod+pattern RepositoryCloneMethod_SSH = RepositoryCloneMethod' "SSH"++pattern RepositoryCloneMethod_TOKEN :: RepositoryCloneMethod+pattern RepositoryCloneMethod_TOKEN = RepositoryCloneMethod' "TOKEN"++{-# COMPLETE+  RepositoryCloneMethod_SIGV4,+  RepositoryCloneMethod_SSH,+  RepositoryCloneMethod_TOKEN,+  RepositoryCloneMethod'+  #-}
+ gen/Amazonka/Amplify/Types/Stage.hs view
@@ -0,0 +1,83 @@+{-# 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.Amplify.Types.Stage+-- 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.Amplify.Types.Stage+  ( Stage+      ( ..,+        Stage_BETA,+        Stage_DEVELOPMENT,+        Stage_EXPERIMENTAL,+        Stage_PRODUCTION,+        Stage_PULL_REQUEST+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Stage = Stage' {fromStage :: 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 Stage_BETA :: Stage+pattern Stage_BETA = Stage' "BETA"++pattern Stage_DEVELOPMENT :: Stage+pattern Stage_DEVELOPMENT = Stage' "DEVELOPMENT"++pattern Stage_EXPERIMENTAL :: Stage+pattern Stage_EXPERIMENTAL = Stage' "EXPERIMENTAL"++pattern Stage_PRODUCTION :: Stage+pattern Stage_PRODUCTION = Stage' "PRODUCTION"++pattern Stage_PULL_REQUEST :: Stage+pattern Stage_PULL_REQUEST = Stage' "PULL_REQUEST"++{-# COMPLETE+  Stage_BETA,+  Stage_DEVELOPMENT,+  Stage_EXPERIMENTAL,+  Stage_PRODUCTION,+  Stage_PULL_REQUEST,+  Stage'+  #-}
+ gen/Amazonka/Amplify/Types/Step.hs view
@@ -0,0 +1,204 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Amplify.Types.Step+-- 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.Amplify.Types.Step where++import Amazonka.Amplify.Types.JobStatus+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Describes an execution step, for an execution job, for an Amplify app.+--+-- /See:/ 'newStep' smart constructor.+data Step = Step'+  { -- | The URL to the artifact for the execution step.+    artifactsUrl :: Prelude.Maybe Prelude.Text,+    -- | The context for the current step. Includes a build image if the step is+    -- build.+    context :: Prelude.Maybe Prelude.Text,+    -- | The URL to the logs for the execution step.+    logUrl :: Prelude.Maybe Prelude.Text,+    -- | The list of screenshot URLs for the execution step, if relevant.+    screenshots :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The reason for the current step status.+    statusReason :: Prelude.Maybe Prelude.Text,+    -- | The URL to the test artifact for the execution step.+    testArtifactsUrl :: Prelude.Maybe Prelude.Text,+    -- | The URL to the test configuration for the execution step.+    testConfigUrl :: Prelude.Maybe Prelude.Text,+    -- | The name of the execution step.+    stepName :: Prelude.Text,+    -- | The start date and time of the execution step.+    startTime :: Data.POSIX,+    -- | The status of the execution step.+    status :: JobStatus,+    -- | The end date and time of the execution step.+    endTime :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Step' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'artifactsUrl', 'step_artifactsUrl' - The URL to the artifact for the execution step.+--+-- 'context', 'step_context' - The context for the current step. Includes a build image if the step is+-- build.+--+-- 'logUrl', 'step_logUrl' - The URL to the logs for the execution step.+--+-- 'screenshots', 'step_screenshots' - The list of screenshot URLs for the execution step, if relevant.+--+-- 'statusReason', 'step_statusReason' - The reason for the current step status.+--+-- 'testArtifactsUrl', 'step_testArtifactsUrl' - The URL to the test artifact for the execution step.+--+-- 'testConfigUrl', 'step_testConfigUrl' - The URL to the test configuration for the execution step.+--+-- 'stepName', 'step_stepName' - The name of the execution step.+--+-- 'startTime', 'step_startTime' - The start date and time of the execution step.+--+-- 'status', 'step_status' - The status of the execution step.+--+-- 'endTime', 'step_endTime' - The end date and time of the execution step.+newStep ::+  -- | 'stepName'+  Prelude.Text ->+  -- | 'startTime'+  Prelude.UTCTime ->+  -- | 'status'+  JobStatus ->+  -- | 'endTime'+  Prelude.UTCTime ->+  Step+newStep pStepName_ pStartTime_ pStatus_ pEndTime_ =+  Step'+    { artifactsUrl = Prelude.Nothing,+      context = Prelude.Nothing,+      logUrl = Prelude.Nothing,+      screenshots = Prelude.Nothing,+      statusReason = Prelude.Nothing,+      testArtifactsUrl = Prelude.Nothing,+      testConfigUrl = Prelude.Nothing,+      stepName = pStepName_,+      startTime = Data._Time Lens.# pStartTime_,+      status = pStatus_,+      endTime = Data._Time Lens.# pEndTime_+    }++-- | The URL to the artifact for the execution step.+step_artifactsUrl :: Lens.Lens' Step (Prelude.Maybe Prelude.Text)+step_artifactsUrl = Lens.lens (\Step' {artifactsUrl} -> artifactsUrl) (\s@Step' {} a -> s {artifactsUrl = a} :: Step)++-- | The context for the current step. Includes a build image if the step is+-- build.+step_context :: Lens.Lens' Step (Prelude.Maybe Prelude.Text)+step_context = Lens.lens (\Step' {context} -> context) (\s@Step' {} a -> s {context = a} :: Step)++-- | The URL to the logs for the execution step.+step_logUrl :: Lens.Lens' Step (Prelude.Maybe Prelude.Text)+step_logUrl = Lens.lens (\Step' {logUrl} -> logUrl) (\s@Step' {} a -> s {logUrl = a} :: Step)++-- | The list of screenshot URLs for the execution step, if relevant.+step_screenshots :: Lens.Lens' Step (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+step_screenshots = Lens.lens (\Step' {screenshots} -> screenshots) (\s@Step' {} a -> s {screenshots = a} :: Step) Prelude.. Lens.mapping Lens.coerced++-- | The reason for the current step status.+step_statusReason :: Lens.Lens' Step (Prelude.Maybe Prelude.Text)+step_statusReason = Lens.lens (\Step' {statusReason} -> statusReason) (\s@Step' {} a -> s {statusReason = a} :: Step)++-- | The URL to the test artifact for the execution step.+step_testArtifactsUrl :: Lens.Lens' Step (Prelude.Maybe Prelude.Text)+step_testArtifactsUrl = Lens.lens (\Step' {testArtifactsUrl} -> testArtifactsUrl) (\s@Step' {} a -> s {testArtifactsUrl = a} :: Step)++-- | The URL to the test configuration for the execution step.+step_testConfigUrl :: Lens.Lens' Step (Prelude.Maybe Prelude.Text)+step_testConfigUrl = Lens.lens (\Step' {testConfigUrl} -> testConfigUrl) (\s@Step' {} a -> s {testConfigUrl = a} :: Step)++-- | The name of the execution step.+step_stepName :: Lens.Lens' Step Prelude.Text+step_stepName = Lens.lens (\Step' {stepName} -> stepName) (\s@Step' {} a -> s {stepName = a} :: Step)++-- | The start date and time of the execution step.+step_startTime :: Lens.Lens' Step Prelude.UTCTime+step_startTime = Lens.lens (\Step' {startTime} -> startTime) (\s@Step' {} a -> s {startTime = a} :: Step) Prelude.. Data._Time++-- | The status of the execution step.+step_status :: Lens.Lens' Step JobStatus+step_status = Lens.lens (\Step' {status} -> status) (\s@Step' {} a -> s {status = a} :: Step)++-- | The end date and time of the execution step.+step_endTime :: Lens.Lens' Step Prelude.UTCTime+step_endTime = Lens.lens (\Step' {endTime} -> endTime) (\s@Step' {} a -> s {endTime = a} :: Step) Prelude.. Data._Time++instance Data.FromJSON Step where+  parseJSON =+    Data.withObject+      "Step"+      ( \x ->+          Step'+            Prelude.<$> (x Data..:? "artifactsUrl")+            Prelude.<*> (x Data..:? "context")+            Prelude.<*> (x Data..:? "logUrl")+            Prelude.<*> (x Data..:? "screenshots" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "statusReason")+            Prelude.<*> (x Data..:? "testArtifactsUrl")+            Prelude.<*> (x Data..:? "testConfigUrl")+            Prelude.<*> (x Data..: "stepName")+            Prelude.<*> (x Data..: "startTime")+            Prelude.<*> (x Data..: "status")+            Prelude.<*> (x Data..: "endTime")+      )++instance Prelude.Hashable Step where+  hashWithSalt _salt Step' {..} =+    _salt+      `Prelude.hashWithSalt` artifactsUrl+      `Prelude.hashWithSalt` context+      `Prelude.hashWithSalt` logUrl+      `Prelude.hashWithSalt` screenshots+      `Prelude.hashWithSalt` statusReason+      `Prelude.hashWithSalt` testArtifactsUrl+      `Prelude.hashWithSalt` testConfigUrl+      `Prelude.hashWithSalt` stepName+      `Prelude.hashWithSalt` startTime+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` endTime++instance Prelude.NFData Step where+  rnf Step' {..} =+    Prelude.rnf artifactsUrl+      `Prelude.seq` Prelude.rnf context+      `Prelude.seq` Prelude.rnf logUrl+      `Prelude.seq` Prelude.rnf screenshots+      `Prelude.seq` Prelude.rnf statusReason+      `Prelude.seq` Prelude.rnf testArtifactsUrl+      `Prelude.seq` Prelude.rnf testConfigUrl+      `Prelude.seq` Prelude.rnf stepName+      `Prelude.seq` Prelude.rnf startTime+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf endTime
+ gen/Amazonka/Amplify/Types/SubDomain.hs view
@@ -0,0 +1,106 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Amplify.Types.SubDomain+-- 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.Amplify.Types.SubDomain where++import Amazonka.Amplify.Types.SubDomainSetting+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 subdomain for the domain association.+--+-- /See:/ 'newSubDomain' smart constructor.+data SubDomain = SubDomain'+  { -- | Describes the settings for the subdomain.+    subDomainSetting :: SubDomainSetting,+    -- | The verified status of the subdomain+    verified :: Prelude.Bool,+    -- | The DNS record for the subdomain.+    dnsRecord :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SubDomain' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'subDomainSetting', 'subDomain_subDomainSetting' - Describes the settings for the subdomain.+--+-- 'verified', 'subDomain_verified' - The verified status of the subdomain+--+-- 'dnsRecord', 'subDomain_dnsRecord' - The DNS record for the subdomain.+newSubDomain ::+  -- | 'subDomainSetting'+  SubDomainSetting ->+  -- | 'verified'+  Prelude.Bool ->+  -- | 'dnsRecord'+  Prelude.Text ->+  SubDomain+newSubDomain+  pSubDomainSetting_+  pVerified_+  pDnsRecord_ =+    SubDomain'+      { subDomainSetting = pSubDomainSetting_,+        verified = pVerified_,+        dnsRecord = pDnsRecord_+      }++-- | Describes the settings for the subdomain.+subDomain_subDomainSetting :: Lens.Lens' SubDomain SubDomainSetting+subDomain_subDomainSetting = Lens.lens (\SubDomain' {subDomainSetting} -> subDomainSetting) (\s@SubDomain' {} a -> s {subDomainSetting = a} :: SubDomain)++-- | The verified status of the subdomain+subDomain_verified :: Lens.Lens' SubDomain Prelude.Bool+subDomain_verified = Lens.lens (\SubDomain' {verified} -> verified) (\s@SubDomain' {} a -> s {verified = a} :: SubDomain)++-- | The DNS record for the subdomain.+subDomain_dnsRecord :: Lens.Lens' SubDomain Prelude.Text+subDomain_dnsRecord = Lens.lens (\SubDomain' {dnsRecord} -> dnsRecord) (\s@SubDomain' {} a -> s {dnsRecord = a} :: SubDomain)++instance Data.FromJSON SubDomain where+  parseJSON =+    Data.withObject+      "SubDomain"+      ( \x ->+          SubDomain'+            Prelude.<$> (x Data..: "subDomainSetting")+            Prelude.<*> (x Data..: "verified")+            Prelude.<*> (x Data..: "dnsRecord")+      )++instance Prelude.Hashable SubDomain where+  hashWithSalt _salt SubDomain' {..} =+    _salt+      `Prelude.hashWithSalt` subDomainSetting+      `Prelude.hashWithSalt` verified+      `Prelude.hashWithSalt` dnsRecord++instance Prelude.NFData SubDomain where+  rnf SubDomain' {..} =+    Prelude.rnf subDomainSetting+      `Prelude.seq` Prelude.rnf verified+      `Prelude.seq` Prelude.rnf dnsRecord
+ gen/Amazonka/Amplify/Types/SubDomainSetting.hs view
@@ -0,0 +1,97 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Amplify.Types.SubDomainSetting+-- 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.Amplify.Types.SubDomainSetting where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Describes the settings for the subdomain.+--+-- /See:/ 'newSubDomainSetting' smart constructor.+data SubDomainSetting = SubDomainSetting'+  { -- | The prefix setting for the subdomain.+    prefix :: Prelude.Text,+    -- | The branch name setting for the subdomain.+    branchName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SubDomainSetting' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'prefix', 'subDomainSetting_prefix' - The prefix setting for the subdomain.+--+-- 'branchName', 'subDomainSetting_branchName' - The branch name setting for the subdomain.+newSubDomainSetting ::+  -- | 'prefix'+  Prelude.Text ->+  -- | 'branchName'+  Prelude.Text ->+  SubDomainSetting+newSubDomainSetting pPrefix_ pBranchName_ =+  SubDomainSetting'+    { prefix = pPrefix_,+      branchName = pBranchName_+    }++-- | The prefix setting for the subdomain.+subDomainSetting_prefix :: Lens.Lens' SubDomainSetting Prelude.Text+subDomainSetting_prefix = Lens.lens (\SubDomainSetting' {prefix} -> prefix) (\s@SubDomainSetting' {} a -> s {prefix = a} :: SubDomainSetting)++-- | The branch name setting for the subdomain.+subDomainSetting_branchName :: Lens.Lens' SubDomainSetting Prelude.Text+subDomainSetting_branchName = Lens.lens (\SubDomainSetting' {branchName} -> branchName) (\s@SubDomainSetting' {} a -> s {branchName = a} :: SubDomainSetting)++instance Data.FromJSON SubDomainSetting where+  parseJSON =+    Data.withObject+      "SubDomainSetting"+      ( \x ->+          SubDomainSetting'+            Prelude.<$> (x Data..: "prefix")+            Prelude.<*> (x Data..: "branchName")+      )++instance Prelude.Hashable SubDomainSetting where+  hashWithSalt _salt SubDomainSetting' {..} =+    _salt+      `Prelude.hashWithSalt` prefix+      `Prelude.hashWithSalt` branchName++instance Prelude.NFData SubDomainSetting where+  rnf SubDomainSetting' {..} =+    Prelude.rnf prefix+      `Prelude.seq` Prelude.rnf branchName++instance Data.ToJSON SubDomainSetting where+  toJSON SubDomainSetting' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("prefix" Data..= prefix),+            Prelude.Just ("branchName" Data..= branchName)+          ]+      )
+ gen/Amazonka/Amplify/Types/Webhook.hs view
@@ -0,0 +1,165 @@+{-# 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.Amplify.Types.Webhook+-- 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.Amplify.Types.Webhook where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Describes a webhook that connects repository events to an Amplify app.+--+-- /See:/ 'newWebhook' smart constructor.+data Webhook = Webhook'+  { -- | The Amazon Resource Name (ARN) for the webhook.+    webhookArn :: Prelude.Text,+    -- | The ID of the webhook.+    webhookId :: Prelude.Text,+    -- | The URL of the webhook.+    webhookUrl :: Prelude.Text,+    -- | The name for a branch that is part of an Amplify app.+    branchName :: Prelude.Text,+    -- | The description for a webhook.+    description :: Prelude.Text,+    -- | The create date and time for a webhook.+    createTime :: Data.POSIX,+    -- | Updates the date and time for a webhook.+    updateTime :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Webhook' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'webhookArn', 'webhook_webhookArn' - The Amazon Resource Name (ARN) for the webhook.+--+-- 'webhookId', 'webhook_webhookId' - The ID of the webhook.+--+-- 'webhookUrl', 'webhook_webhookUrl' - The URL of the webhook.+--+-- 'branchName', 'webhook_branchName' - The name for a branch that is part of an Amplify app.+--+-- 'description', 'webhook_description' - The description for a webhook.+--+-- 'createTime', 'webhook_createTime' - The create date and time for a webhook.+--+-- 'updateTime', 'webhook_updateTime' - Updates the date and time for a webhook.+newWebhook ::+  -- | 'webhookArn'+  Prelude.Text ->+  -- | 'webhookId'+  Prelude.Text ->+  -- | 'webhookUrl'+  Prelude.Text ->+  -- | 'branchName'+  Prelude.Text ->+  -- | 'description'+  Prelude.Text ->+  -- | 'createTime'+  Prelude.UTCTime ->+  -- | 'updateTime'+  Prelude.UTCTime ->+  Webhook+newWebhook+  pWebhookArn_+  pWebhookId_+  pWebhookUrl_+  pBranchName_+  pDescription_+  pCreateTime_+  pUpdateTime_ =+    Webhook'+      { webhookArn = pWebhookArn_,+        webhookId = pWebhookId_,+        webhookUrl = pWebhookUrl_,+        branchName = pBranchName_,+        description = pDescription_,+        createTime = Data._Time Lens.# pCreateTime_,+        updateTime = Data._Time Lens.# pUpdateTime_+      }++-- | The Amazon Resource Name (ARN) for the webhook.+webhook_webhookArn :: Lens.Lens' Webhook Prelude.Text+webhook_webhookArn = Lens.lens (\Webhook' {webhookArn} -> webhookArn) (\s@Webhook' {} a -> s {webhookArn = a} :: Webhook)++-- | The ID of the webhook.+webhook_webhookId :: Lens.Lens' Webhook Prelude.Text+webhook_webhookId = Lens.lens (\Webhook' {webhookId} -> webhookId) (\s@Webhook' {} a -> s {webhookId = a} :: Webhook)++-- | The URL of the webhook.+webhook_webhookUrl :: Lens.Lens' Webhook Prelude.Text+webhook_webhookUrl = Lens.lens (\Webhook' {webhookUrl} -> webhookUrl) (\s@Webhook' {} a -> s {webhookUrl = a} :: Webhook)++-- | The name for a branch that is part of an Amplify app.+webhook_branchName :: Lens.Lens' Webhook Prelude.Text+webhook_branchName = Lens.lens (\Webhook' {branchName} -> branchName) (\s@Webhook' {} a -> s {branchName = a} :: Webhook)++-- | The description for a webhook.+webhook_description :: Lens.Lens' Webhook Prelude.Text+webhook_description = Lens.lens (\Webhook' {description} -> description) (\s@Webhook' {} a -> s {description = a} :: Webhook)++-- | The create date and time for a webhook.+webhook_createTime :: Lens.Lens' Webhook Prelude.UTCTime+webhook_createTime = Lens.lens (\Webhook' {createTime} -> createTime) (\s@Webhook' {} a -> s {createTime = a} :: Webhook) Prelude.. Data._Time++-- | Updates the date and time for a webhook.+webhook_updateTime :: Lens.Lens' Webhook Prelude.UTCTime+webhook_updateTime = Lens.lens (\Webhook' {updateTime} -> updateTime) (\s@Webhook' {} a -> s {updateTime = a} :: Webhook) Prelude.. Data._Time++instance Data.FromJSON Webhook where+  parseJSON =+    Data.withObject+      "Webhook"+      ( \x ->+          Webhook'+            Prelude.<$> (x Data..: "webhookArn")+            Prelude.<*> (x Data..: "webhookId")+            Prelude.<*> (x Data..: "webhookUrl")+            Prelude.<*> (x Data..: "branchName")+            Prelude.<*> (x Data..: "description")+            Prelude.<*> (x Data..: "createTime")+            Prelude.<*> (x Data..: "updateTime")+      )++instance Prelude.Hashable Webhook where+  hashWithSalt _salt Webhook' {..} =+    _salt+      `Prelude.hashWithSalt` webhookArn+      `Prelude.hashWithSalt` webhookId+      `Prelude.hashWithSalt` webhookUrl+      `Prelude.hashWithSalt` branchName+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` createTime+      `Prelude.hashWithSalt` updateTime++instance Prelude.NFData Webhook where+  rnf Webhook' {..} =+    Prelude.rnf webhookArn+      `Prelude.seq` Prelude.rnf webhookId+      `Prelude.seq` Prelude.rnf webhookUrl+      `Prelude.seq` Prelude.rnf branchName+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf createTime+      `Prelude.seq` Prelude.rnf updateTime
+ gen/Amazonka/Amplify/UntagResource.hs view
@@ -0,0 +1,167 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Amplify.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)+--+-- Untags a resource with a specified Amazon Resource Name (ARN).+module Amazonka.Amplify.UntagResource+  ( -- * Creating a Request+    UntagResource (..),+    newUntagResource,++    -- * Request Lenses+    untagResource_resourceArn,+    untagResource_tagKeys,++    -- * Destructuring the Response+    UntagResourceResponse (..),+    newUntagResourceResponse,++    -- * Response Lenses+    untagResourceResponse_httpStatus,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request structure for the untag resource request.+--+-- /See:/ 'newUntagResource' smart constructor.+data UntagResource = UntagResource'+  { -- | The Amazon Resource Name (ARN) to use to untag a resource.+    resourceArn :: Prelude.Text,+    -- | The tag keys to use to untag a resource.+    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) to use to untag a resource.+--+-- 'tagKeys', 'untagResource_tagKeys' - The tag keys to use to untag a resource.+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) to use to untag a resource.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | The tag keys to use to untag a resource.+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]++-- | The response for the untag resource request.+--+-- /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/Amplify/UpdateApp.hs view
@@ -0,0 +1,532 @@+{-# 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.Amplify.UpdateApp+-- 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 an existing Amplify app.+module Amazonka.Amplify.UpdateApp+  ( -- * Creating a Request+    UpdateApp (..),+    newUpdateApp,++    -- * Request Lenses+    updateApp_accessToken,+    updateApp_autoBranchCreationConfig,+    updateApp_autoBranchCreationPatterns,+    updateApp_basicAuthCredentials,+    updateApp_buildSpec,+    updateApp_customHeaders,+    updateApp_customRules,+    updateApp_description,+    updateApp_enableAutoBranchCreation,+    updateApp_enableBasicAuth,+    updateApp_enableBranchAutoBuild,+    updateApp_enableBranchAutoDeletion,+    updateApp_environmentVariables,+    updateApp_iamServiceRoleArn,+    updateApp_name,+    updateApp_oauthToken,+    updateApp_platform,+    updateApp_repository,+    updateApp_appId,++    -- * Destructuring the Response+    UpdateAppResponse (..),+    newUpdateAppResponse,++    -- * Response Lenses+    updateAppResponse_httpStatus,+    updateAppResponse_app,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request structure for the update app request.+--+-- /See:/ 'newUpdateApp' smart constructor.+data UpdateApp = UpdateApp'+  { -- | The personal access token for a GitHub repository for an Amplify app.+    -- The personal access token is used to authorize access to a GitHub+    -- repository using the Amplify GitHub App. The token is not stored.+    --+    -- Use @accessToken@ for GitHub repositories only. To authorize access to a+    -- repository provider such as Bitbucket or CodeCommit, use @oauthToken@.+    --+    -- You must specify either @accessToken@ or @oauthToken@ when you update an+    -- app.+    --+    -- Existing Amplify apps deployed from a GitHub repository using OAuth+    -- continue to work with CI\/CD. However, we strongly recommend that you+    -- migrate these apps to use the GitHub App. For more information, see+    -- <https://docs.aws.amazon.com/amplify/latest/UserGuide/setting-up-GitHub-access.html#migrating-to-github-app-auth Migrating an existing OAuth app to the Amplify GitHub App>+    -- in the /Amplify User Guide/ .+    accessToken :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The automated branch creation configuration for an Amplify app.+    autoBranchCreationConfig :: Prelude.Maybe AutoBranchCreationConfig,+    -- | Describes the automated branch creation glob patterns for an Amplify+    -- app.+    autoBranchCreationPatterns :: Prelude.Maybe [Prelude.Text],+    -- | The basic authorization credentials for an Amplify app. You must+    -- base64-encode the authorization credentials and provide them in the+    -- format @user:password@.+    basicAuthCredentials :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The build specification (build spec) for an Amplify app.+    buildSpec :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The custom HTTP headers for an Amplify app.+    customHeaders :: Prelude.Maybe Prelude.Text,+    -- | The custom redirect and rewrite rules for an Amplify app.+    customRules :: Prelude.Maybe [CustomRule],+    -- | The description for an Amplify app.+    description :: Prelude.Maybe Prelude.Text,+    -- | Enables automated branch creation for an Amplify app.+    enableAutoBranchCreation :: Prelude.Maybe Prelude.Bool,+    -- | Enables basic authorization for an Amplify app.+    enableBasicAuth :: Prelude.Maybe Prelude.Bool,+    -- | Enables branch auto-building for an Amplify app.+    enableBranchAutoBuild :: Prelude.Maybe Prelude.Bool,+    -- | Automatically disconnects a branch in the Amplify Console when you+    -- delete a branch from your Git repository.+    enableBranchAutoDeletion :: Prelude.Maybe Prelude.Bool,+    -- | The environment variables for an Amplify app.+    environmentVariables :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The AWS Identity and Access Management (IAM) service role for an Amplify+    -- app.+    iamServiceRoleArn :: Prelude.Maybe Prelude.Text,+    -- | The name for an Amplify app.+    name :: Prelude.Maybe Prelude.Text,+    -- | The OAuth token for a third-party source control system for an Amplify+    -- app. The OAuth token is used to create a webhook and a read-only deploy+    -- key using SSH cloning. The OAuth token is not stored.+    --+    -- Use @oauthToken@ for repository providers other than GitHub, such as+    -- Bitbucket or CodeCommit.+    --+    -- To authorize access to GitHub as your repository provider, use+    -- @accessToken@.+    --+    -- You must specify either @oauthToken@ or @accessToken@ when you update an+    -- app.+    --+    -- Existing Amplify apps deployed from a GitHub repository using OAuth+    -- continue to work with CI\/CD. However, we strongly recommend that you+    -- migrate these apps to use the GitHub App. For more information, see+    -- <https://docs.aws.amazon.com/amplify/latest/UserGuide/setting-up-GitHub-access.html#migrating-to-github-app-auth Migrating an existing OAuth app to the Amplify GitHub App>+    -- in the /Amplify User Guide/ .+    oauthToken :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The platform for the Amplify app. For a static app, set the platform+    -- type to @WEB@. For a dynamic server-side rendered (SSR) app, set the+    -- platform type to @WEB_COMPUTE@. For an app requiring Amplify Hosting\'s+    -- original SSR support only, set the platform type to @WEB_DYNAMIC@.+    platform :: Prelude.Maybe Platform,+    -- | The name of the repository for an Amplify app+    repository :: Prelude.Maybe Prelude.Text,+    -- | The unique ID for an Amplify app.+    appId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateApp' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accessToken', 'updateApp_accessToken' - The personal access token for a GitHub repository for an Amplify app.+-- The personal access token is used to authorize access to a GitHub+-- repository using the Amplify GitHub App. The token is not stored.+--+-- Use @accessToken@ for GitHub repositories only. To authorize access to a+-- repository provider such as Bitbucket or CodeCommit, use @oauthToken@.+--+-- You must specify either @accessToken@ or @oauthToken@ when you update an+-- app.+--+-- Existing Amplify apps deployed from a GitHub repository using OAuth+-- continue to work with CI\/CD. However, we strongly recommend that you+-- migrate these apps to use the GitHub App. For more information, see+-- <https://docs.aws.amazon.com/amplify/latest/UserGuide/setting-up-GitHub-access.html#migrating-to-github-app-auth Migrating an existing OAuth app to the Amplify GitHub App>+-- in the /Amplify User Guide/ .+--+-- 'autoBranchCreationConfig', 'updateApp_autoBranchCreationConfig' - The automated branch creation configuration for an Amplify app.+--+-- 'autoBranchCreationPatterns', 'updateApp_autoBranchCreationPatterns' - Describes the automated branch creation glob patterns for an Amplify+-- app.+--+-- 'basicAuthCredentials', 'updateApp_basicAuthCredentials' - The basic authorization credentials for an Amplify app. You must+-- base64-encode the authorization credentials and provide them in the+-- format @user:password@.+--+-- 'buildSpec', 'updateApp_buildSpec' - The build specification (build spec) for an Amplify app.+--+-- 'customHeaders', 'updateApp_customHeaders' - The custom HTTP headers for an Amplify app.+--+-- 'customRules', 'updateApp_customRules' - The custom redirect and rewrite rules for an Amplify app.+--+-- 'description', 'updateApp_description' - The description for an Amplify app.+--+-- 'enableAutoBranchCreation', 'updateApp_enableAutoBranchCreation' - Enables automated branch creation for an Amplify app.+--+-- 'enableBasicAuth', 'updateApp_enableBasicAuth' - Enables basic authorization for an Amplify app.+--+-- 'enableBranchAutoBuild', 'updateApp_enableBranchAutoBuild' - Enables branch auto-building for an Amplify app.+--+-- 'enableBranchAutoDeletion', 'updateApp_enableBranchAutoDeletion' - Automatically disconnects a branch in the Amplify Console when you+-- delete a branch from your Git repository.+--+-- 'environmentVariables', 'updateApp_environmentVariables' - The environment variables for an Amplify app.+--+-- 'iamServiceRoleArn', 'updateApp_iamServiceRoleArn' - The AWS Identity and Access Management (IAM) service role for an Amplify+-- app.+--+-- 'name', 'updateApp_name' - The name for an Amplify app.+--+-- 'oauthToken', 'updateApp_oauthToken' - The OAuth token for a third-party source control system for an Amplify+-- app. The OAuth token is used to create a webhook and a read-only deploy+-- key using SSH cloning. The OAuth token is not stored.+--+-- Use @oauthToken@ for repository providers other than GitHub, such as+-- Bitbucket or CodeCommit.+--+-- To authorize access to GitHub as your repository provider, use+-- @accessToken@.+--+-- You must specify either @oauthToken@ or @accessToken@ when you update an+-- app.+--+-- Existing Amplify apps deployed from a GitHub repository using OAuth+-- continue to work with CI\/CD. However, we strongly recommend that you+-- migrate these apps to use the GitHub App. For more information, see+-- <https://docs.aws.amazon.com/amplify/latest/UserGuide/setting-up-GitHub-access.html#migrating-to-github-app-auth Migrating an existing OAuth app to the Amplify GitHub App>+-- in the /Amplify User Guide/ .+--+-- 'platform', 'updateApp_platform' - The platform for the Amplify app. For a static app, set the platform+-- type to @WEB@. For a dynamic server-side rendered (SSR) app, set the+-- platform type to @WEB_COMPUTE@. For an app requiring Amplify Hosting\'s+-- original SSR support only, set the platform type to @WEB_DYNAMIC@.+--+-- 'repository', 'updateApp_repository' - The name of the repository for an Amplify app+--+-- 'appId', 'updateApp_appId' - The unique ID for an Amplify app.+newUpdateApp ::+  -- | 'appId'+  Prelude.Text ->+  UpdateApp+newUpdateApp pAppId_ =+  UpdateApp'+    { accessToken = Prelude.Nothing,+      autoBranchCreationConfig = Prelude.Nothing,+      autoBranchCreationPatterns = Prelude.Nothing,+      basicAuthCredentials = Prelude.Nothing,+      buildSpec = Prelude.Nothing,+      customHeaders = Prelude.Nothing,+      customRules = Prelude.Nothing,+      description = Prelude.Nothing,+      enableAutoBranchCreation = Prelude.Nothing,+      enableBasicAuth = Prelude.Nothing,+      enableBranchAutoBuild = Prelude.Nothing,+      enableBranchAutoDeletion = Prelude.Nothing,+      environmentVariables = Prelude.Nothing,+      iamServiceRoleArn = Prelude.Nothing,+      name = Prelude.Nothing,+      oauthToken = Prelude.Nothing,+      platform = Prelude.Nothing,+      repository = Prelude.Nothing,+      appId = pAppId_+    }++-- | The personal access token for a GitHub repository for an Amplify app.+-- The personal access token is used to authorize access to a GitHub+-- repository using the Amplify GitHub App. The token is not stored.+--+-- Use @accessToken@ for GitHub repositories only. To authorize access to a+-- repository provider such as Bitbucket or CodeCommit, use @oauthToken@.+--+-- You must specify either @accessToken@ or @oauthToken@ when you update an+-- app.+--+-- Existing Amplify apps deployed from a GitHub repository using OAuth+-- continue to work with CI\/CD. However, we strongly recommend that you+-- migrate these apps to use the GitHub App. For more information, see+-- <https://docs.aws.amazon.com/amplify/latest/UserGuide/setting-up-GitHub-access.html#migrating-to-github-app-auth Migrating an existing OAuth app to the Amplify GitHub App>+-- in the /Amplify User Guide/ .+updateApp_accessToken :: Lens.Lens' UpdateApp (Prelude.Maybe Prelude.Text)+updateApp_accessToken = Lens.lens (\UpdateApp' {accessToken} -> accessToken) (\s@UpdateApp' {} a -> s {accessToken = a} :: UpdateApp) Prelude.. Lens.mapping Data._Sensitive++-- | The automated branch creation configuration for an Amplify app.+updateApp_autoBranchCreationConfig :: Lens.Lens' UpdateApp (Prelude.Maybe AutoBranchCreationConfig)+updateApp_autoBranchCreationConfig = Lens.lens (\UpdateApp' {autoBranchCreationConfig} -> autoBranchCreationConfig) (\s@UpdateApp' {} a -> s {autoBranchCreationConfig = a} :: UpdateApp)++-- | Describes the automated branch creation glob patterns for an Amplify+-- app.+updateApp_autoBranchCreationPatterns :: Lens.Lens' UpdateApp (Prelude.Maybe [Prelude.Text])+updateApp_autoBranchCreationPatterns = Lens.lens (\UpdateApp' {autoBranchCreationPatterns} -> autoBranchCreationPatterns) (\s@UpdateApp' {} a -> s {autoBranchCreationPatterns = a} :: UpdateApp) Prelude.. Lens.mapping Lens.coerced++-- | The basic authorization credentials for an Amplify app. You must+-- base64-encode the authorization credentials and provide them in the+-- format @user:password@.+updateApp_basicAuthCredentials :: Lens.Lens' UpdateApp (Prelude.Maybe Prelude.Text)+updateApp_basicAuthCredentials = Lens.lens (\UpdateApp' {basicAuthCredentials} -> basicAuthCredentials) (\s@UpdateApp' {} a -> s {basicAuthCredentials = a} :: UpdateApp) Prelude.. Lens.mapping Data._Sensitive++-- | The build specification (build spec) for an Amplify app.+updateApp_buildSpec :: Lens.Lens' UpdateApp (Prelude.Maybe Prelude.Text)+updateApp_buildSpec = Lens.lens (\UpdateApp' {buildSpec} -> buildSpec) (\s@UpdateApp' {} a -> s {buildSpec = a} :: UpdateApp) Prelude.. Lens.mapping Data._Sensitive++-- | The custom HTTP headers for an Amplify app.+updateApp_customHeaders :: Lens.Lens' UpdateApp (Prelude.Maybe Prelude.Text)+updateApp_customHeaders = Lens.lens (\UpdateApp' {customHeaders} -> customHeaders) (\s@UpdateApp' {} a -> s {customHeaders = a} :: UpdateApp)++-- | The custom redirect and rewrite rules for an Amplify app.+updateApp_customRules :: Lens.Lens' UpdateApp (Prelude.Maybe [CustomRule])+updateApp_customRules = Lens.lens (\UpdateApp' {customRules} -> customRules) (\s@UpdateApp' {} a -> s {customRules = a} :: UpdateApp) Prelude.. Lens.mapping Lens.coerced++-- | The description for an Amplify app.+updateApp_description :: Lens.Lens' UpdateApp (Prelude.Maybe Prelude.Text)+updateApp_description = Lens.lens (\UpdateApp' {description} -> description) (\s@UpdateApp' {} a -> s {description = a} :: UpdateApp)++-- | Enables automated branch creation for an Amplify app.+updateApp_enableAutoBranchCreation :: Lens.Lens' UpdateApp (Prelude.Maybe Prelude.Bool)+updateApp_enableAutoBranchCreation = Lens.lens (\UpdateApp' {enableAutoBranchCreation} -> enableAutoBranchCreation) (\s@UpdateApp' {} a -> s {enableAutoBranchCreation = a} :: UpdateApp)++-- | Enables basic authorization for an Amplify app.+updateApp_enableBasicAuth :: Lens.Lens' UpdateApp (Prelude.Maybe Prelude.Bool)+updateApp_enableBasicAuth = Lens.lens (\UpdateApp' {enableBasicAuth} -> enableBasicAuth) (\s@UpdateApp' {} a -> s {enableBasicAuth = a} :: UpdateApp)++-- | Enables branch auto-building for an Amplify app.+updateApp_enableBranchAutoBuild :: Lens.Lens' UpdateApp (Prelude.Maybe Prelude.Bool)+updateApp_enableBranchAutoBuild = Lens.lens (\UpdateApp' {enableBranchAutoBuild} -> enableBranchAutoBuild) (\s@UpdateApp' {} a -> s {enableBranchAutoBuild = a} :: UpdateApp)++-- | Automatically disconnects a branch in the Amplify Console when you+-- delete a branch from your Git repository.+updateApp_enableBranchAutoDeletion :: Lens.Lens' UpdateApp (Prelude.Maybe Prelude.Bool)+updateApp_enableBranchAutoDeletion = Lens.lens (\UpdateApp' {enableBranchAutoDeletion} -> enableBranchAutoDeletion) (\s@UpdateApp' {} a -> s {enableBranchAutoDeletion = a} :: UpdateApp)++-- | The environment variables for an Amplify app.+updateApp_environmentVariables :: Lens.Lens' UpdateApp (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateApp_environmentVariables = Lens.lens (\UpdateApp' {environmentVariables} -> environmentVariables) (\s@UpdateApp' {} a -> s {environmentVariables = a} :: UpdateApp) Prelude.. Lens.mapping Lens.coerced++-- | The AWS Identity and Access Management (IAM) service role for an Amplify+-- app.+updateApp_iamServiceRoleArn :: Lens.Lens' UpdateApp (Prelude.Maybe Prelude.Text)+updateApp_iamServiceRoleArn = Lens.lens (\UpdateApp' {iamServiceRoleArn} -> iamServiceRoleArn) (\s@UpdateApp' {} a -> s {iamServiceRoleArn = a} :: UpdateApp)++-- | The name for an Amplify app.+updateApp_name :: Lens.Lens' UpdateApp (Prelude.Maybe Prelude.Text)+updateApp_name = Lens.lens (\UpdateApp' {name} -> name) (\s@UpdateApp' {} a -> s {name = a} :: UpdateApp)++-- | The OAuth token for a third-party source control system for an Amplify+-- app. The OAuth token is used to create a webhook and a read-only deploy+-- key using SSH cloning. The OAuth token is not stored.+--+-- Use @oauthToken@ for repository providers other than GitHub, such as+-- Bitbucket or CodeCommit.+--+-- To authorize access to GitHub as your repository provider, use+-- @accessToken@.+--+-- You must specify either @oauthToken@ or @accessToken@ when you update an+-- app.+--+-- Existing Amplify apps deployed from a GitHub repository using OAuth+-- continue to work with CI\/CD. However, we strongly recommend that you+-- migrate these apps to use the GitHub App. For more information, see+-- <https://docs.aws.amazon.com/amplify/latest/UserGuide/setting-up-GitHub-access.html#migrating-to-github-app-auth Migrating an existing OAuth app to the Amplify GitHub App>+-- in the /Amplify User Guide/ .+updateApp_oauthToken :: Lens.Lens' UpdateApp (Prelude.Maybe Prelude.Text)+updateApp_oauthToken = Lens.lens (\UpdateApp' {oauthToken} -> oauthToken) (\s@UpdateApp' {} a -> s {oauthToken = a} :: UpdateApp) Prelude.. Lens.mapping Data._Sensitive++-- | The platform for the Amplify app. For a static app, set the platform+-- type to @WEB@. For a dynamic server-side rendered (SSR) app, set the+-- platform type to @WEB_COMPUTE@. For an app requiring Amplify Hosting\'s+-- original SSR support only, set the platform type to @WEB_DYNAMIC@.+updateApp_platform :: Lens.Lens' UpdateApp (Prelude.Maybe Platform)+updateApp_platform = Lens.lens (\UpdateApp' {platform} -> platform) (\s@UpdateApp' {} a -> s {platform = a} :: UpdateApp)++-- | The name of the repository for an Amplify app+updateApp_repository :: Lens.Lens' UpdateApp (Prelude.Maybe Prelude.Text)+updateApp_repository = Lens.lens (\UpdateApp' {repository} -> repository) (\s@UpdateApp' {} a -> s {repository = a} :: UpdateApp)++-- | The unique ID for an Amplify app.+updateApp_appId :: Lens.Lens' UpdateApp Prelude.Text+updateApp_appId = Lens.lens (\UpdateApp' {appId} -> appId) (\s@UpdateApp' {} a -> s {appId = a} :: UpdateApp)++instance Core.AWSRequest UpdateApp where+  type AWSResponse UpdateApp = UpdateAppResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateAppResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "app")+      )++instance Prelude.Hashable UpdateApp where+  hashWithSalt _salt UpdateApp' {..} =+    _salt+      `Prelude.hashWithSalt` accessToken+      `Prelude.hashWithSalt` autoBranchCreationConfig+      `Prelude.hashWithSalt` autoBranchCreationPatterns+      `Prelude.hashWithSalt` basicAuthCredentials+      `Prelude.hashWithSalt` buildSpec+      `Prelude.hashWithSalt` customHeaders+      `Prelude.hashWithSalt` customRules+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` enableAutoBranchCreation+      `Prelude.hashWithSalt` enableBasicAuth+      `Prelude.hashWithSalt` enableBranchAutoBuild+      `Prelude.hashWithSalt` enableBranchAutoDeletion+      `Prelude.hashWithSalt` environmentVariables+      `Prelude.hashWithSalt` iamServiceRoleArn+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` oauthToken+      `Prelude.hashWithSalt` platform+      `Prelude.hashWithSalt` repository+      `Prelude.hashWithSalt` appId++instance Prelude.NFData UpdateApp where+  rnf UpdateApp' {..} =+    Prelude.rnf accessToken+      `Prelude.seq` Prelude.rnf autoBranchCreationConfig+      `Prelude.seq` Prelude.rnf autoBranchCreationPatterns+      `Prelude.seq` Prelude.rnf basicAuthCredentials+      `Prelude.seq` Prelude.rnf buildSpec+      `Prelude.seq` Prelude.rnf customHeaders+      `Prelude.seq` Prelude.rnf customRules+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf enableAutoBranchCreation+      `Prelude.seq` Prelude.rnf enableBasicAuth+      `Prelude.seq` Prelude.rnf enableBranchAutoBuild+      `Prelude.seq` Prelude.rnf enableBranchAutoDeletion+      `Prelude.seq` Prelude.rnf environmentVariables+      `Prelude.seq` Prelude.rnf iamServiceRoleArn+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf oauthToken+      `Prelude.seq` Prelude.rnf platform+      `Prelude.seq` Prelude.rnf repository+      `Prelude.seq` Prelude.rnf appId++instance Data.ToHeaders UpdateApp where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateApp where+  toJSON UpdateApp' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("accessToken" Data..=) Prelude.<$> accessToken,+            ("autoBranchCreationConfig" Data..=)+              Prelude.<$> autoBranchCreationConfig,+            ("autoBranchCreationPatterns" Data..=)+              Prelude.<$> autoBranchCreationPatterns,+            ("basicAuthCredentials" Data..=)+              Prelude.<$> basicAuthCredentials,+            ("buildSpec" Data..=) Prelude.<$> buildSpec,+            ("customHeaders" Data..=) Prelude.<$> customHeaders,+            ("customRules" Data..=) Prelude.<$> customRules,+            ("description" Data..=) Prelude.<$> description,+            ("enableAutoBranchCreation" Data..=)+              Prelude.<$> enableAutoBranchCreation,+            ("enableBasicAuth" Data..=)+              Prelude.<$> enableBasicAuth,+            ("enableBranchAutoBuild" Data..=)+              Prelude.<$> enableBranchAutoBuild,+            ("enableBranchAutoDeletion" Data..=)+              Prelude.<$> enableBranchAutoDeletion,+            ("environmentVariables" Data..=)+              Prelude.<$> environmentVariables,+            ("iamServiceRoleArn" Data..=)+              Prelude.<$> iamServiceRoleArn,+            ("name" Data..=) Prelude.<$> name,+            ("oauthToken" Data..=) Prelude.<$> oauthToken,+            ("platform" Data..=) Prelude.<$> platform,+            ("repository" Data..=) Prelude.<$> repository+          ]+      )++instance Data.ToPath UpdateApp where+  toPath UpdateApp' {..} =+    Prelude.mconcat ["/apps/", Data.toBS appId]++instance Data.ToQuery UpdateApp where+  toQuery = Prelude.const Prelude.mempty++-- | The result structure for an Amplify app update request.+--+-- /See:/ 'newUpdateAppResponse' smart constructor.+data UpdateAppResponse = UpdateAppResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Represents the updated Amplify app.+    app :: App+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateAppResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateAppResponse_httpStatus' - The response's http status code.+--+-- 'app', 'updateAppResponse_app' - Represents the updated Amplify app.+newUpdateAppResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'app'+  App ->+  UpdateAppResponse+newUpdateAppResponse pHttpStatus_ pApp_ =+  UpdateAppResponse'+    { httpStatus = pHttpStatus_,+      app = pApp_+    }++-- | The response's http status code.+updateAppResponse_httpStatus :: Lens.Lens' UpdateAppResponse Prelude.Int+updateAppResponse_httpStatus = Lens.lens (\UpdateAppResponse' {httpStatus} -> httpStatus) (\s@UpdateAppResponse' {} a -> s {httpStatus = a} :: UpdateAppResponse)++-- | Represents the updated Amplify app.+updateAppResponse_app :: Lens.Lens' UpdateAppResponse App+updateAppResponse_app = Lens.lens (\UpdateAppResponse' {app} -> app) (\s@UpdateAppResponse' {} a -> s {app = a} :: UpdateAppResponse)++instance Prelude.NFData UpdateAppResponse where+  rnf UpdateAppResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf app
+ gen/Amazonka/Amplify/UpdateBranch.hs view
@@ -0,0 +1,426 @@+{-# 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.Amplify.UpdateBranch+-- 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 branch for an Amplify app.+module Amazonka.Amplify.UpdateBranch+  ( -- * Creating a Request+    UpdateBranch (..),+    newUpdateBranch,++    -- * Request Lenses+    updateBranch_backendEnvironmentArn,+    updateBranch_basicAuthCredentials,+    updateBranch_buildSpec,+    updateBranch_description,+    updateBranch_displayName,+    updateBranch_enableAutoBuild,+    updateBranch_enableBasicAuth,+    updateBranch_enableNotification,+    updateBranch_enablePerformanceMode,+    updateBranch_enablePullRequestPreview,+    updateBranch_environmentVariables,+    updateBranch_framework,+    updateBranch_pullRequestEnvironmentName,+    updateBranch_stage,+    updateBranch_ttl,+    updateBranch_appId,+    updateBranch_branchName,++    -- * Destructuring the Response+    UpdateBranchResponse (..),+    newUpdateBranchResponse,++    -- * Response Lenses+    updateBranchResponse_httpStatus,+    updateBranchResponse_branch,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request structure for the update branch request.+--+-- /See:/ 'newUpdateBranch' smart constructor.+data UpdateBranch = UpdateBranch'+  { -- | The Amazon Resource Name (ARN) for a backend environment that is part of+    -- an Amplify app.+    backendEnvironmentArn :: Prelude.Maybe Prelude.Text,+    -- | The basic authorization credentials for the branch. You must+    -- base64-encode the authorization credentials and provide them in the+    -- format @user:password@.+    basicAuthCredentials :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The build specification (build spec) for the branch.+    buildSpec :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The description for the branch.+    description :: Prelude.Maybe Prelude.Text,+    -- | The display name for a branch. This is used as the default domain+    -- prefix.+    displayName :: Prelude.Maybe Prelude.Text,+    -- | Enables auto building for the branch.+    enableAutoBuild :: Prelude.Maybe Prelude.Bool,+    -- | Enables basic authorization for the branch.+    enableBasicAuth :: Prelude.Maybe Prelude.Bool,+    -- | Enables notifications for the branch.+    enableNotification :: Prelude.Maybe Prelude.Bool,+    -- | Enables performance mode for the branch.+    --+    -- Performance mode optimizes for faster hosting performance by keeping+    -- content cached at the edge for a longer interval. When performance mode+    -- is enabled, hosting configuration or code changes can take up to 10+    -- minutes to roll out.+    enablePerformanceMode :: Prelude.Maybe Prelude.Bool,+    -- | Enables pull request previews for this branch.+    enablePullRequestPreview :: Prelude.Maybe Prelude.Bool,+    -- | The environment variables for the branch.+    environmentVariables :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The framework for the branch.+    framework :: Prelude.Maybe Prelude.Text,+    -- | The Amplify environment name for the pull request.+    pullRequestEnvironmentName :: Prelude.Maybe Prelude.Text,+    -- | Describes the current stage for the branch.+    stage :: Prelude.Maybe Stage,+    -- | The content Time to Live (TTL) for the website in seconds.+    ttl :: Prelude.Maybe Prelude.Text,+    -- | The unique ID for an Amplify app.+    appId :: Prelude.Text,+    -- | The name for the branch.+    branchName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateBranch' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'backendEnvironmentArn', 'updateBranch_backendEnvironmentArn' - The Amazon Resource Name (ARN) for a backend environment that is part of+-- an Amplify app.+--+-- 'basicAuthCredentials', 'updateBranch_basicAuthCredentials' - The basic authorization credentials for the branch. You must+-- base64-encode the authorization credentials and provide them in the+-- format @user:password@.+--+-- 'buildSpec', 'updateBranch_buildSpec' - The build specification (build spec) for the branch.+--+-- 'description', 'updateBranch_description' - The description for the branch.+--+-- 'displayName', 'updateBranch_displayName' - The display name for a branch. This is used as the default domain+-- prefix.+--+-- 'enableAutoBuild', 'updateBranch_enableAutoBuild' - Enables auto building for the branch.+--+-- 'enableBasicAuth', 'updateBranch_enableBasicAuth' - Enables basic authorization for the branch.+--+-- 'enableNotification', 'updateBranch_enableNotification' - Enables notifications for the branch.+--+-- 'enablePerformanceMode', 'updateBranch_enablePerformanceMode' - Enables performance mode for the branch.+--+-- Performance mode optimizes for faster hosting performance by keeping+-- content cached at the edge for a longer interval. When performance mode+-- is enabled, hosting configuration or code changes can take up to 10+-- minutes to roll out.+--+-- 'enablePullRequestPreview', 'updateBranch_enablePullRequestPreview' - Enables pull request previews for this branch.+--+-- 'environmentVariables', 'updateBranch_environmentVariables' - The environment variables for the branch.+--+-- 'framework', 'updateBranch_framework' - The framework for the branch.+--+-- 'pullRequestEnvironmentName', 'updateBranch_pullRequestEnvironmentName' - The Amplify environment name for the pull request.+--+-- 'stage', 'updateBranch_stage' - Describes the current stage for the branch.+--+-- 'ttl', 'updateBranch_ttl' - The content Time to Live (TTL) for the website in seconds.+--+-- 'appId', 'updateBranch_appId' - The unique ID for an Amplify app.+--+-- 'branchName', 'updateBranch_branchName' - The name for the branch.+newUpdateBranch ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'branchName'+  Prelude.Text ->+  UpdateBranch+newUpdateBranch pAppId_ pBranchName_ =+  UpdateBranch'+    { backendEnvironmentArn =+        Prelude.Nothing,+      basicAuthCredentials = Prelude.Nothing,+      buildSpec = Prelude.Nothing,+      description = Prelude.Nothing,+      displayName = Prelude.Nothing,+      enableAutoBuild = Prelude.Nothing,+      enableBasicAuth = Prelude.Nothing,+      enableNotification = Prelude.Nothing,+      enablePerformanceMode = Prelude.Nothing,+      enablePullRequestPreview = Prelude.Nothing,+      environmentVariables = Prelude.Nothing,+      framework = Prelude.Nothing,+      pullRequestEnvironmentName = Prelude.Nothing,+      stage = Prelude.Nothing,+      ttl = Prelude.Nothing,+      appId = pAppId_,+      branchName = pBranchName_+    }++-- | The Amazon Resource Name (ARN) for a backend environment that is part of+-- an Amplify app.+updateBranch_backendEnvironmentArn :: Lens.Lens' UpdateBranch (Prelude.Maybe Prelude.Text)+updateBranch_backendEnvironmentArn = Lens.lens (\UpdateBranch' {backendEnvironmentArn} -> backendEnvironmentArn) (\s@UpdateBranch' {} a -> s {backendEnvironmentArn = a} :: UpdateBranch)++-- | The basic authorization credentials for the branch. You must+-- base64-encode the authorization credentials and provide them in the+-- format @user:password@.+updateBranch_basicAuthCredentials :: Lens.Lens' UpdateBranch (Prelude.Maybe Prelude.Text)+updateBranch_basicAuthCredentials = Lens.lens (\UpdateBranch' {basicAuthCredentials} -> basicAuthCredentials) (\s@UpdateBranch' {} a -> s {basicAuthCredentials = a} :: UpdateBranch) Prelude.. Lens.mapping Data._Sensitive++-- | The build specification (build spec) for the branch.+updateBranch_buildSpec :: Lens.Lens' UpdateBranch (Prelude.Maybe Prelude.Text)+updateBranch_buildSpec = Lens.lens (\UpdateBranch' {buildSpec} -> buildSpec) (\s@UpdateBranch' {} a -> s {buildSpec = a} :: UpdateBranch) Prelude.. Lens.mapping Data._Sensitive++-- | The description for the branch.+updateBranch_description :: Lens.Lens' UpdateBranch (Prelude.Maybe Prelude.Text)+updateBranch_description = Lens.lens (\UpdateBranch' {description} -> description) (\s@UpdateBranch' {} a -> s {description = a} :: UpdateBranch)++-- | The display name for a branch. This is used as the default domain+-- prefix.+updateBranch_displayName :: Lens.Lens' UpdateBranch (Prelude.Maybe Prelude.Text)+updateBranch_displayName = Lens.lens (\UpdateBranch' {displayName} -> displayName) (\s@UpdateBranch' {} a -> s {displayName = a} :: UpdateBranch)++-- | Enables auto building for the branch.+updateBranch_enableAutoBuild :: Lens.Lens' UpdateBranch (Prelude.Maybe Prelude.Bool)+updateBranch_enableAutoBuild = Lens.lens (\UpdateBranch' {enableAutoBuild} -> enableAutoBuild) (\s@UpdateBranch' {} a -> s {enableAutoBuild = a} :: UpdateBranch)++-- | Enables basic authorization for the branch.+updateBranch_enableBasicAuth :: Lens.Lens' UpdateBranch (Prelude.Maybe Prelude.Bool)+updateBranch_enableBasicAuth = Lens.lens (\UpdateBranch' {enableBasicAuth} -> enableBasicAuth) (\s@UpdateBranch' {} a -> s {enableBasicAuth = a} :: UpdateBranch)++-- | Enables notifications for the branch.+updateBranch_enableNotification :: Lens.Lens' UpdateBranch (Prelude.Maybe Prelude.Bool)+updateBranch_enableNotification = Lens.lens (\UpdateBranch' {enableNotification} -> enableNotification) (\s@UpdateBranch' {} a -> s {enableNotification = a} :: UpdateBranch)++-- | Enables performance mode for the branch.+--+-- Performance mode optimizes for faster hosting performance by keeping+-- content cached at the edge for a longer interval. When performance mode+-- is enabled, hosting configuration or code changes can take up to 10+-- minutes to roll out.+updateBranch_enablePerformanceMode :: Lens.Lens' UpdateBranch (Prelude.Maybe Prelude.Bool)+updateBranch_enablePerformanceMode = Lens.lens (\UpdateBranch' {enablePerformanceMode} -> enablePerformanceMode) (\s@UpdateBranch' {} a -> s {enablePerformanceMode = a} :: UpdateBranch)++-- | Enables pull request previews for this branch.+updateBranch_enablePullRequestPreview :: Lens.Lens' UpdateBranch (Prelude.Maybe Prelude.Bool)+updateBranch_enablePullRequestPreview = Lens.lens (\UpdateBranch' {enablePullRequestPreview} -> enablePullRequestPreview) (\s@UpdateBranch' {} a -> s {enablePullRequestPreview = a} :: UpdateBranch)++-- | The environment variables for the branch.+updateBranch_environmentVariables :: Lens.Lens' UpdateBranch (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateBranch_environmentVariables = Lens.lens (\UpdateBranch' {environmentVariables} -> environmentVariables) (\s@UpdateBranch' {} a -> s {environmentVariables = a} :: UpdateBranch) Prelude.. Lens.mapping Lens.coerced++-- | The framework for the branch.+updateBranch_framework :: Lens.Lens' UpdateBranch (Prelude.Maybe Prelude.Text)+updateBranch_framework = Lens.lens (\UpdateBranch' {framework} -> framework) (\s@UpdateBranch' {} a -> s {framework = a} :: UpdateBranch)++-- | The Amplify environment name for the pull request.+updateBranch_pullRequestEnvironmentName :: Lens.Lens' UpdateBranch (Prelude.Maybe Prelude.Text)+updateBranch_pullRequestEnvironmentName = Lens.lens (\UpdateBranch' {pullRequestEnvironmentName} -> pullRequestEnvironmentName) (\s@UpdateBranch' {} a -> s {pullRequestEnvironmentName = a} :: UpdateBranch)++-- | Describes the current stage for the branch.+updateBranch_stage :: Lens.Lens' UpdateBranch (Prelude.Maybe Stage)+updateBranch_stage = Lens.lens (\UpdateBranch' {stage} -> stage) (\s@UpdateBranch' {} a -> s {stage = a} :: UpdateBranch)++-- | The content Time to Live (TTL) for the website in seconds.+updateBranch_ttl :: Lens.Lens' UpdateBranch (Prelude.Maybe Prelude.Text)+updateBranch_ttl = Lens.lens (\UpdateBranch' {ttl} -> ttl) (\s@UpdateBranch' {} a -> s {ttl = a} :: UpdateBranch)++-- | The unique ID for an Amplify app.+updateBranch_appId :: Lens.Lens' UpdateBranch Prelude.Text+updateBranch_appId = Lens.lens (\UpdateBranch' {appId} -> appId) (\s@UpdateBranch' {} a -> s {appId = a} :: UpdateBranch)++-- | The name for the branch.+updateBranch_branchName :: Lens.Lens' UpdateBranch Prelude.Text+updateBranch_branchName = Lens.lens (\UpdateBranch' {branchName} -> branchName) (\s@UpdateBranch' {} a -> s {branchName = a} :: UpdateBranch)++instance Core.AWSRequest UpdateBranch where+  type AWSResponse UpdateBranch = UpdateBranchResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateBranchResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "branch")+      )++instance Prelude.Hashable UpdateBranch where+  hashWithSalt _salt UpdateBranch' {..} =+    _salt+      `Prelude.hashWithSalt` backendEnvironmentArn+      `Prelude.hashWithSalt` basicAuthCredentials+      `Prelude.hashWithSalt` buildSpec+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` displayName+      `Prelude.hashWithSalt` enableAutoBuild+      `Prelude.hashWithSalt` enableBasicAuth+      `Prelude.hashWithSalt` enableNotification+      `Prelude.hashWithSalt` enablePerformanceMode+      `Prelude.hashWithSalt` enablePullRequestPreview+      `Prelude.hashWithSalt` environmentVariables+      `Prelude.hashWithSalt` framework+      `Prelude.hashWithSalt` pullRequestEnvironmentName+      `Prelude.hashWithSalt` stage+      `Prelude.hashWithSalt` ttl+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` branchName++instance Prelude.NFData UpdateBranch where+  rnf UpdateBranch' {..} =+    Prelude.rnf backendEnvironmentArn+      `Prelude.seq` Prelude.rnf basicAuthCredentials+      `Prelude.seq` Prelude.rnf buildSpec+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf displayName+      `Prelude.seq` Prelude.rnf enableAutoBuild+      `Prelude.seq` Prelude.rnf enableBasicAuth+      `Prelude.seq` Prelude.rnf enableNotification+      `Prelude.seq` Prelude.rnf enablePerformanceMode+      `Prelude.seq` Prelude.rnf enablePullRequestPreview+      `Prelude.seq` Prelude.rnf environmentVariables+      `Prelude.seq` Prelude.rnf framework+      `Prelude.seq` Prelude.rnf pullRequestEnvironmentName+      `Prelude.seq` Prelude.rnf stage+      `Prelude.seq` Prelude.rnf ttl+      `Prelude.seq` Prelude.rnf appId+      `Prelude.seq` Prelude.rnf branchName++instance Data.ToHeaders UpdateBranch where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateBranch where+  toJSON UpdateBranch' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("backendEnvironmentArn" Data..=)+              Prelude.<$> backendEnvironmentArn,+            ("basicAuthCredentials" Data..=)+              Prelude.<$> basicAuthCredentials,+            ("buildSpec" Data..=) Prelude.<$> buildSpec,+            ("description" Data..=) Prelude.<$> description,+            ("displayName" Data..=) Prelude.<$> displayName,+            ("enableAutoBuild" Data..=)+              Prelude.<$> enableAutoBuild,+            ("enableBasicAuth" Data..=)+              Prelude.<$> enableBasicAuth,+            ("enableNotification" Data..=)+              Prelude.<$> enableNotification,+            ("enablePerformanceMode" Data..=)+              Prelude.<$> enablePerformanceMode,+            ("enablePullRequestPreview" Data..=)+              Prelude.<$> enablePullRequestPreview,+            ("environmentVariables" Data..=)+              Prelude.<$> environmentVariables,+            ("framework" Data..=) Prelude.<$> framework,+            ("pullRequestEnvironmentName" Data..=)+              Prelude.<$> pullRequestEnvironmentName,+            ("stage" Data..=) Prelude.<$> stage,+            ("ttl" Data..=) Prelude.<$> ttl+          ]+      )++instance Data.ToPath UpdateBranch where+  toPath UpdateBranch' {..} =+    Prelude.mconcat+      [ "/apps/",+        Data.toBS appId,+        "/branches/",+        Data.toBS branchName+      ]++instance Data.ToQuery UpdateBranch where+  toQuery = Prelude.const Prelude.mempty++-- | The result structure for the update branch request.+--+-- /See:/ 'newUpdateBranchResponse' smart constructor.+data UpdateBranchResponse = UpdateBranchResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The branch for an Amplify app, which maps to a third-party repository+    -- branch.+    branch :: Branch+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateBranchResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateBranchResponse_httpStatus' - The response's http status code.+--+-- 'branch', 'updateBranchResponse_branch' - The branch for an Amplify app, which maps to a third-party repository+-- branch.+newUpdateBranchResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'branch'+  Branch ->+  UpdateBranchResponse+newUpdateBranchResponse pHttpStatus_ pBranch_ =+  UpdateBranchResponse'+    { httpStatus = pHttpStatus_,+      branch = pBranch_+    }++-- | The response's http status code.+updateBranchResponse_httpStatus :: Lens.Lens' UpdateBranchResponse Prelude.Int+updateBranchResponse_httpStatus = Lens.lens (\UpdateBranchResponse' {httpStatus} -> httpStatus) (\s@UpdateBranchResponse' {} a -> s {httpStatus = a} :: UpdateBranchResponse)++-- | The branch for an Amplify app, which maps to a third-party repository+-- branch.+updateBranchResponse_branch :: Lens.Lens' UpdateBranchResponse Branch+updateBranchResponse_branch = Lens.lens (\UpdateBranchResponse' {branch} -> branch) (\s@UpdateBranchResponse' {} a -> s {branch = a} :: UpdateBranchResponse)++instance Prelude.NFData UpdateBranchResponse where+  rnf UpdateBranchResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf branch
+ gen/Amazonka/Amplify/UpdateDomainAssociation.hs view
@@ -0,0 +1,262 @@+{-# 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.Amplify.UpdateDomainAssociation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new domain association for an Amplify app.+module Amazonka.Amplify.UpdateDomainAssociation+  ( -- * Creating a Request+    UpdateDomainAssociation (..),+    newUpdateDomainAssociation,++    -- * Request Lenses+    updateDomainAssociation_autoSubDomainCreationPatterns,+    updateDomainAssociation_autoSubDomainIAMRole,+    updateDomainAssociation_enableAutoSubDomain,+    updateDomainAssociation_subDomainSettings,+    updateDomainAssociation_appId,+    updateDomainAssociation_domainName,++    -- * Destructuring the Response+    UpdateDomainAssociationResponse (..),+    newUpdateDomainAssociationResponse,++    -- * Response Lenses+    updateDomainAssociationResponse_httpStatus,+    updateDomainAssociationResponse_domainAssociation,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request structure for the update domain association request.+--+-- /See:/ 'newUpdateDomainAssociation' smart constructor.+data UpdateDomainAssociation = UpdateDomainAssociation'+  { -- | Sets the branch patterns for automatic subdomain creation.+    autoSubDomainCreationPatterns :: Prelude.Maybe [Prelude.Text],+    -- | The required AWS Identity and Access Management (IAM) service role for+    -- the Amazon Resource Name (ARN) for automatically creating subdomains.+    autoSubDomainIAMRole :: Prelude.Maybe Prelude.Text,+    -- | Enables the automated creation of subdomains for branches.+    enableAutoSubDomain :: Prelude.Maybe Prelude.Bool,+    -- | Describes the settings for the subdomain.+    subDomainSettings :: Prelude.Maybe [SubDomainSetting],+    -- | The unique ID for an Amplify app.+    appId :: Prelude.Text,+    -- | The name of the domain.+    domainName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateDomainAssociation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'autoSubDomainCreationPatterns', 'updateDomainAssociation_autoSubDomainCreationPatterns' - Sets the branch patterns for automatic subdomain creation.+--+-- 'autoSubDomainIAMRole', 'updateDomainAssociation_autoSubDomainIAMRole' - The required AWS Identity and Access Management (IAM) service role for+-- the Amazon Resource Name (ARN) for automatically creating subdomains.+--+-- 'enableAutoSubDomain', 'updateDomainAssociation_enableAutoSubDomain' - Enables the automated creation of subdomains for branches.+--+-- 'subDomainSettings', 'updateDomainAssociation_subDomainSettings' - Describes the settings for the subdomain.+--+-- 'appId', 'updateDomainAssociation_appId' - The unique ID for an Amplify app.+--+-- 'domainName', 'updateDomainAssociation_domainName' - The name of the domain.+newUpdateDomainAssociation ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'domainName'+  Prelude.Text ->+  UpdateDomainAssociation+newUpdateDomainAssociation pAppId_ pDomainName_ =+  UpdateDomainAssociation'+    { autoSubDomainCreationPatterns =+        Prelude.Nothing,+      autoSubDomainIAMRole = Prelude.Nothing,+      enableAutoSubDomain = Prelude.Nothing,+      subDomainSettings = Prelude.Nothing,+      appId = pAppId_,+      domainName = pDomainName_+    }++-- | Sets the branch patterns for automatic subdomain creation.+updateDomainAssociation_autoSubDomainCreationPatterns :: Lens.Lens' UpdateDomainAssociation (Prelude.Maybe [Prelude.Text])+updateDomainAssociation_autoSubDomainCreationPatterns = Lens.lens (\UpdateDomainAssociation' {autoSubDomainCreationPatterns} -> autoSubDomainCreationPatterns) (\s@UpdateDomainAssociation' {} a -> s {autoSubDomainCreationPatterns = a} :: UpdateDomainAssociation) Prelude.. Lens.mapping Lens.coerced++-- | The required AWS Identity and Access Management (IAM) service role for+-- the Amazon Resource Name (ARN) for automatically creating subdomains.+updateDomainAssociation_autoSubDomainIAMRole :: Lens.Lens' UpdateDomainAssociation (Prelude.Maybe Prelude.Text)+updateDomainAssociation_autoSubDomainIAMRole = Lens.lens (\UpdateDomainAssociation' {autoSubDomainIAMRole} -> autoSubDomainIAMRole) (\s@UpdateDomainAssociation' {} a -> s {autoSubDomainIAMRole = a} :: UpdateDomainAssociation)++-- | Enables the automated creation of subdomains for branches.+updateDomainAssociation_enableAutoSubDomain :: Lens.Lens' UpdateDomainAssociation (Prelude.Maybe Prelude.Bool)+updateDomainAssociation_enableAutoSubDomain = Lens.lens (\UpdateDomainAssociation' {enableAutoSubDomain} -> enableAutoSubDomain) (\s@UpdateDomainAssociation' {} a -> s {enableAutoSubDomain = a} :: UpdateDomainAssociation)++-- | Describes the settings for the subdomain.+updateDomainAssociation_subDomainSettings :: Lens.Lens' UpdateDomainAssociation (Prelude.Maybe [SubDomainSetting])+updateDomainAssociation_subDomainSettings = Lens.lens (\UpdateDomainAssociation' {subDomainSettings} -> subDomainSettings) (\s@UpdateDomainAssociation' {} a -> s {subDomainSettings = a} :: UpdateDomainAssociation) Prelude.. Lens.mapping Lens.coerced++-- | The unique ID for an Amplify app.+updateDomainAssociation_appId :: Lens.Lens' UpdateDomainAssociation Prelude.Text+updateDomainAssociation_appId = Lens.lens (\UpdateDomainAssociation' {appId} -> appId) (\s@UpdateDomainAssociation' {} a -> s {appId = a} :: UpdateDomainAssociation)++-- | The name of the domain.+updateDomainAssociation_domainName :: Lens.Lens' UpdateDomainAssociation Prelude.Text+updateDomainAssociation_domainName = Lens.lens (\UpdateDomainAssociation' {domainName} -> domainName) (\s@UpdateDomainAssociation' {} a -> s {domainName = a} :: UpdateDomainAssociation)++instance Core.AWSRequest UpdateDomainAssociation where+  type+    AWSResponse UpdateDomainAssociation =+      UpdateDomainAssociationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateDomainAssociationResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "domainAssociation")+      )++instance Prelude.Hashable UpdateDomainAssociation where+  hashWithSalt _salt UpdateDomainAssociation' {..} =+    _salt+      `Prelude.hashWithSalt` autoSubDomainCreationPatterns+      `Prelude.hashWithSalt` autoSubDomainIAMRole+      `Prelude.hashWithSalt` enableAutoSubDomain+      `Prelude.hashWithSalt` subDomainSettings+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` domainName++instance Prelude.NFData UpdateDomainAssociation where+  rnf UpdateDomainAssociation' {..} =+    Prelude.rnf autoSubDomainCreationPatterns+      `Prelude.seq` Prelude.rnf autoSubDomainIAMRole+      `Prelude.seq` Prelude.rnf enableAutoSubDomain+      `Prelude.seq` Prelude.rnf subDomainSettings+      `Prelude.seq` Prelude.rnf appId+      `Prelude.seq` Prelude.rnf domainName++instance Data.ToHeaders UpdateDomainAssociation where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateDomainAssociation where+  toJSON UpdateDomainAssociation' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("autoSubDomainCreationPatterns" Data..=)+              Prelude.<$> autoSubDomainCreationPatterns,+            ("autoSubDomainIAMRole" Data..=)+              Prelude.<$> autoSubDomainIAMRole,+            ("enableAutoSubDomain" Data..=)+              Prelude.<$> enableAutoSubDomain,+            ("subDomainSettings" Data..=)+              Prelude.<$> subDomainSettings+          ]+      )++instance Data.ToPath UpdateDomainAssociation where+  toPath UpdateDomainAssociation' {..} =+    Prelude.mconcat+      [ "/apps/",+        Data.toBS appId,+        "/domains/",+        Data.toBS domainName+      ]++instance Data.ToQuery UpdateDomainAssociation where+  toQuery = Prelude.const Prelude.mempty++-- | The result structure for the update domain association request.+--+-- /See:/ 'newUpdateDomainAssociationResponse' smart constructor.+data UpdateDomainAssociationResponse = UpdateDomainAssociationResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Describes a domain association, which associates a custom domain with an+    -- Amplify app.+    domainAssociation :: DomainAssociation+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateDomainAssociationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateDomainAssociationResponse_httpStatus' - The response's http status code.+--+-- 'domainAssociation', 'updateDomainAssociationResponse_domainAssociation' - Describes a domain association, which associates a custom domain with an+-- Amplify app.+newUpdateDomainAssociationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'domainAssociation'+  DomainAssociation ->+  UpdateDomainAssociationResponse+newUpdateDomainAssociationResponse+  pHttpStatus_+  pDomainAssociation_ =+    UpdateDomainAssociationResponse'+      { httpStatus =+          pHttpStatus_,+        domainAssociation = pDomainAssociation_+      }++-- | The response's http status code.+updateDomainAssociationResponse_httpStatus :: Lens.Lens' UpdateDomainAssociationResponse Prelude.Int+updateDomainAssociationResponse_httpStatus = Lens.lens (\UpdateDomainAssociationResponse' {httpStatus} -> httpStatus) (\s@UpdateDomainAssociationResponse' {} a -> s {httpStatus = a} :: UpdateDomainAssociationResponse)++-- | Describes a domain association, which associates a custom domain with an+-- Amplify app.+updateDomainAssociationResponse_domainAssociation :: Lens.Lens' UpdateDomainAssociationResponse DomainAssociation+updateDomainAssociationResponse_domainAssociation = Lens.lens (\UpdateDomainAssociationResponse' {domainAssociation} -> domainAssociation) (\s@UpdateDomainAssociationResponse' {} a -> s {domainAssociation = a} :: UpdateDomainAssociationResponse)++instance+  Prelude.NFData+    UpdateDomainAssociationResponse+  where+  rnf UpdateDomainAssociationResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf domainAssociation
+ gen/Amazonka/Amplify/UpdateWebhook.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.Amplify.UpdateWebhook+-- 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 webhook.+module Amazonka.Amplify.UpdateWebhook+  ( -- * Creating a Request+    UpdateWebhook (..),+    newUpdateWebhook,++    -- * Request Lenses+    updateWebhook_branchName,+    updateWebhook_description,+    updateWebhook_webhookId,++    -- * Destructuring the Response+    UpdateWebhookResponse (..),+    newUpdateWebhookResponse,++    -- * Response Lenses+    updateWebhookResponse_httpStatus,+    updateWebhookResponse_webhook,+  )+where++import Amazonka.Amplify.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request structure for the update webhook request.+--+-- /See:/ 'newUpdateWebhook' smart constructor.+data UpdateWebhook = UpdateWebhook'+  { -- | The name for a branch that is part of an Amplify app.+    branchName :: Prelude.Maybe Prelude.Text,+    -- | The description for a webhook.+    description :: Prelude.Maybe Prelude.Text,+    -- | The unique ID for a webhook.+    webhookId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateWebhook' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'branchName', 'updateWebhook_branchName' - The name for a branch that is part of an Amplify app.+--+-- 'description', 'updateWebhook_description' - The description for a webhook.+--+-- 'webhookId', 'updateWebhook_webhookId' - The unique ID for a webhook.+newUpdateWebhook ::+  -- | 'webhookId'+  Prelude.Text ->+  UpdateWebhook+newUpdateWebhook pWebhookId_ =+  UpdateWebhook'+    { branchName = Prelude.Nothing,+      description = Prelude.Nothing,+      webhookId = pWebhookId_+    }++-- | The name for a branch that is part of an Amplify app.+updateWebhook_branchName :: Lens.Lens' UpdateWebhook (Prelude.Maybe Prelude.Text)+updateWebhook_branchName = Lens.lens (\UpdateWebhook' {branchName} -> branchName) (\s@UpdateWebhook' {} a -> s {branchName = a} :: UpdateWebhook)++-- | The description for a webhook.+updateWebhook_description :: Lens.Lens' UpdateWebhook (Prelude.Maybe Prelude.Text)+updateWebhook_description = Lens.lens (\UpdateWebhook' {description} -> description) (\s@UpdateWebhook' {} a -> s {description = a} :: UpdateWebhook)++-- | The unique ID for a webhook.+updateWebhook_webhookId :: Lens.Lens' UpdateWebhook Prelude.Text+updateWebhook_webhookId = Lens.lens (\UpdateWebhook' {webhookId} -> webhookId) (\s@UpdateWebhook' {} a -> s {webhookId = a} :: UpdateWebhook)++instance Core.AWSRequest UpdateWebhook where+  type+    AWSResponse UpdateWebhook =+      UpdateWebhookResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateWebhookResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "webhook")+      )++instance Prelude.Hashable UpdateWebhook where+  hashWithSalt _salt UpdateWebhook' {..} =+    _salt+      `Prelude.hashWithSalt` branchName+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` webhookId++instance Prelude.NFData UpdateWebhook where+  rnf UpdateWebhook' {..} =+    Prelude.rnf branchName+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf webhookId++instance Data.ToHeaders UpdateWebhook where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateWebhook where+  toJSON UpdateWebhook' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("branchName" Data..=) Prelude.<$> branchName,+            ("description" Data..=) Prelude.<$> description+          ]+      )++instance Data.ToPath UpdateWebhook where+  toPath UpdateWebhook' {..} =+    Prelude.mconcat ["/webhooks/", Data.toBS webhookId]++instance Data.ToQuery UpdateWebhook where+  toQuery = Prelude.const Prelude.mempty++-- | The result structure for the update webhook request.+--+-- /See:/ 'newUpdateWebhookResponse' smart constructor.+data UpdateWebhookResponse = UpdateWebhookResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Describes a webhook that connects repository events to an Amplify app.+    webhook :: Webhook+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateWebhookResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateWebhookResponse_httpStatus' - The response's http status code.+--+-- 'webhook', 'updateWebhookResponse_webhook' - Describes a webhook that connects repository events to an Amplify app.+newUpdateWebhookResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'webhook'+  Webhook ->+  UpdateWebhookResponse+newUpdateWebhookResponse pHttpStatus_ pWebhook_ =+  UpdateWebhookResponse'+    { httpStatus = pHttpStatus_,+      webhook = pWebhook_+    }++-- | The response's http status code.+updateWebhookResponse_httpStatus :: Lens.Lens' UpdateWebhookResponse Prelude.Int+updateWebhookResponse_httpStatus = Lens.lens (\UpdateWebhookResponse' {httpStatus} -> httpStatus) (\s@UpdateWebhookResponse' {} a -> s {httpStatus = a} :: UpdateWebhookResponse)++-- | Describes a webhook that connects repository events to an Amplify app.+updateWebhookResponse_webhook :: Lens.Lens' UpdateWebhookResponse Webhook+updateWebhookResponse_webhook = Lens.lens (\UpdateWebhookResponse' {webhook} -> webhook) (\s@UpdateWebhookResponse' {} a -> s {webhook = a} :: UpdateWebhookResponse)++instance Prelude.NFData UpdateWebhookResponse where+  rnf UpdateWebhookResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf webhook
+ gen/Amazonka/Amplify/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.Amplify.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.Amplify.Waiters where++import Amazonka.Amplify.Lens+import Amazonka.Amplify.Types+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
+ 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.Amplify+import Test.Amazonka.Amplify.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "Amplify"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/Amplify.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.Amplify+-- 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.Amplify+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/Amplify/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.Amplify.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.Amplify.Internal where
+ test/Test/Amazonka/Gen/Amplify.hs view
@@ -0,0 +1,778 @@+{-# 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.Amplify+-- 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.Amplify where++import Amazonka.Amplify+import qualified Data.Proxy as Proxy+import Test.Amazonka.Amplify.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"+--         [ requestCreateApp $+--             newCreateApp+--+--         , requestCreateBackendEnvironment $+--             newCreateBackendEnvironment+--+--         , requestCreateBranch $+--             newCreateBranch+--+--         , requestCreateDeployment $+--             newCreateDeployment+--+--         , requestCreateDomainAssociation $+--             newCreateDomainAssociation+--+--         , requestCreateWebhook $+--             newCreateWebhook+--+--         , requestDeleteApp $+--             newDeleteApp+--+--         , requestDeleteBackendEnvironment $+--             newDeleteBackendEnvironment+--+--         , requestDeleteBranch $+--             newDeleteBranch+--+--         , requestDeleteDomainAssociation $+--             newDeleteDomainAssociation+--+--         , requestDeleteJob $+--             newDeleteJob+--+--         , requestDeleteWebhook $+--             newDeleteWebhook+--+--         , requestGenerateAccessLogs $+--             newGenerateAccessLogs+--+--         , requestGetApp $+--             newGetApp+--+--         , requestGetArtifactUrl $+--             newGetArtifactUrl+--+--         , requestGetBackendEnvironment $+--             newGetBackendEnvironment+--+--         , requestGetBranch $+--             newGetBranch+--+--         , requestGetDomainAssociation $+--             newGetDomainAssociation+--+--         , requestGetJob $+--             newGetJob+--+--         , requestGetWebhook $+--             newGetWebhook+--+--         , requestListApps $+--             newListApps+--+--         , requestListArtifacts $+--             newListArtifacts+--+--         , requestListBackendEnvironments $+--             newListBackendEnvironments+--+--         , requestListBranches $+--             newListBranches+--+--         , requestListDomainAssociations $+--             newListDomainAssociations+--+--         , requestListJobs $+--             newListJobs+--+--         , requestListTagsForResource $+--             newListTagsForResource+--+--         , requestListWebhooks $+--             newListWebhooks+--+--         , requestStartDeployment $+--             newStartDeployment+--+--         , requestStartJob $+--             newStartJob+--+--         , requestStopJob $+--             newStopJob+--+--         , requestTagResource $+--             newTagResource+--+--         , requestUntagResource $+--             newUntagResource+--+--         , requestUpdateApp $+--             newUpdateApp+--+--         , requestUpdateBranch $+--             newUpdateBranch+--+--         , requestUpdateDomainAssociation $+--             newUpdateDomainAssociation+--+--         , requestUpdateWebhook $+--             newUpdateWebhook+--+--           ]++--     , testGroup "response"+--         [ responseCreateApp $+--             newCreateAppResponse+--+--         , responseCreateBackendEnvironment $+--             newCreateBackendEnvironmentResponse+--+--         , responseCreateBranch $+--             newCreateBranchResponse+--+--         , responseCreateDeployment $+--             newCreateDeploymentResponse+--+--         , responseCreateDomainAssociation $+--             newCreateDomainAssociationResponse+--+--         , responseCreateWebhook $+--             newCreateWebhookResponse+--+--         , responseDeleteApp $+--             newDeleteAppResponse+--+--         , responseDeleteBackendEnvironment $+--             newDeleteBackendEnvironmentResponse+--+--         , responseDeleteBranch $+--             newDeleteBranchResponse+--+--         , responseDeleteDomainAssociation $+--             newDeleteDomainAssociationResponse+--+--         , responseDeleteJob $+--             newDeleteJobResponse+--+--         , responseDeleteWebhook $+--             newDeleteWebhookResponse+--+--         , responseGenerateAccessLogs $+--             newGenerateAccessLogsResponse+--+--         , responseGetApp $+--             newGetAppResponse+--+--         , responseGetArtifactUrl $+--             newGetArtifactUrlResponse+--+--         , responseGetBackendEnvironment $+--             newGetBackendEnvironmentResponse+--+--         , responseGetBranch $+--             newGetBranchResponse+--+--         , responseGetDomainAssociation $+--             newGetDomainAssociationResponse+--+--         , responseGetJob $+--             newGetJobResponse+--+--         , responseGetWebhook $+--             newGetWebhookResponse+--+--         , responseListApps $+--             newListAppsResponse+--+--         , responseListArtifacts $+--             newListArtifactsResponse+--+--         , responseListBackendEnvironments $+--             newListBackendEnvironmentsResponse+--+--         , responseListBranches $+--             newListBranchesResponse+--+--         , responseListDomainAssociations $+--             newListDomainAssociationsResponse+--+--         , responseListJobs $+--             newListJobsResponse+--+--         , responseListTagsForResource $+--             newListTagsForResourceResponse+--+--         , responseListWebhooks $+--             newListWebhooksResponse+--+--         , responseStartDeployment $+--             newStartDeploymentResponse+--+--         , responseStartJob $+--             newStartJobResponse+--+--         , responseStopJob $+--             newStopJobResponse+--+--         , responseTagResource $+--             newTagResourceResponse+--+--         , responseUntagResource $+--             newUntagResourceResponse+--+--         , responseUpdateApp $+--             newUpdateAppResponse+--+--         , responseUpdateBranch $+--             newUpdateBranchResponse+--+--         , responseUpdateDomainAssociation $+--             newUpdateDomainAssociationResponse+--+--         , responseUpdateWebhook $+--             newUpdateWebhookResponse+--+--           ]+--     ]++-- Requests++requestCreateApp :: CreateApp -> TestTree+requestCreateApp =+  req+    "CreateApp"+    "fixture/CreateApp.yaml"++requestCreateBackendEnvironment :: CreateBackendEnvironment -> TestTree+requestCreateBackendEnvironment =+  req+    "CreateBackendEnvironment"+    "fixture/CreateBackendEnvironment.yaml"++requestCreateBranch :: CreateBranch -> TestTree+requestCreateBranch =+  req+    "CreateBranch"+    "fixture/CreateBranch.yaml"++requestCreateDeployment :: CreateDeployment -> TestTree+requestCreateDeployment =+  req+    "CreateDeployment"+    "fixture/CreateDeployment.yaml"++requestCreateDomainAssociation :: CreateDomainAssociation -> TestTree+requestCreateDomainAssociation =+  req+    "CreateDomainAssociation"+    "fixture/CreateDomainAssociation.yaml"++requestCreateWebhook :: CreateWebhook -> TestTree+requestCreateWebhook =+  req+    "CreateWebhook"+    "fixture/CreateWebhook.yaml"++requestDeleteApp :: DeleteApp -> TestTree+requestDeleteApp =+  req+    "DeleteApp"+    "fixture/DeleteApp.yaml"++requestDeleteBackendEnvironment :: DeleteBackendEnvironment -> TestTree+requestDeleteBackendEnvironment =+  req+    "DeleteBackendEnvironment"+    "fixture/DeleteBackendEnvironment.yaml"++requestDeleteBranch :: DeleteBranch -> TestTree+requestDeleteBranch =+  req+    "DeleteBranch"+    "fixture/DeleteBranch.yaml"++requestDeleteDomainAssociation :: DeleteDomainAssociation -> TestTree+requestDeleteDomainAssociation =+  req+    "DeleteDomainAssociation"+    "fixture/DeleteDomainAssociation.yaml"++requestDeleteJob :: DeleteJob -> TestTree+requestDeleteJob =+  req+    "DeleteJob"+    "fixture/DeleteJob.yaml"++requestDeleteWebhook :: DeleteWebhook -> TestTree+requestDeleteWebhook =+  req+    "DeleteWebhook"+    "fixture/DeleteWebhook.yaml"++requestGenerateAccessLogs :: GenerateAccessLogs -> TestTree+requestGenerateAccessLogs =+  req+    "GenerateAccessLogs"+    "fixture/GenerateAccessLogs.yaml"++requestGetApp :: GetApp -> TestTree+requestGetApp =+  req+    "GetApp"+    "fixture/GetApp.yaml"++requestGetArtifactUrl :: GetArtifactUrl -> TestTree+requestGetArtifactUrl =+  req+    "GetArtifactUrl"+    "fixture/GetArtifactUrl.yaml"++requestGetBackendEnvironment :: GetBackendEnvironment -> TestTree+requestGetBackendEnvironment =+  req+    "GetBackendEnvironment"+    "fixture/GetBackendEnvironment.yaml"++requestGetBranch :: GetBranch -> TestTree+requestGetBranch =+  req+    "GetBranch"+    "fixture/GetBranch.yaml"++requestGetDomainAssociation :: GetDomainAssociation -> TestTree+requestGetDomainAssociation =+  req+    "GetDomainAssociation"+    "fixture/GetDomainAssociation.yaml"++requestGetJob :: GetJob -> TestTree+requestGetJob =+  req+    "GetJob"+    "fixture/GetJob.yaml"++requestGetWebhook :: GetWebhook -> TestTree+requestGetWebhook =+  req+    "GetWebhook"+    "fixture/GetWebhook.yaml"++requestListApps :: ListApps -> TestTree+requestListApps =+  req+    "ListApps"+    "fixture/ListApps.yaml"++requestListArtifacts :: ListArtifacts -> TestTree+requestListArtifacts =+  req+    "ListArtifacts"+    "fixture/ListArtifacts.yaml"++requestListBackendEnvironments :: ListBackendEnvironments -> TestTree+requestListBackendEnvironments =+  req+    "ListBackendEnvironments"+    "fixture/ListBackendEnvironments.yaml"++requestListBranches :: ListBranches -> TestTree+requestListBranches =+  req+    "ListBranches"+    "fixture/ListBranches.yaml"++requestListDomainAssociations :: ListDomainAssociations -> TestTree+requestListDomainAssociations =+  req+    "ListDomainAssociations"+    "fixture/ListDomainAssociations.yaml"++requestListJobs :: ListJobs -> TestTree+requestListJobs =+  req+    "ListJobs"+    "fixture/ListJobs.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+  req+    "ListTagsForResource"+    "fixture/ListTagsForResource.yaml"++requestListWebhooks :: ListWebhooks -> TestTree+requestListWebhooks =+  req+    "ListWebhooks"+    "fixture/ListWebhooks.yaml"++requestStartDeployment :: StartDeployment -> TestTree+requestStartDeployment =+  req+    "StartDeployment"+    "fixture/StartDeployment.yaml"++requestStartJob :: StartJob -> TestTree+requestStartJob =+  req+    "StartJob"+    "fixture/StartJob.yaml"++requestStopJob :: StopJob -> TestTree+requestStopJob =+  req+    "StopJob"+    "fixture/StopJob.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+  req+    "TagResource"+    "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+  req+    "UntagResource"+    "fixture/UntagResource.yaml"++requestUpdateApp :: UpdateApp -> TestTree+requestUpdateApp =+  req+    "UpdateApp"+    "fixture/UpdateApp.yaml"++requestUpdateBranch :: UpdateBranch -> TestTree+requestUpdateBranch =+  req+    "UpdateBranch"+    "fixture/UpdateBranch.yaml"++requestUpdateDomainAssociation :: UpdateDomainAssociation -> TestTree+requestUpdateDomainAssociation =+  req+    "UpdateDomainAssociation"+    "fixture/UpdateDomainAssociation.yaml"++requestUpdateWebhook :: UpdateWebhook -> TestTree+requestUpdateWebhook =+  req+    "UpdateWebhook"+    "fixture/UpdateWebhook.yaml"++-- Responses++responseCreateApp :: CreateAppResponse -> TestTree+responseCreateApp =+  res+    "CreateAppResponse"+    "fixture/CreateAppResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateApp)++responseCreateBackendEnvironment :: CreateBackendEnvironmentResponse -> TestTree+responseCreateBackendEnvironment =+  res+    "CreateBackendEnvironmentResponse"+    "fixture/CreateBackendEnvironmentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateBackendEnvironment)++responseCreateBranch :: CreateBranchResponse -> TestTree+responseCreateBranch =+  res+    "CreateBranchResponse"+    "fixture/CreateBranchResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateBranch)++responseCreateDeployment :: CreateDeploymentResponse -> TestTree+responseCreateDeployment =+  res+    "CreateDeploymentResponse"+    "fixture/CreateDeploymentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateDeployment)++responseCreateDomainAssociation :: CreateDomainAssociationResponse -> TestTree+responseCreateDomainAssociation =+  res+    "CreateDomainAssociationResponse"+    "fixture/CreateDomainAssociationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateDomainAssociation)++responseCreateWebhook :: CreateWebhookResponse -> TestTree+responseCreateWebhook =+  res+    "CreateWebhookResponse"+    "fixture/CreateWebhookResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateWebhook)++responseDeleteApp :: DeleteAppResponse -> TestTree+responseDeleteApp =+  res+    "DeleteAppResponse"+    "fixture/DeleteAppResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteApp)++responseDeleteBackendEnvironment :: DeleteBackendEnvironmentResponse -> TestTree+responseDeleteBackendEnvironment =+  res+    "DeleteBackendEnvironmentResponse"+    "fixture/DeleteBackendEnvironmentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteBackendEnvironment)++responseDeleteBranch :: DeleteBranchResponse -> TestTree+responseDeleteBranch =+  res+    "DeleteBranchResponse"+    "fixture/DeleteBranchResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteBranch)++responseDeleteDomainAssociation :: DeleteDomainAssociationResponse -> TestTree+responseDeleteDomainAssociation =+  res+    "DeleteDomainAssociationResponse"+    "fixture/DeleteDomainAssociationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteDomainAssociation)++responseDeleteJob :: DeleteJobResponse -> TestTree+responseDeleteJob =+  res+    "DeleteJobResponse"+    "fixture/DeleteJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteJob)++responseDeleteWebhook :: DeleteWebhookResponse -> TestTree+responseDeleteWebhook =+  res+    "DeleteWebhookResponse"+    "fixture/DeleteWebhookResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteWebhook)++responseGenerateAccessLogs :: GenerateAccessLogsResponse -> TestTree+responseGenerateAccessLogs =+  res+    "GenerateAccessLogsResponse"+    "fixture/GenerateAccessLogsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GenerateAccessLogs)++responseGetApp :: GetAppResponse -> TestTree+responseGetApp =+  res+    "GetAppResponse"+    "fixture/GetAppResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetApp)++responseGetArtifactUrl :: GetArtifactUrlResponse -> TestTree+responseGetArtifactUrl =+  res+    "GetArtifactUrlResponse"+    "fixture/GetArtifactUrlResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetArtifactUrl)++responseGetBackendEnvironment :: GetBackendEnvironmentResponse -> TestTree+responseGetBackendEnvironment =+  res+    "GetBackendEnvironmentResponse"+    "fixture/GetBackendEnvironmentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetBackendEnvironment)++responseGetBranch :: GetBranchResponse -> TestTree+responseGetBranch =+  res+    "GetBranchResponse"+    "fixture/GetBranchResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetBranch)++responseGetDomainAssociation :: GetDomainAssociationResponse -> TestTree+responseGetDomainAssociation =+  res+    "GetDomainAssociationResponse"+    "fixture/GetDomainAssociationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetDomainAssociation)++responseGetJob :: GetJobResponse -> TestTree+responseGetJob =+  res+    "GetJobResponse"+    "fixture/GetJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetJob)++responseGetWebhook :: GetWebhookResponse -> TestTree+responseGetWebhook =+  res+    "GetWebhookResponse"+    "fixture/GetWebhookResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetWebhook)++responseListApps :: ListAppsResponse -> TestTree+responseListApps =+  res+    "ListAppsResponse"+    "fixture/ListAppsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListApps)++responseListArtifacts :: ListArtifactsResponse -> TestTree+responseListArtifacts =+  res+    "ListArtifactsResponse"+    "fixture/ListArtifactsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListArtifacts)++responseListBackendEnvironments :: ListBackendEnvironmentsResponse -> TestTree+responseListBackendEnvironments =+  res+    "ListBackendEnvironmentsResponse"+    "fixture/ListBackendEnvironmentsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListBackendEnvironments)++responseListBranches :: ListBranchesResponse -> TestTree+responseListBranches =+  res+    "ListBranchesResponse"+    "fixture/ListBranchesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListBranches)++responseListDomainAssociations :: ListDomainAssociationsResponse -> TestTree+responseListDomainAssociations =+  res+    "ListDomainAssociationsResponse"+    "fixture/ListDomainAssociationsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListDomainAssociations)++responseListJobs :: ListJobsResponse -> TestTree+responseListJobs =+  res+    "ListJobsResponse"+    "fixture/ListJobsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListJobs)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+  res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responseListWebhooks :: ListWebhooksResponse -> TestTree+responseListWebhooks =+  res+    "ListWebhooksResponse"+    "fixture/ListWebhooksResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListWebhooks)++responseStartDeployment :: StartDeploymentResponse -> TestTree+responseStartDeployment =+  res+    "StartDeploymentResponse"+    "fixture/StartDeploymentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StartDeployment)++responseStartJob :: StartJobResponse -> TestTree+responseStartJob =+  res+    "StartJobResponse"+    "fixture/StartJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StartJob)++responseStopJob :: StopJobResponse -> TestTree+responseStopJob =+  res+    "StopJobResponse"+    "fixture/StopJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StopJob)++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)++responseUpdateApp :: UpdateAppResponse -> TestTree+responseUpdateApp =+  res+    "UpdateAppResponse"+    "fixture/UpdateAppResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateApp)++responseUpdateBranch :: UpdateBranchResponse -> TestTree+responseUpdateBranch =+  res+    "UpdateBranchResponse"+    "fixture/UpdateBranchResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateBranch)++responseUpdateDomainAssociation :: UpdateDomainAssociationResponse -> TestTree+responseUpdateDomainAssociation =+  res+    "UpdateDomainAssociationResponse"+    "fixture/UpdateDomainAssociationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateDomainAssociation)++responseUpdateWebhook :: UpdateWebhookResponse -> TestTree+responseUpdateWebhook =+  res+    "UpdateWebhookResponse"+    "fixture/UpdateWebhookResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateWebhook)