packages feed

amazonka-amplifyuibuilder (empty) → 2.0

raw patch · 132 files changed

+14393/−0 lines, 132 filesdep +amazonka-amplifyuibuilderdep +amazonka-coredep +amazonka-test

Dependencies added: amazonka-amplifyuibuilder, 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 UI Builder SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2021-08-11@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-amplifyuibuilder)+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.AmplifyUiBuilder](http://hackage.haskell.org/package/amazonka-amplifyuibuilder/docs/Amazonka-AmplifyUiBuilder.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-amplifyuibuilder` 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-amplifyuibuilder.cabal view
@@ -0,0 +1,155 @@+cabal-version:      2.2+name:               amazonka-amplifyuibuilder+version:            2.0+synopsis:           Amazon Amplify UI Builder SDK.+homepage:           https://github.com/brendanhay/amazonka+bug-reports:        https://github.com/brendanhay/amazonka/issues+license:            MPL-2.0+license-file:       LICENSE+author:             Brendan Hay+maintainer:+  Brendan Hay <brendan.g.hay+amazonka@gmail.com>, Jack Kelly <jack@jackkelly.name>++copyright:          Copyright (c) 2013-2023 Brendan Hay+category:           AWS+build-type:         Simple+extra-source-files:+  fixture/*.proto+  fixture/*.yaml+  README.md+  src/.gitkeep++description:+  Derived from API version @2021-08-11@ 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.AmplifyUiBuilder.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.AmplifyUiBuilder" 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-amplifyuibuilder++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.AmplifyUiBuilder+    Amazonka.AmplifyUiBuilder.CreateComponent+    Amazonka.AmplifyUiBuilder.CreateForm+    Amazonka.AmplifyUiBuilder.CreateTheme+    Amazonka.AmplifyUiBuilder.DeleteComponent+    Amazonka.AmplifyUiBuilder.DeleteForm+    Amazonka.AmplifyUiBuilder.DeleteTheme+    Amazonka.AmplifyUiBuilder.ExchangeCodeForToken+    Amazonka.AmplifyUiBuilder.ExportComponents+    Amazonka.AmplifyUiBuilder.ExportForms+    Amazonka.AmplifyUiBuilder.ExportThemes+    Amazonka.AmplifyUiBuilder.GetComponent+    Amazonka.AmplifyUiBuilder.GetForm+    Amazonka.AmplifyUiBuilder.GetMetadata+    Amazonka.AmplifyUiBuilder.GetTheme+    Amazonka.AmplifyUiBuilder.Lens+    Amazonka.AmplifyUiBuilder.ListComponents+    Amazonka.AmplifyUiBuilder.ListForms+    Amazonka.AmplifyUiBuilder.ListThemes+    Amazonka.AmplifyUiBuilder.PutMetadataFlag+    Amazonka.AmplifyUiBuilder.RefreshToken+    Amazonka.AmplifyUiBuilder.Types+    Amazonka.AmplifyUiBuilder.Types.ActionParameters+    Amazonka.AmplifyUiBuilder.Types.Component+    Amazonka.AmplifyUiBuilder.Types.ComponentBindingPropertiesValue+    Amazonka.AmplifyUiBuilder.Types.ComponentBindingPropertiesValueProperties+    Amazonka.AmplifyUiBuilder.Types.ComponentChild+    Amazonka.AmplifyUiBuilder.Types.ComponentConditionProperty+    Amazonka.AmplifyUiBuilder.Types.ComponentDataConfiguration+    Amazonka.AmplifyUiBuilder.Types.ComponentEvent+    Amazonka.AmplifyUiBuilder.Types.ComponentProperty+    Amazonka.AmplifyUiBuilder.Types.ComponentPropertyBindingProperties+    Amazonka.AmplifyUiBuilder.Types.ComponentSummary+    Amazonka.AmplifyUiBuilder.Types.ComponentVariant+    Amazonka.AmplifyUiBuilder.Types.CreateComponentData+    Amazonka.AmplifyUiBuilder.Types.CreateFormData+    Amazonka.AmplifyUiBuilder.Types.CreateThemeData+    Amazonka.AmplifyUiBuilder.Types.ExchangeCodeForTokenRequestBody+    Amazonka.AmplifyUiBuilder.Types.FieldConfig+    Amazonka.AmplifyUiBuilder.Types.FieldInputConfig+    Amazonka.AmplifyUiBuilder.Types.FieldPosition+    Amazonka.AmplifyUiBuilder.Types.FieldValidationConfiguration+    Amazonka.AmplifyUiBuilder.Types.FixedPosition+    Amazonka.AmplifyUiBuilder.Types.Form+    Amazonka.AmplifyUiBuilder.Types.FormActionType+    Amazonka.AmplifyUiBuilder.Types.FormBindingElement+    Amazonka.AmplifyUiBuilder.Types.FormButton+    Amazonka.AmplifyUiBuilder.Types.FormButtonsPosition+    Amazonka.AmplifyUiBuilder.Types.FormCTA+    Amazonka.AmplifyUiBuilder.Types.FormDataSourceType+    Amazonka.AmplifyUiBuilder.Types.FormDataTypeConfig+    Amazonka.AmplifyUiBuilder.Types.FormInputValueProperty+    Amazonka.AmplifyUiBuilder.Types.FormStyle+    Amazonka.AmplifyUiBuilder.Types.FormStyleConfig+    Amazonka.AmplifyUiBuilder.Types.FormSummary+    Amazonka.AmplifyUiBuilder.Types.MutationActionSetStateParameter+    Amazonka.AmplifyUiBuilder.Types.Predicate+    Amazonka.AmplifyUiBuilder.Types.PutMetadataFlagBody+    Amazonka.AmplifyUiBuilder.Types.RefreshTokenRequestBody+    Amazonka.AmplifyUiBuilder.Types.SectionalElement+    Amazonka.AmplifyUiBuilder.Types.SortDirection+    Amazonka.AmplifyUiBuilder.Types.SortProperty+    Amazonka.AmplifyUiBuilder.Types.Theme+    Amazonka.AmplifyUiBuilder.Types.ThemeSummary+    Amazonka.AmplifyUiBuilder.Types.ThemeValue+    Amazonka.AmplifyUiBuilder.Types.ThemeValues+    Amazonka.AmplifyUiBuilder.Types.TokenProviders+    Amazonka.AmplifyUiBuilder.Types.UpdateComponentData+    Amazonka.AmplifyUiBuilder.Types.UpdateFormData+    Amazonka.AmplifyUiBuilder.Types.UpdateThemeData+    Amazonka.AmplifyUiBuilder.Types.ValueMapping+    Amazonka.AmplifyUiBuilder.Types.ValueMappings+    Amazonka.AmplifyUiBuilder.UpdateComponent+    Amazonka.AmplifyUiBuilder.UpdateForm+    Amazonka.AmplifyUiBuilder.UpdateTheme+    Amazonka.AmplifyUiBuilder.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-amplifyuibuilder-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.AmplifyUiBuilder+    Test.Amazonka.AmplifyUiBuilder.Internal+    Test.Amazonka.Gen.AmplifyUiBuilder++  build-depends:+    , amazonka-amplifyuibuilder+    , amazonka-core              >=2.0 && <2.1+    , amazonka-test              >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/CreateComponent.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplifyuibuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplifyuibuilder.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/CreateComponentResponse.proto view
+ fixture/CreateForm.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplifyuibuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplifyuibuilder.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/CreateFormResponse.proto view
+ fixture/CreateTheme.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplifyuibuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplifyuibuilder.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/CreateThemeResponse.proto view
+ fixture/DeleteComponent.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplifyuibuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplifyuibuilder.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/DeleteComponentResponse.proto view
+ fixture/DeleteForm.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplifyuibuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplifyuibuilder.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/DeleteFormResponse.proto view
+ fixture/DeleteTheme.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplifyuibuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplifyuibuilder.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/DeleteThemeResponse.proto view
+ fixture/ExchangeCodeForToken.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplifyuibuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplifyuibuilder.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/ExchangeCodeForTokenResponse.proto view
+ fixture/ExportComponents.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplifyuibuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplifyuibuilder.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/ExportComponentsResponse.proto view
+ fixture/ExportForms.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplifyuibuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplifyuibuilder.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/ExportFormsResponse.proto view
+ fixture/ExportThemes.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplifyuibuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplifyuibuilder.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/ExportThemesResponse.proto view
+ fixture/GetComponent.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplifyuibuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplifyuibuilder.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/GetComponentResponse.proto view
+ fixture/GetForm.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplifyuibuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplifyuibuilder.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/GetFormResponse.proto view
+ fixture/GetMetadata.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplifyuibuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplifyuibuilder.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/GetMetadataResponse.proto view
+ fixture/GetTheme.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplifyuibuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplifyuibuilder.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/GetThemeResponse.proto view
+ fixture/ListComponents.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplifyuibuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplifyuibuilder.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/ListComponentsResponse.proto view
+ fixture/ListForms.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplifyuibuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplifyuibuilder.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/ListFormsResponse.proto view
+ fixture/ListThemes.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplifyuibuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplifyuibuilder.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/ListThemesResponse.proto view
+ fixture/PutMetadataFlag.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplifyuibuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplifyuibuilder.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/PutMetadataFlagResponse.proto view
+ fixture/RefreshToken.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplifyuibuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplifyuibuilder.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/RefreshTokenResponse.proto view
+ fixture/UpdateComponent.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplifyuibuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplifyuibuilder.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/UpdateComponentResponse.proto view
+ fixture/UpdateForm.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplifyuibuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplifyuibuilder.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/UpdateFormResponse.proto view
+ fixture/UpdateTheme.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/amplifyuibuilder/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  amplifyuibuilder.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/UpdateThemeResponse.proto view
+ gen/Amazonka/AmplifyUiBuilder.hs view
@@ -0,0 +1,442 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.AmplifyUiBuilder+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Derived from API version @2021-08-11@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- The Amplify UI Builder API provides a programmatic interface for+-- creating and configuring user interface (UI) component libraries and+-- themes for use in your Amplify applications. You can then connect these+-- UI components to an application\'s backend Amazon Web Services+-- resources.+--+-- You can also use the Amplify Studio visual designer to create UI+-- components and model data for an app. For more information, see+-- <https://docs.amplify.aws/console/adminui/intro Introduction> in the+-- /Amplify Docs/.+--+-- 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>. For more information+-- about deploying an Amplify application to Amazon Web Services, see the+-- <https://docs.aws.amazon.com/amplify/latest/userguide/welcome.html Amplify User Guide>.+module Amazonka.AmplifyUiBuilder+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** InternalServerException+    _InternalServerException,++    -- ** InvalidParameterException+    _InvalidParameterException,++    -- ** ResourceConflictException+    _ResourceConflictException,++    -- ** ResourceNotFoundException+    _ResourceNotFoundException,++    -- ** ServiceQuotaExceededException+    _ServiceQuotaExceededException,++    -- ** UnauthorizedException+    _UnauthorizedException,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** CreateComponent+    CreateComponent (CreateComponent'),+    newCreateComponent,+    CreateComponentResponse (CreateComponentResponse'),+    newCreateComponentResponse,++    -- ** CreateForm+    CreateForm (CreateForm'),+    newCreateForm,+    CreateFormResponse (CreateFormResponse'),+    newCreateFormResponse,++    -- ** CreateTheme+    CreateTheme (CreateTheme'),+    newCreateTheme,+    CreateThemeResponse (CreateThemeResponse'),+    newCreateThemeResponse,++    -- ** DeleteComponent+    DeleteComponent (DeleteComponent'),+    newDeleteComponent,+    DeleteComponentResponse (DeleteComponentResponse'),+    newDeleteComponentResponse,++    -- ** DeleteForm+    DeleteForm (DeleteForm'),+    newDeleteForm,+    DeleteFormResponse (DeleteFormResponse'),+    newDeleteFormResponse,++    -- ** DeleteTheme+    DeleteTheme (DeleteTheme'),+    newDeleteTheme,+    DeleteThemeResponse (DeleteThemeResponse'),+    newDeleteThemeResponse,++    -- ** ExchangeCodeForToken+    ExchangeCodeForToken (ExchangeCodeForToken'),+    newExchangeCodeForToken,+    ExchangeCodeForTokenResponse (ExchangeCodeForTokenResponse'),+    newExchangeCodeForTokenResponse,++    -- ** ExportComponents (Paginated)+    ExportComponents (ExportComponents'),+    newExportComponents,+    ExportComponentsResponse (ExportComponentsResponse'),+    newExportComponentsResponse,++    -- ** ExportForms (Paginated)+    ExportForms (ExportForms'),+    newExportForms,+    ExportFormsResponse (ExportFormsResponse'),+    newExportFormsResponse,++    -- ** ExportThemes (Paginated)+    ExportThemes (ExportThemes'),+    newExportThemes,+    ExportThemesResponse (ExportThemesResponse'),+    newExportThemesResponse,++    -- ** GetComponent+    GetComponent (GetComponent'),+    newGetComponent,+    GetComponentResponse (GetComponentResponse'),+    newGetComponentResponse,++    -- ** GetForm+    GetForm (GetForm'),+    newGetForm,+    GetFormResponse (GetFormResponse'),+    newGetFormResponse,++    -- ** GetMetadata+    GetMetadata (GetMetadata'),+    newGetMetadata,+    GetMetadataResponse (GetMetadataResponse'),+    newGetMetadataResponse,++    -- ** GetTheme+    GetTheme (GetTheme'),+    newGetTheme,+    GetThemeResponse (GetThemeResponse'),+    newGetThemeResponse,++    -- ** ListComponents (Paginated)+    ListComponents (ListComponents'),+    newListComponents,+    ListComponentsResponse (ListComponentsResponse'),+    newListComponentsResponse,++    -- ** ListForms (Paginated)+    ListForms (ListForms'),+    newListForms,+    ListFormsResponse (ListFormsResponse'),+    newListFormsResponse,++    -- ** ListThemes (Paginated)+    ListThemes (ListThemes'),+    newListThemes,+    ListThemesResponse (ListThemesResponse'),+    newListThemesResponse,++    -- ** PutMetadataFlag+    PutMetadataFlag (PutMetadataFlag'),+    newPutMetadataFlag,+    PutMetadataFlagResponse (PutMetadataFlagResponse'),+    newPutMetadataFlagResponse,++    -- ** RefreshToken+    RefreshToken (RefreshToken'),+    newRefreshToken,+    RefreshTokenResponse (RefreshTokenResponse'),+    newRefreshTokenResponse,++    -- ** UpdateComponent+    UpdateComponent (UpdateComponent'),+    newUpdateComponent,+    UpdateComponentResponse (UpdateComponentResponse'),+    newUpdateComponentResponse,++    -- ** UpdateForm+    UpdateForm (UpdateForm'),+    newUpdateForm,+    UpdateFormResponse (UpdateFormResponse'),+    newUpdateFormResponse,++    -- ** UpdateTheme+    UpdateTheme (UpdateTheme'),+    newUpdateTheme,+    UpdateThemeResponse (UpdateThemeResponse'),+    newUpdateThemeResponse,++    -- * Types++    -- ** FixedPosition+    FixedPosition (..),++    -- ** FormActionType+    FormActionType (..),++    -- ** FormButtonsPosition+    FormButtonsPosition (..),++    -- ** FormDataSourceType+    FormDataSourceType (..),++    -- ** SortDirection+    SortDirection (..),++    -- ** TokenProviders+    TokenProviders (..),++    -- ** ActionParameters+    ActionParameters (ActionParameters'),+    newActionParameters,++    -- ** Component+    Component (Component'),+    newComponent,++    -- ** ComponentBindingPropertiesValue+    ComponentBindingPropertiesValue (ComponentBindingPropertiesValue'),+    newComponentBindingPropertiesValue,++    -- ** ComponentBindingPropertiesValueProperties+    ComponentBindingPropertiesValueProperties (ComponentBindingPropertiesValueProperties'),+    newComponentBindingPropertiesValueProperties,++    -- ** ComponentChild+    ComponentChild (ComponentChild'),+    newComponentChild,++    -- ** ComponentConditionProperty+    ComponentConditionProperty (ComponentConditionProperty'),+    newComponentConditionProperty,++    -- ** ComponentDataConfiguration+    ComponentDataConfiguration (ComponentDataConfiguration'),+    newComponentDataConfiguration,++    -- ** ComponentEvent+    ComponentEvent (ComponentEvent'),+    newComponentEvent,++    -- ** ComponentProperty+    ComponentProperty (ComponentProperty'),+    newComponentProperty,++    -- ** ComponentPropertyBindingProperties+    ComponentPropertyBindingProperties (ComponentPropertyBindingProperties'),+    newComponentPropertyBindingProperties,++    -- ** ComponentSummary+    ComponentSummary (ComponentSummary'),+    newComponentSummary,++    -- ** ComponentVariant+    ComponentVariant (ComponentVariant'),+    newComponentVariant,++    -- ** CreateComponentData+    CreateComponentData (CreateComponentData'),+    newCreateComponentData,++    -- ** CreateFormData+    CreateFormData (CreateFormData'),+    newCreateFormData,++    -- ** CreateThemeData+    CreateThemeData (CreateThemeData'),+    newCreateThemeData,++    -- ** ExchangeCodeForTokenRequestBody+    ExchangeCodeForTokenRequestBody (ExchangeCodeForTokenRequestBody'),+    newExchangeCodeForTokenRequestBody,++    -- ** FieldConfig+    FieldConfig (FieldConfig'),+    newFieldConfig,++    -- ** FieldInputConfig+    FieldInputConfig (FieldInputConfig'),+    newFieldInputConfig,++    -- ** FieldPosition+    FieldPosition (FieldPosition'),+    newFieldPosition,++    -- ** FieldValidationConfiguration+    FieldValidationConfiguration (FieldValidationConfiguration'),+    newFieldValidationConfiguration,++    -- ** Form+    Form (Form'),+    newForm,++    -- ** FormBindingElement+    FormBindingElement (FormBindingElement'),+    newFormBindingElement,++    -- ** FormButton+    FormButton (FormButton'),+    newFormButton,++    -- ** FormCTA+    FormCTA (FormCTA'),+    newFormCTA,++    -- ** FormDataTypeConfig+    FormDataTypeConfig (FormDataTypeConfig'),+    newFormDataTypeConfig,++    -- ** FormInputValueProperty+    FormInputValueProperty (FormInputValueProperty'),+    newFormInputValueProperty,++    -- ** FormStyle+    FormStyle (FormStyle'),+    newFormStyle,++    -- ** FormStyleConfig+    FormStyleConfig (FormStyleConfig'),+    newFormStyleConfig,++    -- ** FormSummary+    FormSummary (FormSummary'),+    newFormSummary,++    -- ** MutationActionSetStateParameter+    MutationActionSetStateParameter (MutationActionSetStateParameter'),+    newMutationActionSetStateParameter,++    -- ** Predicate+    Predicate (Predicate'),+    newPredicate,++    -- ** PutMetadataFlagBody+    PutMetadataFlagBody (PutMetadataFlagBody'),+    newPutMetadataFlagBody,++    -- ** RefreshTokenRequestBody+    RefreshTokenRequestBody (RefreshTokenRequestBody'),+    newRefreshTokenRequestBody,++    -- ** SectionalElement+    SectionalElement (SectionalElement'),+    newSectionalElement,++    -- ** SortProperty+    SortProperty (SortProperty'),+    newSortProperty,++    -- ** Theme+    Theme (Theme'),+    newTheme,++    -- ** ThemeSummary+    ThemeSummary (ThemeSummary'),+    newThemeSummary,++    -- ** ThemeValue+    ThemeValue (ThemeValue'),+    newThemeValue,++    -- ** ThemeValues+    ThemeValues (ThemeValues'),+    newThemeValues,++    -- ** UpdateComponentData+    UpdateComponentData (UpdateComponentData'),+    newUpdateComponentData,++    -- ** UpdateFormData+    UpdateFormData (UpdateFormData'),+    newUpdateFormData,++    -- ** UpdateThemeData+    UpdateThemeData (UpdateThemeData'),+    newUpdateThemeData,++    -- ** ValueMapping+    ValueMapping (ValueMapping'),+    newValueMapping,++    -- ** ValueMappings+    ValueMappings (ValueMappings'),+    newValueMappings,+  )+where++import Amazonka.AmplifyUiBuilder.CreateComponent+import Amazonka.AmplifyUiBuilder.CreateForm+import Amazonka.AmplifyUiBuilder.CreateTheme+import Amazonka.AmplifyUiBuilder.DeleteComponent+import Amazonka.AmplifyUiBuilder.DeleteForm+import Amazonka.AmplifyUiBuilder.DeleteTheme+import Amazonka.AmplifyUiBuilder.ExchangeCodeForToken+import Amazonka.AmplifyUiBuilder.ExportComponents+import Amazonka.AmplifyUiBuilder.ExportForms+import Amazonka.AmplifyUiBuilder.ExportThemes+import Amazonka.AmplifyUiBuilder.GetComponent+import Amazonka.AmplifyUiBuilder.GetForm+import Amazonka.AmplifyUiBuilder.GetMetadata+import Amazonka.AmplifyUiBuilder.GetTheme+import Amazonka.AmplifyUiBuilder.Lens+import Amazonka.AmplifyUiBuilder.ListComponents+import Amazonka.AmplifyUiBuilder.ListForms+import Amazonka.AmplifyUiBuilder.ListThemes+import Amazonka.AmplifyUiBuilder.PutMetadataFlag+import Amazonka.AmplifyUiBuilder.RefreshToken+import Amazonka.AmplifyUiBuilder.Types+import Amazonka.AmplifyUiBuilder.UpdateComponent+import Amazonka.AmplifyUiBuilder.UpdateForm+import Amazonka.AmplifyUiBuilder.UpdateTheme+import Amazonka.AmplifyUiBuilder.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 'AmplifyUiBuilder'.++-- $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/AmplifyUiBuilder/CreateComponent.hs view
@@ -0,0 +1,215 @@+{-# 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.AmplifyUiBuilder.CreateComponent+-- 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 component for an Amplify app.+module Amazonka.AmplifyUiBuilder.CreateComponent+  ( -- * Creating a Request+    CreateComponent (..),+    newCreateComponent,++    -- * Request Lenses+    createComponent_clientToken,+    createComponent_appId,+    createComponent_componentToCreate,+    createComponent_environmentName,++    -- * Destructuring the Response+    CreateComponentResponse (..),+    newCreateComponentResponse,++    -- * Response Lenses+    createComponentResponse_entity,+    createComponentResponse_httpStatus,+  )+where++import Amazonka.AmplifyUiBuilder.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++-- | /See:/ 'newCreateComponent' smart constructor.+data CreateComponent = CreateComponent'+  { -- | The unique client token.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The unique ID of the Amplify app to associate with the component.+    appId :: Prelude.Text,+    -- | Represents the configuration of the component to create.+    componentToCreate :: CreateComponentData,+    -- | The name of the backend environment that is a part of the Amplify app.+    environmentName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateComponent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createComponent_clientToken' - The unique client token.+--+-- 'appId', 'createComponent_appId' - The unique ID of the Amplify app to associate with the component.+--+-- 'componentToCreate', 'createComponent_componentToCreate' - Represents the configuration of the component to create.+--+-- 'environmentName', 'createComponent_environmentName' - The name of the backend environment that is a part of the Amplify app.+newCreateComponent ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'componentToCreate'+  CreateComponentData ->+  -- | 'environmentName'+  Prelude.Text ->+  CreateComponent+newCreateComponent+  pAppId_+  pComponentToCreate_+  pEnvironmentName_ =+    CreateComponent'+      { clientToken = Prelude.Nothing,+        appId = pAppId_,+        componentToCreate = pComponentToCreate_,+        environmentName = pEnvironmentName_+      }++-- | The unique client token.+createComponent_clientToken :: Lens.Lens' CreateComponent (Prelude.Maybe Prelude.Text)+createComponent_clientToken = Lens.lens (\CreateComponent' {clientToken} -> clientToken) (\s@CreateComponent' {} a -> s {clientToken = a} :: CreateComponent)++-- | The unique ID of the Amplify app to associate with the component.+createComponent_appId :: Lens.Lens' CreateComponent Prelude.Text+createComponent_appId = Lens.lens (\CreateComponent' {appId} -> appId) (\s@CreateComponent' {} a -> s {appId = a} :: CreateComponent)++-- | Represents the configuration of the component to create.+createComponent_componentToCreate :: Lens.Lens' CreateComponent CreateComponentData+createComponent_componentToCreate = Lens.lens (\CreateComponent' {componentToCreate} -> componentToCreate) (\s@CreateComponent' {} a -> s {componentToCreate = a} :: CreateComponent)++-- | The name of the backend environment that is a part of the Amplify app.+createComponent_environmentName :: Lens.Lens' CreateComponent Prelude.Text+createComponent_environmentName = Lens.lens (\CreateComponent' {environmentName} -> environmentName) (\s@CreateComponent' {} a -> s {environmentName = a} :: CreateComponent)++instance Core.AWSRequest CreateComponent where+  type+    AWSResponse CreateComponent =+      CreateComponentResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateComponentResponse'+            Prelude.<$> (Data.eitherParseJSON x)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateComponent where+  hashWithSalt _salt CreateComponent' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` componentToCreate+      `Prelude.hashWithSalt` environmentName++instance Prelude.NFData CreateComponent where+  rnf CreateComponent' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf appId+      `Prelude.seq` Prelude.rnf componentToCreate+      `Prelude.seq` Prelude.rnf environmentName++instance Data.ToHeaders CreateComponent where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateComponent where+  toJSON CreateComponent' {..} =+    Data.toJSON componentToCreate++instance Data.ToPath CreateComponent where+  toPath CreateComponent' {..} =+    Prelude.mconcat+      [ "/app/",+        Data.toBS appId,+        "/environment/",+        Data.toBS environmentName,+        "/components"+      ]++instance Data.ToQuery CreateComponent where+  toQuery CreateComponent' {..} =+    Prelude.mconcat ["clientToken" Data.=: clientToken]++-- | /See:/ 'newCreateComponentResponse' smart constructor.+data CreateComponentResponse = CreateComponentResponse'+  { -- | Describes the configuration of the new component.+    entity :: Prelude.Maybe Component,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateComponentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'entity', 'createComponentResponse_entity' - Describes the configuration of the new component.+--+-- 'httpStatus', 'createComponentResponse_httpStatus' - The response's http status code.+newCreateComponentResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateComponentResponse+newCreateComponentResponse pHttpStatus_ =+  CreateComponentResponse'+    { entity = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Describes the configuration of the new component.+createComponentResponse_entity :: Lens.Lens' CreateComponentResponse (Prelude.Maybe Component)+createComponentResponse_entity = Lens.lens (\CreateComponentResponse' {entity} -> entity) (\s@CreateComponentResponse' {} a -> s {entity = a} :: CreateComponentResponse)++-- | The response's http status code.+createComponentResponse_httpStatus :: Lens.Lens' CreateComponentResponse Prelude.Int+createComponentResponse_httpStatus = Lens.lens (\CreateComponentResponse' {httpStatus} -> httpStatus) (\s@CreateComponentResponse' {} a -> s {httpStatus = a} :: CreateComponentResponse)++instance Prelude.NFData CreateComponentResponse where+  rnf CreateComponentResponse' {..} =+    Prelude.rnf entity+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/AmplifyUiBuilder/CreateForm.hs view
@@ -0,0 +1,212 @@+{-# 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.AmplifyUiBuilder.CreateForm+-- 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 form for an Amplify app.+module Amazonka.AmplifyUiBuilder.CreateForm+  ( -- * Creating a Request+    CreateForm (..),+    newCreateForm,++    -- * Request Lenses+    createForm_clientToken,+    createForm_appId,+    createForm_environmentName,+    createForm_formToCreate,++    -- * Destructuring the Response+    CreateFormResponse (..),+    newCreateFormResponse,++    -- * Response Lenses+    createFormResponse_entity,+    createFormResponse_httpStatus,+  )+where++import Amazonka.AmplifyUiBuilder.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++-- | /See:/ 'newCreateForm' smart constructor.+data CreateForm = CreateForm'+  { -- | The unique client token.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The unique ID of the Amplify app to associate with the form.+    appId :: Prelude.Text,+    -- | The name of the backend environment that is a part of the Amplify app.+    environmentName :: Prelude.Text,+    -- | Represents the configuration of the form to create.+    formToCreate :: CreateFormData+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateForm' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createForm_clientToken' - The unique client token.+--+-- 'appId', 'createForm_appId' - The unique ID of the Amplify app to associate with the form.+--+-- 'environmentName', 'createForm_environmentName' - The name of the backend environment that is a part of the Amplify app.+--+-- 'formToCreate', 'createForm_formToCreate' - Represents the configuration of the form to create.+newCreateForm ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'environmentName'+  Prelude.Text ->+  -- | 'formToCreate'+  CreateFormData ->+  CreateForm+newCreateForm+  pAppId_+  pEnvironmentName_+  pFormToCreate_ =+    CreateForm'+      { clientToken = Prelude.Nothing,+        appId = pAppId_,+        environmentName = pEnvironmentName_,+        formToCreate = pFormToCreate_+      }++-- | The unique client token.+createForm_clientToken :: Lens.Lens' CreateForm (Prelude.Maybe Prelude.Text)+createForm_clientToken = Lens.lens (\CreateForm' {clientToken} -> clientToken) (\s@CreateForm' {} a -> s {clientToken = a} :: CreateForm)++-- | The unique ID of the Amplify app to associate with the form.+createForm_appId :: Lens.Lens' CreateForm Prelude.Text+createForm_appId = Lens.lens (\CreateForm' {appId} -> appId) (\s@CreateForm' {} a -> s {appId = a} :: CreateForm)++-- | The name of the backend environment that is a part of the Amplify app.+createForm_environmentName :: Lens.Lens' CreateForm Prelude.Text+createForm_environmentName = Lens.lens (\CreateForm' {environmentName} -> environmentName) (\s@CreateForm' {} a -> s {environmentName = a} :: CreateForm)++-- | Represents the configuration of the form to create.+createForm_formToCreate :: Lens.Lens' CreateForm CreateFormData+createForm_formToCreate = Lens.lens (\CreateForm' {formToCreate} -> formToCreate) (\s@CreateForm' {} a -> s {formToCreate = a} :: CreateForm)++instance Core.AWSRequest CreateForm where+  type AWSResponse CreateForm = CreateFormResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateFormResponse'+            Prelude.<$> (Data.eitherParseJSON x)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateForm where+  hashWithSalt _salt CreateForm' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` environmentName+      `Prelude.hashWithSalt` formToCreate++instance Prelude.NFData CreateForm where+  rnf CreateForm' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf appId+      `Prelude.seq` Prelude.rnf environmentName+      `Prelude.seq` Prelude.rnf formToCreate++instance Data.ToHeaders CreateForm where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateForm where+  toJSON CreateForm' {..} = Data.toJSON formToCreate++instance Data.ToPath CreateForm where+  toPath CreateForm' {..} =+    Prelude.mconcat+      [ "/app/",+        Data.toBS appId,+        "/environment/",+        Data.toBS environmentName,+        "/forms"+      ]++instance Data.ToQuery CreateForm where+  toQuery CreateForm' {..} =+    Prelude.mconcat ["clientToken" Data.=: clientToken]++-- | /See:/ 'newCreateFormResponse' smart constructor.+data CreateFormResponse = CreateFormResponse'+  { -- | Describes the configuration of the new form.+    entity :: Prelude.Maybe Form,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateFormResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'entity', 'createFormResponse_entity' - Describes the configuration of the new form.+--+-- 'httpStatus', 'createFormResponse_httpStatus' - The response's http status code.+newCreateFormResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateFormResponse+newCreateFormResponse pHttpStatus_ =+  CreateFormResponse'+    { entity = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Describes the configuration of the new form.+createFormResponse_entity :: Lens.Lens' CreateFormResponse (Prelude.Maybe Form)+createFormResponse_entity = Lens.lens (\CreateFormResponse' {entity} -> entity) (\s@CreateFormResponse' {} a -> s {entity = a} :: CreateFormResponse)++-- | The response's http status code.+createFormResponse_httpStatus :: Lens.Lens' CreateFormResponse Prelude.Int+createFormResponse_httpStatus = Lens.lens (\CreateFormResponse' {httpStatus} -> httpStatus) (\s@CreateFormResponse' {} a -> s {httpStatus = a} :: CreateFormResponse)++instance Prelude.NFData CreateFormResponse where+  rnf CreateFormResponse' {..} =+    Prelude.rnf entity+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/AmplifyUiBuilder/CreateTheme.hs view
@@ -0,0 +1,212 @@+{-# 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.AmplifyUiBuilder.CreateTheme+-- 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 theme to apply to the components in an Amplify app.+module Amazonka.AmplifyUiBuilder.CreateTheme+  ( -- * Creating a Request+    CreateTheme (..),+    newCreateTheme,++    -- * Request Lenses+    createTheme_clientToken,+    createTheme_appId,+    createTheme_environmentName,+    createTheme_themeToCreate,++    -- * Destructuring the Response+    CreateThemeResponse (..),+    newCreateThemeResponse,++    -- * Response Lenses+    createThemeResponse_entity,+    createThemeResponse_httpStatus,+  )+where++import Amazonka.AmplifyUiBuilder.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++-- | /See:/ 'newCreateTheme' smart constructor.+data CreateTheme = CreateTheme'+  { -- | The unique client token.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The unique ID of the Amplify app associated with the theme.+    appId :: Prelude.Text,+    -- | The name of the backend environment that is a part of the Amplify app.+    environmentName :: Prelude.Text,+    -- | Represents the configuration of the theme to create.+    themeToCreate :: CreateThemeData+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateTheme' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createTheme_clientToken' - The unique client token.+--+-- 'appId', 'createTheme_appId' - The unique ID of the Amplify app associated with the theme.+--+-- 'environmentName', 'createTheme_environmentName' - The name of the backend environment that is a part of the Amplify app.+--+-- 'themeToCreate', 'createTheme_themeToCreate' - Represents the configuration of the theme to create.+newCreateTheme ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'environmentName'+  Prelude.Text ->+  -- | 'themeToCreate'+  CreateThemeData ->+  CreateTheme+newCreateTheme+  pAppId_+  pEnvironmentName_+  pThemeToCreate_ =+    CreateTheme'+      { clientToken = Prelude.Nothing,+        appId = pAppId_,+        environmentName = pEnvironmentName_,+        themeToCreate = pThemeToCreate_+      }++-- | The unique client token.+createTheme_clientToken :: Lens.Lens' CreateTheme (Prelude.Maybe Prelude.Text)+createTheme_clientToken = Lens.lens (\CreateTheme' {clientToken} -> clientToken) (\s@CreateTheme' {} a -> s {clientToken = a} :: CreateTheme)++-- | The unique ID of the Amplify app associated with the theme.+createTheme_appId :: Lens.Lens' CreateTheme Prelude.Text+createTheme_appId = Lens.lens (\CreateTheme' {appId} -> appId) (\s@CreateTheme' {} a -> s {appId = a} :: CreateTheme)++-- | The name of the backend environment that is a part of the Amplify app.+createTheme_environmentName :: Lens.Lens' CreateTheme Prelude.Text+createTheme_environmentName = Lens.lens (\CreateTheme' {environmentName} -> environmentName) (\s@CreateTheme' {} a -> s {environmentName = a} :: CreateTheme)++-- | Represents the configuration of the theme to create.+createTheme_themeToCreate :: Lens.Lens' CreateTheme CreateThemeData+createTheme_themeToCreate = Lens.lens (\CreateTheme' {themeToCreate} -> themeToCreate) (\s@CreateTheme' {} a -> s {themeToCreate = a} :: CreateTheme)++instance Core.AWSRequest CreateTheme where+  type AWSResponse CreateTheme = CreateThemeResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateThemeResponse'+            Prelude.<$> (Data.eitherParseJSON x)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateTheme where+  hashWithSalt _salt CreateTheme' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` environmentName+      `Prelude.hashWithSalt` themeToCreate++instance Prelude.NFData CreateTheme where+  rnf CreateTheme' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf appId+      `Prelude.seq` Prelude.rnf environmentName+      `Prelude.seq` Prelude.rnf themeToCreate++instance Data.ToHeaders CreateTheme where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateTheme where+  toJSON CreateTheme' {..} = Data.toJSON themeToCreate++instance Data.ToPath CreateTheme where+  toPath CreateTheme' {..} =+    Prelude.mconcat+      [ "/app/",+        Data.toBS appId,+        "/environment/",+        Data.toBS environmentName,+        "/themes"+      ]++instance Data.ToQuery CreateTheme where+  toQuery CreateTheme' {..} =+    Prelude.mconcat ["clientToken" Data.=: clientToken]++-- | /See:/ 'newCreateThemeResponse' smart constructor.+data CreateThemeResponse = CreateThemeResponse'+  { -- | Describes the configuration of the new theme.+    entity :: Prelude.Maybe Theme,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateThemeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'entity', 'createThemeResponse_entity' - Describes the configuration of the new theme.+--+-- 'httpStatus', 'createThemeResponse_httpStatus' - The response's http status code.+newCreateThemeResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateThemeResponse+newCreateThemeResponse pHttpStatus_ =+  CreateThemeResponse'+    { entity = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Describes the configuration of the new theme.+createThemeResponse_entity :: Lens.Lens' CreateThemeResponse (Prelude.Maybe Theme)+createThemeResponse_entity = Lens.lens (\CreateThemeResponse' {entity} -> entity) (\s@CreateThemeResponse' {} a -> s {entity = a} :: CreateThemeResponse)++-- | The response's http status code.+createThemeResponse_httpStatus :: Lens.Lens' CreateThemeResponse Prelude.Int+createThemeResponse_httpStatus = Lens.lens (\CreateThemeResponse' {httpStatus} -> httpStatus) (\s@CreateThemeResponse' {} a -> s {httpStatus = a} :: CreateThemeResponse)++instance Prelude.NFData CreateThemeResponse where+  rnf CreateThemeResponse' {..} =+    Prelude.rnf entity+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/AmplifyUiBuilder/DeleteComponent.hs view
@@ -0,0 +1,164 @@+{-# 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.AmplifyUiBuilder.DeleteComponent+-- 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 component from an Amplify app.+module Amazonka.AmplifyUiBuilder.DeleteComponent+  ( -- * Creating a Request+    DeleteComponent (..),+    newDeleteComponent,++    -- * Request Lenses+    deleteComponent_appId,+    deleteComponent_environmentName,+    deleteComponent_id,++    -- * Destructuring the Response+    DeleteComponentResponse (..),+    newDeleteComponentResponse,+  )+where++import Amazonka.AmplifyUiBuilder.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++-- | /See:/ 'newDeleteComponent' smart constructor.+data DeleteComponent = DeleteComponent'+  { -- | The unique ID of the Amplify app associated with the component to+    -- delete.+    appId :: Prelude.Text,+    -- | The name of the backend environment that is a part of the Amplify app.+    environmentName :: Prelude.Text,+    -- | The unique ID of the component to delete.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteComponent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteComponent_appId' - The unique ID of the Amplify app associated with the component to+-- delete.+--+-- 'environmentName', 'deleteComponent_environmentName' - The name of the backend environment that is a part of the Amplify app.+--+-- 'id', 'deleteComponent_id' - The unique ID of the component to delete.+newDeleteComponent ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'environmentName'+  Prelude.Text ->+  -- | 'id'+  Prelude.Text ->+  DeleteComponent+newDeleteComponent pAppId_ pEnvironmentName_ pId_ =+  DeleteComponent'+    { appId = pAppId_,+      environmentName = pEnvironmentName_,+      id = pId_+    }++-- | The unique ID of the Amplify app associated with the component to+-- delete.+deleteComponent_appId :: Lens.Lens' DeleteComponent Prelude.Text+deleteComponent_appId = Lens.lens (\DeleteComponent' {appId} -> appId) (\s@DeleteComponent' {} a -> s {appId = a} :: DeleteComponent)++-- | The name of the backend environment that is a part of the Amplify app.+deleteComponent_environmentName :: Lens.Lens' DeleteComponent Prelude.Text+deleteComponent_environmentName = Lens.lens (\DeleteComponent' {environmentName} -> environmentName) (\s@DeleteComponent' {} a -> s {environmentName = a} :: DeleteComponent)++-- | The unique ID of the component to delete.+deleteComponent_id :: Lens.Lens' DeleteComponent Prelude.Text+deleteComponent_id = Lens.lens (\DeleteComponent' {id} -> id) (\s@DeleteComponent' {} a -> s {id = a} :: DeleteComponent)++instance Core.AWSRequest DeleteComponent where+  type+    AWSResponse DeleteComponent =+      DeleteComponentResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveNull DeleteComponentResponse'++instance Prelude.Hashable DeleteComponent where+  hashWithSalt _salt DeleteComponent' {..} =+    _salt+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` environmentName+      `Prelude.hashWithSalt` id++instance Prelude.NFData DeleteComponent where+  rnf DeleteComponent' {..} =+    Prelude.rnf appId+      `Prelude.seq` Prelude.rnf environmentName+      `Prelude.seq` Prelude.rnf id++instance Data.ToHeaders DeleteComponent where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteComponent where+  toPath DeleteComponent' {..} =+    Prelude.mconcat+      [ "/app/",+        Data.toBS appId,+        "/environment/",+        Data.toBS environmentName,+        "/components/",+        Data.toBS id+      ]++instance Data.ToQuery DeleteComponent where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteComponentResponse' smart constructor.+data DeleteComponentResponse = DeleteComponentResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteComponentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteComponentResponse ::+  DeleteComponentResponse+newDeleteComponentResponse = DeleteComponentResponse'++instance Prelude.NFData DeleteComponentResponse where+  rnf _ = ()
+ gen/Amazonka/AmplifyUiBuilder/DeleteForm.hs view
@@ -0,0 +1,158 @@+{-# 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.AmplifyUiBuilder.DeleteForm+-- 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 form from an Amplify app.+module Amazonka.AmplifyUiBuilder.DeleteForm+  ( -- * Creating a Request+    DeleteForm (..),+    newDeleteForm,++    -- * Request Lenses+    deleteForm_appId,+    deleteForm_environmentName,+    deleteForm_id,++    -- * Destructuring the Response+    DeleteFormResponse (..),+    newDeleteFormResponse,+  )+where++import Amazonka.AmplifyUiBuilder.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++-- | /See:/ 'newDeleteForm' smart constructor.+data DeleteForm = DeleteForm'+  { -- | The unique ID of the Amplify app associated with the form to delete.+    appId :: Prelude.Text,+    -- | The name of the backend environment that is a part of the Amplify app.+    environmentName :: Prelude.Text,+    -- | The unique ID of the form to delete.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteForm' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteForm_appId' - The unique ID of the Amplify app associated with the form to delete.+--+-- 'environmentName', 'deleteForm_environmentName' - The name of the backend environment that is a part of the Amplify app.+--+-- 'id', 'deleteForm_id' - The unique ID of the form to delete.+newDeleteForm ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'environmentName'+  Prelude.Text ->+  -- | 'id'+  Prelude.Text ->+  DeleteForm+newDeleteForm pAppId_ pEnvironmentName_ pId_ =+  DeleteForm'+    { appId = pAppId_,+      environmentName = pEnvironmentName_,+      id = pId_+    }++-- | The unique ID of the Amplify app associated with the form to delete.+deleteForm_appId :: Lens.Lens' DeleteForm Prelude.Text+deleteForm_appId = Lens.lens (\DeleteForm' {appId} -> appId) (\s@DeleteForm' {} a -> s {appId = a} :: DeleteForm)++-- | The name of the backend environment that is a part of the Amplify app.+deleteForm_environmentName :: Lens.Lens' DeleteForm Prelude.Text+deleteForm_environmentName = Lens.lens (\DeleteForm' {environmentName} -> environmentName) (\s@DeleteForm' {} a -> s {environmentName = a} :: DeleteForm)++-- | The unique ID of the form to delete.+deleteForm_id :: Lens.Lens' DeleteForm Prelude.Text+deleteForm_id = Lens.lens (\DeleteForm' {id} -> id) (\s@DeleteForm' {} a -> s {id = a} :: DeleteForm)++instance Core.AWSRequest DeleteForm where+  type AWSResponse DeleteForm = DeleteFormResponse+  request overrides =+    Request.delete (overrides defaultService)+  response = Response.receiveNull DeleteFormResponse'++instance Prelude.Hashable DeleteForm where+  hashWithSalt _salt DeleteForm' {..} =+    _salt+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` environmentName+      `Prelude.hashWithSalt` id++instance Prelude.NFData DeleteForm where+  rnf DeleteForm' {..} =+    Prelude.rnf appId+      `Prelude.seq` Prelude.rnf environmentName+      `Prelude.seq` Prelude.rnf id++instance Data.ToHeaders DeleteForm where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteForm where+  toPath DeleteForm' {..} =+    Prelude.mconcat+      [ "/app/",+        Data.toBS appId,+        "/environment/",+        Data.toBS environmentName,+        "/forms/",+        Data.toBS id+      ]++instance Data.ToQuery DeleteForm where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteFormResponse' smart constructor.+data DeleteFormResponse = DeleteFormResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteFormResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteFormResponse ::+  DeleteFormResponse+newDeleteFormResponse = DeleteFormResponse'++instance Prelude.NFData DeleteFormResponse where+  rnf _ = ()
+ gen/Amazonka/AmplifyUiBuilder/DeleteTheme.hs view
@@ -0,0 +1,158 @@+{-# 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.AmplifyUiBuilder.DeleteTheme+-- 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 theme from an Amplify app.+module Amazonka.AmplifyUiBuilder.DeleteTheme+  ( -- * Creating a Request+    DeleteTheme (..),+    newDeleteTheme,++    -- * Request Lenses+    deleteTheme_appId,+    deleteTheme_environmentName,+    deleteTheme_id,++    -- * Destructuring the Response+    DeleteThemeResponse (..),+    newDeleteThemeResponse,+  )+where++import Amazonka.AmplifyUiBuilder.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++-- | /See:/ 'newDeleteTheme' smart constructor.+data DeleteTheme = DeleteTheme'+  { -- | The unique ID of the Amplify app associated with the theme to delete.+    appId :: Prelude.Text,+    -- | The name of the backend environment that is a part of the Amplify app.+    environmentName :: Prelude.Text,+    -- | The unique ID of the theme to delete.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteTheme' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteTheme_appId' - The unique ID of the Amplify app associated with the theme to delete.+--+-- 'environmentName', 'deleteTheme_environmentName' - The name of the backend environment that is a part of the Amplify app.+--+-- 'id', 'deleteTheme_id' - The unique ID of the theme to delete.+newDeleteTheme ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'environmentName'+  Prelude.Text ->+  -- | 'id'+  Prelude.Text ->+  DeleteTheme+newDeleteTheme pAppId_ pEnvironmentName_ pId_ =+  DeleteTheme'+    { appId = pAppId_,+      environmentName = pEnvironmentName_,+      id = pId_+    }++-- | The unique ID of the Amplify app associated with the theme to delete.+deleteTheme_appId :: Lens.Lens' DeleteTheme Prelude.Text+deleteTheme_appId = Lens.lens (\DeleteTheme' {appId} -> appId) (\s@DeleteTheme' {} a -> s {appId = a} :: DeleteTheme)++-- | The name of the backend environment that is a part of the Amplify app.+deleteTheme_environmentName :: Lens.Lens' DeleteTheme Prelude.Text+deleteTheme_environmentName = Lens.lens (\DeleteTheme' {environmentName} -> environmentName) (\s@DeleteTheme' {} a -> s {environmentName = a} :: DeleteTheme)++-- | The unique ID of the theme to delete.+deleteTheme_id :: Lens.Lens' DeleteTheme Prelude.Text+deleteTheme_id = Lens.lens (\DeleteTheme' {id} -> id) (\s@DeleteTheme' {} a -> s {id = a} :: DeleteTheme)++instance Core.AWSRequest DeleteTheme where+  type AWSResponse DeleteTheme = DeleteThemeResponse+  request overrides =+    Request.delete (overrides defaultService)+  response = Response.receiveNull DeleteThemeResponse'++instance Prelude.Hashable DeleteTheme where+  hashWithSalt _salt DeleteTheme' {..} =+    _salt+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` environmentName+      `Prelude.hashWithSalt` id++instance Prelude.NFData DeleteTheme where+  rnf DeleteTheme' {..} =+    Prelude.rnf appId+      `Prelude.seq` Prelude.rnf environmentName+      `Prelude.seq` Prelude.rnf id++instance Data.ToHeaders DeleteTheme where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteTheme where+  toPath DeleteTheme' {..} =+    Prelude.mconcat+      [ "/app/",+        Data.toBS appId,+        "/environment/",+        Data.toBS environmentName,+        "/themes/",+        Data.toBS id+      ]++instance Data.ToQuery DeleteTheme where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteThemeResponse' smart constructor.+data DeleteThemeResponse = DeleteThemeResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteThemeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteThemeResponse ::+  DeleteThemeResponse+newDeleteThemeResponse = DeleteThemeResponse'++instance Prelude.NFData DeleteThemeResponse where+  rnf _ = ()
+ gen/Amazonka/AmplifyUiBuilder/ExchangeCodeForToken.hs view
@@ -0,0 +1,219 @@+{-# 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.AmplifyUiBuilder.ExchangeCodeForToken+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Exchanges an access code for a token.+module Amazonka.AmplifyUiBuilder.ExchangeCodeForToken+  ( -- * Creating a Request+    ExchangeCodeForToken (..),+    newExchangeCodeForToken,++    -- * Request Lenses+    exchangeCodeForToken_provider,+    exchangeCodeForToken_request,++    -- * Destructuring the Response+    ExchangeCodeForTokenResponse (..),+    newExchangeCodeForTokenResponse,++    -- * Response Lenses+    exchangeCodeForTokenResponse_httpStatus,+    exchangeCodeForTokenResponse_accessToken,+    exchangeCodeForTokenResponse_expiresIn,+    exchangeCodeForTokenResponse_refreshToken,+  )+where++import Amazonka.AmplifyUiBuilder.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++-- | /See:/ 'newExchangeCodeForToken' smart constructor.+data ExchangeCodeForToken = ExchangeCodeForToken'+  { -- | The third-party provider for the token. The only valid value is @figma@.+    provider :: TokenProviders,+    -- | Describes the configuration of the request.+    request :: ExchangeCodeForTokenRequestBody+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExchangeCodeForToken' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'provider', 'exchangeCodeForToken_provider' - The third-party provider for the token. The only valid value is @figma@.+--+-- 'request', 'exchangeCodeForToken_request' - Describes the configuration of the request.+newExchangeCodeForToken ::+  -- | 'provider'+  TokenProviders ->+  -- | 'request'+  ExchangeCodeForTokenRequestBody ->+  ExchangeCodeForToken+newExchangeCodeForToken pProvider_ pRequest_ =+  ExchangeCodeForToken'+    { provider = pProvider_,+      request = pRequest_+    }++-- | The third-party provider for the token. The only valid value is @figma@.+exchangeCodeForToken_provider :: Lens.Lens' ExchangeCodeForToken TokenProviders+exchangeCodeForToken_provider = Lens.lens (\ExchangeCodeForToken' {provider} -> provider) (\s@ExchangeCodeForToken' {} a -> s {provider = a} :: ExchangeCodeForToken)++-- | Describes the configuration of the request.+exchangeCodeForToken_request :: Lens.Lens' ExchangeCodeForToken ExchangeCodeForTokenRequestBody+exchangeCodeForToken_request = Lens.lens (\ExchangeCodeForToken' {request} -> request) (\s@ExchangeCodeForToken' {} a -> s {request = a} :: ExchangeCodeForToken)++instance Core.AWSRequest ExchangeCodeForToken where+  type+    AWSResponse ExchangeCodeForToken =+      ExchangeCodeForTokenResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ExchangeCodeForTokenResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "accessToken")+            Prelude.<*> (x Data..:> "expiresIn")+            Prelude.<*> (x Data..:> "refreshToken")+      )++instance Prelude.Hashable ExchangeCodeForToken where+  hashWithSalt _salt ExchangeCodeForToken' {..} =+    _salt+      `Prelude.hashWithSalt` provider+      `Prelude.hashWithSalt` request++instance Prelude.NFData ExchangeCodeForToken where+  rnf ExchangeCodeForToken' {..} =+    Prelude.rnf provider+      `Prelude.seq` Prelude.rnf request++instance Data.ToHeaders ExchangeCodeForToken where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ExchangeCodeForToken where+  toJSON ExchangeCodeForToken' {..} =+    Data.toJSON request++instance Data.ToPath ExchangeCodeForToken where+  toPath ExchangeCodeForToken' {..} =+    Prelude.mconcat ["/tokens/", Data.toBS provider]++instance Data.ToQuery ExchangeCodeForToken where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newExchangeCodeForTokenResponse' smart constructor.+data ExchangeCodeForTokenResponse = ExchangeCodeForTokenResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The access token.+    accessToken :: Data.Sensitive Prelude.Text,+    -- | The date and time when the new access token expires.+    expiresIn :: Prelude.Int,+    -- | The token to use to refresh a previously issued access token that might+    -- have expired.+    refreshToken :: Data.Sensitive Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExchangeCodeForTokenResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'exchangeCodeForTokenResponse_httpStatus' - The response's http status code.+--+-- 'accessToken', 'exchangeCodeForTokenResponse_accessToken' - The access token.+--+-- 'expiresIn', 'exchangeCodeForTokenResponse_expiresIn' - The date and time when the new access token expires.+--+-- 'refreshToken', 'exchangeCodeForTokenResponse_refreshToken' - The token to use to refresh a previously issued access token that might+-- have expired.+newExchangeCodeForTokenResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'accessToken'+  Prelude.Text ->+  -- | 'expiresIn'+  Prelude.Int ->+  -- | 'refreshToken'+  Prelude.Text ->+  ExchangeCodeForTokenResponse+newExchangeCodeForTokenResponse+  pHttpStatus_+  pAccessToken_+  pExpiresIn_+  pRefreshToken_ =+    ExchangeCodeForTokenResponse'+      { httpStatus =+          pHttpStatus_,+        accessToken =+          Data._Sensitive Lens.# pAccessToken_,+        expiresIn = pExpiresIn_,+        refreshToken =+          Data._Sensitive Lens.# pRefreshToken_+      }++-- | The response's http status code.+exchangeCodeForTokenResponse_httpStatus :: Lens.Lens' ExchangeCodeForTokenResponse Prelude.Int+exchangeCodeForTokenResponse_httpStatus = Lens.lens (\ExchangeCodeForTokenResponse' {httpStatus} -> httpStatus) (\s@ExchangeCodeForTokenResponse' {} a -> s {httpStatus = a} :: ExchangeCodeForTokenResponse)++-- | The access token.+exchangeCodeForTokenResponse_accessToken :: Lens.Lens' ExchangeCodeForTokenResponse Prelude.Text+exchangeCodeForTokenResponse_accessToken = Lens.lens (\ExchangeCodeForTokenResponse' {accessToken} -> accessToken) (\s@ExchangeCodeForTokenResponse' {} a -> s {accessToken = a} :: ExchangeCodeForTokenResponse) Prelude.. Data._Sensitive++-- | The date and time when the new access token expires.+exchangeCodeForTokenResponse_expiresIn :: Lens.Lens' ExchangeCodeForTokenResponse Prelude.Int+exchangeCodeForTokenResponse_expiresIn = Lens.lens (\ExchangeCodeForTokenResponse' {expiresIn} -> expiresIn) (\s@ExchangeCodeForTokenResponse' {} a -> s {expiresIn = a} :: ExchangeCodeForTokenResponse)++-- | The token to use to refresh a previously issued access token that might+-- have expired.+exchangeCodeForTokenResponse_refreshToken :: Lens.Lens' ExchangeCodeForTokenResponse Prelude.Text+exchangeCodeForTokenResponse_refreshToken = Lens.lens (\ExchangeCodeForTokenResponse' {refreshToken} -> refreshToken) (\s@ExchangeCodeForTokenResponse' {} a -> s {refreshToken = a} :: ExchangeCodeForTokenResponse) Prelude.. Data._Sensitive++instance Prelude.NFData ExchangeCodeForTokenResponse where+  rnf ExchangeCodeForTokenResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf accessToken+      `Prelude.seq` Prelude.rnf expiresIn+      `Prelude.seq` Prelude.rnf refreshToken
+ gen/Amazonka/AmplifyUiBuilder/ExportComponents.hs view
@@ -0,0 +1,229 @@+{-# 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.AmplifyUiBuilder.ExportComponents+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Exports component configurations to code that is ready to integrate into+-- an Amplify app.+--+-- This operation returns paginated results.+module Amazonka.AmplifyUiBuilder.ExportComponents+  ( -- * Creating a Request+    ExportComponents (..),+    newExportComponents,++    -- * Request Lenses+    exportComponents_nextToken,+    exportComponents_appId,+    exportComponents_environmentName,++    -- * Destructuring the Response+    ExportComponentsResponse (..),+    newExportComponentsResponse,++    -- * Response Lenses+    exportComponentsResponse_nextToken,+    exportComponentsResponse_httpStatus,+    exportComponentsResponse_entities,+  )+where++import Amazonka.AmplifyUiBuilder.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++-- | /See:/ 'newExportComponents' smart constructor.+data ExportComponents = ExportComponents'+  { -- | The token to request the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The unique ID of the Amplify app to export components to.+    appId :: Prelude.Text,+    -- | The name of the backend environment that is a part of the Amplify app.+    environmentName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExportComponents' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'exportComponents_nextToken' - The token to request the next page of results.+--+-- 'appId', 'exportComponents_appId' - The unique ID of the Amplify app to export components to.+--+-- 'environmentName', 'exportComponents_environmentName' - The name of the backend environment that is a part of the Amplify app.+newExportComponents ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'environmentName'+  Prelude.Text ->+  ExportComponents+newExportComponents pAppId_ pEnvironmentName_ =+  ExportComponents'+    { nextToken = Prelude.Nothing,+      appId = pAppId_,+      environmentName = pEnvironmentName_+    }++-- | The token to request the next page of results.+exportComponents_nextToken :: Lens.Lens' ExportComponents (Prelude.Maybe Prelude.Text)+exportComponents_nextToken = Lens.lens (\ExportComponents' {nextToken} -> nextToken) (\s@ExportComponents' {} a -> s {nextToken = a} :: ExportComponents)++-- | The unique ID of the Amplify app to export components to.+exportComponents_appId :: Lens.Lens' ExportComponents Prelude.Text+exportComponents_appId = Lens.lens (\ExportComponents' {appId} -> appId) (\s@ExportComponents' {} a -> s {appId = a} :: ExportComponents)++-- | The name of the backend environment that is a part of the Amplify app.+exportComponents_environmentName :: Lens.Lens' ExportComponents Prelude.Text+exportComponents_environmentName = Lens.lens (\ExportComponents' {environmentName} -> environmentName) (\s@ExportComponents' {} a -> s {environmentName = a} :: ExportComponents)++instance Core.AWSPager ExportComponents where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? exportComponentsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        (rs Lens.^. exportComponentsResponse_entities) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& exportComponents_nextToken+          Lens..~ rs+          Lens.^? exportComponentsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ExportComponents where+  type+    AWSResponse ExportComponents =+      ExportComponentsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ExportComponentsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..?> "entities" Core..!@ Prelude.mempty)+      )++instance Prelude.Hashable ExportComponents where+  hashWithSalt _salt ExportComponents' {..} =+    _salt+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` environmentName++instance Prelude.NFData ExportComponents where+  rnf ExportComponents' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf appId+      `Prelude.seq` Prelude.rnf environmentName++instance Data.ToHeaders ExportComponents where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ExportComponents where+  toPath ExportComponents' {..} =+    Prelude.mconcat+      [ "/export/app/",+        Data.toBS appId,+        "/environment/",+        Data.toBS environmentName,+        "/components"+      ]++instance Data.ToQuery ExportComponents where+  toQuery ExportComponents' {..} =+    Prelude.mconcat ["nextToken" Data.=: nextToken]++-- | /See:/ 'newExportComponentsResponse' smart constructor.+data ExportComponentsResponse = ExportComponentsResponse'+  { -- | The pagination token that\'s included if more results are available.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Represents the configuration of the exported components.+    entities :: [Component]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExportComponentsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'exportComponentsResponse_nextToken' - The pagination token that\'s included if more results are available.+--+-- 'httpStatus', 'exportComponentsResponse_httpStatus' - The response's http status code.+--+-- 'entities', 'exportComponentsResponse_entities' - Represents the configuration of the exported components.+newExportComponentsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ExportComponentsResponse+newExportComponentsResponse pHttpStatus_ =+  ExportComponentsResponse'+    { nextToken =+        Prelude.Nothing,+      httpStatus = pHttpStatus_,+      entities = Prelude.mempty+    }++-- | The pagination token that\'s included if more results are available.+exportComponentsResponse_nextToken :: Lens.Lens' ExportComponentsResponse (Prelude.Maybe Prelude.Text)+exportComponentsResponse_nextToken = Lens.lens (\ExportComponentsResponse' {nextToken} -> nextToken) (\s@ExportComponentsResponse' {} a -> s {nextToken = a} :: ExportComponentsResponse)++-- | The response's http status code.+exportComponentsResponse_httpStatus :: Lens.Lens' ExportComponentsResponse Prelude.Int+exportComponentsResponse_httpStatus = Lens.lens (\ExportComponentsResponse' {httpStatus} -> httpStatus) (\s@ExportComponentsResponse' {} a -> s {httpStatus = a} :: ExportComponentsResponse)++-- | Represents the configuration of the exported components.+exportComponentsResponse_entities :: Lens.Lens' ExportComponentsResponse [Component]+exportComponentsResponse_entities = Lens.lens (\ExportComponentsResponse' {entities} -> entities) (\s@ExportComponentsResponse' {} a -> s {entities = a} :: ExportComponentsResponse) Prelude.. Lens.coerced++instance Prelude.NFData ExportComponentsResponse where+  rnf ExportComponentsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf entities
+ gen/Amazonka/AmplifyUiBuilder/ExportForms.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.AmplifyUiBuilder.ExportForms+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Exports form configurations to code that is ready to integrate into an+-- Amplify app.+--+-- This operation returns paginated results.+module Amazonka.AmplifyUiBuilder.ExportForms+  ( -- * Creating a Request+    ExportForms (..),+    newExportForms,++    -- * Request Lenses+    exportForms_nextToken,+    exportForms_appId,+    exportForms_environmentName,++    -- * Destructuring the Response+    ExportFormsResponse (..),+    newExportFormsResponse,++    -- * Response Lenses+    exportFormsResponse_nextToken,+    exportFormsResponse_httpStatus,+    exportFormsResponse_entities,+  )+where++import Amazonka.AmplifyUiBuilder.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++-- | /See:/ 'newExportForms' smart constructor.+data ExportForms = ExportForms'+  { -- | The token to request the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The unique ID of the Amplify app to export forms to.+    appId :: Prelude.Text,+    -- | The name of the backend environment that is a part of the Amplify app.+    environmentName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExportForms' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'exportForms_nextToken' - The token to request the next page of results.+--+-- 'appId', 'exportForms_appId' - The unique ID of the Amplify app to export forms to.+--+-- 'environmentName', 'exportForms_environmentName' - The name of the backend environment that is a part of the Amplify app.+newExportForms ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'environmentName'+  Prelude.Text ->+  ExportForms+newExportForms pAppId_ pEnvironmentName_ =+  ExportForms'+    { nextToken = Prelude.Nothing,+      appId = pAppId_,+      environmentName = pEnvironmentName_+    }++-- | The token to request the next page of results.+exportForms_nextToken :: Lens.Lens' ExportForms (Prelude.Maybe Prelude.Text)+exportForms_nextToken = Lens.lens (\ExportForms' {nextToken} -> nextToken) (\s@ExportForms' {} a -> s {nextToken = a} :: ExportForms)++-- | The unique ID of the Amplify app to export forms to.+exportForms_appId :: Lens.Lens' ExportForms Prelude.Text+exportForms_appId = Lens.lens (\ExportForms' {appId} -> appId) (\s@ExportForms' {} a -> s {appId = a} :: ExportForms)++-- | The name of the backend environment that is a part of the Amplify app.+exportForms_environmentName :: Lens.Lens' ExportForms Prelude.Text+exportForms_environmentName = Lens.lens (\ExportForms' {environmentName} -> environmentName) (\s@ExportForms' {} a -> s {environmentName = a} :: ExportForms)++instance Core.AWSPager ExportForms where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? exportFormsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop (rs Lens.^. exportFormsResponse_entities) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& exportForms_nextToken+          Lens..~ rs+          Lens.^? exportFormsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ExportForms where+  type AWSResponse ExportForms = ExportFormsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ExportFormsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..?> "entities" Core..!@ Prelude.mempty)+      )++instance Prelude.Hashable ExportForms where+  hashWithSalt _salt ExportForms' {..} =+    _salt+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` environmentName++instance Prelude.NFData ExportForms where+  rnf ExportForms' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf appId+      `Prelude.seq` Prelude.rnf environmentName++instance Data.ToHeaders ExportForms where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ExportForms where+  toPath ExportForms' {..} =+    Prelude.mconcat+      [ "/export/app/",+        Data.toBS appId,+        "/environment/",+        Data.toBS environmentName,+        "/forms"+      ]++instance Data.ToQuery ExportForms where+  toQuery ExportForms' {..} =+    Prelude.mconcat ["nextToken" Data.=: nextToken]++-- | /See:/ 'newExportFormsResponse' smart constructor.+data ExportFormsResponse = ExportFormsResponse'+  { -- | The pagination token that\'s included if more results are available.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Represents the configuration of the exported forms.+    entities :: [Form]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExportFormsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'exportFormsResponse_nextToken' - The pagination token that\'s included if more results are available.+--+-- 'httpStatus', 'exportFormsResponse_httpStatus' - The response's http status code.+--+-- 'entities', 'exportFormsResponse_entities' - Represents the configuration of the exported forms.+newExportFormsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ExportFormsResponse+newExportFormsResponse pHttpStatus_ =+  ExportFormsResponse'+    { nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_,+      entities = Prelude.mempty+    }++-- | The pagination token that\'s included if more results are available.+exportFormsResponse_nextToken :: Lens.Lens' ExportFormsResponse (Prelude.Maybe Prelude.Text)+exportFormsResponse_nextToken = Lens.lens (\ExportFormsResponse' {nextToken} -> nextToken) (\s@ExportFormsResponse' {} a -> s {nextToken = a} :: ExportFormsResponse)++-- | The response's http status code.+exportFormsResponse_httpStatus :: Lens.Lens' ExportFormsResponse Prelude.Int+exportFormsResponse_httpStatus = Lens.lens (\ExportFormsResponse' {httpStatus} -> httpStatus) (\s@ExportFormsResponse' {} a -> s {httpStatus = a} :: ExportFormsResponse)++-- | Represents the configuration of the exported forms.+exportFormsResponse_entities :: Lens.Lens' ExportFormsResponse [Form]+exportFormsResponse_entities = Lens.lens (\ExportFormsResponse' {entities} -> entities) (\s@ExportFormsResponse' {} a -> s {entities = a} :: ExportFormsResponse) Prelude.. Lens.coerced++instance Prelude.NFData ExportFormsResponse where+  rnf ExportFormsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf entities
+ gen/Amazonka/AmplifyUiBuilder/ExportThemes.hs view
@@ -0,0 +1,226 @@+{-# 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.AmplifyUiBuilder.ExportThemes+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Exports theme configurations to code that is ready to integrate into an+-- Amplify app.+--+-- This operation returns paginated results.+module Amazonka.AmplifyUiBuilder.ExportThemes+  ( -- * Creating a Request+    ExportThemes (..),+    newExportThemes,++    -- * Request Lenses+    exportThemes_nextToken,+    exportThemes_appId,+    exportThemes_environmentName,++    -- * Destructuring the Response+    ExportThemesResponse (..),+    newExportThemesResponse,++    -- * Response Lenses+    exportThemesResponse_nextToken,+    exportThemesResponse_httpStatus,+    exportThemesResponse_entities,+  )+where++import Amazonka.AmplifyUiBuilder.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++-- | /See:/ 'newExportThemes' smart constructor.+data ExportThemes = ExportThemes'+  { -- | The token to request the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The unique ID of the Amplify app to export the themes to.+    appId :: Prelude.Text,+    -- | The name of the backend environment that is part of the Amplify app.+    environmentName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExportThemes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'exportThemes_nextToken' - The token to request the next page of results.+--+-- 'appId', 'exportThemes_appId' - The unique ID of the Amplify app to export the themes to.+--+-- 'environmentName', 'exportThemes_environmentName' - The name of the backend environment that is part of the Amplify app.+newExportThemes ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'environmentName'+  Prelude.Text ->+  ExportThemes+newExportThemes pAppId_ pEnvironmentName_ =+  ExportThemes'+    { nextToken = Prelude.Nothing,+      appId = pAppId_,+      environmentName = pEnvironmentName_+    }++-- | The token to request the next page of results.+exportThemes_nextToken :: Lens.Lens' ExportThemes (Prelude.Maybe Prelude.Text)+exportThemes_nextToken = Lens.lens (\ExportThemes' {nextToken} -> nextToken) (\s@ExportThemes' {} a -> s {nextToken = a} :: ExportThemes)++-- | The unique ID of the Amplify app to export the themes to.+exportThemes_appId :: Lens.Lens' ExportThemes Prelude.Text+exportThemes_appId = Lens.lens (\ExportThemes' {appId} -> appId) (\s@ExportThemes' {} a -> s {appId = a} :: ExportThemes)++-- | The name of the backend environment that is part of the Amplify app.+exportThemes_environmentName :: Lens.Lens' ExportThemes Prelude.Text+exportThemes_environmentName = Lens.lens (\ExportThemes' {environmentName} -> environmentName) (\s@ExportThemes' {} a -> s {environmentName = a} :: ExportThemes)++instance Core.AWSPager ExportThemes where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? exportThemesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        (rs Lens.^. exportThemesResponse_entities) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& exportThemes_nextToken+          Lens..~ rs+          Lens.^? exportThemesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ExportThemes where+  type AWSResponse ExportThemes = ExportThemesResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ExportThemesResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..?> "entities" Core..!@ Prelude.mempty)+      )++instance Prelude.Hashable ExportThemes where+  hashWithSalt _salt ExportThemes' {..} =+    _salt+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` environmentName++instance Prelude.NFData ExportThemes where+  rnf ExportThemes' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf appId+      `Prelude.seq` Prelude.rnf environmentName++instance Data.ToHeaders ExportThemes where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ExportThemes where+  toPath ExportThemes' {..} =+    Prelude.mconcat+      [ "/export/app/",+        Data.toBS appId,+        "/environment/",+        Data.toBS environmentName,+        "/themes"+      ]++instance Data.ToQuery ExportThemes where+  toQuery ExportThemes' {..} =+    Prelude.mconcat ["nextToken" Data.=: nextToken]++-- | /See:/ 'newExportThemesResponse' smart constructor.+data ExportThemesResponse = ExportThemesResponse'+  { -- | The pagination token that\'s included if more results are available.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Represents the configuration of the exported themes.+    entities :: [Theme]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExportThemesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'exportThemesResponse_nextToken' - The pagination token that\'s included if more results are available.+--+-- 'httpStatus', 'exportThemesResponse_httpStatus' - The response's http status code.+--+-- 'entities', 'exportThemesResponse_entities' - Represents the configuration of the exported themes.+newExportThemesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ExportThemesResponse+newExportThemesResponse pHttpStatus_ =+  ExportThemesResponse'+    { nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_,+      entities = Prelude.mempty+    }++-- | The pagination token that\'s included if more results are available.+exportThemesResponse_nextToken :: Lens.Lens' ExportThemesResponse (Prelude.Maybe Prelude.Text)+exportThemesResponse_nextToken = Lens.lens (\ExportThemesResponse' {nextToken} -> nextToken) (\s@ExportThemesResponse' {} a -> s {nextToken = a} :: ExportThemesResponse)++-- | The response's http status code.+exportThemesResponse_httpStatus :: Lens.Lens' ExportThemesResponse Prelude.Int+exportThemesResponse_httpStatus = Lens.lens (\ExportThemesResponse' {httpStatus} -> httpStatus) (\s@ExportThemesResponse' {} a -> s {httpStatus = a} :: ExportThemesResponse)++-- | Represents the configuration of the exported themes.+exportThemesResponse_entities :: Lens.Lens' ExportThemesResponse [Theme]+exportThemesResponse_entities = Lens.lens (\ExportThemesResponse' {entities} -> entities) (\s@ExportThemesResponse' {} a -> s {entities = a} :: ExportThemesResponse) Prelude.. Lens.coerced++instance Prelude.NFData ExportThemesResponse where+  rnf ExportThemesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf entities
+ gen/Amazonka/AmplifyUiBuilder/GetComponent.hs view
@@ -0,0 +1,194 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.AmplifyUiBuilder.GetComponent+-- 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 component for an Amplify app.+module Amazonka.AmplifyUiBuilder.GetComponent+  ( -- * Creating a Request+    GetComponent (..),+    newGetComponent,++    -- * Request Lenses+    getComponent_appId,+    getComponent_environmentName,+    getComponent_id,++    -- * Destructuring the Response+    GetComponentResponse (..),+    newGetComponentResponse,++    -- * Response Lenses+    getComponentResponse_component,+    getComponentResponse_httpStatus,+  )+where++import Amazonka.AmplifyUiBuilder.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++-- | /See:/ 'newGetComponent' smart constructor.+data GetComponent = GetComponent'+  { -- | The unique ID of the Amplify app.+    appId :: Prelude.Text,+    -- | The name of the backend environment that is part of the Amplify app.+    environmentName :: Prelude.Text,+    -- | The unique ID of the component.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetComponent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getComponent_appId' - The unique ID of the Amplify app.+--+-- 'environmentName', 'getComponent_environmentName' - The name of the backend environment that is part of the Amplify app.+--+-- 'id', 'getComponent_id' - The unique ID of the component.+newGetComponent ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'environmentName'+  Prelude.Text ->+  -- | 'id'+  Prelude.Text ->+  GetComponent+newGetComponent pAppId_ pEnvironmentName_ pId_ =+  GetComponent'+    { appId = pAppId_,+      environmentName = pEnvironmentName_,+      id = pId_+    }++-- | The unique ID of the Amplify app.+getComponent_appId :: Lens.Lens' GetComponent Prelude.Text+getComponent_appId = Lens.lens (\GetComponent' {appId} -> appId) (\s@GetComponent' {} a -> s {appId = a} :: GetComponent)++-- | The name of the backend environment that is part of the Amplify app.+getComponent_environmentName :: Lens.Lens' GetComponent Prelude.Text+getComponent_environmentName = Lens.lens (\GetComponent' {environmentName} -> environmentName) (\s@GetComponent' {} a -> s {environmentName = a} :: GetComponent)++-- | The unique ID of the component.+getComponent_id :: Lens.Lens' GetComponent Prelude.Text+getComponent_id = Lens.lens (\GetComponent' {id} -> id) (\s@GetComponent' {} a -> s {id = a} :: GetComponent)++instance Core.AWSRequest GetComponent where+  type AWSResponse GetComponent = GetComponentResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetComponentResponse'+            Prelude.<$> (Data.eitherParseJSON x)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetComponent where+  hashWithSalt _salt GetComponent' {..} =+    _salt+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` environmentName+      `Prelude.hashWithSalt` id++instance Prelude.NFData GetComponent where+  rnf GetComponent' {..} =+    Prelude.rnf appId+      `Prelude.seq` Prelude.rnf environmentName+      `Prelude.seq` Prelude.rnf id++instance Data.ToHeaders GetComponent where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetComponent where+  toPath GetComponent' {..} =+    Prelude.mconcat+      [ "/app/",+        Data.toBS appId,+        "/environment/",+        Data.toBS environmentName,+        "/components/",+        Data.toBS id+      ]++instance Data.ToQuery GetComponent where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetComponentResponse' smart constructor.+data GetComponentResponse = GetComponentResponse'+  { -- | Represents the configuration settings for the component.+    component :: Prelude.Maybe Component,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetComponentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'component', 'getComponentResponse_component' - Represents the configuration settings for the component.+--+-- 'httpStatus', 'getComponentResponse_httpStatus' - The response's http status code.+newGetComponentResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetComponentResponse+newGetComponentResponse pHttpStatus_ =+  GetComponentResponse'+    { component = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Represents the configuration settings for the component.+getComponentResponse_component :: Lens.Lens' GetComponentResponse (Prelude.Maybe Component)+getComponentResponse_component = Lens.lens (\GetComponentResponse' {component} -> component) (\s@GetComponentResponse' {} a -> s {component = a} :: GetComponentResponse)++-- | The response's http status code.+getComponentResponse_httpStatus :: Lens.Lens' GetComponentResponse Prelude.Int+getComponentResponse_httpStatus = Lens.lens (\GetComponentResponse' {httpStatus} -> httpStatus) (\s@GetComponentResponse' {} a -> s {httpStatus = a} :: GetComponentResponse)++instance Prelude.NFData GetComponentResponse where+  rnf GetComponentResponse' {..} =+    Prelude.rnf component+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/AmplifyUiBuilder/GetForm.hs view
@@ -0,0 +1,194 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.AmplifyUiBuilder.GetForm+-- 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 form for an Amplify app.+module Amazonka.AmplifyUiBuilder.GetForm+  ( -- * Creating a Request+    GetForm (..),+    newGetForm,++    -- * Request Lenses+    getForm_appId,+    getForm_environmentName,+    getForm_id,++    -- * Destructuring the Response+    GetFormResponse (..),+    newGetFormResponse,++    -- * Response Lenses+    getFormResponse_form,+    getFormResponse_httpStatus,+  )+where++import Amazonka.AmplifyUiBuilder.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++-- | /See:/ 'newGetForm' smart constructor.+data GetForm = GetForm'+  { -- | The unique ID of the Amplify app.+    appId :: Prelude.Text,+    -- | The name of the backend environment that is part of the Amplify app.+    environmentName :: Prelude.Text,+    -- | The unique ID of the form.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetForm' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getForm_appId' - The unique ID of the Amplify app.+--+-- 'environmentName', 'getForm_environmentName' - The name of the backend environment that is part of the Amplify app.+--+-- 'id', 'getForm_id' - The unique ID of the form.+newGetForm ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'environmentName'+  Prelude.Text ->+  -- | 'id'+  Prelude.Text ->+  GetForm+newGetForm pAppId_ pEnvironmentName_ pId_ =+  GetForm'+    { appId = pAppId_,+      environmentName = pEnvironmentName_,+      id = pId_+    }++-- | The unique ID of the Amplify app.+getForm_appId :: Lens.Lens' GetForm Prelude.Text+getForm_appId = Lens.lens (\GetForm' {appId} -> appId) (\s@GetForm' {} a -> s {appId = a} :: GetForm)++-- | The name of the backend environment that is part of the Amplify app.+getForm_environmentName :: Lens.Lens' GetForm Prelude.Text+getForm_environmentName = Lens.lens (\GetForm' {environmentName} -> environmentName) (\s@GetForm' {} a -> s {environmentName = a} :: GetForm)++-- | The unique ID of the form.+getForm_id :: Lens.Lens' GetForm Prelude.Text+getForm_id = Lens.lens (\GetForm' {id} -> id) (\s@GetForm' {} a -> s {id = a} :: GetForm)++instance Core.AWSRequest GetForm where+  type AWSResponse GetForm = GetFormResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetFormResponse'+            Prelude.<$> (Data.eitherParseJSON x)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetForm where+  hashWithSalt _salt GetForm' {..} =+    _salt+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` environmentName+      `Prelude.hashWithSalt` id++instance Prelude.NFData GetForm where+  rnf GetForm' {..} =+    Prelude.rnf appId+      `Prelude.seq` Prelude.rnf environmentName+      `Prelude.seq` Prelude.rnf id++instance Data.ToHeaders GetForm where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetForm where+  toPath GetForm' {..} =+    Prelude.mconcat+      [ "/app/",+        Data.toBS appId,+        "/environment/",+        Data.toBS environmentName,+        "/forms/",+        Data.toBS id+      ]++instance Data.ToQuery GetForm where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetFormResponse' smart constructor.+data GetFormResponse = GetFormResponse'+  { -- | Represents the configuration settings for the form.+    form :: Prelude.Maybe Form,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetFormResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'form', 'getFormResponse_form' - Represents the configuration settings for the form.+--+-- 'httpStatus', 'getFormResponse_httpStatus' - The response's http status code.+newGetFormResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetFormResponse+newGetFormResponse pHttpStatus_ =+  GetFormResponse'+    { form = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Represents the configuration settings for the form.+getFormResponse_form :: Lens.Lens' GetFormResponse (Prelude.Maybe Form)+getFormResponse_form = Lens.lens (\GetFormResponse' {form} -> form) (\s@GetFormResponse' {} a -> s {form = a} :: GetFormResponse)++-- | The response's http status code.+getFormResponse_httpStatus :: Lens.Lens' GetFormResponse Prelude.Int+getFormResponse_httpStatus = Lens.lens (\GetFormResponse' {httpStatus} -> httpStatus) (\s@GetFormResponse' {} a -> s {httpStatus = a} :: GetFormResponse)++instance Prelude.NFData GetFormResponse where+  rnf GetFormResponse' {..} =+    Prelude.rnf form+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/AmplifyUiBuilder/GetMetadata.hs view
@@ -0,0 +1,179 @@+{-# 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.AmplifyUiBuilder.GetMetadata+-- 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 existing metadata for an Amplify app.+module Amazonka.AmplifyUiBuilder.GetMetadata+  ( -- * Creating a Request+    GetMetadata (..),+    newGetMetadata,++    -- * Request Lenses+    getMetadata_appId,+    getMetadata_environmentName,++    -- * Destructuring the Response+    GetMetadataResponse (..),+    newGetMetadataResponse,++    -- * Response Lenses+    getMetadataResponse_httpStatus,+    getMetadataResponse_features,+  )+where++import Amazonka.AmplifyUiBuilder.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++-- | /See:/ 'newGetMetadata' smart constructor.+data GetMetadata = GetMetadata'+  { -- | The unique ID of the Amplify app.+    appId :: Prelude.Text,+    -- | The name of the backend environment that is part of the Amplify app.+    environmentName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetMetadata' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getMetadata_appId' - The unique ID of the Amplify app.+--+-- 'environmentName', 'getMetadata_environmentName' - The name of the backend environment that is part of the Amplify app.+newGetMetadata ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'environmentName'+  Prelude.Text ->+  GetMetadata+newGetMetadata pAppId_ pEnvironmentName_ =+  GetMetadata'+    { appId = pAppId_,+      environmentName = pEnvironmentName_+    }++-- | The unique ID of the Amplify app.+getMetadata_appId :: Lens.Lens' GetMetadata Prelude.Text+getMetadata_appId = Lens.lens (\GetMetadata' {appId} -> appId) (\s@GetMetadata' {} a -> s {appId = a} :: GetMetadata)++-- | The name of the backend environment that is part of the Amplify app.+getMetadata_environmentName :: Lens.Lens' GetMetadata Prelude.Text+getMetadata_environmentName = Lens.lens (\GetMetadata' {environmentName} -> environmentName) (\s@GetMetadata' {} a -> s {environmentName = a} :: GetMetadata)++instance Core.AWSRequest GetMetadata where+  type AWSResponse GetMetadata = GetMetadataResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetMetadataResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..?> "features" Core..!@ Prelude.mempty)+      )++instance Prelude.Hashable GetMetadata where+  hashWithSalt _salt GetMetadata' {..} =+    _salt+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` environmentName++instance Prelude.NFData GetMetadata where+  rnf GetMetadata' {..} =+    Prelude.rnf appId+      `Prelude.seq` Prelude.rnf environmentName++instance Data.ToHeaders GetMetadata where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetMetadata where+  toPath GetMetadata' {..} =+    Prelude.mconcat+      [ "/app/",+        Data.toBS appId,+        "/environment/",+        Data.toBS environmentName,+        "/metadata"+      ]++instance Data.ToQuery GetMetadata where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetMetadataResponse' smart constructor.+data GetMetadataResponse = GetMetadataResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Represents the configuration settings for the features metadata.+    features :: Prelude.HashMap Prelude.Text Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetMetadataResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getMetadataResponse_httpStatus' - The response's http status code.+--+-- 'features', 'getMetadataResponse_features' - Represents the configuration settings for the features metadata.+newGetMetadataResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetMetadataResponse+newGetMetadataResponse pHttpStatus_ =+  GetMetadataResponse'+    { httpStatus = pHttpStatus_,+      features = Prelude.mempty+    }++-- | The response's http status code.+getMetadataResponse_httpStatus :: Lens.Lens' GetMetadataResponse Prelude.Int+getMetadataResponse_httpStatus = Lens.lens (\GetMetadataResponse' {httpStatus} -> httpStatus) (\s@GetMetadataResponse' {} a -> s {httpStatus = a} :: GetMetadataResponse)++-- | Represents the configuration settings for the features metadata.+getMetadataResponse_features :: Lens.Lens' GetMetadataResponse (Prelude.HashMap Prelude.Text Prelude.Text)+getMetadataResponse_features = Lens.lens (\GetMetadataResponse' {features} -> features) (\s@GetMetadataResponse' {} a -> s {features = a} :: GetMetadataResponse) Prelude.. Lens.coerced++instance Prelude.NFData GetMetadataResponse where+  rnf GetMetadataResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf features
+ gen/Amazonka/AmplifyUiBuilder/GetTheme.hs view
@@ -0,0 +1,194 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.AmplifyUiBuilder.GetTheme+-- 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 theme for an Amplify app.+module Amazonka.AmplifyUiBuilder.GetTheme+  ( -- * Creating a Request+    GetTheme (..),+    newGetTheme,++    -- * Request Lenses+    getTheme_appId,+    getTheme_environmentName,+    getTheme_id,++    -- * Destructuring the Response+    GetThemeResponse (..),+    newGetThemeResponse,++    -- * Response Lenses+    getThemeResponse_theme,+    getThemeResponse_httpStatus,+  )+where++import Amazonka.AmplifyUiBuilder.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++-- | /See:/ 'newGetTheme' smart constructor.+data GetTheme = GetTheme'+  { -- | The unique ID of the Amplify app.+    appId :: Prelude.Text,+    -- | The name of the backend environment that is part of the Amplify app.+    environmentName :: Prelude.Text,+    -- | The unique ID for the theme.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetTheme' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getTheme_appId' - The unique ID of the Amplify app.+--+-- 'environmentName', 'getTheme_environmentName' - The name of the backend environment that is part of the Amplify app.+--+-- 'id', 'getTheme_id' - The unique ID for the theme.+newGetTheme ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'environmentName'+  Prelude.Text ->+  -- | 'id'+  Prelude.Text ->+  GetTheme+newGetTheme pAppId_ pEnvironmentName_ pId_ =+  GetTheme'+    { appId = pAppId_,+      environmentName = pEnvironmentName_,+      id = pId_+    }++-- | The unique ID of the Amplify app.+getTheme_appId :: Lens.Lens' GetTheme Prelude.Text+getTheme_appId = Lens.lens (\GetTheme' {appId} -> appId) (\s@GetTheme' {} a -> s {appId = a} :: GetTheme)++-- | The name of the backend environment that is part of the Amplify app.+getTheme_environmentName :: Lens.Lens' GetTheme Prelude.Text+getTheme_environmentName = Lens.lens (\GetTheme' {environmentName} -> environmentName) (\s@GetTheme' {} a -> s {environmentName = a} :: GetTheme)++-- | The unique ID for the theme.+getTheme_id :: Lens.Lens' GetTheme Prelude.Text+getTheme_id = Lens.lens (\GetTheme' {id} -> id) (\s@GetTheme' {} a -> s {id = a} :: GetTheme)++instance Core.AWSRequest GetTheme where+  type AWSResponse GetTheme = GetThemeResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetThemeResponse'+            Prelude.<$> (Data.eitherParseJSON x)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetTheme where+  hashWithSalt _salt GetTheme' {..} =+    _salt+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` environmentName+      `Prelude.hashWithSalt` id++instance Prelude.NFData GetTheme where+  rnf GetTheme' {..} =+    Prelude.rnf appId+      `Prelude.seq` Prelude.rnf environmentName+      `Prelude.seq` Prelude.rnf id++instance Data.ToHeaders GetTheme where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetTheme where+  toPath GetTheme' {..} =+    Prelude.mconcat+      [ "/app/",+        Data.toBS appId,+        "/environment/",+        Data.toBS environmentName,+        "/themes/",+        Data.toBS id+      ]++instance Data.ToQuery GetTheme where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetThemeResponse' smart constructor.+data GetThemeResponse = GetThemeResponse'+  { -- | Represents the configuration settings for the theme.+    theme :: Prelude.Maybe Theme,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetThemeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'theme', 'getThemeResponse_theme' - Represents the configuration settings for the theme.+--+-- 'httpStatus', 'getThemeResponse_httpStatus' - The response's http status code.+newGetThemeResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetThemeResponse+newGetThemeResponse pHttpStatus_ =+  GetThemeResponse'+    { theme = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Represents the configuration settings for the theme.+getThemeResponse_theme :: Lens.Lens' GetThemeResponse (Prelude.Maybe Theme)+getThemeResponse_theme = Lens.lens (\GetThemeResponse' {theme} -> theme) (\s@GetThemeResponse' {} a -> s {theme = a} :: GetThemeResponse)++-- | The response's http status code.+getThemeResponse_httpStatus :: Lens.Lens' GetThemeResponse Prelude.Int+getThemeResponse_httpStatus = Lens.lens (\GetThemeResponse' {httpStatus} -> httpStatus) (\s@GetThemeResponse' {} a -> s {httpStatus = a} :: GetThemeResponse)++instance Prelude.NFData GetThemeResponse where+  rnf GetThemeResponse' {..} =+    Prelude.rnf theme+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/AmplifyUiBuilder/Lens.hs view
@@ -0,0 +1,570 @@+{-# 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.AmplifyUiBuilder.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.AmplifyUiBuilder.Lens+  ( -- * Operations++    -- ** CreateComponent+    createComponent_clientToken,+    createComponent_appId,+    createComponent_componentToCreate,+    createComponent_environmentName,+    createComponentResponse_entity,+    createComponentResponse_httpStatus,++    -- ** CreateForm+    createForm_clientToken,+    createForm_appId,+    createForm_environmentName,+    createForm_formToCreate,+    createFormResponse_entity,+    createFormResponse_httpStatus,++    -- ** CreateTheme+    createTheme_clientToken,+    createTheme_appId,+    createTheme_environmentName,+    createTheme_themeToCreate,+    createThemeResponse_entity,+    createThemeResponse_httpStatus,++    -- ** DeleteComponent+    deleteComponent_appId,+    deleteComponent_environmentName,+    deleteComponent_id,++    -- ** DeleteForm+    deleteForm_appId,+    deleteForm_environmentName,+    deleteForm_id,++    -- ** DeleteTheme+    deleteTheme_appId,+    deleteTheme_environmentName,+    deleteTheme_id,++    -- ** ExchangeCodeForToken+    exchangeCodeForToken_provider,+    exchangeCodeForToken_request,+    exchangeCodeForTokenResponse_httpStatus,+    exchangeCodeForTokenResponse_accessToken,+    exchangeCodeForTokenResponse_expiresIn,+    exchangeCodeForTokenResponse_refreshToken,++    -- ** ExportComponents+    exportComponents_nextToken,+    exportComponents_appId,+    exportComponents_environmentName,+    exportComponentsResponse_nextToken,+    exportComponentsResponse_httpStatus,+    exportComponentsResponse_entities,++    -- ** ExportForms+    exportForms_nextToken,+    exportForms_appId,+    exportForms_environmentName,+    exportFormsResponse_nextToken,+    exportFormsResponse_httpStatus,+    exportFormsResponse_entities,++    -- ** ExportThemes+    exportThemes_nextToken,+    exportThemes_appId,+    exportThemes_environmentName,+    exportThemesResponse_nextToken,+    exportThemesResponse_httpStatus,+    exportThemesResponse_entities,++    -- ** GetComponent+    getComponent_appId,+    getComponent_environmentName,+    getComponent_id,+    getComponentResponse_component,+    getComponentResponse_httpStatus,++    -- ** GetForm+    getForm_appId,+    getForm_environmentName,+    getForm_id,+    getFormResponse_form,+    getFormResponse_httpStatus,++    -- ** GetMetadata+    getMetadata_appId,+    getMetadata_environmentName,+    getMetadataResponse_httpStatus,+    getMetadataResponse_features,++    -- ** GetTheme+    getTheme_appId,+    getTheme_environmentName,+    getTheme_id,+    getThemeResponse_theme,+    getThemeResponse_httpStatus,++    -- ** ListComponents+    listComponents_maxResults,+    listComponents_nextToken,+    listComponents_appId,+    listComponents_environmentName,+    listComponentsResponse_nextToken,+    listComponentsResponse_httpStatus,+    listComponentsResponse_entities,++    -- ** ListForms+    listForms_maxResults,+    listForms_nextToken,+    listForms_appId,+    listForms_environmentName,+    listFormsResponse_nextToken,+    listFormsResponse_httpStatus,+    listFormsResponse_entities,++    -- ** ListThemes+    listThemes_maxResults,+    listThemes_nextToken,+    listThemes_appId,+    listThemes_environmentName,+    listThemesResponse_nextToken,+    listThemesResponse_httpStatus,+    listThemesResponse_entities,++    -- ** PutMetadataFlag+    putMetadataFlag_appId,+    putMetadataFlag_body,+    putMetadataFlag_environmentName,+    putMetadataFlag_featureName,++    -- ** RefreshToken+    refreshToken_provider,+    refreshToken_refreshTokenBody,+    refreshTokenResponse_httpStatus,+    refreshTokenResponse_accessToken,+    refreshTokenResponse_expiresIn,++    -- ** UpdateComponent+    updateComponent_clientToken,+    updateComponent_appId,+    updateComponent_environmentName,+    updateComponent_id,+    updateComponent_updatedComponent,+    updateComponentResponse_entity,+    updateComponentResponse_httpStatus,++    -- ** UpdateForm+    updateForm_clientToken,+    updateForm_appId,+    updateForm_environmentName,+    updateForm_id,+    updateForm_updatedForm,+    updateFormResponse_entity,+    updateFormResponse_httpStatus,++    -- ** UpdateTheme+    updateTheme_clientToken,+    updateTheme_appId,+    updateTheme_environmentName,+    updateTheme_id,+    updateTheme_updatedTheme,+    updateThemeResponse_entity,+    updateThemeResponse_httpStatus,++    -- * Types++    -- ** ActionParameters+    actionParameters_anchor,+    actionParameters_fields,+    actionParameters_global,+    actionParameters_id,+    actionParameters_model,+    actionParameters_state,+    actionParameters_target,+    actionParameters_type,+    actionParameters_url,++    -- ** Component+    component_children,+    component_collectionProperties,+    component_events,+    component_modifiedAt,+    component_schemaVersion,+    component_sourceId,+    component_tags,+    component_appId,+    component_bindingProperties,+    component_componentType,+    component_createdAt,+    component_environmentName,+    component_id,+    component_name,+    component_overrides,+    component_properties,+    component_variants,++    -- ** ComponentBindingPropertiesValue+    componentBindingPropertiesValue_bindingProperties,+    componentBindingPropertiesValue_defaultValue,+    componentBindingPropertiesValue_type,++    -- ** ComponentBindingPropertiesValueProperties+    componentBindingPropertiesValueProperties_bucket,+    componentBindingPropertiesValueProperties_defaultValue,+    componentBindingPropertiesValueProperties_field,+    componentBindingPropertiesValueProperties_key,+    componentBindingPropertiesValueProperties_model,+    componentBindingPropertiesValueProperties_predicates,+    componentBindingPropertiesValueProperties_slotName,+    componentBindingPropertiesValueProperties_userAttribute,++    -- ** ComponentChild+    componentChild_children,+    componentChild_events,+    componentChild_sourceId,+    componentChild_componentType,+    componentChild_name,+    componentChild_properties,++    -- ** ComponentConditionProperty+    componentConditionProperty_else,+    componentConditionProperty_field,+    componentConditionProperty_operand,+    componentConditionProperty_operandType,+    componentConditionProperty_operator,+    componentConditionProperty_property,+    componentConditionProperty_then,++    -- ** ComponentDataConfiguration+    componentDataConfiguration_identifiers,+    componentDataConfiguration_predicate,+    componentDataConfiguration_sort,+    componentDataConfiguration_model,++    -- ** ComponentEvent+    componentEvent_action,+    componentEvent_bindingEvent,+    componentEvent_parameters,++    -- ** ComponentProperty+    componentProperty_bindingProperties,+    componentProperty_bindings,+    componentProperty_collectionBindingProperties,+    componentProperty_componentName,+    componentProperty_concat,+    componentProperty_condition,+    componentProperty_configured,+    componentProperty_defaultValue,+    componentProperty_event,+    componentProperty_importedValue,+    componentProperty_model,+    componentProperty_property,+    componentProperty_type,+    componentProperty_userAttribute,+    componentProperty_value,++    -- ** ComponentPropertyBindingProperties+    componentPropertyBindingProperties_field,+    componentPropertyBindingProperties_property,++    -- ** ComponentSummary+    componentSummary_appId,+    componentSummary_componentType,+    componentSummary_environmentName,+    componentSummary_id,+    componentSummary_name,++    -- ** ComponentVariant+    componentVariant_overrides,+    componentVariant_variantValues,++    -- ** CreateComponentData+    createComponentData_children,+    createComponentData_collectionProperties,+    createComponentData_events,+    createComponentData_schemaVersion,+    createComponentData_sourceId,+    createComponentData_tags,+    createComponentData_bindingProperties,+    createComponentData_componentType,+    createComponentData_name,+    createComponentData_overrides,+    createComponentData_properties,+    createComponentData_variants,++    -- ** CreateFormData+    createFormData_cta,+    createFormData_tags,+    createFormData_dataType,+    createFormData_fields,+    createFormData_formActionType,+    createFormData_name,+    createFormData_schemaVersion,+    createFormData_sectionalElements,+    createFormData_style,++    -- ** CreateThemeData+    createThemeData_overrides,+    createThemeData_tags,+    createThemeData_name,+    createThemeData_values,++    -- ** ExchangeCodeForTokenRequestBody+    exchangeCodeForTokenRequestBody_code,+    exchangeCodeForTokenRequestBody_redirectUri,++    -- ** FieldConfig+    fieldConfig_excluded,+    fieldConfig_inputType,+    fieldConfig_label,+    fieldConfig_position,+    fieldConfig_validations,++    -- ** FieldInputConfig+    fieldInputConfig_defaultChecked,+    fieldInputConfig_defaultCountryCode,+    fieldInputConfig_defaultValue,+    fieldInputConfig_descriptiveText,+    fieldInputConfig_isArray,+    fieldInputConfig_maxValue,+    fieldInputConfig_minValue,+    fieldInputConfig_name,+    fieldInputConfig_placeholder,+    fieldInputConfig_readOnly,+    fieldInputConfig_required,+    fieldInputConfig_step,+    fieldInputConfig_value,+    fieldInputConfig_valueMappings,+    fieldInputConfig_type,++    -- ** FieldPosition+    fieldPosition_below,+    fieldPosition_fixed,+    fieldPosition_rightOf,++    -- ** FieldValidationConfiguration+    fieldValidationConfiguration_numValues,+    fieldValidationConfiguration_strValues,+    fieldValidationConfiguration_validationMessage,+    fieldValidationConfiguration_type,++    -- ** Form+    form_cta,+    form_tags,+    form_appId,+    form_dataType,+    form_environmentName,+    form_fields,+    form_formActionType,+    form_id,+    form_name,+    form_schemaVersion,+    form_sectionalElements,+    form_style,++    -- ** FormBindingElement+    formBindingElement_element,+    formBindingElement_property,++    -- ** FormButton+    formButton_children,+    formButton_excluded,+    formButton_position,++    -- ** FormCTA+    formCTA_cancel,+    formCTA_clear,+    formCTA_position,+    formCTA_submit,++    -- ** FormDataTypeConfig+    formDataTypeConfig_dataSourceType,+    formDataTypeConfig_dataTypeName,++    -- ** FormInputValueProperty+    formInputValueProperty_value,++    -- ** FormStyle+    formStyle_horizontalGap,+    formStyle_outerPadding,+    formStyle_verticalGap,++    -- ** FormStyleConfig+    formStyleConfig_tokenReference,+    formStyleConfig_value,++    -- ** FormSummary+    formSummary_appId,+    formSummary_dataType,+    formSummary_environmentName,+    formSummary_formActionType,+    formSummary_id,+    formSummary_name,++    -- ** MutationActionSetStateParameter+    mutationActionSetStateParameter_componentName,+    mutationActionSetStateParameter_property,+    mutationActionSetStateParameter_set,++    -- ** Predicate+    predicate_and,+    predicate_field,+    predicate_operand,+    predicate_operator,+    predicate_or,++    -- ** PutMetadataFlagBody+    putMetadataFlagBody_newValue,++    -- ** RefreshTokenRequestBody+    refreshTokenRequestBody_token,++    -- ** SectionalElement+    sectionalElement_level,+    sectionalElement_orientation,+    sectionalElement_position,+    sectionalElement_text,+    sectionalElement_type,++    -- ** SortProperty+    sortProperty_direction,+    sortProperty_field,++    -- ** Theme+    theme_modifiedAt,+    theme_overrides,+    theme_tags,+    theme_appId,+    theme_createdAt,+    theme_environmentName,+    theme_id,+    theme_name,+    theme_values,++    -- ** ThemeSummary+    themeSummary_appId,+    themeSummary_environmentName,+    themeSummary_id,+    themeSummary_name,++    -- ** ThemeValue+    themeValue_children,+    themeValue_value,++    -- ** ThemeValues+    themeValues_key,+    themeValues_value,++    -- ** UpdateComponentData+    updateComponentData_bindingProperties,+    updateComponentData_children,+    updateComponentData_collectionProperties,+    updateComponentData_componentType,+    updateComponentData_events,+    updateComponentData_id,+    updateComponentData_name,+    updateComponentData_overrides,+    updateComponentData_properties,+    updateComponentData_schemaVersion,+    updateComponentData_sourceId,+    updateComponentData_variants,++    -- ** UpdateFormData+    updateFormData_cta,+    updateFormData_dataType,+    updateFormData_fields,+    updateFormData_formActionType,+    updateFormData_name,+    updateFormData_schemaVersion,+    updateFormData_sectionalElements,+    updateFormData_style,++    -- ** UpdateThemeData+    updateThemeData_id,+    updateThemeData_name,+    updateThemeData_overrides,+    updateThemeData_values,++    -- ** ValueMapping+    valueMapping_displayValue,+    valueMapping_value,++    -- ** ValueMappings+    valueMappings_values,+  )+where++import Amazonka.AmplifyUiBuilder.CreateComponent+import Amazonka.AmplifyUiBuilder.CreateForm+import Amazonka.AmplifyUiBuilder.CreateTheme+import Amazonka.AmplifyUiBuilder.DeleteComponent+import Amazonka.AmplifyUiBuilder.DeleteForm+import Amazonka.AmplifyUiBuilder.DeleteTheme+import Amazonka.AmplifyUiBuilder.ExchangeCodeForToken+import Amazonka.AmplifyUiBuilder.ExportComponents+import Amazonka.AmplifyUiBuilder.ExportForms+import Amazonka.AmplifyUiBuilder.ExportThemes+import Amazonka.AmplifyUiBuilder.GetComponent+import Amazonka.AmplifyUiBuilder.GetForm+import Amazonka.AmplifyUiBuilder.GetMetadata+import Amazonka.AmplifyUiBuilder.GetTheme+import Amazonka.AmplifyUiBuilder.ListComponents+import Amazonka.AmplifyUiBuilder.ListForms+import Amazonka.AmplifyUiBuilder.ListThemes+import Amazonka.AmplifyUiBuilder.PutMetadataFlag+import Amazonka.AmplifyUiBuilder.RefreshToken+import Amazonka.AmplifyUiBuilder.Types.ActionParameters+import Amazonka.AmplifyUiBuilder.Types.Component+import Amazonka.AmplifyUiBuilder.Types.ComponentBindingPropertiesValue+import Amazonka.AmplifyUiBuilder.Types.ComponentBindingPropertiesValueProperties+import Amazonka.AmplifyUiBuilder.Types.ComponentChild+import Amazonka.AmplifyUiBuilder.Types.ComponentConditionProperty+import Amazonka.AmplifyUiBuilder.Types.ComponentDataConfiguration+import Amazonka.AmplifyUiBuilder.Types.ComponentEvent+import Amazonka.AmplifyUiBuilder.Types.ComponentProperty+import Amazonka.AmplifyUiBuilder.Types.ComponentPropertyBindingProperties+import Amazonka.AmplifyUiBuilder.Types.ComponentSummary+import Amazonka.AmplifyUiBuilder.Types.ComponentVariant+import Amazonka.AmplifyUiBuilder.Types.CreateComponentData+import Amazonka.AmplifyUiBuilder.Types.CreateFormData+import Amazonka.AmplifyUiBuilder.Types.CreateThemeData+import Amazonka.AmplifyUiBuilder.Types.ExchangeCodeForTokenRequestBody+import Amazonka.AmplifyUiBuilder.Types.FieldConfig+import Amazonka.AmplifyUiBuilder.Types.FieldInputConfig+import Amazonka.AmplifyUiBuilder.Types.FieldPosition+import Amazonka.AmplifyUiBuilder.Types.FieldValidationConfiguration+import Amazonka.AmplifyUiBuilder.Types.Form+import Amazonka.AmplifyUiBuilder.Types.FormBindingElement+import Amazonka.AmplifyUiBuilder.Types.FormButton+import Amazonka.AmplifyUiBuilder.Types.FormCTA+import Amazonka.AmplifyUiBuilder.Types.FormDataTypeConfig+import Amazonka.AmplifyUiBuilder.Types.FormInputValueProperty+import Amazonka.AmplifyUiBuilder.Types.FormStyle+import Amazonka.AmplifyUiBuilder.Types.FormStyleConfig+import Amazonka.AmplifyUiBuilder.Types.FormSummary+import Amazonka.AmplifyUiBuilder.Types.MutationActionSetStateParameter+import Amazonka.AmplifyUiBuilder.Types.Predicate+import Amazonka.AmplifyUiBuilder.Types.PutMetadataFlagBody+import Amazonka.AmplifyUiBuilder.Types.RefreshTokenRequestBody+import Amazonka.AmplifyUiBuilder.Types.SectionalElement+import Amazonka.AmplifyUiBuilder.Types.SortProperty+import Amazonka.AmplifyUiBuilder.Types.Theme+import Amazonka.AmplifyUiBuilder.Types.ThemeSummary+import Amazonka.AmplifyUiBuilder.Types.ThemeValue+import Amazonka.AmplifyUiBuilder.Types.ThemeValues+import Amazonka.AmplifyUiBuilder.Types.UpdateComponentData+import Amazonka.AmplifyUiBuilder.Types.UpdateFormData+import Amazonka.AmplifyUiBuilder.Types.UpdateThemeData+import Amazonka.AmplifyUiBuilder.Types.ValueMapping+import Amazonka.AmplifyUiBuilder.Types.ValueMappings+import Amazonka.AmplifyUiBuilder.UpdateComponent+import Amazonka.AmplifyUiBuilder.UpdateForm+import Amazonka.AmplifyUiBuilder.UpdateTheme
+ gen/Amazonka/AmplifyUiBuilder/ListComponents.hs view
@@ -0,0 +1,244 @@+{-# 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.AmplifyUiBuilder.ListComponents+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a list of components for a specified Amplify app and backend+-- environment.+--+-- This operation returns paginated results.+module Amazonka.AmplifyUiBuilder.ListComponents+  ( -- * Creating a Request+    ListComponents (..),+    newListComponents,++    -- * Request Lenses+    listComponents_maxResults,+    listComponents_nextToken,+    listComponents_appId,+    listComponents_environmentName,++    -- * Destructuring the Response+    ListComponentsResponse (..),+    newListComponentsResponse,++    -- * Response Lenses+    listComponentsResponse_nextToken,+    listComponentsResponse_httpStatus,+    listComponentsResponse_entities,+  )+where++import Amazonka.AmplifyUiBuilder.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++-- | /See:/ 'newListComponents' smart constructor.+data ListComponents = ListComponents'+  { -- | The maximum number of components to retrieve.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token to request the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The unique ID for the Amplify app.+    appId :: Prelude.Text,+    -- | The name of the backend environment that is a part of the Amplify app.+    environmentName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListComponents' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listComponents_maxResults' - The maximum number of components to retrieve.+--+-- 'nextToken', 'listComponents_nextToken' - The token to request the next page of results.+--+-- 'appId', 'listComponents_appId' - The unique ID for the Amplify app.+--+-- 'environmentName', 'listComponents_environmentName' - The name of the backend environment that is a part of the Amplify app.+newListComponents ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'environmentName'+  Prelude.Text ->+  ListComponents+newListComponents pAppId_ pEnvironmentName_ =+  ListComponents'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      appId = pAppId_,+      environmentName = pEnvironmentName_+    }++-- | The maximum number of components to retrieve.+listComponents_maxResults :: Lens.Lens' ListComponents (Prelude.Maybe Prelude.Natural)+listComponents_maxResults = Lens.lens (\ListComponents' {maxResults} -> maxResults) (\s@ListComponents' {} a -> s {maxResults = a} :: ListComponents)++-- | The token to request the next page of results.+listComponents_nextToken :: Lens.Lens' ListComponents (Prelude.Maybe Prelude.Text)+listComponents_nextToken = Lens.lens (\ListComponents' {nextToken} -> nextToken) (\s@ListComponents' {} a -> s {nextToken = a} :: ListComponents)++-- | The unique ID for the Amplify app.+listComponents_appId :: Lens.Lens' ListComponents Prelude.Text+listComponents_appId = Lens.lens (\ListComponents' {appId} -> appId) (\s@ListComponents' {} a -> s {appId = a} :: ListComponents)++-- | The name of the backend environment that is a part of the Amplify app.+listComponents_environmentName :: Lens.Lens' ListComponents Prelude.Text+listComponents_environmentName = Lens.lens (\ListComponents' {environmentName} -> environmentName) (\s@ListComponents' {} a -> s {environmentName = a} :: ListComponents)++instance Core.AWSPager ListComponents where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listComponentsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        (rs Lens.^. listComponentsResponse_entities) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listComponents_nextToken+          Lens..~ rs+          Lens.^? listComponentsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListComponents where+  type+    AWSResponse ListComponents =+      ListComponentsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListComponentsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..?> "entities" Core..!@ Prelude.mempty)+      )++instance Prelude.Hashable ListComponents where+  hashWithSalt _salt ListComponents' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` environmentName++instance Prelude.NFData ListComponents where+  rnf ListComponents' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf appId+      `Prelude.seq` Prelude.rnf environmentName++instance Data.ToHeaders ListComponents where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListComponents where+  toPath ListComponents' {..} =+    Prelude.mconcat+      [ "/app/",+        Data.toBS appId,+        "/environment/",+        Data.toBS environmentName,+        "/components"+      ]++instance Data.ToQuery ListComponents where+  toQuery ListComponents' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListComponentsResponse' smart constructor.+data ListComponentsResponse = ListComponentsResponse'+  { -- | The pagination token that\'s included if more results are available.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The list of components for the Amplify app.+    entities :: [ComponentSummary]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListComponentsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listComponentsResponse_nextToken' - The pagination token that\'s included if more results are available.+--+-- 'httpStatus', 'listComponentsResponse_httpStatus' - The response's http status code.+--+-- 'entities', 'listComponentsResponse_entities' - The list of components for the Amplify app.+newListComponentsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListComponentsResponse+newListComponentsResponse pHttpStatus_ =+  ListComponentsResponse'+    { nextToken =+        Prelude.Nothing,+      httpStatus = pHttpStatus_,+      entities = Prelude.mempty+    }++-- | The pagination token that\'s included if more results are available.+listComponentsResponse_nextToken :: Lens.Lens' ListComponentsResponse (Prelude.Maybe Prelude.Text)+listComponentsResponse_nextToken = Lens.lens (\ListComponentsResponse' {nextToken} -> nextToken) (\s@ListComponentsResponse' {} a -> s {nextToken = a} :: ListComponentsResponse)++-- | The response's http status code.+listComponentsResponse_httpStatus :: Lens.Lens' ListComponentsResponse Prelude.Int+listComponentsResponse_httpStatus = Lens.lens (\ListComponentsResponse' {httpStatus} -> httpStatus) (\s@ListComponentsResponse' {} a -> s {httpStatus = a} :: ListComponentsResponse)++-- | The list of components for the Amplify app.+listComponentsResponse_entities :: Lens.Lens' ListComponentsResponse [ComponentSummary]+listComponentsResponse_entities = Lens.lens (\ListComponentsResponse' {entities} -> entities) (\s@ListComponentsResponse' {} a -> s {entities = a} :: ListComponentsResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListComponentsResponse where+  rnf ListComponentsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf entities
+ gen/Amazonka/AmplifyUiBuilder/ListForms.hs view
@@ -0,0 +1,240 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.AmplifyUiBuilder.ListForms+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a list of forms for a specified Amplify app and backend+-- environment.+--+-- This operation returns paginated results.+module Amazonka.AmplifyUiBuilder.ListForms+  ( -- * Creating a Request+    ListForms (..),+    newListForms,++    -- * Request Lenses+    listForms_maxResults,+    listForms_nextToken,+    listForms_appId,+    listForms_environmentName,++    -- * Destructuring the Response+    ListFormsResponse (..),+    newListFormsResponse,++    -- * Response Lenses+    listFormsResponse_nextToken,+    listFormsResponse_httpStatus,+    listFormsResponse_entities,+  )+where++import Amazonka.AmplifyUiBuilder.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++-- | /See:/ 'newListForms' smart constructor.+data ListForms = ListForms'+  { -- | The maximum number of forms to retrieve.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token to request the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The unique ID for the Amplify app.+    appId :: Prelude.Text,+    -- | The name of the backend environment that is a part of the Amplify app.+    environmentName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListForms' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listForms_maxResults' - The maximum number of forms to retrieve.+--+-- 'nextToken', 'listForms_nextToken' - The token to request the next page of results.+--+-- 'appId', 'listForms_appId' - The unique ID for the Amplify app.+--+-- 'environmentName', 'listForms_environmentName' - The name of the backend environment that is a part of the Amplify app.+newListForms ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'environmentName'+  Prelude.Text ->+  ListForms+newListForms pAppId_ pEnvironmentName_ =+  ListForms'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      appId = pAppId_,+      environmentName = pEnvironmentName_+    }++-- | The maximum number of forms to retrieve.+listForms_maxResults :: Lens.Lens' ListForms (Prelude.Maybe Prelude.Natural)+listForms_maxResults = Lens.lens (\ListForms' {maxResults} -> maxResults) (\s@ListForms' {} a -> s {maxResults = a} :: ListForms)++-- | The token to request the next page of results.+listForms_nextToken :: Lens.Lens' ListForms (Prelude.Maybe Prelude.Text)+listForms_nextToken = Lens.lens (\ListForms' {nextToken} -> nextToken) (\s@ListForms' {} a -> s {nextToken = a} :: ListForms)++-- | The unique ID for the Amplify app.+listForms_appId :: Lens.Lens' ListForms Prelude.Text+listForms_appId = Lens.lens (\ListForms' {appId} -> appId) (\s@ListForms' {} a -> s {appId = a} :: ListForms)++-- | The name of the backend environment that is a part of the Amplify app.+listForms_environmentName :: Lens.Lens' ListForms Prelude.Text+listForms_environmentName = Lens.lens (\ListForms' {environmentName} -> environmentName) (\s@ListForms' {} a -> s {environmentName = a} :: ListForms)++instance Core.AWSPager ListForms where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listFormsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop (rs Lens.^. listFormsResponse_entities) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listForms_nextToken+          Lens..~ rs+          Lens.^? listFormsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListForms where+  type AWSResponse ListForms = ListFormsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListFormsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..?> "entities" Core..!@ Prelude.mempty)+      )++instance Prelude.Hashable ListForms where+  hashWithSalt _salt ListForms' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` environmentName++instance Prelude.NFData ListForms where+  rnf ListForms' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf appId+      `Prelude.seq` Prelude.rnf environmentName++instance Data.ToHeaders ListForms where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListForms where+  toPath ListForms' {..} =+    Prelude.mconcat+      [ "/app/",+        Data.toBS appId,+        "/environment/",+        Data.toBS environmentName,+        "/forms"+      ]++instance Data.ToQuery ListForms where+  toQuery ListForms' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListFormsResponse' smart constructor.+data ListFormsResponse = ListFormsResponse'+  { -- | The pagination token that\'s included if more results are available.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The list of forms for the Amplify app.+    entities :: [FormSummary]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListFormsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listFormsResponse_nextToken' - The pagination token that\'s included if more results are available.+--+-- 'httpStatus', 'listFormsResponse_httpStatus' - The response's http status code.+--+-- 'entities', 'listFormsResponse_entities' - The list of forms for the Amplify app.+newListFormsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListFormsResponse+newListFormsResponse pHttpStatus_ =+  ListFormsResponse'+    { nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_,+      entities = Prelude.mempty+    }++-- | The pagination token that\'s included if more results are available.+listFormsResponse_nextToken :: Lens.Lens' ListFormsResponse (Prelude.Maybe Prelude.Text)+listFormsResponse_nextToken = Lens.lens (\ListFormsResponse' {nextToken} -> nextToken) (\s@ListFormsResponse' {} a -> s {nextToken = a} :: ListFormsResponse)++-- | The response's http status code.+listFormsResponse_httpStatus :: Lens.Lens' ListFormsResponse Prelude.Int+listFormsResponse_httpStatus = Lens.lens (\ListFormsResponse' {httpStatus} -> httpStatus) (\s@ListFormsResponse' {} a -> s {httpStatus = a} :: ListFormsResponse)++-- | The list of forms for the Amplify app.+listFormsResponse_entities :: Lens.Lens' ListFormsResponse [FormSummary]+listFormsResponse_entities = Lens.lens (\ListFormsResponse' {entities} -> entities) (\s@ListFormsResponse' {} a -> s {entities = a} :: ListFormsResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListFormsResponse where+  rnf ListFormsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf entities
+ gen/Amazonka/AmplifyUiBuilder/ListThemes.hs view
@@ -0,0 +1,240 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.AmplifyUiBuilder.ListThemes+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a list of themes for a specified Amplify app and backend+-- environment.+--+-- This operation returns paginated results.+module Amazonka.AmplifyUiBuilder.ListThemes+  ( -- * Creating a Request+    ListThemes (..),+    newListThemes,++    -- * Request Lenses+    listThemes_maxResults,+    listThemes_nextToken,+    listThemes_appId,+    listThemes_environmentName,++    -- * Destructuring the Response+    ListThemesResponse (..),+    newListThemesResponse,++    -- * Response Lenses+    listThemesResponse_nextToken,+    listThemesResponse_httpStatus,+    listThemesResponse_entities,+  )+where++import Amazonka.AmplifyUiBuilder.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++-- | /See:/ 'newListThemes' smart constructor.+data ListThemes = ListThemes'+  { -- | The maximum number of theme results to return in the response.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token to request the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The unique ID for the Amplify app.+    appId :: Prelude.Text,+    -- | The name of the backend environment that is a part of the Amplify app.+    environmentName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListThemes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listThemes_maxResults' - The maximum number of theme results to return in the response.+--+-- 'nextToken', 'listThemes_nextToken' - The token to request the next page of results.+--+-- 'appId', 'listThemes_appId' - The unique ID for the Amplify app.+--+-- 'environmentName', 'listThemes_environmentName' - The name of the backend environment that is a part of the Amplify app.+newListThemes ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'environmentName'+  Prelude.Text ->+  ListThemes+newListThemes pAppId_ pEnvironmentName_ =+  ListThemes'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      appId = pAppId_,+      environmentName = pEnvironmentName_+    }++-- | The maximum number of theme results to return in the response.+listThemes_maxResults :: Lens.Lens' ListThemes (Prelude.Maybe Prelude.Natural)+listThemes_maxResults = Lens.lens (\ListThemes' {maxResults} -> maxResults) (\s@ListThemes' {} a -> s {maxResults = a} :: ListThemes)++-- | The token to request the next page of results.+listThemes_nextToken :: Lens.Lens' ListThemes (Prelude.Maybe Prelude.Text)+listThemes_nextToken = Lens.lens (\ListThemes' {nextToken} -> nextToken) (\s@ListThemes' {} a -> s {nextToken = a} :: ListThemes)++-- | The unique ID for the Amplify app.+listThemes_appId :: Lens.Lens' ListThemes Prelude.Text+listThemes_appId = Lens.lens (\ListThemes' {appId} -> appId) (\s@ListThemes' {} a -> s {appId = a} :: ListThemes)++-- | The name of the backend environment that is a part of the Amplify app.+listThemes_environmentName :: Lens.Lens' ListThemes Prelude.Text+listThemes_environmentName = Lens.lens (\ListThemes' {environmentName} -> environmentName) (\s@ListThemes' {} a -> s {environmentName = a} :: ListThemes)++instance Core.AWSPager ListThemes where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listThemesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop (rs Lens.^. listThemesResponse_entities) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listThemes_nextToken+          Lens..~ rs+          Lens.^? listThemesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListThemes where+  type AWSResponse ListThemes = ListThemesResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListThemesResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..?> "entities" Core..!@ Prelude.mempty)+      )++instance Prelude.Hashable ListThemes where+  hashWithSalt _salt ListThemes' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` environmentName++instance Prelude.NFData ListThemes where+  rnf ListThemes' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf appId+      `Prelude.seq` Prelude.rnf environmentName++instance Data.ToHeaders ListThemes where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListThemes where+  toPath ListThemes' {..} =+    Prelude.mconcat+      [ "/app/",+        Data.toBS appId,+        "/environment/",+        Data.toBS environmentName,+        "/themes"+      ]++instance Data.ToQuery ListThemes where+  toQuery ListThemes' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListThemesResponse' smart constructor.+data ListThemesResponse = ListThemesResponse'+  { -- | The pagination token that\'s returned if more results are available.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The list of themes for the Amplify app.+    entities :: [ThemeSummary]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListThemesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listThemesResponse_nextToken' - The pagination token that\'s returned if more results are available.+--+-- 'httpStatus', 'listThemesResponse_httpStatus' - The response's http status code.+--+-- 'entities', 'listThemesResponse_entities' - The list of themes for the Amplify app.+newListThemesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListThemesResponse+newListThemesResponse pHttpStatus_ =+  ListThemesResponse'+    { nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_,+      entities = Prelude.mempty+    }++-- | The pagination token that\'s returned if more results are available.+listThemesResponse_nextToken :: Lens.Lens' ListThemesResponse (Prelude.Maybe Prelude.Text)+listThemesResponse_nextToken = Lens.lens (\ListThemesResponse' {nextToken} -> nextToken) (\s@ListThemesResponse' {} a -> s {nextToken = a} :: ListThemesResponse)++-- | The response's http status code.+listThemesResponse_httpStatus :: Lens.Lens' ListThemesResponse Prelude.Int+listThemesResponse_httpStatus = Lens.lens (\ListThemesResponse' {httpStatus} -> httpStatus) (\s@ListThemesResponse' {} a -> s {httpStatus = a} :: ListThemesResponse)++-- | The list of themes for the Amplify app.+listThemesResponse_entities :: Lens.Lens' ListThemesResponse [ThemeSummary]+listThemesResponse_entities = Lens.lens (\ListThemesResponse' {entities} -> entities) (\s@ListThemesResponse' {} a -> s {entities = a} :: ListThemesResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListThemesResponse where+  rnf ListThemesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf entities
+ gen/Amazonka/AmplifyUiBuilder/PutMetadataFlag.hs view
@@ -0,0 +1,182 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.AmplifyUiBuilder.PutMetadataFlag+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Stores the metadata information about a feature on a form or view.+module Amazonka.AmplifyUiBuilder.PutMetadataFlag+  ( -- * Creating a Request+    PutMetadataFlag (..),+    newPutMetadataFlag,++    -- * Request Lenses+    putMetadataFlag_appId,+    putMetadataFlag_body,+    putMetadataFlag_environmentName,+    putMetadataFlag_featureName,++    -- * Destructuring the Response+    PutMetadataFlagResponse (..),+    newPutMetadataFlagResponse,+  )+where++import Amazonka.AmplifyUiBuilder.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++-- | /See:/ 'newPutMetadataFlag' smart constructor.+data PutMetadataFlag = PutMetadataFlag'+  { -- | The unique ID for the Amplify app.+    appId :: Prelude.Text,+    -- | The metadata information to store.+    body :: PutMetadataFlagBody,+    -- | The name of the backend environment that is part of the Amplify app.+    environmentName :: Prelude.Text,+    -- | The name of the feature associated with the metadata.+    featureName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutMetadataFlag' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putMetadataFlag_appId' - The unique ID for the Amplify app.+--+-- 'body', 'putMetadataFlag_body' - The metadata information to store.+--+-- 'environmentName', 'putMetadataFlag_environmentName' - The name of the backend environment that is part of the Amplify app.+--+-- 'featureName', 'putMetadataFlag_featureName' - The name of the feature associated with the metadata.+newPutMetadataFlag ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'body'+  PutMetadataFlagBody ->+  -- | 'environmentName'+  Prelude.Text ->+  -- | 'featureName'+  Prelude.Text ->+  PutMetadataFlag+newPutMetadataFlag+  pAppId_+  pBody_+  pEnvironmentName_+  pFeatureName_ =+    PutMetadataFlag'+      { appId = pAppId_,+        body = pBody_,+        environmentName = pEnvironmentName_,+        featureName = pFeatureName_+      }++-- | The unique ID for the Amplify app.+putMetadataFlag_appId :: Lens.Lens' PutMetadataFlag Prelude.Text+putMetadataFlag_appId = Lens.lens (\PutMetadataFlag' {appId} -> appId) (\s@PutMetadataFlag' {} a -> s {appId = a} :: PutMetadataFlag)++-- | The metadata information to store.+putMetadataFlag_body :: Lens.Lens' PutMetadataFlag PutMetadataFlagBody+putMetadataFlag_body = Lens.lens (\PutMetadataFlag' {body} -> body) (\s@PutMetadataFlag' {} a -> s {body = a} :: PutMetadataFlag)++-- | The name of the backend environment that is part of the Amplify app.+putMetadataFlag_environmentName :: Lens.Lens' PutMetadataFlag Prelude.Text+putMetadataFlag_environmentName = Lens.lens (\PutMetadataFlag' {environmentName} -> environmentName) (\s@PutMetadataFlag' {} a -> s {environmentName = a} :: PutMetadataFlag)++-- | The name of the feature associated with the metadata.+putMetadataFlag_featureName :: Lens.Lens' PutMetadataFlag Prelude.Text+putMetadataFlag_featureName = Lens.lens (\PutMetadataFlag' {featureName} -> featureName) (\s@PutMetadataFlag' {} a -> s {featureName = a} :: PutMetadataFlag)++instance Core.AWSRequest PutMetadataFlag where+  type+    AWSResponse PutMetadataFlag =+      PutMetadataFlagResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveNull PutMetadataFlagResponse'++instance Prelude.Hashable PutMetadataFlag where+  hashWithSalt _salt PutMetadataFlag' {..} =+    _salt+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` body+      `Prelude.hashWithSalt` environmentName+      `Prelude.hashWithSalt` featureName++instance Prelude.NFData PutMetadataFlag where+  rnf PutMetadataFlag' {..} =+    Prelude.rnf appId+      `Prelude.seq` Prelude.rnf body+      `Prelude.seq` Prelude.rnf environmentName+      `Prelude.seq` Prelude.rnf featureName++instance Data.ToHeaders PutMetadataFlag where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON PutMetadataFlag where+  toJSON PutMetadataFlag' {..} = Data.toJSON body++instance Data.ToPath PutMetadataFlag where+  toPath PutMetadataFlag' {..} =+    Prelude.mconcat+      [ "/app/",+        Data.toBS appId,+        "/environment/",+        Data.toBS environmentName,+        "/metadata/features/",+        Data.toBS featureName+      ]++instance Data.ToQuery PutMetadataFlag where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPutMetadataFlagResponse' smart constructor.+data PutMetadataFlagResponse = PutMetadataFlagResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutMetadataFlagResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newPutMetadataFlagResponse ::+  PutMetadataFlagResponse+newPutMetadataFlagResponse = PutMetadataFlagResponse'++instance Prelude.NFData PutMetadataFlagResponse where+  rnf _ = ()
+ gen/Amazonka/AmplifyUiBuilder/RefreshToken.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.AmplifyUiBuilder.RefreshToken+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Refreshes a previously issued access token that might have expired.+module Amazonka.AmplifyUiBuilder.RefreshToken+  ( -- * Creating a Request+    RefreshToken (..),+    newRefreshToken,++    -- * Request Lenses+    refreshToken_provider,+    refreshToken_refreshTokenBody,++    -- * Destructuring the Response+    RefreshTokenResponse (..),+    newRefreshTokenResponse,++    -- * Response Lenses+    refreshTokenResponse_httpStatus,+    refreshTokenResponse_accessToken,+    refreshTokenResponse_expiresIn,+  )+where++import Amazonka.AmplifyUiBuilder.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++-- | /See:/ 'newRefreshToken' smart constructor.+data RefreshToken = RefreshToken'+  { -- | The third-party provider for the token. The only valid value is @figma@.+    provider :: TokenProviders,+    -- | Information about the refresh token request.+    refreshTokenBody :: RefreshTokenRequestBody+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RefreshToken' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'provider', 'refreshToken_provider' - The third-party provider for the token. The only valid value is @figma@.+--+-- 'refreshTokenBody', 'refreshToken_refreshTokenBody' - Information about the refresh token request.+newRefreshToken ::+  -- | 'provider'+  TokenProviders ->+  -- | 'refreshTokenBody'+  RefreshTokenRequestBody ->+  RefreshToken+newRefreshToken pProvider_ pRefreshTokenBody_ =+  RefreshToken'+    { provider = pProvider_,+      refreshTokenBody = pRefreshTokenBody_+    }++-- | The third-party provider for the token. The only valid value is @figma@.+refreshToken_provider :: Lens.Lens' RefreshToken TokenProviders+refreshToken_provider = Lens.lens (\RefreshToken' {provider} -> provider) (\s@RefreshToken' {} a -> s {provider = a} :: RefreshToken)++-- | Information about the refresh token request.+refreshToken_refreshTokenBody :: Lens.Lens' RefreshToken RefreshTokenRequestBody+refreshToken_refreshTokenBody = Lens.lens (\RefreshToken' {refreshTokenBody} -> refreshTokenBody) (\s@RefreshToken' {} a -> s {refreshTokenBody = a} :: RefreshToken)++instance Core.AWSRequest RefreshToken where+  type AWSResponse RefreshToken = RefreshTokenResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          RefreshTokenResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "accessToken")+            Prelude.<*> (x Data..:> "expiresIn")+      )++instance Prelude.Hashable RefreshToken where+  hashWithSalt _salt RefreshToken' {..} =+    _salt+      `Prelude.hashWithSalt` provider+      `Prelude.hashWithSalt` refreshTokenBody++instance Prelude.NFData RefreshToken where+  rnf RefreshToken' {..} =+    Prelude.rnf provider+      `Prelude.seq` Prelude.rnf refreshTokenBody++instance Data.ToHeaders RefreshToken where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON RefreshToken where+  toJSON RefreshToken' {..} =+    Data.toJSON refreshTokenBody++instance Data.ToPath RefreshToken where+  toPath RefreshToken' {..} =+    Prelude.mconcat+      ["/tokens/", Data.toBS provider, "/refresh"]++instance Data.ToQuery RefreshToken where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newRefreshTokenResponse' smart constructor.+data RefreshTokenResponse = RefreshTokenResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The access token.+    accessToken :: Data.Sensitive Prelude.Text,+    -- | The date and time when the new access token expires.+    expiresIn :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RefreshTokenResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'refreshTokenResponse_httpStatus' - The response's http status code.+--+-- 'accessToken', 'refreshTokenResponse_accessToken' - The access token.+--+-- 'expiresIn', 'refreshTokenResponse_expiresIn' - The date and time when the new access token expires.+newRefreshTokenResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'accessToken'+  Prelude.Text ->+  -- | 'expiresIn'+  Prelude.Int ->+  RefreshTokenResponse+newRefreshTokenResponse+  pHttpStatus_+  pAccessToken_+  pExpiresIn_ =+    RefreshTokenResponse'+      { httpStatus = pHttpStatus_,+        accessToken = Data._Sensitive Lens.# pAccessToken_,+        expiresIn = pExpiresIn_+      }++-- | The response's http status code.+refreshTokenResponse_httpStatus :: Lens.Lens' RefreshTokenResponse Prelude.Int+refreshTokenResponse_httpStatus = Lens.lens (\RefreshTokenResponse' {httpStatus} -> httpStatus) (\s@RefreshTokenResponse' {} a -> s {httpStatus = a} :: RefreshTokenResponse)++-- | The access token.+refreshTokenResponse_accessToken :: Lens.Lens' RefreshTokenResponse Prelude.Text+refreshTokenResponse_accessToken = Lens.lens (\RefreshTokenResponse' {accessToken} -> accessToken) (\s@RefreshTokenResponse' {} a -> s {accessToken = a} :: RefreshTokenResponse) Prelude.. Data._Sensitive++-- | The date and time when the new access token expires.+refreshTokenResponse_expiresIn :: Lens.Lens' RefreshTokenResponse Prelude.Int+refreshTokenResponse_expiresIn = Lens.lens (\RefreshTokenResponse' {expiresIn} -> expiresIn) (\s@RefreshTokenResponse' {} a -> s {expiresIn = a} :: RefreshTokenResponse)++instance Prelude.NFData RefreshTokenResponse where+  rnf RefreshTokenResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf accessToken+      `Prelude.seq` Prelude.rnf expiresIn
+ gen/Amazonka/AmplifyUiBuilder/Types.hs view
@@ -0,0 +1,629 @@+{-# 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.AmplifyUiBuilder.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.AmplifyUiBuilder.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _InternalServerException,+    _InvalidParameterException,+    _ResourceConflictException,+    _ResourceNotFoundException,+    _ServiceQuotaExceededException,+    _UnauthorizedException,++    -- * FixedPosition+    FixedPosition (..),++    -- * FormActionType+    FormActionType (..),++    -- * FormButtonsPosition+    FormButtonsPosition (..),++    -- * FormDataSourceType+    FormDataSourceType (..),++    -- * SortDirection+    SortDirection (..),++    -- * TokenProviders+    TokenProviders (..),++    -- * ActionParameters+    ActionParameters (..),+    newActionParameters,+    actionParameters_anchor,+    actionParameters_fields,+    actionParameters_global,+    actionParameters_id,+    actionParameters_model,+    actionParameters_state,+    actionParameters_target,+    actionParameters_type,+    actionParameters_url,++    -- * Component+    Component (..),+    newComponent,+    component_children,+    component_collectionProperties,+    component_events,+    component_modifiedAt,+    component_schemaVersion,+    component_sourceId,+    component_tags,+    component_appId,+    component_bindingProperties,+    component_componentType,+    component_createdAt,+    component_environmentName,+    component_id,+    component_name,+    component_overrides,+    component_properties,+    component_variants,++    -- * ComponentBindingPropertiesValue+    ComponentBindingPropertiesValue (..),+    newComponentBindingPropertiesValue,+    componentBindingPropertiesValue_bindingProperties,+    componentBindingPropertiesValue_defaultValue,+    componentBindingPropertiesValue_type,++    -- * ComponentBindingPropertiesValueProperties+    ComponentBindingPropertiesValueProperties (..),+    newComponentBindingPropertiesValueProperties,+    componentBindingPropertiesValueProperties_bucket,+    componentBindingPropertiesValueProperties_defaultValue,+    componentBindingPropertiesValueProperties_field,+    componentBindingPropertiesValueProperties_key,+    componentBindingPropertiesValueProperties_model,+    componentBindingPropertiesValueProperties_predicates,+    componentBindingPropertiesValueProperties_slotName,+    componentBindingPropertiesValueProperties_userAttribute,++    -- * ComponentChild+    ComponentChild (..),+    newComponentChild,+    componentChild_children,+    componentChild_events,+    componentChild_sourceId,+    componentChild_componentType,+    componentChild_name,+    componentChild_properties,++    -- * ComponentConditionProperty+    ComponentConditionProperty (..),+    newComponentConditionProperty,+    componentConditionProperty_else,+    componentConditionProperty_field,+    componentConditionProperty_operand,+    componentConditionProperty_operandType,+    componentConditionProperty_operator,+    componentConditionProperty_property,+    componentConditionProperty_then,++    -- * ComponentDataConfiguration+    ComponentDataConfiguration (..),+    newComponentDataConfiguration,+    componentDataConfiguration_identifiers,+    componentDataConfiguration_predicate,+    componentDataConfiguration_sort,+    componentDataConfiguration_model,++    -- * ComponentEvent+    ComponentEvent (..),+    newComponentEvent,+    componentEvent_action,+    componentEvent_bindingEvent,+    componentEvent_parameters,++    -- * ComponentProperty+    ComponentProperty (..),+    newComponentProperty,+    componentProperty_bindingProperties,+    componentProperty_bindings,+    componentProperty_collectionBindingProperties,+    componentProperty_componentName,+    componentProperty_concat,+    componentProperty_condition,+    componentProperty_configured,+    componentProperty_defaultValue,+    componentProperty_event,+    componentProperty_importedValue,+    componentProperty_model,+    componentProperty_property,+    componentProperty_type,+    componentProperty_userAttribute,+    componentProperty_value,++    -- * ComponentPropertyBindingProperties+    ComponentPropertyBindingProperties (..),+    newComponentPropertyBindingProperties,+    componentPropertyBindingProperties_field,+    componentPropertyBindingProperties_property,++    -- * ComponentSummary+    ComponentSummary (..),+    newComponentSummary,+    componentSummary_appId,+    componentSummary_componentType,+    componentSummary_environmentName,+    componentSummary_id,+    componentSummary_name,++    -- * ComponentVariant+    ComponentVariant (..),+    newComponentVariant,+    componentVariant_overrides,+    componentVariant_variantValues,++    -- * CreateComponentData+    CreateComponentData (..),+    newCreateComponentData,+    createComponentData_children,+    createComponentData_collectionProperties,+    createComponentData_events,+    createComponentData_schemaVersion,+    createComponentData_sourceId,+    createComponentData_tags,+    createComponentData_bindingProperties,+    createComponentData_componentType,+    createComponentData_name,+    createComponentData_overrides,+    createComponentData_properties,+    createComponentData_variants,++    -- * CreateFormData+    CreateFormData (..),+    newCreateFormData,+    createFormData_cta,+    createFormData_tags,+    createFormData_dataType,+    createFormData_fields,+    createFormData_formActionType,+    createFormData_name,+    createFormData_schemaVersion,+    createFormData_sectionalElements,+    createFormData_style,++    -- * CreateThemeData+    CreateThemeData (..),+    newCreateThemeData,+    createThemeData_overrides,+    createThemeData_tags,+    createThemeData_name,+    createThemeData_values,++    -- * ExchangeCodeForTokenRequestBody+    ExchangeCodeForTokenRequestBody (..),+    newExchangeCodeForTokenRequestBody,+    exchangeCodeForTokenRequestBody_code,+    exchangeCodeForTokenRequestBody_redirectUri,++    -- * FieldConfig+    FieldConfig (..),+    newFieldConfig,+    fieldConfig_excluded,+    fieldConfig_inputType,+    fieldConfig_label,+    fieldConfig_position,+    fieldConfig_validations,++    -- * FieldInputConfig+    FieldInputConfig (..),+    newFieldInputConfig,+    fieldInputConfig_defaultChecked,+    fieldInputConfig_defaultCountryCode,+    fieldInputConfig_defaultValue,+    fieldInputConfig_descriptiveText,+    fieldInputConfig_isArray,+    fieldInputConfig_maxValue,+    fieldInputConfig_minValue,+    fieldInputConfig_name,+    fieldInputConfig_placeholder,+    fieldInputConfig_readOnly,+    fieldInputConfig_required,+    fieldInputConfig_step,+    fieldInputConfig_value,+    fieldInputConfig_valueMappings,+    fieldInputConfig_type,++    -- * FieldPosition+    FieldPosition (..),+    newFieldPosition,+    fieldPosition_below,+    fieldPosition_fixed,+    fieldPosition_rightOf,++    -- * FieldValidationConfiguration+    FieldValidationConfiguration (..),+    newFieldValidationConfiguration,+    fieldValidationConfiguration_numValues,+    fieldValidationConfiguration_strValues,+    fieldValidationConfiguration_validationMessage,+    fieldValidationConfiguration_type,++    -- * Form+    Form (..),+    newForm,+    form_cta,+    form_tags,+    form_appId,+    form_dataType,+    form_environmentName,+    form_fields,+    form_formActionType,+    form_id,+    form_name,+    form_schemaVersion,+    form_sectionalElements,+    form_style,++    -- * FormBindingElement+    FormBindingElement (..),+    newFormBindingElement,+    formBindingElement_element,+    formBindingElement_property,++    -- * FormButton+    FormButton (..),+    newFormButton,+    formButton_children,+    formButton_excluded,+    formButton_position,++    -- * FormCTA+    FormCTA (..),+    newFormCTA,+    formCTA_cancel,+    formCTA_clear,+    formCTA_position,+    formCTA_submit,++    -- * FormDataTypeConfig+    FormDataTypeConfig (..),+    newFormDataTypeConfig,+    formDataTypeConfig_dataSourceType,+    formDataTypeConfig_dataTypeName,++    -- * FormInputValueProperty+    FormInputValueProperty (..),+    newFormInputValueProperty,+    formInputValueProperty_value,++    -- * FormStyle+    FormStyle (..),+    newFormStyle,+    formStyle_horizontalGap,+    formStyle_outerPadding,+    formStyle_verticalGap,++    -- * FormStyleConfig+    FormStyleConfig (..),+    newFormStyleConfig,+    formStyleConfig_tokenReference,+    formStyleConfig_value,++    -- * FormSummary+    FormSummary (..),+    newFormSummary,+    formSummary_appId,+    formSummary_dataType,+    formSummary_environmentName,+    formSummary_formActionType,+    formSummary_id,+    formSummary_name,++    -- * MutationActionSetStateParameter+    MutationActionSetStateParameter (..),+    newMutationActionSetStateParameter,+    mutationActionSetStateParameter_componentName,+    mutationActionSetStateParameter_property,+    mutationActionSetStateParameter_set,++    -- * Predicate+    Predicate (..),+    newPredicate,+    predicate_and,+    predicate_field,+    predicate_operand,+    predicate_operator,+    predicate_or,++    -- * PutMetadataFlagBody+    PutMetadataFlagBody (..),+    newPutMetadataFlagBody,+    putMetadataFlagBody_newValue,++    -- * RefreshTokenRequestBody+    RefreshTokenRequestBody (..),+    newRefreshTokenRequestBody,+    refreshTokenRequestBody_token,++    -- * SectionalElement+    SectionalElement (..),+    newSectionalElement,+    sectionalElement_level,+    sectionalElement_orientation,+    sectionalElement_position,+    sectionalElement_text,+    sectionalElement_type,++    -- * SortProperty+    SortProperty (..),+    newSortProperty,+    sortProperty_direction,+    sortProperty_field,++    -- * Theme+    Theme (..),+    newTheme,+    theme_modifiedAt,+    theme_overrides,+    theme_tags,+    theme_appId,+    theme_createdAt,+    theme_environmentName,+    theme_id,+    theme_name,+    theme_values,++    -- * ThemeSummary+    ThemeSummary (..),+    newThemeSummary,+    themeSummary_appId,+    themeSummary_environmentName,+    themeSummary_id,+    themeSummary_name,++    -- * ThemeValue+    ThemeValue (..),+    newThemeValue,+    themeValue_children,+    themeValue_value,++    -- * ThemeValues+    ThemeValues (..),+    newThemeValues,+    themeValues_key,+    themeValues_value,++    -- * UpdateComponentData+    UpdateComponentData (..),+    newUpdateComponentData,+    updateComponentData_bindingProperties,+    updateComponentData_children,+    updateComponentData_collectionProperties,+    updateComponentData_componentType,+    updateComponentData_events,+    updateComponentData_id,+    updateComponentData_name,+    updateComponentData_overrides,+    updateComponentData_properties,+    updateComponentData_schemaVersion,+    updateComponentData_sourceId,+    updateComponentData_variants,++    -- * UpdateFormData+    UpdateFormData (..),+    newUpdateFormData,+    updateFormData_cta,+    updateFormData_dataType,+    updateFormData_fields,+    updateFormData_formActionType,+    updateFormData_name,+    updateFormData_schemaVersion,+    updateFormData_sectionalElements,+    updateFormData_style,++    -- * UpdateThemeData+    UpdateThemeData (..),+    newUpdateThemeData,+    updateThemeData_id,+    updateThemeData_name,+    updateThemeData_overrides,+    updateThemeData_values,++    -- * ValueMapping+    ValueMapping (..),+    newValueMapping,+    valueMapping_displayValue,+    valueMapping_value,++    -- * ValueMappings+    ValueMappings (..),+    newValueMappings,+    valueMappings_values,+  )+where++import Amazonka.AmplifyUiBuilder.Types.ActionParameters+import Amazonka.AmplifyUiBuilder.Types.Component+import Amazonka.AmplifyUiBuilder.Types.ComponentBindingPropertiesValue+import Amazonka.AmplifyUiBuilder.Types.ComponentBindingPropertiesValueProperties+import Amazonka.AmplifyUiBuilder.Types.ComponentChild+import Amazonka.AmplifyUiBuilder.Types.ComponentConditionProperty+import Amazonka.AmplifyUiBuilder.Types.ComponentDataConfiguration+import Amazonka.AmplifyUiBuilder.Types.ComponentEvent+import Amazonka.AmplifyUiBuilder.Types.ComponentProperty+import Amazonka.AmplifyUiBuilder.Types.ComponentPropertyBindingProperties+import Amazonka.AmplifyUiBuilder.Types.ComponentSummary+import Amazonka.AmplifyUiBuilder.Types.ComponentVariant+import Amazonka.AmplifyUiBuilder.Types.CreateComponentData+import Amazonka.AmplifyUiBuilder.Types.CreateFormData+import Amazonka.AmplifyUiBuilder.Types.CreateThemeData+import Amazonka.AmplifyUiBuilder.Types.ExchangeCodeForTokenRequestBody+import Amazonka.AmplifyUiBuilder.Types.FieldConfig+import Amazonka.AmplifyUiBuilder.Types.FieldInputConfig+import Amazonka.AmplifyUiBuilder.Types.FieldPosition+import Amazonka.AmplifyUiBuilder.Types.FieldValidationConfiguration+import Amazonka.AmplifyUiBuilder.Types.FixedPosition+import Amazonka.AmplifyUiBuilder.Types.Form+import Amazonka.AmplifyUiBuilder.Types.FormActionType+import Amazonka.AmplifyUiBuilder.Types.FormBindingElement+import Amazonka.AmplifyUiBuilder.Types.FormButton+import Amazonka.AmplifyUiBuilder.Types.FormButtonsPosition+import Amazonka.AmplifyUiBuilder.Types.FormCTA+import Amazonka.AmplifyUiBuilder.Types.FormDataSourceType+import Amazonka.AmplifyUiBuilder.Types.FormDataTypeConfig+import Amazonka.AmplifyUiBuilder.Types.FormInputValueProperty+import Amazonka.AmplifyUiBuilder.Types.FormStyle+import Amazonka.AmplifyUiBuilder.Types.FormStyleConfig+import Amazonka.AmplifyUiBuilder.Types.FormSummary+import Amazonka.AmplifyUiBuilder.Types.MutationActionSetStateParameter+import Amazonka.AmplifyUiBuilder.Types.Predicate+import Amazonka.AmplifyUiBuilder.Types.PutMetadataFlagBody+import Amazonka.AmplifyUiBuilder.Types.RefreshTokenRequestBody+import Amazonka.AmplifyUiBuilder.Types.SectionalElement+import Amazonka.AmplifyUiBuilder.Types.SortDirection+import Amazonka.AmplifyUiBuilder.Types.SortProperty+import Amazonka.AmplifyUiBuilder.Types.Theme+import Amazonka.AmplifyUiBuilder.Types.ThemeSummary+import Amazonka.AmplifyUiBuilder.Types.ThemeValue+import Amazonka.AmplifyUiBuilder.Types.ThemeValues+import Amazonka.AmplifyUiBuilder.Types.TokenProviders+import Amazonka.AmplifyUiBuilder.Types.UpdateComponentData+import Amazonka.AmplifyUiBuilder.Types.UpdateFormData+import Amazonka.AmplifyUiBuilder.Types.UpdateThemeData+import Amazonka.AmplifyUiBuilder.Types.ValueMapping+import Amazonka.AmplifyUiBuilder.Types.ValueMappings+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 @2021-08-11@ of the Amazon Amplify UI Builder SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "AmplifyUiBuilder",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "amplifyuibuilder",+      Core.signingName = "amplifyuibuilder",+      Core.version = "2021-08-11",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "AmplifyUiBuilder",+      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++-- | An internal error has occurred. Please retry your request.+_InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerException =+  Core._MatchServiceError+    defaultService+    "InternalServerException"+    Prelude.. Core.hasStatus 500++-- | An invalid or out-of-range value was supplied for the input parameter.+_InvalidParameterException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidParameterException =+  Core._MatchServiceError+    defaultService+    "InvalidParameterException"+    Prelude.. Core.hasStatus 400++-- | The resource specified in the request conflicts with an existing+-- resource.+_ResourceConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceConflictException =+  Core._MatchServiceError+    defaultService+    "ResourceConflictException"+    Prelude.. Core.hasStatus 409++-- | The requested resource does not exist, or access was denied.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+  Core._MatchServiceError+    defaultService+    "ResourceNotFoundException"+    Prelude.. Core.hasStatus 404++-- | You exceeded your service quota. Service quotas, also referred to as+-- limits, are the maximum number of service resources or operations for+-- your Amazon Web Services account.+_ServiceQuotaExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceQuotaExceededException =+  Core._MatchServiceError+    defaultService+    "ServiceQuotaExceededException"+    Prelude.. Core.hasStatus 402++-- | You don\'t have permission to perform this operation.+_UnauthorizedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_UnauthorizedException =+  Core._MatchServiceError+    defaultService+    "UnauthorizedException"+    Prelude.. Core.hasStatus 401
+ gen/Amazonka/AmplifyUiBuilder/Types/ActionParameters.hs view
@@ -0,0 +1,214 @@+{-# 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.AmplifyUiBuilder.Types.ActionParameters+-- 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.AmplifyUiBuilder.Types.ActionParameters where++import Amazonka.AmplifyUiBuilder.Types.ComponentProperty+import Amazonka.AmplifyUiBuilder.Types.MutationActionSetStateParameter+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 event action configuration for an element of a+-- @Component@ or @ComponentChild@. Use for the workflow feature in Amplify+-- Studio that allows you to bind events and actions to components.+-- @ActionParameters@ defines the action that is performed when an event+-- occurs on the component.+--+-- /See:/ 'newActionParameters' smart constructor.+data ActionParameters = ActionParameters'+  { -- | The HTML anchor link to the location to open. Specify this value for a+    -- navigation action.+    anchor :: Prelude.Maybe ComponentProperty,+    -- | A dictionary of key-value pairs mapping Amplify Studio properties to+    -- fields in a data model. Use when the action performs an operation on an+    -- Amplify DataStore model.+    fields :: Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentProperty),+    -- | Specifies whether the user should be signed out globally. Specify this+    -- value for an auth sign out action.+    global :: Prelude.Maybe ComponentProperty,+    -- | The unique ID of the component that the @ActionParameters@ apply to.+    id :: Prelude.Maybe ComponentProperty,+    -- | The name of the data model. Use when the action performs an operation on+    -- an Amplify DataStore model.+    model :: Prelude.Maybe Prelude.Text,+    -- | A key-value pair that specifies the state property name and its initial+    -- value.+    state :: Prelude.Maybe MutationActionSetStateParameter,+    -- | The element within the same component to modify when the action occurs.+    target :: Prelude.Maybe ComponentProperty,+    -- | The type of navigation action. Valid values are @url@ and @anchor@. This+    -- value is required for a navigation action.+    type' :: Prelude.Maybe ComponentProperty,+    -- | The URL to the location to open. Specify this value for a navigation+    -- action.+    url :: Prelude.Maybe ComponentProperty+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ActionParameters' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anchor', 'actionParameters_anchor' - The HTML anchor link to the location to open. Specify this value for a+-- navigation action.+--+-- 'fields', 'actionParameters_fields' - A dictionary of key-value pairs mapping Amplify Studio properties to+-- fields in a data model. Use when the action performs an operation on an+-- Amplify DataStore model.+--+-- 'global', 'actionParameters_global' - Specifies whether the user should be signed out globally. Specify this+-- value for an auth sign out action.+--+-- 'id', 'actionParameters_id' - The unique ID of the component that the @ActionParameters@ apply to.+--+-- 'model', 'actionParameters_model' - The name of the data model. Use when the action performs an operation on+-- an Amplify DataStore model.+--+-- 'state', 'actionParameters_state' - A key-value pair that specifies the state property name and its initial+-- value.+--+-- 'target', 'actionParameters_target' - The element within the same component to modify when the action occurs.+--+-- 'type'', 'actionParameters_type' - The type of navigation action. Valid values are @url@ and @anchor@. This+-- value is required for a navigation action.+--+-- 'url', 'actionParameters_url' - The URL to the location to open. Specify this value for a navigation+-- action.+newActionParameters ::+  ActionParameters+newActionParameters =+  ActionParameters'+    { anchor = Prelude.Nothing,+      fields = Prelude.Nothing,+      global = Prelude.Nothing,+      id = Prelude.Nothing,+      model = Prelude.Nothing,+      state = Prelude.Nothing,+      target = Prelude.Nothing,+      type' = Prelude.Nothing,+      url = Prelude.Nothing+    }++-- | The HTML anchor link to the location to open. Specify this value for a+-- navigation action.+actionParameters_anchor :: Lens.Lens' ActionParameters (Prelude.Maybe ComponentProperty)+actionParameters_anchor = Lens.lens (\ActionParameters' {anchor} -> anchor) (\s@ActionParameters' {} a -> s {anchor = a} :: ActionParameters)++-- | A dictionary of key-value pairs mapping Amplify Studio properties to+-- fields in a data model. Use when the action performs an operation on an+-- Amplify DataStore model.+actionParameters_fields :: Lens.Lens' ActionParameters (Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentProperty))+actionParameters_fields = Lens.lens (\ActionParameters' {fields} -> fields) (\s@ActionParameters' {} a -> s {fields = a} :: ActionParameters) Prelude.. Lens.mapping Lens.coerced++-- | Specifies whether the user should be signed out globally. Specify this+-- value for an auth sign out action.+actionParameters_global :: Lens.Lens' ActionParameters (Prelude.Maybe ComponentProperty)+actionParameters_global = Lens.lens (\ActionParameters' {global} -> global) (\s@ActionParameters' {} a -> s {global = a} :: ActionParameters)++-- | The unique ID of the component that the @ActionParameters@ apply to.+actionParameters_id :: Lens.Lens' ActionParameters (Prelude.Maybe ComponentProperty)+actionParameters_id = Lens.lens (\ActionParameters' {id} -> id) (\s@ActionParameters' {} a -> s {id = a} :: ActionParameters)++-- | The name of the data model. Use when the action performs an operation on+-- an Amplify DataStore model.+actionParameters_model :: Lens.Lens' ActionParameters (Prelude.Maybe Prelude.Text)+actionParameters_model = Lens.lens (\ActionParameters' {model} -> model) (\s@ActionParameters' {} a -> s {model = a} :: ActionParameters)++-- | A key-value pair that specifies the state property name and its initial+-- value.+actionParameters_state :: Lens.Lens' ActionParameters (Prelude.Maybe MutationActionSetStateParameter)+actionParameters_state = Lens.lens (\ActionParameters' {state} -> state) (\s@ActionParameters' {} a -> s {state = a} :: ActionParameters)++-- | The element within the same component to modify when the action occurs.+actionParameters_target :: Lens.Lens' ActionParameters (Prelude.Maybe ComponentProperty)+actionParameters_target = Lens.lens (\ActionParameters' {target} -> target) (\s@ActionParameters' {} a -> s {target = a} :: ActionParameters)++-- | The type of navigation action. Valid values are @url@ and @anchor@. This+-- value is required for a navigation action.+actionParameters_type :: Lens.Lens' ActionParameters (Prelude.Maybe ComponentProperty)+actionParameters_type = Lens.lens (\ActionParameters' {type'} -> type') (\s@ActionParameters' {} a -> s {type' = a} :: ActionParameters)++-- | The URL to the location to open. Specify this value for a navigation+-- action.+actionParameters_url :: Lens.Lens' ActionParameters (Prelude.Maybe ComponentProperty)+actionParameters_url = Lens.lens (\ActionParameters' {url} -> url) (\s@ActionParameters' {} a -> s {url = a} :: ActionParameters)++instance Data.FromJSON ActionParameters where+  parseJSON =+    Data.withObject+      "ActionParameters"+      ( \x ->+          ActionParameters'+            Prelude.<$> (x Data..:? "anchor")+            Prelude.<*> (x Data..:? "fields" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "global")+            Prelude.<*> (x Data..:? "id")+            Prelude.<*> (x Data..:? "model")+            Prelude.<*> (x Data..:? "state")+            Prelude.<*> (x Data..:? "target")+            Prelude.<*> (x Data..:? "type")+            Prelude.<*> (x Data..:? "url")+      )++instance Prelude.Hashable ActionParameters where+  hashWithSalt _salt ActionParameters' {..} =+    _salt+      `Prelude.hashWithSalt` anchor+      `Prelude.hashWithSalt` fields+      `Prelude.hashWithSalt` global+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` model+      `Prelude.hashWithSalt` state+      `Prelude.hashWithSalt` target+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` url++instance Prelude.NFData ActionParameters where+  rnf ActionParameters' {..} =+    Prelude.rnf anchor+      `Prelude.seq` Prelude.rnf fields+      `Prelude.seq` Prelude.rnf global+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf model+      `Prelude.seq` Prelude.rnf state+      `Prelude.seq` Prelude.rnf target+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf url++instance Data.ToJSON ActionParameters where+  toJSON ActionParameters' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("anchor" Data..=) Prelude.<$> anchor,+            ("fields" Data..=) Prelude.<$> fields,+            ("global" Data..=) Prelude.<$> global,+            ("id" Data..=) Prelude.<$> id,+            ("model" Data..=) Prelude.<$> model,+            ("state" Data..=) Prelude.<$> state,+            ("target" Data..=) Prelude.<$> target,+            ("type" Data..=) Prelude.<$> type',+            ("url" Data..=) Prelude.<$> url+          ]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/Component.hs view
@@ -0,0 +1,331 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.AmplifyUiBuilder.Types.Component+-- 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.AmplifyUiBuilder.Types.Component where++import Amazonka.AmplifyUiBuilder.Types.ComponentBindingPropertiesValue+import Amazonka.AmplifyUiBuilder.Types.ComponentChild+import Amazonka.AmplifyUiBuilder.Types.ComponentDataConfiguration+import Amazonka.AmplifyUiBuilder.Types.ComponentEvent+import Amazonka.AmplifyUiBuilder.Types.ComponentProperty+import Amazonka.AmplifyUiBuilder.Types.ComponentVariant+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++-- | Contains the configuration settings for a user interface (UI) element+-- for an Amplify app. A component is configured as a primary, stand-alone+-- UI element. Use @ComponentChild@ to configure an instance of a+-- @Component@. A @ComponentChild@ instance inherits the configuration of+-- the main @Component@.+--+-- /See:/ 'newComponent' smart constructor.+data Component = Component'+  { -- | A list of the component\'s @ComponentChild@ instances.+    children :: Prelude.Maybe [ComponentChild],+    -- | The data binding configuration for the component\'s properties. Use this+    -- for a collection component. You can\'t specify @tags@ as a valid+    -- property for @collectionProperties@.+    collectionProperties :: Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentDataConfiguration),+    -- | Describes the events that can be raised on the component. Use for the+    -- workflow feature in Amplify Studio that allows you to bind events and+    -- actions to components.+    events :: Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentEvent),+    -- | The time that the component was modified.+    modifiedAt :: Prelude.Maybe Data.ISO8601,+    -- | The schema version of the component when it was imported.+    schemaVersion :: Prelude.Maybe Prelude.Text,+    -- | The unique ID of the component in its original source system, such as+    -- Figma.+    sourceId :: Prelude.Maybe Prelude.Text,+    -- | One or more key-value pairs to use when tagging the component.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The unique ID of the Amplify app associated with the component.+    appId :: Prelude.Text,+    -- | The information to connect a component\'s properties to data at runtime.+    -- You can\'t specify @tags@ as a valid property for @bindingProperties@.+    bindingProperties :: Prelude.HashMap Prelude.Text ComponentBindingPropertiesValue,+    -- | The type of the component. This can be an Amplify custom UI component or+    -- another custom component.+    componentType :: Prelude.Text,+    -- | The time that the component was created.+    createdAt :: Data.ISO8601,+    -- | The name of the backend environment that is a part of the Amplify app.+    environmentName :: Prelude.Text,+    -- | The unique ID of the component.+    id :: Prelude.Text,+    -- | The name of the component.+    name :: Prelude.Text,+    -- | Describes the component\'s properties that can be overriden in a+    -- customized instance of the component. You can\'t specify @tags@ as a+    -- valid property for @overrides@.+    overrides :: Prelude.HashMap Prelude.Text (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Describes the component\'s properties. You can\'t specify @tags@ as a+    -- valid property for @properties@.+    properties :: Prelude.HashMap Prelude.Text ComponentProperty,+    -- | A list of the component\'s variants. A variant is a unique style+    -- configuration of a main component.+    variants :: [ComponentVariant]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Component' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'children', 'component_children' - A list of the component\'s @ComponentChild@ instances.+--+-- 'collectionProperties', 'component_collectionProperties' - The data binding configuration for the component\'s properties. Use this+-- for a collection component. You can\'t specify @tags@ as a valid+-- property for @collectionProperties@.+--+-- 'events', 'component_events' - Describes the events that can be raised on the component. Use for the+-- workflow feature in Amplify Studio that allows you to bind events and+-- actions to components.+--+-- 'modifiedAt', 'component_modifiedAt' - The time that the component was modified.+--+-- 'schemaVersion', 'component_schemaVersion' - The schema version of the component when it was imported.+--+-- 'sourceId', 'component_sourceId' - The unique ID of the component in its original source system, such as+-- Figma.+--+-- 'tags', 'component_tags' - One or more key-value pairs to use when tagging the component.+--+-- 'appId', 'component_appId' - The unique ID of the Amplify app associated with the component.+--+-- 'bindingProperties', 'component_bindingProperties' - The information to connect a component\'s properties to data at runtime.+-- You can\'t specify @tags@ as a valid property for @bindingProperties@.+--+-- 'componentType', 'component_componentType' - The type of the component. This can be an Amplify custom UI component or+-- another custom component.+--+-- 'createdAt', 'component_createdAt' - The time that the component was created.+--+-- 'environmentName', 'component_environmentName' - The name of the backend environment that is a part of the Amplify app.+--+-- 'id', 'component_id' - The unique ID of the component.+--+-- 'name', 'component_name' - The name of the component.+--+-- 'overrides', 'component_overrides' - Describes the component\'s properties that can be overriden in a+-- customized instance of the component. You can\'t specify @tags@ as a+-- valid property for @overrides@.+--+-- 'properties', 'component_properties' - Describes the component\'s properties. You can\'t specify @tags@ as a+-- valid property for @properties@.+--+-- 'variants', 'component_variants' - A list of the component\'s variants. A variant is a unique style+-- configuration of a main component.+newComponent ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'componentType'+  Prelude.Text ->+  -- | 'createdAt'+  Prelude.UTCTime ->+  -- | 'environmentName'+  Prelude.Text ->+  -- | 'id'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  Component+newComponent+  pAppId_+  pComponentType_+  pCreatedAt_+  pEnvironmentName_+  pId_+  pName_ =+    Component'+      { children = Prelude.Nothing,+        collectionProperties = Prelude.Nothing,+        events = Prelude.Nothing,+        modifiedAt = Prelude.Nothing,+        schemaVersion = Prelude.Nothing,+        sourceId = Prelude.Nothing,+        tags = Prelude.Nothing,+        appId = pAppId_,+        bindingProperties = Prelude.mempty,+        componentType = pComponentType_,+        createdAt = Data._Time Lens.# pCreatedAt_,+        environmentName = pEnvironmentName_,+        id = pId_,+        name = pName_,+        overrides = Prelude.mempty,+        properties = Prelude.mempty,+        variants = Prelude.mempty+      }++-- | A list of the component\'s @ComponentChild@ instances.+component_children :: Lens.Lens' Component (Prelude.Maybe [ComponentChild])+component_children = Lens.lens (\Component' {children} -> children) (\s@Component' {} a -> s {children = a} :: Component) Prelude.. Lens.mapping Lens.coerced++-- | The data binding configuration for the component\'s properties. Use this+-- for a collection component. You can\'t specify @tags@ as a valid+-- property for @collectionProperties@.+component_collectionProperties :: Lens.Lens' Component (Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentDataConfiguration))+component_collectionProperties = Lens.lens (\Component' {collectionProperties} -> collectionProperties) (\s@Component' {} a -> s {collectionProperties = a} :: Component) Prelude.. Lens.mapping Lens.coerced++-- | Describes the events that can be raised on the component. Use for the+-- workflow feature in Amplify Studio that allows you to bind events and+-- actions to components.+component_events :: Lens.Lens' Component (Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentEvent))+component_events = Lens.lens (\Component' {events} -> events) (\s@Component' {} a -> s {events = a} :: Component) Prelude.. Lens.mapping Lens.coerced++-- | The time that the component was modified.+component_modifiedAt :: Lens.Lens' Component (Prelude.Maybe Prelude.UTCTime)+component_modifiedAt = Lens.lens (\Component' {modifiedAt} -> modifiedAt) (\s@Component' {} a -> s {modifiedAt = a} :: Component) Prelude.. Lens.mapping Data._Time++-- | The schema version of the component when it was imported.+component_schemaVersion :: Lens.Lens' Component (Prelude.Maybe Prelude.Text)+component_schemaVersion = Lens.lens (\Component' {schemaVersion} -> schemaVersion) (\s@Component' {} a -> s {schemaVersion = a} :: Component)++-- | The unique ID of the component in its original source system, such as+-- Figma.+component_sourceId :: Lens.Lens' Component (Prelude.Maybe Prelude.Text)+component_sourceId = Lens.lens (\Component' {sourceId} -> sourceId) (\s@Component' {} a -> s {sourceId = a} :: Component)++-- | One or more key-value pairs to use when tagging the component.+component_tags :: Lens.Lens' Component (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+component_tags = Lens.lens (\Component' {tags} -> tags) (\s@Component' {} a -> s {tags = a} :: Component) Prelude.. Lens.mapping Lens.coerced++-- | The unique ID of the Amplify app associated with the component.+component_appId :: Lens.Lens' Component Prelude.Text+component_appId = Lens.lens (\Component' {appId} -> appId) (\s@Component' {} a -> s {appId = a} :: Component)++-- | The information to connect a component\'s properties to data at runtime.+-- You can\'t specify @tags@ as a valid property for @bindingProperties@.+component_bindingProperties :: Lens.Lens' Component (Prelude.HashMap Prelude.Text ComponentBindingPropertiesValue)+component_bindingProperties = Lens.lens (\Component' {bindingProperties} -> bindingProperties) (\s@Component' {} a -> s {bindingProperties = a} :: Component) Prelude.. Lens.coerced++-- | The type of the component. This can be an Amplify custom UI component or+-- another custom component.+component_componentType :: Lens.Lens' Component Prelude.Text+component_componentType = Lens.lens (\Component' {componentType} -> componentType) (\s@Component' {} a -> s {componentType = a} :: Component)++-- | The time that the component was created.+component_createdAt :: Lens.Lens' Component Prelude.UTCTime+component_createdAt = Lens.lens (\Component' {createdAt} -> createdAt) (\s@Component' {} a -> s {createdAt = a} :: Component) Prelude.. Data._Time++-- | The name of the backend environment that is a part of the Amplify app.+component_environmentName :: Lens.Lens' Component Prelude.Text+component_environmentName = Lens.lens (\Component' {environmentName} -> environmentName) (\s@Component' {} a -> s {environmentName = a} :: Component)++-- | The unique ID of the component.+component_id :: Lens.Lens' Component Prelude.Text+component_id = Lens.lens (\Component' {id} -> id) (\s@Component' {} a -> s {id = a} :: Component)++-- | The name of the component.+component_name :: Lens.Lens' Component Prelude.Text+component_name = Lens.lens (\Component' {name} -> name) (\s@Component' {} a -> s {name = a} :: Component)++-- | Describes the component\'s properties that can be overriden in a+-- customized instance of the component. You can\'t specify @tags@ as a+-- valid property for @overrides@.+component_overrides :: Lens.Lens' Component (Prelude.HashMap Prelude.Text (Prelude.HashMap Prelude.Text Prelude.Text))+component_overrides = Lens.lens (\Component' {overrides} -> overrides) (\s@Component' {} a -> s {overrides = a} :: Component) Prelude.. Lens.coerced++-- | Describes the component\'s properties. You can\'t specify @tags@ as a+-- valid property for @properties@.+component_properties :: Lens.Lens' Component (Prelude.HashMap Prelude.Text ComponentProperty)+component_properties = Lens.lens (\Component' {properties} -> properties) (\s@Component' {} a -> s {properties = a} :: Component) Prelude.. Lens.coerced++-- | A list of the component\'s variants. A variant is a unique style+-- configuration of a main component.+component_variants :: Lens.Lens' Component [ComponentVariant]+component_variants = Lens.lens (\Component' {variants} -> variants) (\s@Component' {} a -> s {variants = a} :: Component) Prelude.. Lens.coerced++instance Data.FromJSON Component where+  parseJSON =+    Data.withObject+      "Component"+      ( \x ->+          Component'+            Prelude.<$> (x Data..:? "children" Data..!= Prelude.mempty)+            Prelude.<*> ( x+                            Data..:? "collectionProperties"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "events" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "modifiedAt")+            Prelude.<*> (x Data..:? "schemaVersion")+            Prelude.<*> (x Data..:? "sourceId")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "appId")+            Prelude.<*> ( x+                            Data..:? "bindingProperties"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..: "componentType")+            Prelude.<*> (x Data..: "createdAt")+            Prelude.<*> (x Data..: "environmentName")+            Prelude.<*> (x Data..: "id")+            Prelude.<*> (x Data..: "name")+            Prelude.<*> (x Data..:? "overrides" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "properties" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "variants" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable Component where+  hashWithSalt _salt Component' {..} =+    _salt+      `Prelude.hashWithSalt` children+      `Prelude.hashWithSalt` collectionProperties+      `Prelude.hashWithSalt` events+      `Prelude.hashWithSalt` modifiedAt+      `Prelude.hashWithSalt` schemaVersion+      `Prelude.hashWithSalt` sourceId+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` bindingProperties+      `Prelude.hashWithSalt` componentType+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` environmentName+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` overrides+      `Prelude.hashWithSalt` properties+      `Prelude.hashWithSalt` variants++instance Prelude.NFData Component where+  rnf Component' {..} =+    Prelude.rnf children+      `Prelude.seq` Prelude.rnf collectionProperties+      `Prelude.seq` Prelude.rnf events+      `Prelude.seq` Prelude.rnf modifiedAt+      `Prelude.seq` Prelude.rnf schemaVersion+      `Prelude.seq` Prelude.rnf sourceId+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf appId+      `Prelude.seq` Prelude.rnf bindingProperties+      `Prelude.seq` Prelude.rnf componentType+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf environmentName+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf overrides+      `Prelude.seq` Prelude.rnf properties+      `Prelude.seq` Prelude.rnf variants
+ gen/Amazonka/AmplifyUiBuilder/Types/ComponentBindingPropertiesValue.hs view
@@ -0,0 +1,123 @@+{-# 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.AmplifyUiBuilder.Types.ComponentBindingPropertiesValue+-- 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.AmplifyUiBuilder.Types.ComponentBindingPropertiesValue where++import Amazonka.AmplifyUiBuilder.Types.ComponentBindingPropertiesValueProperties+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 data binding configuration for a component at runtime.+-- You can use @ComponentBindingPropertiesValue@ to add exposed properties+-- to a component to allow different values to be entered when a component+-- is reused in different places in an app.+--+-- /See:/ 'newComponentBindingPropertiesValue' smart constructor.+data ComponentBindingPropertiesValue = ComponentBindingPropertiesValue'+  { -- | Describes the properties to customize with data at runtime.+    bindingProperties :: Prelude.Maybe ComponentBindingPropertiesValueProperties,+    -- | The default value of the property.+    defaultValue :: Prelude.Maybe Prelude.Text,+    -- | The property type.+    type' :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ComponentBindingPropertiesValue' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'bindingProperties', 'componentBindingPropertiesValue_bindingProperties' - Describes the properties to customize with data at runtime.+--+-- 'defaultValue', 'componentBindingPropertiesValue_defaultValue' - The default value of the property.+--+-- 'type'', 'componentBindingPropertiesValue_type' - The property type.+newComponentBindingPropertiesValue ::+  ComponentBindingPropertiesValue+newComponentBindingPropertiesValue =+  ComponentBindingPropertiesValue'+    { bindingProperties =+        Prelude.Nothing,+      defaultValue = Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | Describes the properties to customize with data at runtime.+componentBindingPropertiesValue_bindingProperties :: Lens.Lens' ComponentBindingPropertiesValue (Prelude.Maybe ComponentBindingPropertiesValueProperties)+componentBindingPropertiesValue_bindingProperties = Lens.lens (\ComponentBindingPropertiesValue' {bindingProperties} -> bindingProperties) (\s@ComponentBindingPropertiesValue' {} a -> s {bindingProperties = a} :: ComponentBindingPropertiesValue)++-- | The default value of the property.+componentBindingPropertiesValue_defaultValue :: Lens.Lens' ComponentBindingPropertiesValue (Prelude.Maybe Prelude.Text)+componentBindingPropertiesValue_defaultValue = Lens.lens (\ComponentBindingPropertiesValue' {defaultValue} -> defaultValue) (\s@ComponentBindingPropertiesValue' {} a -> s {defaultValue = a} :: ComponentBindingPropertiesValue)++-- | The property type.+componentBindingPropertiesValue_type :: Lens.Lens' ComponentBindingPropertiesValue (Prelude.Maybe Prelude.Text)+componentBindingPropertiesValue_type = Lens.lens (\ComponentBindingPropertiesValue' {type'} -> type') (\s@ComponentBindingPropertiesValue' {} a -> s {type' = a} :: ComponentBindingPropertiesValue)++instance+  Data.FromJSON+    ComponentBindingPropertiesValue+  where+  parseJSON =+    Data.withObject+      "ComponentBindingPropertiesValue"+      ( \x ->+          ComponentBindingPropertiesValue'+            Prelude.<$> (x Data..:? "bindingProperties")+            Prelude.<*> (x Data..:? "defaultValue")+            Prelude.<*> (x Data..:? "type")+      )++instance+  Prelude.Hashable+    ComponentBindingPropertiesValue+  where+  hashWithSalt+    _salt+    ComponentBindingPropertiesValue' {..} =+      _salt+        `Prelude.hashWithSalt` bindingProperties+        `Prelude.hashWithSalt` defaultValue+        `Prelude.hashWithSalt` type'++instance+  Prelude.NFData+    ComponentBindingPropertiesValue+  where+  rnf ComponentBindingPropertiesValue' {..} =+    Prelude.rnf bindingProperties+      `Prelude.seq` Prelude.rnf defaultValue+      `Prelude.seq` Prelude.rnf type'++instance Data.ToJSON ComponentBindingPropertiesValue where+  toJSON ComponentBindingPropertiesValue' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("bindingProperties" Data..=)+              Prelude.<$> bindingProperties,+            ("defaultValue" Data..=) Prelude.<$> defaultValue,+            ("type" Data..=) Prelude.<$> type'+          ]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/ComponentBindingPropertiesValueProperties.hs view
@@ -0,0 +1,190 @@+{-# 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.AmplifyUiBuilder.Types.ComponentBindingPropertiesValueProperties+-- 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.AmplifyUiBuilder.Types.ComponentBindingPropertiesValueProperties where++import Amazonka.AmplifyUiBuilder.Types.Predicate+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 data binding configuration for a specific property using+-- data stored in Amazon Web Services. For Amazon Web Services connected+-- properties, you can bind a property to data stored in an Amazon S3+-- bucket, an Amplify DataStore model or an authenticated user attribute.+--+-- /See:/ 'newComponentBindingPropertiesValueProperties' smart constructor.+data ComponentBindingPropertiesValueProperties = ComponentBindingPropertiesValueProperties'+  { -- | An Amazon S3 bucket.+    bucket :: Prelude.Maybe Prelude.Text,+    -- | The default value to assign to the property.+    defaultValue :: Prelude.Maybe Prelude.Text,+    -- | The field to bind the data to.+    field :: Prelude.Maybe Prelude.Text,+    -- | The storage key for an Amazon S3 bucket.+    key :: Prelude.Maybe Prelude.Text,+    -- | An Amplify DataStore model.+    model :: Prelude.Maybe Prelude.Text,+    -- | A list of predicates for binding a component\'s properties to data.+    predicates :: Prelude.Maybe [Predicate],+    -- | The name of a component slot.+    slotName :: Prelude.Maybe Prelude.Text,+    -- | An authenticated user attribute.+    userAttribute :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ComponentBindingPropertiesValueProperties' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'bucket', 'componentBindingPropertiesValueProperties_bucket' - An Amazon S3 bucket.+--+-- 'defaultValue', 'componentBindingPropertiesValueProperties_defaultValue' - The default value to assign to the property.+--+-- 'field', 'componentBindingPropertiesValueProperties_field' - The field to bind the data to.+--+-- 'key', 'componentBindingPropertiesValueProperties_key' - The storage key for an Amazon S3 bucket.+--+-- 'model', 'componentBindingPropertiesValueProperties_model' - An Amplify DataStore model.+--+-- 'predicates', 'componentBindingPropertiesValueProperties_predicates' - A list of predicates for binding a component\'s properties to data.+--+-- 'slotName', 'componentBindingPropertiesValueProperties_slotName' - The name of a component slot.+--+-- 'userAttribute', 'componentBindingPropertiesValueProperties_userAttribute' - An authenticated user attribute.+newComponentBindingPropertiesValueProperties ::+  ComponentBindingPropertiesValueProperties+newComponentBindingPropertiesValueProperties =+  ComponentBindingPropertiesValueProperties'+    { bucket =+        Prelude.Nothing,+      defaultValue = Prelude.Nothing,+      field = Prelude.Nothing,+      key = Prelude.Nothing,+      model = Prelude.Nothing,+      predicates = Prelude.Nothing,+      slotName = Prelude.Nothing,+      userAttribute = Prelude.Nothing+    }++-- | An Amazon S3 bucket.+componentBindingPropertiesValueProperties_bucket :: Lens.Lens' ComponentBindingPropertiesValueProperties (Prelude.Maybe Prelude.Text)+componentBindingPropertiesValueProperties_bucket = Lens.lens (\ComponentBindingPropertiesValueProperties' {bucket} -> bucket) (\s@ComponentBindingPropertiesValueProperties' {} a -> s {bucket = a} :: ComponentBindingPropertiesValueProperties)++-- | The default value to assign to the property.+componentBindingPropertiesValueProperties_defaultValue :: Lens.Lens' ComponentBindingPropertiesValueProperties (Prelude.Maybe Prelude.Text)+componentBindingPropertiesValueProperties_defaultValue = Lens.lens (\ComponentBindingPropertiesValueProperties' {defaultValue} -> defaultValue) (\s@ComponentBindingPropertiesValueProperties' {} a -> s {defaultValue = a} :: ComponentBindingPropertiesValueProperties)++-- | The field to bind the data to.+componentBindingPropertiesValueProperties_field :: Lens.Lens' ComponentBindingPropertiesValueProperties (Prelude.Maybe Prelude.Text)+componentBindingPropertiesValueProperties_field = Lens.lens (\ComponentBindingPropertiesValueProperties' {field} -> field) (\s@ComponentBindingPropertiesValueProperties' {} a -> s {field = a} :: ComponentBindingPropertiesValueProperties)++-- | The storage key for an Amazon S3 bucket.+componentBindingPropertiesValueProperties_key :: Lens.Lens' ComponentBindingPropertiesValueProperties (Prelude.Maybe Prelude.Text)+componentBindingPropertiesValueProperties_key = Lens.lens (\ComponentBindingPropertiesValueProperties' {key} -> key) (\s@ComponentBindingPropertiesValueProperties' {} a -> s {key = a} :: ComponentBindingPropertiesValueProperties)++-- | An Amplify DataStore model.+componentBindingPropertiesValueProperties_model :: Lens.Lens' ComponentBindingPropertiesValueProperties (Prelude.Maybe Prelude.Text)+componentBindingPropertiesValueProperties_model = Lens.lens (\ComponentBindingPropertiesValueProperties' {model} -> model) (\s@ComponentBindingPropertiesValueProperties' {} a -> s {model = a} :: ComponentBindingPropertiesValueProperties)++-- | A list of predicates for binding a component\'s properties to data.+componentBindingPropertiesValueProperties_predicates :: Lens.Lens' ComponentBindingPropertiesValueProperties (Prelude.Maybe [Predicate])+componentBindingPropertiesValueProperties_predicates = Lens.lens (\ComponentBindingPropertiesValueProperties' {predicates} -> predicates) (\s@ComponentBindingPropertiesValueProperties' {} a -> s {predicates = a} :: ComponentBindingPropertiesValueProperties) Prelude.. Lens.mapping Lens.coerced++-- | The name of a component slot.+componentBindingPropertiesValueProperties_slotName :: Lens.Lens' ComponentBindingPropertiesValueProperties (Prelude.Maybe Prelude.Text)+componentBindingPropertiesValueProperties_slotName = Lens.lens (\ComponentBindingPropertiesValueProperties' {slotName} -> slotName) (\s@ComponentBindingPropertiesValueProperties' {} a -> s {slotName = a} :: ComponentBindingPropertiesValueProperties)++-- | An authenticated user attribute.+componentBindingPropertiesValueProperties_userAttribute :: Lens.Lens' ComponentBindingPropertiesValueProperties (Prelude.Maybe Prelude.Text)+componentBindingPropertiesValueProperties_userAttribute = Lens.lens (\ComponentBindingPropertiesValueProperties' {userAttribute} -> userAttribute) (\s@ComponentBindingPropertiesValueProperties' {} a -> s {userAttribute = a} :: ComponentBindingPropertiesValueProperties)++instance+  Data.FromJSON+    ComponentBindingPropertiesValueProperties+  where+  parseJSON =+    Data.withObject+      "ComponentBindingPropertiesValueProperties"+      ( \x ->+          ComponentBindingPropertiesValueProperties'+            Prelude.<$> (x Data..:? "bucket")+            Prelude.<*> (x Data..:? "defaultValue")+            Prelude.<*> (x Data..:? "field")+            Prelude.<*> (x Data..:? "key")+            Prelude.<*> (x Data..:? "model")+            Prelude.<*> (x Data..:? "predicates" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "slotName")+            Prelude.<*> (x Data..:? "userAttribute")+      )++instance+  Prelude.Hashable+    ComponentBindingPropertiesValueProperties+  where+  hashWithSalt+    _salt+    ComponentBindingPropertiesValueProperties' {..} =+      _salt+        `Prelude.hashWithSalt` bucket+        `Prelude.hashWithSalt` defaultValue+        `Prelude.hashWithSalt` field+        `Prelude.hashWithSalt` key+        `Prelude.hashWithSalt` model+        `Prelude.hashWithSalt` predicates+        `Prelude.hashWithSalt` slotName+        `Prelude.hashWithSalt` userAttribute++instance+  Prelude.NFData+    ComponentBindingPropertiesValueProperties+  where+  rnf ComponentBindingPropertiesValueProperties' {..} =+    Prelude.rnf bucket+      `Prelude.seq` Prelude.rnf defaultValue+      `Prelude.seq` Prelude.rnf field+      `Prelude.seq` Prelude.rnf key+      `Prelude.seq` Prelude.rnf model+      `Prelude.seq` Prelude.rnf predicates+      `Prelude.seq` Prelude.rnf slotName+      `Prelude.seq` Prelude.rnf userAttribute++instance+  Data.ToJSON+    ComponentBindingPropertiesValueProperties+  where+  toJSON ComponentBindingPropertiesValueProperties' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("bucket" Data..=) Prelude.<$> bucket,+            ("defaultValue" Data..=) Prelude.<$> defaultValue,+            ("field" Data..=) Prelude.<$> field,+            ("key" Data..=) Prelude.<$> key,+            ("model" Data..=) Prelude.<$> model,+            ("predicates" Data..=) Prelude.<$> predicates,+            ("slotName" Data..=) Prelude.<$> slotName,+            ("userAttribute" Data..=) Prelude.<$> userAttribute+          ]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/ComponentChild.hs view
@@ -0,0 +1,163 @@+{-# 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.AmplifyUiBuilder.Types.ComponentChild+-- 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.AmplifyUiBuilder.Types.ComponentChild where++import Amazonka.AmplifyUiBuilder.Types.ComponentEvent+import Amazonka.AmplifyUiBuilder.Types.ComponentProperty+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A nested UI configuration within a parent @Component@.+--+-- /See:/ 'newComponentChild' smart constructor.+data ComponentChild = ComponentChild'+  { -- | The list of @ComponentChild@ instances for this component.+    children :: Prelude.Maybe [ComponentChild],+    -- | Describes the events that can be raised on the child component. Use for+    -- the workflow feature in Amplify Studio that allows you to bind events+    -- and actions to components.+    events :: Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentEvent),+    -- | The unique ID of the child component in its original source system, such+    -- as Figma.+    sourceId :: Prelude.Maybe Prelude.Text,+    -- | The type of the child component.+    componentType :: Prelude.Text,+    -- | The name of the child component.+    name :: Prelude.Text,+    -- | Describes the properties of the child component. You can\'t specify+    -- @tags@ as a valid property for @properties@.+    properties :: Prelude.HashMap Prelude.Text ComponentProperty+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ComponentChild' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'children', 'componentChild_children' - The list of @ComponentChild@ instances for this component.+--+-- 'events', 'componentChild_events' - Describes the events that can be raised on the child component. Use for+-- the workflow feature in Amplify Studio that allows you to bind events+-- and actions to components.+--+-- 'sourceId', 'componentChild_sourceId' - The unique ID of the child component in its original source system, such+-- as Figma.+--+-- 'componentType', 'componentChild_componentType' - The type of the child component.+--+-- 'name', 'componentChild_name' - The name of the child component.+--+-- 'properties', 'componentChild_properties' - Describes the properties of the child component. You can\'t specify+-- @tags@ as a valid property for @properties@.+newComponentChild ::+  -- | 'componentType'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  ComponentChild+newComponentChild pComponentType_ pName_ =+  ComponentChild'+    { children = Prelude.Nothing,+      events = Prelude.Nothing,+      sourceId = Prelude.Nothing,+      componentType = pComponentType_,+      name = pName_,+      properties = Prelude.mempty+    }++-- | The list of @ComponentChild@ instances for this component.+componentChild_children :: Lens.Lens' ComponentChild (Prelude.Maybe [ComponentChild])+componentChild_children = Lens.lens (\ComponentChild' {children} -> children) (\s@ComponentChild' {} a -> s {children = a} :: ComponentChild) Prelude.. Lens.mapping Lens.coerced++-- | Describes the events that can be raised on the child component. Use for+-- the workflow feature in Amplify Studio that allows you to bind events+-- and actions to components.+componentChild_events :: Lens.Lens' ComponentChild (Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentEvent))+componentChild_events = Lens.lens (\ComponentChild' {events} -> events) (\s@ComponentChild' {} a -> s {events = a} :: ComponentChild) Prelude.. Lens.mapping Lens.coerced++-- | The unique ID of the child component in its original source system, such+-- as Figma.+componentChild_sourceId :: Lens.Lens' ComponentChild (Prelude.Maybe Prelude.Text)+componentChild_sourceId = Lens.lens (\ComponentChild' {sourceId} -> sourceId) (\s@ComponentChild' {} a -> s {sourceId = a} :: ComponentChild)++-- | The type of the child component.+componentChild_componentType :: Lens.Lens' ComponentChild Prelude.Text+componentChild_componentType = Lens.lens (\ComponentChild' {componentType} -> componentType) (\s@ComponentChild' {} a -> s {componentType = a} :: ComponentChild)++-- | The name of the child component.+componentChild_name :: Lens.Lens' ComponentChild Prelude.Text+componentChild_name = Lens.lens (\ComponentChild' {name} -> name) (\s@ComponentChild' {} a -> s {name = a} :: ComponentChild)++-- | Describes the properties of the child component. You can\'t specify+-- @tags@ as a valid property for @properties@.+componentChild_properties :: Lens.Lens' ComponentChild (Prelude.HashMap Prelude.Text ComponentProperty)+componentChild_properties = Lens.lens (\ComponentChild' {properties} -> properties) (\s@ComponentChild' {} a -> s {properties = a} :: ComponentChild) Prelude.. Lens.coerced++instance Data.FromJSON ComponentChild where+  parseJSON =+    Data.withObject+      "ComponentChild"+      ( \x ->+          ComponentChild'+            Prelude.<$> (x Data..:? "children" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "events" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "sourceId")+            Prelude.<*> (x Data..: "componentType")+            Prelude.<*> (x Data..: "name")+            Prelude.<*> (x Data..:? "properties" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable ComponentChild where+  hashWithSalt _salt ComponentChild' {..} =+    _salt+      `Prelude.hashWithSalt` children+      `Prelude.hashWithSalt` events+      `Prelude.hashWithSalt` sourceId+      `Prelude.hashWithSalt` componentType+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` properties++instance Prelude.NFData ComponentChild where+  rnf ComponentChild' {..} =+    Prelude.rnf children+      `Prelude.seq` Prelude.rnf events+      `Prelude.seq` Prelude.rnf sourceId+      `Prelude.seq` Prelude.rnf componentType+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf properties++instance Data.ToJSON ComponentChild where+  toJSON ComponentChild' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("children" Data..=) Prelude.<$> children,+            ("events" Data..=) Prelude.<$> events,+            ("sourceId" Data..=) Prelude.<$> sourceId,+            Prelude.Just ("componentType" Data..= componentType),+            Prelude.Just ("name" Data..= name),+            Prelude.Just ("properties" Data..= properties)+          ]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/ComponentConditionProperty.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.AmplifyUiBuilder.Types.ComponentConditionProperty+-- 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.AmplifyUiBuilder.Types.ComponentConditionProperty where++import {-# SOURCE #-} Amazonka.AmplifyUiBuilder.Types.ComponentProperty+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 a conditional expression to set a component property. Use+-- @ComponentConditionProperty@ to set a property to different values+-- conditionally, based on the value of another property.+--+-- /See:/ 'newComponentConditionProperty' smart constructor.+data ComponentConditionProperty = ComponentConditionProperty'+  { -- | The value to assign to the property if the condition is not met.+    else' :: Prelude.Maybe ComponentProperty,+    -- | The name of a field. Specify this when the property is a data model.+    field :: Prelude.Maybe Prelude.Text,+    -- | The value of the property to evaluate.+    operand :: Prelude.Maybe Prelude.Text,+    -- | The type of the property to evaluate.+    operandType :: Prelude.Maybe Prelude.Text,+    -- | The operator to use to perform the evaluation, such as @eq@ to represent+    -- equals.+    operator :: Prelude.Maybe Prelude.Text,+    -- | The name of the conditional property.+    property :: Prelude.Maybe Prelude.Text,+    -- | The value to assign to the property if the condition is met.+    then' :: Prelude.Maybe ComponentProperty+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ComponentConditionProperty' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'else'', 'componentConditionProperty_else' - The value to assign to the property if the condition is not met.+--+-- 'field', 'componentConditionProperty_field' - The name of a field. Specify this when the property is a data model.+--+-- 'operand', 'componentConditionProperty_operand' - The value of the property to evaluate.+--+-- 'operandType', 'componentConditionProperty_operandType' - The type of the property to evaluate.+--+-- 'operator', 'componentConditionProperty_operator' - The operator to use to perform the evaluation, such as @eq@ to represent+-- equals.+--+-- 'property', 'componentConditionProperty_property' - The name of the conditional property.+--+-- 'then'', 'componentConditionProperty_then' - The value to assign to the property if the condition is met.+newComponentConditionProperty ::+  ComponentConditionProperty+newComponentConditionProperty =+  ComponentConditionProperty'+    { else' =+        Prelude.Nothing,+      field = Prelude.Nothing,+      operand = Prelude.Nothing,+      operandType = Prelude.Nothing,+      operator = Prelude.Nothing,+      property = Prelude.Nothing,+      then' = Prelude.Nothing+    }++-- | The value to assign to the property if the condition is not met.+componentConditionProperty_else :: Lens.Lens' ComponentConditionProperty (Prelude.Maybe ComponentProperty)+componentConditionProperty_else = Lens.lens (\ComponentConditionProperty' {else'} -> else') (\s@ComponentConditionProperty' {} a -> s {else' = a} :: ComponentConditionProperty)++-- | The name of a field. Specify this when the property is a data model.+componentConditionProperty_field :: Lens.Lens' ComponentConditionProperty (Prelude.Maybe Prelude.Text)+componentConditionProperty_field = Lens.lens (\ComponentConditionProperty' {field} -> field) (\s@ComponentConditionProperty' {} a -> s {field = a} :: ComponentConditionProperty)++-- | The value of the property to evaluate.+componentConditionProperty_operand :: Lens.Lens' ComponentConditionProperty (Prelude.Maybe Prelude.Text)+componentConditionProperty_operand = Lens.lens (\ComponentConditionProperty' {operand} -> operand) (\s@ComponentConditionProperty' {} a -> s {operand = a} :: ComponentConditionProperty)++-- | The type of the property to evaluate.+componentConditionProperty_operandType :: Lens.Lens' ComponentConditionProperty (Prelude.Maybe Prelude.Text)+componentConditionProperty_operandType = Lens.lens (\ComponentConditionProperty' {operandType} -> operandType) (\s@ComponentConditionProperty' {} a -> s {operandType = a} :: ComponentConditionProperty)++-- | The operator to use to perform the evaluation, such as @eq@ to represent+-- equals.+componentConditionProperty_operator :: Lens.Lens' ComponentConditionProperty (Prelude.Maybe Prelude.Text)+componentConditionProperty_operator = Lens.lens (\ComponentConditionProperty' {operator} -> operator) (\s@ComponentConditionProperty' {} a -> s {operator = a} :: ComponentConditionProperty)++-- | The name of the conditional property.+componentConditionProperty_property :: Lens.Lens' ComponentConditionProperty (Prelude.Maybe Prelude.Text)+componentConditionProperty_property = Lens.lens (\ComponentConditionProperty' {property} -> property) (\s@ComponentConditionProperty' {} a -> s {property = a} :: ComponentConditionProperty)++-- | The value to assign to the property if the condition is met.+componentConditionProperty_then :: Lens.Lens' ComponentConditionProperty (Prelude.Maybe ComponentProperty)+componentConditionProperty_then = Lens.lens (\ComponentConditionProperty' {then'} -> then') (\s@ComponentConditionProperty' {} a -> s {then' = a} :: ComponentConditionProperty)++instance Data.FromJSON ComponentConditionProperty where+  parseJSON =+    Data.withObject+      "ComponentConditionProperty"+      ( \x ->+          ComponentConditionProperty'+            Prelude.<$> (x Data..:? "else")+            Prelude.<*> (x Data..:? "field")+            Prelude.<*> (x Data..:? "operand")+            Prelude.<*> (x Data..:? "operandType")+            Prelude.<*> (x Data..:? "operator")+            Prelude.<*> (x Data..:? "property")+            Prelude.<*> (x Data..:? "then")+      )++instance Prelude.Hashable ComponentConditionProperty where+  hashWithSalt _salt ComponentConditionProperty' {..} =+    _salt+      `Prelude.hashWithSalt` else'+      `Prelude.hashWithSalt` field+      `Prelude.hashWithSalt` operand+      `Prelude.hashWithSalt` operandType+      `Prelude.hashWithSalt` operator+      `Prelude.hashWithSalt` property+      `Prelude.hashWithSalt` then'++instance Prelude.NFData ComponentConditionProperty where+  rnf ComponentConditionProperty' {..} =+    Prelude.rnf else'+      `Prelude.seq` Prelude.rnf field+      `Prelude.seq` Prelude.rnf operand+      `Prelude.seq` Prelude.rnf operandType+      `Prelude.seq` Prelude.rnf operator+      `Prelude.seq` Prelude.rnf property+      `Prelude.seq` Prelude.rnf then'++instance Data.ToJSON ComponentConditionProperty where+  toJSON ComponentConditionProperty' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("else" Data..=) Prelude.<$> else',+            ("field" Data..=) Prelude.<$> field,+            ("operand" Data..=) Prelude.<$> operand,+            ("operandType" Data..=) Prelude.<$> operandType,+            ("operator" Data..=) Prelude.<$> operator,+            ("property" Data..=) Prelude.<$> property,+            ("then" Data..=) Prelude.<$> then'+          ]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/ComponentConditionProperty.hs-boot view
@@ -0,0 +1,33 @@+{-# OPTIONS_GHC -Wno-missing-methods #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.AmplifyUiBuilder.Types.ComponentConditionProperty+-- 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.AmplifyUiBuilder.Types.ComponentConditionProperty where++import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++data ComponentConditionProperty++instance Prelude.Eq ComponentConditionProperty++instance Prelude.Read ComponentConditionProperty++instance Prelude.Show ComponentConditionProperty++instance Prelude.Generic ComponentConditionProperty++instance Data.ToJSON ComponentConditionProperty++instance Data.FromJSON ComponentConditionProperty++instance Prelude.NFData ComponentConditionProperty++instance Prelude.Hashable ComponentConditionProperty
+ gen/Amazonka/AmplifyUiBuilder/Types/ComponentDataConfiguration.hs view
@@ -0,0 +1,134 @@+{-# 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.AmplifyUiBuilder.Types.ComponentDataConfiguration+-- 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.AmplifyUiBuilder.Types.ComponentDataConfiguration where++import Amazonka.AmplifyUiBuilder.Types.Predicate+import Amazonka.AmplifyUiBuilder.Types.SortProperty+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 configuration for binding a component\'s properties to+-- data.+--+-- /See:/ 'newComponentDataConfiguration' smart constructor.+data ComponentDataConfiguration = ComponentDataConfiguration'+  { -- | A list of IDs to use to bind data to a component. Use this property to+    -- bind specifically chosen data, rather than data retrieved from a query.+    identifiers :: Prelude.Maybe [Prelude.Text],+    -- | Represents the conditional logic to use when binding data to a+    -- component. Use this property to retrieve only a subset of the data in a+    -- collection.+    predicate :: Prelude.Maybe Predicate,+    -- | Describes how to sort the component\'s properties.+    sort :: Prelude.Maybe [SortProperty],+    -- | The name of the data model to use to bind data to a component.+    model :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ComponentDataConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'identifiers', 'componentDataConfiguration_identifiers' - A list of IDs to use to bind data to a component. Use this property to+-- bind specifically chosen data, rather than data retrieved from a query.+--+-- 'predicate', 'componentDataConfiguration_predicate' - Represents the conditional logic to use when binding data to a+-- component. Use this property to retrieve only a subset of the data in a+-- collection.+--+-- 'sort', 'componentDataConfiguration_sort' - Describes how to sort the component\'s properties.+--+-- 'model', 'componentDataConfiguration_model' - The name of the data model to use to bind data to a component.+newComponentDataConfiguration ::+  -- | 'model'+  Prelude.Text ->+  ComponentDataConfiguration+newComponentDataConfiguration pModel_ =+  ComponentDataConfiguration'+    { identifiers =+        Prelude.Nothing,+      predicate = Prelude.Nothing,+      sort = Prelude.Nothing,+      model = pModel_+    }++-- | A list of IDs to use to bind data to a component. Use this property to+-- bind specifically chosen data, rather than data retrieved from a query.+componentDataConfiguration_identifiers :: Lens.Lens' ComponentDataConfiguration (Prelude.Maybe [Prelude.Text])+componentDataConfiguration_identifiers = Lens.lens (\ComponentDataConfiguration' {identifiers} -> identifiers) (\s@ComponentDataConfiguration' {} a -> s {identifiers = a} :: ComponentDataConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Represents the conditional logic to use when binding data to a+-- component. Use this property to retrieve only a subset of the data in a+-- collection.+componentDataConfiguration_predicate :: Lens.Lens' ComponentDataConfiguration (Prelude.Maybe Predicate)+componentDataConfiguration_predicate = Lens.lens (\ComponentDataConfiguration' {predicate} -> predicate) (\s@ComponentDataConfiguration' {} a -> s {predicate = a} :: ComponentDataConfiguration)++-- | Describes how to sort the component\'s properties.+componentDataConfiguration_sort :: Lens.Lens' ComponentDataConfiguration (Prelude.Maybe [SortProperty])+componentDataConfiguration_sort = Lens.lens (\ComponentDataConfiguration' {sort} -> sort) (\s@ComponentDataConfiguration' {} a -> s {sort = a} :: ComponentDataConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The name of the data model to use to bind data to a component.+componentDataConfiguration_model :: Lens.Lens' ComponentDataConfiguration Prelude.Text+componentDataConfiguration_model = Lens.lens (\ComponentDataConfiguration' {model} -> model) (\s@ComponentDataConfiguration' {} a -> s {model = a} :: ComponentDataConfiguration)++instance Data.FromJSON ComponentDataConfiguration where+  parseJSON =+    Data.withObject+      "ComponentDataConfiguration"+      ( \x ->+          ComponentDataConfiguration'+            Prelude.<$> (x Data..:? "identifiers" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "predicate")+            Prelude.<*> (x Data..:? "sort" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "model")+      )++instance Prelude.Hashable ComponentDataConfiguration where+  hashWithSalt _salt ComponentDataConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` identifiers+      `Prelude.hashWithSalt` predicate+      `Prelude.hashWithSalt` sort+      `Prelude.hashWithSalt` model++instance Prelude.NFData ComponentDataConfiguration where+  rnf ComponentDataConfiguration' {..} =+    Prelude.rnf identifiers+      `Prelude.seq` Prelude.rnf predicate+      `Prelude.seq` Prelude.rnf sort+      `Prelude.seq` Prelude.rnf model++instance Data.ToJSON ComponentDataConfiguration where+  toJSON ComponentDataConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("identifiers" Data..=) Prelude.<$> identifiers,+            ("predicate" Data..=) Prelude.<$> predicate,+            ("sort" Data..=) Prelude.<$> sort,+            Prelude.Just ("model" Data..= model)+          ]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/ComponentEvent.hs view
@@ -0,0 +1,112 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.AmplifyUiBuilder.Types.ComponentEvent+-- 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.AmplifyUiBuilder.Types.ComponentEvent where++import Amazonka.AmplifyUiBuilder.Types.ActionParameters+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 configuration of an event. You can bind an event and a+-- corresponding action to a @Component@ or a @ComponentChild@. A button+-- click is an example of an event.+--+-- /See:/ 'newComponentEvent' smart constructor.+data ComponentEvent = ComponentEvent'+  { -- | The action to perform when a specific event is raised.+    action :: Prelude.Maybe Prelude.Text,+    -- | Binds an event to an action on a component. When you specify a+    -- @bindingEvent@, the event is called when the action is performed.+    bindingEvent :: Prelude.Maybe Prelude.Text,+    -- | Describes information about the action.+    parameters :: Prelude.Maybe ActionParameters+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ComponentEvent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'action', 'componentEvent_action' - The action to perform when a specific event is raised.+--+-- 'bindingEvent', 'componentEvent_bindingEvent' - Binds an event to an action on a component. When you specify a+-- @bindingEvent@, the event is called when the action is performed.+--+-- 'parameters', 'componentEvent_parameters' - Describes information about the action.+newComponentEvent ::+  ComponentEvent+newComponentEvent =+  ComponentEvent'+    { action = Prelude.Nothing,+      bindingEvent = Prelude.Nothing,+      parameters = Prelude.Nothing+    }++-- | The action to perform when a specific event is raised.+componentEvent_action :: Lens.Lens' ComponentEvent (Prelude.Maybe Prelude.Text)+componentEvent_action = Lens.lens (\ComponentEvent' {action} -> action) (\s@ComponentEvent' {} a -> s {action = a} :: ComponentEvent)++-- | Binds an event to an action on a component. When you specify a+-- @bindingEvent@, the event is called when the action is performed.+componentEvent_bindingEvent :: Lens.Lens' ComponentEvent (Prelude.Maybe Prelude.Text)+componentEvent_bindingEvent = Lens.lens (\ComponentEvent' {bindingEvent} -> bindingEvent) (\s@ComponentEvent' {} a -> s {bindingEvent = a} :: ComponentEvent)++-- | Describes information about the action.+componentEvent_parameters :: Lens.Lens' ComponentEvent (Prelude.Maybe ActionParameters)+componentEvent_parameters = Lens.lens (\ComponentEvent' {parameters} -> parameters) (\s@ComponentEvent' {} a -> s {parameters = a} :: ComponentEvent)++instance Data.FromJSON ComponentEvent where+  parseJSON =+    Data.withObject+      "ComponentEvent"+      ( \x ->+          ComponentEvent'+            Prelude.<$> (x Data..:? "action")+            Prelude.<*> (x Data..:? "bindingEvent")+            Prelude.<*> (x Data..:? "parameters")+      )++instance Prelude.Hashable ComponentEvent where+  hashWithSalt _salt ComponentEvent' {..} =+    _salt+      `Prelude.hashWithSalt` action+      `Prelude.hashWithSalt` bindingEvent+      `Prelude.hashWithSalt` parameters++instance Prelude.NFData ComponentEvent where+  rnf ComponentEvent' {..} =+    Prelude.rnf action+      `Prelude.seq` Prelude.rnf bindingEvent+      `Prelude.seq` Prelude.rnf parameters++instance Data.ToJSON ComponentEvent where+  toJSON ComponentEvent' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("action" Data..=) Prelude.<$> action,+            ("bindingEvent" Data..=) Prelude.<$> bindingEvent,+            ("parameters" Data..=) Prelude.<$> parameters+          ]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/ComponentProperty.hs view
@@ -0,0 +1,287 @@+{-# 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.AmplifyUiBuilder.Types.ComponentProperty+-- 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.AmplifyUiBuilder.Types.ComponentProperty where++import {-# SOURCE #-} Amazonka.AmplifyUiBuilder.Types.ComponentConditionProperty+import Amazonka.AmplifyUiBuilder.Types.ComponentPropertyBindingProperties+import Amazonka.AmplifyUiBuilder.Types.FormBindingElement+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 configuration for all of a component\'s properties. Use+-- @ComponentProperty@ to specify the values to render or bind by default.+--+-- /See:/ 'newComponentProperty' smart constructor.+data ComponentProperty = ComponentProperty'+  { -- | The information to bind the component property to data at runtime.+    bindingProperties :: Prelude.Maybe ComponentPropertyBindingProperties,+    -- | The information to bind the component property to form data.+    bindings :: Prelude.Maybe (Prelude.HashMap Prelude.Text FormBindingElement),+    -- | The information to bind the component property to data at runtime. Use+    -- this for collection components.+    collectionBindingProperties :: Prelude.Maybe ComponentPropertyBindingProperties,+    -- | The name of the component that is affected by an event.+    componentName :: Prelude.Maybe Prelude.Text,+    -- | A list of component properties to concatenate to create the value to+    -- assign to this component property.+    concat :: Prelude.Maybe [ComponentProperty],+    -- | The conditional expression to use to assign a value to the component+    -- property.+    condition :: Prelude.Maybe ComponentConditionProperty,+    -- | Specifies whether the user configured the property in Amplify Studio+    -- after importing it.+    configured :: Prelude.Maybe Prelude.Bool,+    -- | The default value to assign to the component property.+    defaultValue :: Prelude.Maybe Prelude.Text,+    -- | An event that occurs in your app. Use this for workflow data binding.+    event :: Prelude.Maybe Prelude.Text,+    -- | The default value assigned to the property when the component is+    -- imported into an app.+    importedValue :: Prelude.Maybe Prelude.Text,+    -- | The data model to use to assign a value to the component property.+    model :: Prelude.Maybe Prelude.Text,+    -- | The name of the component\'s property that is affected by an event.+    property :: Prelude.Maybe Prelude.Text,+    -- | The component type.+    type' :: Prelude.Maybe Prelude.Text,+    -- | An authenticated user attribute to use to assign a value to the+    -- component property.+    userAttribute :: Prelude.Maybe Prelude.Text,+    -- | The value to assign to the component property.+    value :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ComponentProperty' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'bindingProperties', 'componentProperty_bindingProperties' - The information to bind the component property to data at runtime.+--+-- 'bindings', 'componentProperty_bindings' - The information to bind the component property to form data.+--+-- 'collectionBindingProperties', 'componentProperty_collectionBindingProperties' - The information to bind the component property to data at runtime. Use+-- this for collection components.+--+-- 'componentName', 'componentProperty_componentName' - The name of the component that is affected by an event.+--+-- 'concat', 'componentProperty_concat' - A list of component properties to concatenate to create the value to+-- assign to this component property.+--+-- 'condition', 'componentProperty_condition' - The conditional expression to use to assign a value to the component+-- property.+--+-- 'configured', 'componentProperty_configured' - Specifies whether the user configured the property in Amplify Studio+-- after importing it.+--+-- 'defaultValue', 'componentProperty_defaultValue' - The default value to assign to the component property.+--+-- 'event', 'componentProperty_event' - An event that occurs in your app. Use this for workflow data binding.+--+-- 'importedValue', 'componentProperty_importedValue' - The default value assigned to the property when the component is+-- imported into an app.+--+-- 'model', 'componentProperty_model' - The data model to use to assign a value to the component property.+--+-- 'property', 'componentProperty_property' - The name of the component\'s property that is affected by an event.+--+-- 'type'', 'componentProperty_type' - The component type.+--+-- 'userAttribute', 'componentProperty_userAttribute' - An authenticated user attribute to use to assign a value to the+-- component property.+--+-- 'value', 'componentProperty_value' - The value to assign to the component property.+newComponentProperty ::+  ComponentProperty+newComponentProperty =+  ComponentProperty'+    { bindingProperties =+        Prelude.Nothing,+      bindings = Prelude.Nothing,+      collectionBindingProperties = Prelude.Nothing,+      componentName = Prelude.Nothing,+      concat = Prelude.Nothing,+      condition = Prelude.Nothing,+      configured = Prelude.Nothing,+      defaultValue = Prelude.Nothing,+      event = Prelude.Nothing,+      importedValue = Prelude.Nothing,+      model = Prelude.Nothing,+      property = Prelude.Nothing,+      type' = Prelude.Nothing,+      userAttribute = Prelude.Nothing,+      value = Prelude.Nothing+    }++-- | The information to bind the component property to data at runtime.+componentProperty_bindingProperties :: Lens.Lens' ComponentProperty (Prelude.Maybe ComponentPropertyBindingProperties)+componentProperty_bindingProperties = Lens.lens (\ComponentProperty' {bindingProperties} -> bindingProperties) (\s@ComponentProperty' {} a -> s {bindingProperties = a} :: ComponentProperty)++-- | The information to bind the component property to form data.+componentProperty_bindings :: Lens.Lens' ComponentProperty (Prelude.Maybe (Prelude.HashMap Prelude.Text FormBindingElement))+componentProperty_bindings = Lens.lens (\ComponentProperty' {bindings} -> bindings) (\s@ComponentProperty' {} a -> s {bindings = a} :: ComponentProperty) Prelude.. Lens.mapping Lens.coerced++-- | The information to bind the component property to data at runtime. Use+-- this for collection components.+componentProperty_collectionBindingProperties :: Lens.Lens' ComponentProperty (Prelude.Maybe ComponentPropertyBindingProperties)+componentProperty_collectionBindingProperties = Lens.lens (\ComponentProperty' {collectionBindingProperties} -> collectionBindingProperties) (\s@ComponentProperty' {} a -> s {collectionBindingProperties = a} :: ComponentProperty)++-- | The name of the component that is affected by an event.+componentProperty_componentName :: Lens.Lens' ComponentProperty (Prelude.Maybe Prelude.Text)+componentProperty_componentName = Lens.lens (\ComponentProperty' {componentName} -> componentName) (\s@ComponentProperty' {} a -> s {componentName = a} :: ComponentProperty)++-- | A list of component properties to concatenate to create the value to+-- assign to this component property.+componentProperty_concat :: Lens.Lens' ComponentProperty (Prelude.Maybe [ComponentProperty])+componentProperty_concat = Lens.lens (\ComponentProperty' {concat} -> concat) (\s@ComponentProperty' {} a -> s {concat = a} :: ComponentProperty) Prelude.. Lens.mapping Lens.coerced++-- | The conditional expression to use to assign a value to the component+-- property.+componentProperty_condition :: Lens.Lens' ComponentProperty (Prelude.Maybe ComponentConditionProperty)+componentProperty_condition = Lens.lens (\ComponentProperty' {condition} -> condition) (\s@ComponentProperty' {} a -> s {condition = a} :: ComponentProperty)++-- | Specifies whether the user configured the property in Amplify Studio+-- after importing it.+componentProperty_configured :: Lens.Lens' ComponentProperty (Prelude.Maybe Prelude.Bool)+componentProperty_configured = Lens.lens (\ComponentProperty' {configured} -> configured) (\s@ComponentProperty' {} a -> s {configured = a} :: ComponentProperty)++-- | The default value to assign to the component property.+componentProperty_defaultValue :: Lens.Lens' ComponentProperty (Prelude.Maybe Prelude.Text)+componentProperty_defaultValue = Lens.lens (\ComponentProperty' {defaultValue} -> defaultValue) (\s@ComponentProperty' {} a -> s {defaultValue = a} :: ComponentProperty)++-- | An event that occurs in your app. Use this for workflow data binding.+componentProperty_event :: Lens.Lens' ComponentProperty (Prelude.Maybe Prelude.Text)+componentProperty_event = Lens.lens (\ComponentProperty' {event} -> event) (\s@ComponentProperty' {} a -> s {event = a} :: ComponentProperty)++-- | The default value assigned to the property when the component is+-- imported into an app.+componentProperty_importedValue :: Lens.Lens' ComponentProperty (Prelude.Maybe Prelude.Text)+componentProperty_importedValue = Lens.lens (\ComponentProperty' {importedValue} -> importedValue) (\s@ComponentProperty' {} a -> s {importedValue = a} :: ComponentProperty)++-- | The data model to use to assign a value to the component property.+componentProperty_model :: Lens.Lens' ComponentProperty (Prelude.Maybe Prelude.Text)+componentProperty_model = Lens.lens (\ComponentProperty' {model} -> model) (\s@ComponentProperty' {} a -> s {model = a} :: ComponentProperty)++-- | The name of the component\'s property that is affected by an event.+componentProperty_property :: Lens.Lens' ComponentProperty (Prelude.Maybe Prelude.Text)+componentProperty_property = Lens.lens (\ComponentProperty' {property} -> property) (\s@ComponentProperty' {} a -> s {property = a} :: ComponentProperty)++-- | The component type.+componentProperty_type :: Lens.Lens' ComponentProperty (Prelude.Maybe Prelude.Text)+componentProperty_type = Lens.lens (\ComponentProperty' {type'} -> type') (\s@ComponentProperty' {} a -> s {type' = a} :: ComponentProperty)++-- | An authenticated user attribute to use to assign a value to the+-- component property.+componentProperty_userAttribute :: Lens.Lens' ComponentProperty (Prelude.Maybe Prelude.Text)+componentProperty_userAttribute = Lens.lens (\ComponentProperty' {userAttribute} -> userAttribute) (\s@ComponentProperty' {} a -> s {userAttribute = a} :: ComponentProperty)++-- | The value to assign to the component property.+componentProperty_value :: Lens.Lens' ComponentProperty (Prelude.Maybe Prelude.Text)+componentProperty_value = Lens.lens (\ComponentProperty' {value} -> value) (\s@ComponentProperty' {} a -> s {value = a} :: ComponentProperty)++instance Data.FromJSON ComponentProperty where+  parseJSON =+    Data.withObject+      "ComponentProperty"+      ( \x ->+          ComponentProperty'+            Prelude.<$> (x Data..:? "bindingProperties")+            Prelude.<*> (x Data..:? "bindings" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "collectionBindingProperties")+            Prelude.<*> (x Data..:? "componentName")+            Prelude.<*> (x Data..:? "concat" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "condition")+            Prelude.<*> (x Data..:? "configured")+            Prelude.<*> (x Data..:? "defaultValue")+            Prelude.<*> (x Data..:? "event")+            Prelude.<*> (x Data..:? "importedValue")+            Prelude.<*> (x Data..:? "model")+            Prelude.<*> (x Data..:? "property")+            Prelude.<*> (x Data..:? "type")+            Prelude.<*> (x Data..:? "userAttribute")+            Prelude.<*> (x Data..:? "value")+      )++instance Prelude.Hashable ComponentProperty where+  hashWithSalt _salt ComponentProperty' {..} =+    _salt+      `Prelude.hashWithSalt` bindingProperties+      `Prelude.hashWithSalt` bindings+      `Prelude.hashWithSalt` collectionBindingProperties+      `Prelude.hashWithSalt` componentName+      `Prelude.hashWithSalt` concat+      `Prelude.hashWithSalt` condition+      `Prelude.hashWithSalt` configured+      `Prelude.hashWithSalt` defaultValue+      `Prelude.hashWithSalt` event+      `Prelude.hashWithSalt` importedValue+      `Prelude.hashWithSalt` model+      `Prelude.hashWithSalt` property+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` userAttribute+      `Prelude.hashWithSalt` value++instance Prelude.NFData ComponentProperty where+  rnf ComponentProperty' {..} =+    Prelude.rnf bindingProperties+      `Prelude.seq` Prelude.rnf bindings+      `Prelude.seq` Prelude.rnf collectionBindingProperties+      `Prelude.seq` Prelude.rnf componentName+      `Prelude.seq` Prelude.rnf concat+      `Prelude.seq` Prelude.rnf condition+      `Prelude.seq` Prelude.rnf configured+      `Prelude.seq` Prelude.rnf defaultValue+      `Prelude.seq` Prelude.rnf event+      `Prelude.seq` Prelude.rnf importedValue+      `Prelude.seq` Prelude.rnf model+      `Prelude.seq` Prelude.rnf property+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf userAttribute+      `Prelude.seq` Prelude.rnf value++instance Data.ToJSON ComponentProperty where+  toJSON ComponentProperty' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("bindingProperties" Data..=)+              Prelude.<$> bindingProperties,+            ("bindings" Data..=) Prelude.<$> bindings,+            ("collectionBindingProperties" Data..=)+              Prelude.<$> collectionBindingProperties,+            ("componentName" Data..=) Prelude.<$> componentName,+            ("concat" Data..=) Prelude.<$> concat,+            ("condition" Data..=) Prelude.<$> condition,+            ("configured" Data..=) Prelude.<$> configured,+            ("defaultValue" Data..=) Prelude.<$> defaultValue,+            ("event" Data..=) Prelude.<$> event,+            ("importedValue" Data..=) Prelude.<$> importedValue,+            ("model" Data..=) Prelude.<$> model,+            ("property" Data..=) Prelude.<$> property,+            ("type" Data..=) Prelude.<$> type',+            ("userAttribute" Data..=) Prelude.<$> userAttribute,+            ("value" Data..=) Prelude.<$> value+          ]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/ComponentProperty.hs-boot view
@@ -0,0 +1,33 @@+{-# OPTIONS_GHC -Wno-missing-methods #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.AmplifyUiBuilder.Types.ComponentProperty+-- 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.AmplifyUiBuilder.Types.ComponentProperty where++import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++data ComponentProperty++instance Prelude.Eq ComponentProperty++instance Prelude.Read ComponentProperty++instance Prelude.Show ComponentProperty++instance Prelude.Generic ComponentProperty++instance Data.ToJSON ComponentProperty++instance Data.FromJSON ComponentProperty++instance Prelude.NFData ComponentProperty++instance Prelude.Hashable ComponentProperty
+ gen/Amazonka/AmplifyUiBuilder/Types/ComponentPropertyBindingProperties.hs view
@@ -0,0 +1,112 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.AmplifyUiBuilder.Types.ComponentPropertyBindingProperties+-- 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.AmplifyUiBuilder.Types.ComponentPropertyBindingProperties 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++-- | Associates a component property to a binding property. This enables+-- exposed properties on the top level component to propagate data to the+-- component\'s property values.+--+-- /See:/ 'newComponentPropertyBindingProperties' smart constructor.+data ComponentPropertyBindingProperties = ComponentPropertyBindingProperties'+  { -- | The data field to bind the property to.+    field :: Prelude.Maybe Prelude.Text,+    -- | The component property to bind to the data field.+    property :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ComponentPropertyBindingProperties' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'field', 'componentPropertyBindingProperties_field' - The data field to bind the property to.+--+-- 'property', 'componentPropertyBindingProperties_property' - The component property to bind to the data field.+newComponentPropertyBindingProperties ::+  -- | 'property'+  Prelude.Text ->+  ComponentPropertyBindingProperties+newComponentPropertyBindingProperties pProperty_ =+  ComponentPropertyBindingProperties'+    { field =+        Prelude.Nothing,+      property = pProperty_+    }++-- | The data field to bind the property to.+componentPropertyBindingProperties_field :: Lens.Lens' ComponentPropertyBindingProperties (Prelude.Maybe Prelude.Text)+componentPropertyBindingProperties_field = Lens.lens (\ComponentPropertyBindingProperties' {field} -> field) (\s@ComponentPropertyBindingProperties' {} a -> s {field = a} :: ComponentPropertyBindingProperties)++-- | The component property to bind to the data field.+componentPropertyBindingProperties_property :: Lens.Lens' ComponentPropertyBindingProperties Prelude.Text+componentPropertyBindingProperties_property = Lens.lens (\ComponentPropertyBindingProperties' {property} -> property) (\s@ComponentPropertyBindingProperties' {} a -> s {property = a} :: ComponentPropertyBindingProperties)++instance+  Data.FromJSON+    ComponentPropertyBindingProperties+  where+  parseJSON =+    Data.withObject+      "ComponentPropertyBindingProperties"+      ( \x ->+          ComponentPropertyBindingProperties'+            Prelude.<$> (x Data..:? "field")+            Prelude.<*> (x Data..: "property")+      )++instance+  Prelude.Hashable+    ComponentPropertyBindingProperties+  where+  hashWithSalt+    _salt+    ComponentPropertyBindingProperties' {..} =+      _salt+        `Prelude.hashWithSalt` field+        `Prelude.hashWithSalt` property++instance+  Prelude.NFData+    ComponentPropertyBindingProperties+  where+  rnf ComponentPropertyBindingProperties' {..} =+    Prelude.rnf field+      `Prelude.seq` Prelude.rnf property++instance+  Data.ToJSON+    ComponentPropertyBindingProperties+  where+  toJSON ComponentPropertyBindingProperties' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("field" Data..=) Prelude.<$> field,+            Prelude.Just ("property" Data..= property)+          ]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/ComponentSummary.hs view
@@ -0,0 +1,136 @@+{-# 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.AmplifyUiBuilder.Types.ComponentSummary+-- 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.AmplifyUiBuilder.Types.ComponentSummary 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++-- | Contains a summary of a component. This is a read-only data type that is+-- returned by @ListComponents@.+--+-- /See:/ 'newComponentSummary' smart constructor.+data ComponentSummary = ComponentSummary'+  { -- | The unique ID of the Amplify app associated with the component.+    appId :: Prelude.Text,+    -- | The component type.+    componentType :: Prelude.Text,+    -- | The name of the backend environment that is a part of the Amplify app.+    environmentName :: Prelude.Text,+    -- | The unique ID of the component.+    id :: Prelude.Text,+    -- | The name of the component.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ComponentSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'componentSummary_appId' - The unique ID of the Amplify app associated with the component.+--+-- 'componentType', 'componentSummary_componentType' - The component type.+--+-- 'environmentName', 'componentSummary_environmentName' - The name of the backend environment that is a part of the Amplify app.+--+-- 'id', 'componentSummary_id' - The unique ID of the component.+--+-- 'name', 'componentSummary_name' - The name of the component.+newComponentSummary ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'componentType'+  Prelude.Text ->+  -- | 'environmentName'+  Prelude.Text ->+  -- | 'id'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  ComponentSummary+newComponentSummary+  pAppId_+  pComponentType_+  pEnvironmentName_+  pId_+  pName_ =+    ComponentSummary'+      { appId = pAppId_,+        componentType = pComponentType_,+        environmentName = pEnvironmentName_,+        id = pId_,+        name = pName_+      }++-- | The unique ID of the Amplify app associated with the component.+componentSummary_appId :: Lens.Lens' ComponentSummary Prelude.Text+componentSummary_appId = Lens.lens (\ComponentSummary' {appId} -> appId) (\s@ComponentSummary' {} a -> s {appId = a} :: ComponentSummary)++-- | The component type.+componentSummary_componentType :: Lens.Lens' ComponentSummary Prelude.Text+componentSummary_componentType = Lens.lens (\ComponentSummary' {componentType} -> componentType) (\s@ComponentSummary' {} a -> s {componentType = a} :: ComponentSummary)++-- | The name of the backend environment that is a part of the Amplify app.+componentSummary_environmentName :: Lens.Lens' ComponentSummary Prelude.Text+componentSummary_environmentName = Lens.lens (\ComponentSummary' {environmentName} -> environmentName) (\s@ComponentSummary' {} a -> s {environmentName = a} :: ComponentSummary)++-- | The unique ID of the component.+componentSummary_id :: Lens.Lens' ComponentSummary Prelude.Text+componentSummary_id = Lens.lens (\ComponentSummary' {id} -> id) (\s@ComponentSummary' {} a -> s {id = a} :: ComponentSummary)++-- | The name of the component.+componentSummary_name :: Lens.Lens' ComponentSummary Prelude.Text+componentSummary_name = Lens.lens (\ComponentSummary' {name} -> name) (\s@ComponentSummary' {} a -> s {name = a} :: ComponentSummary)++instance Data.FromJSON ComponentSummary where+  parseJSON =+    Data.withObject+      "ComponentSummary"+      ( \x ->+          ComponentSummary'+            Prelude.<$> (x Data..: "appId")+            Prelude.<*> (x Data..: "componentType")+            Prelude.<*> (x Data..: "environmentName")+            Prelude.<*> (x Data..: "id")+            Prelude.<*> (x Data..: "name")+      )++instance Prelude.Hashable ComponentSummary where+  hashWithSalt _salt ComponentSummary' {..} =+    _salt+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` componentType+      `Prelude.hashWithSalt` environmentName+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` name++instance Prelude.NFData ComponentSummary where+  rnf ComponentSummary' {..} =+    Prelude.rnf appId+      `Prelude.seq` Prelude.rnf componentType+      `Prelude.seq` Prelude.rnf environmentName+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/AmplifyUiBuilder/Types/ComponentVariant.hs view
@@ -0,0 +1,103 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.AmplifyUiBuilder.Types.ComponentVariant+-- 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.AmplifyUiBuilder.Types.ComponentVariant 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 style configuration of a unique variation of a main+-- component.+--+-- /See:/ 'newComponentVariant' smart constructor.+data ComponentVariant = ComponentVariant'+  { -- | The properties of the component variant that can be overriden when+    -- customizing an instance of the component. You can\'t specify @tags@ as a+    -- valid property for @overrides@.+    overrides :: Prelude.Maybe (Prelude.HashMap Prelude.Text (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | The combination of variants that comprise this variant. You can\'t+    -- specify @tags@ as a valid property for @variantValues@.+    variantValues :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ComponentVariant' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'overrides', 'componentVariant_overrides' - The properties of the component variant that can be overriden when+-- customizing an instance of the component. You can\'t specify @tags@ as a+-- valid property for @overrides@.+--+-- 'variantValues', 'componentVariant_variantValues' - The combination of variants that comprise this variant. You can\'t+-- specify @tags@ as a valid property for @variantValues@.+newComponentVariant ::+  ComponentVariant+newComponentVariant =+  ComponentVariant'+    { overrides = Prelude.Nothing,+      variantValues = Prelude.Nothing+    }++-- | The properties of the component variant that can be overriden when+-- customizing an instance of the component. You can\'t specify @tags@ as a+-- valid property for @overrides@.+componentVariant_overrides :: Lens.Lens' ComponentVariant (Prelude.Maybe (Prelude.HashMap Prelude.Text (Prelude.HashMap Prelude.Text Prelude.Text)))+componentVariant_overrides = Lens.lens (\ComponentVariant' {overrides} -> overrides) (\s@ComponentVariant' {} a -> s {overrides = a} :: ComponentVariant) Prelude.. Lens.mapping Lens.coerced++-- | The combination of variants that comprise this variant. You can\'t+-- specify @tags@ as a valid property for @variantValues@.+componentVariant_variantValues :: Lens.Lens' ComponentVariant (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+componentVariant_variantValues = Lens.lens (\ComponentVariant' {variantValues} -> variantValues) (\s@ComponentVariant' {} a -> s {variantValues = a} :: ComponentVariant) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ComponentVariant where+  parseJSON =+    Data.withObject+      "ComponentVariant"+      ( \x ->+          ComponentVariant'+            Prelude.<$> (x Data..:? "overrides" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "variantValues" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable ComponentVariant where+  hashWithSalt _salt ComponentVariant' {..} =+    _salt+      `Prelude.hashWithSalt` overrides+      `Prelude.hashWithSalt` variantValues++instance Prelude.NFData ComponentVariant where+  rnf ComponentVariant' {..} =+    Prelude.rnf overrides+      `Prelude.seq` Prelude.rnf variantValues++instance Data.ToJSON ComponentVariant where+  toJSON ComponentVariant' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("overrides" Data..=) Prelude.<$> overrides,+            ("variantValues" Data..=) Prelude.<$> variantValues+          ]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/CreateComponentData.hs view
@@ -0,0 +1,234 @@+{-# 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.AmplifyUiBuilder.Types.CreateComponentData+-- 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.AmplifyUiBuilder.Types.CreateComponentData where++import Amazonka.AmplifyUiBuilder.Types.ComponentBindingPropertiesValue+import Amazonka.AmplifyUiBuilder.Types.ComponentChild+import Amazonka.AmplifyUiBuilder.Types.ComponentDataConfiguration+import Amazonka.AmplifyUiBuilder.Types.ComponentEvent+import Amazonka.AmplifyUiBuilder.Types.ComponentProperty+import Amazonka.AmplifyUiBuilder.Types.ComponentVariant+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 all of the information that is required to create a+-- component.+--+-- /See:/ 'newCreateComponentData' smart constructor.+data CreateComponentData = CreateComponentData'+  { -- | A list of child components that are instances of the main component.+    children :: Prelude.Maybe [ComponentChild],+    -- | The data binding configuration for customizing a component\'s+    -- properties. Use this for a collection component.+    collectionProperties :: Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentDataConfiguration),+    -- | The event configuration for the component. Use for the workflow feature+    -- in Amplify Studio that allows you to bind events and actions to+    -- components.+    events :: Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentEvent),+    -- | The schema version of the component when it was imported.+    schemaVersion :: Prelude.Maybe Prelude.Text,+    -- | The unique ID of the component in its original source system, such as+    -- Figma.+    sourceId :: Prelude.Maybe Prelude.Text,+    -- | One or more key-value pairs to use when tagging the component data.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The data binding information for the component\'s properties.+    bindingProperties :: Prelude.HashMap Prelude.Text ComponentBindingPropertiesValue,+    -- | The component type. This can be an Amplify custom UI component or+    -- another custom component.+    componentType :: Prelude.Text,+    -- | The name of the component+    name :: Prelude.Text,+    -- | Describes the component properties that can be overriden to customize an+    -- instance of the component.+    overrides :: Prelude.HashMap Prelude.Text (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Describes the component\'s properties.+    properties :: Prelude.HashMap Prelude.Text ComponentProperty,+    -- | A list of the unique variants of this component.+    variants :: [ComponentVariant]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateComponentData' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'children', 'createComponentData_children' - A list of child components that are instances of the main component.+--+-- 'collectionProperties', 'createComponentData_collectionProperties' - The data binding configuration for customizing a component\'s+-- properties. Use this for a collection component.+--+-- 'events', 'createComponentData_events' - The event configuration for the component. Use for the workflow feature+-- in Amplify Studio that allows you to bind events and actions to+-- components.+--+-- 'schemaVersion', 'createComponentData_schemaVersion' - The schema version of the component when it was imported.+--+-- 'sourceId', 'createComponentData_sourceId' - The unique ID of the component in its original source system, such as+-- Figma.+--+-- 'tags', 'createComponentData_tags' - One or more key-value pairs to use when tagging the component data.+--+-- 'bindingProperties', 'createComponentData_bindingProperties' - The data binding information for the component\'s properties.+--+-- 'componentType', 'createComponentData_componentType' - The component type. This can be an Amplify custom UI component or+-- another custom component.+--+-- 'name', 'createComponentData_name' - The name of the component+--+-- 'overrides', 'createComponentData_overrides' - Describes the component properties that can be overriden to customize an+-- instance of the component.+--+-- 'properties', 'createComponentData_properties' - Describes the component\'s properties.+--+-- 'variants', 'createComponentData_variants' - A list of the unique variants of this component.+newCreateComponentData ::+  -- | 'componentType'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  CreateComponentData+newCreateComponentData pComponentType_ pName_ =+  CreateComponentData'+    { children = Prelude.Nothing,+      collectionProperties = Prelude.Nothing,+      events = Prelude.Nothing,+      schemaVersion = Prelude.Nothing,+      sourceId = Prelude.Nothing,+      tags = Prelude.Nothing,+      bindingProperties = Prelude.mempty,+      componentType = pComponentType_,+      name = pName_,+      overrides = Prelude.mempty,+      properties = Prelude.mempty,+      variants = Prelude.mempty+    }++-- | A list of child components that are instances of the main component.+createComponentData_children :: Lens.Lens' CreateComponentData (Prelude.Maybe [ComponentChild])+createComponentData_children = Lens.lens (\CreateComponentData' {children} -> children) (\s@CreateComponentData' {} a -> s {children = a} :: CreateComponentData) Prelude.. Lens.mapping Lens.coerced++-- | The data binding configuration for customizing a component\'s+-- properties. Use this for a collection component.+createComponentData_collectionProperties :: Lens.Lens' CreateComponentData (Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentDataConfiguration))+createComponentData_collectionProperties = Lens.lens (\CreateComponentData' {collectionProperties} -> collectionProperties) (\s@CreateComponentData' {} a -> s {collectionProperties = a} :: CreateComponentData) Prelude.. Lens.mapping Lens.coerced++-- | The event configuration for the component. Use for the workflow feature+-- in Amplify Studio that allows you to bind events and actions to+-- components.+createComponentData_events :: Lens.Lens' CreateComponentData (Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentEvent))+createComponentData_events = Lens.lens (\CreateComponentData' {events} -> events) (\s@CreateComponentData' {} a -> s {events = a} :: CreateComponentData) Prelude.. Lens.mapping Lens.coerced++-- | The schema version of the component when it was imported.+createComponentData_schemaVersion :: Lens.Lens' CreateComponentData (Prelude.Maybe Prelude.Text)+createComponentData_schemaVersion = Lens.lens (\CreateComponentData' {schemaVersion} -> schemaVersion) (\s@CreateComponentData' {} a -> s {schemaVersion = a} :: CreateComponentData)++-- | The unique ID of the component in its original source system, such as+-- Figma.+createComponentData_sourceId :: Lens.Lens' CreateComponentData (Prelude.Maybe Prelude.Text)+createComponentData_sourceId = Lens.lens (\CreateComponentData' {sourceId} -> sourceId) (\s@CreateComponentData' {} a -> s {sourceId = a} :: CreateComponentData)++-- | One or more key-value pairs to use when tagging the component data.+createComponentData_tags :: Lens.Lens' CreateComponentData (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createComponentData_tags = Lens.lens (\CreateComponentData' {tags} -> tags) (\s@CreateComponentData' {} a -> s {tags = a} :: CreateComponentData) Prelude.. Lens.mapping Lens.coerced++-- | The data binding information for the component\'s properties.+createComponentData_bindingProperties :: Lens.Lens' CreateComponentData (Prelude.HashMap Prelude.Text ComponentBindingPropertiesValue)+createComponentData_bindingProperties = Lens.lens (\CreateComponentData' {bindingProperties} -> bindingProperties) (\s@CreateComponentData' {} a -> s {bindingProperties = a} :: CreateComponentData) Prelude.. Lens.coerced++-- | The component type. This can be an Amplify custom UI component or+-- another custom component.+createComponentData_componentType :: Lens.Lens' CreateComponentData Prelude.Text+createComponentData_componentType = Lens.lens (\CreateComponentData' {componentType} -> componentType) (\s@CreateComponentData' {} a -> s {componentType = a} :: CreateComponentData)++-- | The name of the component+createComponentData_name :: Lens.Lens' CreateComponentData Prelude.Text+createComponentData_name = Lens.lens (\CreateComponentData' {name} -> name) (\s@CreateComponentData' {} a -> s {name = a} :: CreateComponentData)++-- | Describes the component properties that can be overriden to customize an+-- instance of the component.+createComponentData_overrides :: Lens.Lens' CreateComponentData (Prelude.HashMap Prelude.Text (Prelude.HashMap Prelude.Text Prelude.Text))+createComponentData_overrides = Lens.lens (\CreateComponentData' {overrides} -> overrides) (\s@CreateComponentData' {} a -> s {overrides = a} :: CreateComponentData) Prelude.. Lens.coerced++-- | Describes the component\'s properties.+createComponentData_properties :: Lens.Lens' CreateComponentData (Prelude.HashMap Prelude.Text ComponentProperty)+createComponentData_properties = Lens.lens (\CreateComponentData' {properties} -> properties) (\s@CreateComponentData' {} a -> s {properties = a} :: CreateComponentData) Prelude.. Lens.coerced++-- | A list of the unique variants of this component.+createComponentData_variants :: Lens.Lens' CreateComponentData [ComponentVariant]+createComponentData_variants = Lens.lens (\CreateComponentData' {variants} -> variants) (\s@CreateComponentData' {} a -> s {variants = a} :: CreateComponentData) Prelude.. Lens.coerced++instance Prelude.Hashable CreateComponentData where+  hashWithSalt _salt CreateComponentData' {..} =+    _salt+      `Prelude.hashWithSalt` children+      `Prelude.hashWithSalt` collectionProperties+      `Prelude.hashWithSalt` events+      `Prelude.hashWithSalt` schemaVersion+      `Prelude.hashWithSalt` sourceId+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` bindingProperties+      `Prelude.hashWithSalt` componentType+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` overrides+      `Prelude.hashWithSalt` properties+      `Prelude.hashWithSalt` variants++instance Prelude.NFData CreateComponentData where+  rnf CreateComponentData' {..} =+    Prelude.rnf children+      `Prelude.seq` Prelude.rnf collectionProperties+      `Prelude.seq` Prelude.rnf events+      `Prelude.seq` Prelude.rnf schemaVersion+      `Prelude.seq` Prelude.rnf sourceId+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf bindingProperties+      `Prelude.seq` Prelude.rnf componentType+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf overrides+      `Prelude.seq` Prelude.rnf properties+      `Prelude.seq` Prelude.rnf variants++instance Data.ToJSON CreateComponentData where+  toJSON CreateComponentData' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("children" Data..=) Prelude.<$> children,+            ("collectionProperties" Data..=)+              Prelude.<$> collectionProperties,+            ("events" Data..=) Prelude.<$> events,+            ("schemaVersion" Data..=) Prelude.<$> schemaVersion,+            ("sourceId" Data..=) Prelude.<$> sourceId,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just+              ("bindingProperties" Data..= bindingProperties),+            Prelude.Just ("componentType" Data..= componentType),+            Prelude.Just ("name" Data..= name),+            Prelude.Just ("overrides" Data..= overrides),+            Prelude.Just ("properties" Data..= properties),+            Prelude.Just ("variants" Data..= variants)+          ]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/CreateFormData.hs view
@@ -0,0 +1,196 @@+{-# 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.AmplifyUiBuilder.Types.CreateFormData+-- 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.AmplifyUiBuilder.Types.CreateFormData where++import Amazonka.AmplifyUiBuilder.Types.FieldConfig+import Amazonka.AmplifyUiBuilder.Types.FormActionType+import Amazonka.AmplifyUiBuilder.Types.FormCTA+import Amazonka.AmplifyUiBuilder.Types.FormDataTypeConfig+import Amazonka.AmplifyUiBuilder.Types.FormStyle+import Amazonka.AmplifyUiBuilder.Types.SectionalElement+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 all of the information that is required to create a form.+--+-- /See:/ 'newCreateFormData' smart constructor.+data CreateFormData = CreateFormData'+  { -- | The @FormCTA@ object that stores the call to action configuration for+    -- the form.+    cta :: Prelude.Maybe FormCTA,+    -- | One or more key-value pairs to use when tagging the form data.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The type of data source to use to create the form.+    dataType :: FormDataTypeConfig,+    -- | The configuration information for the form\'s fields.+    fields :: Prelude.HashMap Prelude.Text FieldConfig,+    -- | Specifies whether to perform a create or update action on the form.+    formActionType :: FormActionType,+    -- | The name of the form.+    name :: Prelude.Text,+    -- | The schema version of the form.+    schemaVersion :: Prelude.Text,+    -- | The configuration information for the visual helper elements for the+    -- form. These elements are not associated with any data.+    sectionalElements :: Prelude.HashMap Prelude.Text SectionalElement,+    -- | The configuration for the form\'s style.+    style :: FormStyle+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateFormData' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cta', 'createFormData_cta' - The @FormCTA@ object that stores the call to action configuration for+-- the form.+--+-- 'tags', 'createFormData_tags' - One or more key-value pairs to use when tagging the form data.+--+-- 'dataType', 'createFormData_dataType' - The type of data source to use to create the form.+--+-- 'fields', 'createFormData_fields' - The configuration information for the form\'s fields.+--+-- 'formActionType', 'createFormData_formActionType' - Specifies whether to perform a create or update action on the form.+--+-- 'name', 'createFormData_name' - The name of the form.+--+-- 'schemaVersion', 'createFormData_schemaVersion' - The schema version of the form.+--+-- 'sectionalElements', 'createFormData_sectionalElements' - The configuration information for the visual helper elements for the+-- form. These elements are not associated with any data.+--+-- 'style', 'createFormData_style' - The configuration for the form\'s style.+newCreateFormData ::+  -- | 'dataType'+  FormDataTypeConfig ->+  -- | 'formActionType'+  FormActionType ->+  -- | 'name'+  Prelude.Text ->+  -- | 'schemaVersion'+  Prelude.Text ->+  -- | 'style'+  FormStyle ->+  CreateFormData+newCreateFormData+  pDataType_+  pFormActionType_+  pName_+  pSchemaVersion_+  pStyle_ =+    CreateFormData'+      { cta = Prelude.Nothing,+        tags = Prelude.Nothing,+        dataType = pDataType_,+        fields = Prelude.mempty,+        formActionType = pFormActionType_,+        name = pName_,+        schemaVersion = pSchemaVersion_,+        sectionalElements = Prelude.mempty,+        style = pStyle_+      }++-- | The @FormCTA@ object that stores the call to action configuration for+-- the form.+createFormData_cta :: Lens.Lens' CreateFormData (Prelude.Maybe FormCTA)+createFormData_cta = Lens.lens (\CreateFormData' {cta} -> cta) (\s@CreateFormData' {} a -> s {cta = a} :: CreateFormData)++-- | One or more key-value pairs to use when tagging the form data.+createFormData_tags :: Lens.Lens' CreateFormData (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createFormData_tags = Lens.lens (\CreateFormData' {tags} -> tags) (\s@CreateFormData' {} a -> s {tags = a} :: CreateFormData) Prelude.. Lens.mapping Lens.coerced++-- | The type of data source to use to create the form.+createFormData_dataType :: Lens.Lens' CreateFormData FormDataTypeConfig+createFormData_dataType = Lens.lens (\CreateFormData' {dataType} -> dataType) (\s@CreateFormData' {} a -> s {dataType = a} :: CreateFormData)++-- | The configuration information for the form\'s fields.+createFormData_fields :: Lens.Lens' CreateFormData (Prelude.HashMap Prelude.Text FieldConfig)+createFormData_fields = Lens.lens (\CreateFormData' {fields} -> fields) (\s@CreateFormData' {} a -> s {fields = a} :: CreateFormData) Prelude.. Lens.coerced++-- | Specifies whether to perform a create or update action on the form.+createFormData_formActionType :: Lens.Lens' CreateFormData FormActionType+createFormData_formActionType = Lens.lens (\CreateFormData' {formActionType} -> formActionType) (\s@CreateFormData' {} a -> s {formActionType = a} :: CreateFormData)++-- | The name of the form.+createFormData_name :: Lens.Lens' CreateFormData Prelude.Text+createFormData_name = Lens.lens (\CreateFormData' {name} -> name) (\s@CreateFormData' {} a -> s {name = a} :: CreateFormData)++-- | The schema version of the form.+createFormData_schemaVersion :: Lens.Lens' CreateFormData Prelude.Text+createFormData_schemaVersion = Lens.lens (\CreateFormData' {schemaVersion} -> schemaVersion) (\s@CreateFormData' {} a -> s {schemaVersion = a} :: CreateFormData)++-- | The configuration information for the visual helper elements for the+-- form. These elements are not associated with any data.+createFormData_sectionalElements :: Lens.Lens' CreateFormData (Prelude.HashMap Prelude.Text SectionalElement)+createFormData_sectionalElements = Lens.lens (\CreateFormData' {sectionalElements} -> sectionalElements) (\s@CreateFormData' {} a -> s {sectionalElements = a} :: CreateFormData) Prelude.. Lens.coerced++-- | The configuration for the form\'s style.+createFormData_style :: Lens.Lens' CreateFormData FormStyle+createFormData_style = Lens.lens (\CreateFormData' {style} -> style) (\s@CreateFormData' {} a -> s {style = a} :: CreateFormData)++instance Prelude.Hashable CreateFormData where+  hashWithSalt _salt CreateFormData' {..} =+    _salt+      `Prelude.hashWithSalt` cta+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` dataType+      `Prelude.hashWithSalt` fields+      `Prelude.hashWithSalt` formActionType+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` schemaVersion+      `Prelude.hashWithSalt` sectionalElements+      `Prelude.hashWithSalt` style++instance Prelude.NFData CreateFormData where+  rnf CreateFormData' {..} =+    Prelude.rnf cta+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf dataType+      `Prelude.seq` Prelude.rnf fields+      `Prelude.seq` Prelude.rnf formActionType+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf schemaVersion+      `Prelude.seq` Prelude.rnf sectionalElements+      `Prelude.seq` Prelude.rnf style++instance Data.ToJSON CreateFormData where+  toJSON CreateFormData' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("cta" Data..=) Prelude.<$> cta,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("dataType" Data..= dataType),+            Prelude.Just ("fields" Data..= fields),+            Prelude.Just+              ("formActionType" Data..= formActionType),+            Prelude.Just ("name" Data..= name),+            Prelude.Just ("schemaVersion" Data..= schemaVersion),+            Prelude.Just+              ("sectionalElements" Data..= sectionalElements),+            Prelude.Just ("style" Data..= style)+          ]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/CreateThemeData.hs view
@@ -0,0 +1,113 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.AmplifyUiBuilder.Types.CreateThemeData+-- 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.AmplifyUiBuilder.Types.CreateThemeData where++import Amazonka.AmplifyUiBuilder.Types.ThemeValues+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 all of the information that is required to create a theme.+--+-- /See:/ 'newCreateThemeData' smart constructor.+data CreateThemeData = CreateThemeData'+  { -- | Describes the properties that can be overriden to customize an instance+    -- of the theme.+    overrides :: Prelude.Maybe [ThemeValues],+    -- | One or more key-value pairs to use when tagging the theme data.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The name of the theme.+    name :: Prelude.Text,+    -- | A list of key-value pairs that defines the properties of the theme.+    values :: [ThemeValues]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateThemeData' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'overrides', 'createThemeData_overrides' - Describes the properties that can be overriden to customize an instance+-- of the theme.+--+-- 'tags', 'createThemeData_tags' - One or more key-value pairs to use when tagging the theme data.+--+-- 'name', 'createThemeData_name' - The name of the theme.+--+-- 'values', 'createThemeData_values' - A list of key-value pairs that defines the properties of the theme.+newCreateThemeData ::+  -- | 'name'+  Prelude.Text ->+  CreateThemeData+newCreateThemeData pName_ =+  CreateThemeData'+    { overrides = Prelude.Nothing,+      tags = Prelude.Nothing,+      name = pName_,+      values = Prelude.mempty+    }++-- | Describes the properties that can be overriden to customize an instance+-- of the theme.+createThemeData_overrides :: Lens.Lens' CreateThemeData (Prelude.Maybe [ThemeValues])+createThemeData_overrides = Lens.lens (\CreateThemeData' {overrides} -> overrides) (\s@CreateThemeData' {} a -> s {overrides = a} :: CreateThemeData) Prelude.. Lens.mapping Lens.coerced++-- | One or more key-value pairs to use when tagging the theme data.+createThemeData_tags :: Lens.Lens' CreateThemeData (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createThemeData_tags = Lens.lens (\CreateThemeData' {tags} -> tags) (\s@CreateThemeData' {} a -> s {tags = a} :: CreateThemeData) Prelude.. Lens.mapping Lens.coerced++-- | The name of the theme.+createThemeData_name :: Lens.Lens' CreateThemeData Prelude.Text+createThemeData_name = Lens.lens (\CreateThemeData' {name} -> name) (\s@CreateThemeData' {} a -> s {name = a} :: CreateThemeData)++-- | A list of key-value pairs that defines the properties of the theme.+createThemeData_values :: Lens.Lens' CreateThemeData [ThemeValues]+createThemeData_values = Lens.lens (\CreateThemeData' {values} -> values) (\s@CreateThemeData' {} a -> s {values = a} :: CreateThemeData) Prelude.. Lens.coerced++instance Prelude.Hashable CreateThemeData where+  hashWithSalt _salt CreateThemeData' {..} =+    _salt+      `Prelude.hashWithSalt` overrides+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` values++instance Prelude.NFData CreateThemeData where+  rnf CreateThemeData' {..} =+    Prelude.rnf overrides+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf values++instance Data.ToJSON CreateThemeData where+  toJSON CreateThemeData' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("overrides" Data..=) Prelude.<$> overrides,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("name" Data..= name),+            Prelude.Just ("values" Data..= values)+          ]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/ExchangeCodeForTokenRequestBody.hs view
@@ -0,0 +1,99 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.AmplifyUiBuilder.Types.ExchangeCodeForTokenRequestBody+-- 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.AmplifyUiBuilder.Types.ExchangeCodeForTokenRequestBody 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 configuration of a request to exchange an access code for+-- a token.+--+-- /See:/ 'newExchangeCodeForTokenRequestBody' smart constructor.+data ExchangeCodeForTokenRequestBody = ExchangeCodeForTokenRequestBody'+  { -- | The access code to send in the request.+    code :: Data.Sensitive Prelude.Text,+    -- | The location of the application that will receive the access code.+    redirectUri :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExchangeCodeForTokenRequestBody' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'code', 'exchangeCodeForTokenRequestBody_code' - The access code to send in the request.+--+-- 'redirectUri', 'exchangeCodeForTokenRequestBody_redirectUri' - The location of the application that will receive the access code.+newExchangeCodeForTokenRequestBody ::+  -- | 'code'+  Prelude.Text ->+  -- | 'redirectUri'+  Prelude.Text ->+  ExchangeCodeForTokenRequestBody+newExchangeCodeForTokenRequestBody+  pCode_+  pRedirectUri_ =+    ExchangeCodeForTokenRequestBody'+      { code =+          Data._Sensitive Lens.# pCode_,+        redirectUri = pRedirectUri_+      }++-- | The access code to send in the request.+exchangeCodeForTokenRequestBody_code :: Lens.Lens' ExchangeCodeForTokenRequestBody Prelude.Text+exchangeCodeForTokenRequestBody_code = Lens.lens (\ExchangeCodeForTokenRequestBody' {code} -> code) (\s@ExchangeCodeForTokenRequestBody' {} a -> s {code = a} :: ExchangeCodeForTokenRequestBody) Prelude.. Data._Sensitive++-- | The location of the application that will receive the access code.+exchangeCodeForTokenRequestBody_redirectUri :: Lens.Lens' ExchangeCodeForTokenRequestBody Prelude.Text+exchangeCodeForTokenRequestBody_redirectUri = Lens.lens (\ExchangeCodeForTokenRequestBody' {redirectUri} -> redirectUri) (\s@ExchangeCodeForTokenRequestBody' {} a -> s {redirectUri = a} :: ExchangeCodeForTokenRequestBody)++instance+  Prelude.Hashable+    ExchangeCodeForTokenRequestBody+  where+  hashWithSalt+    _salt+    ExchangeCodeForTokenRequestBody' {..} =+      _salt+        `Prelude.hashWithSalt` code+        `Prelude.hashWithSalt` redirectUri++instance+  Prelude.NFData+    ExchangeCodeForTokenRequestBody+  where+  rnf ExchangeCodeForTokenRequestBody' {..} =+    Prelude.rnf code+      `Prelude.seq` Prelude.rnf redirectUri++instance Data.ToJSON ExchangeCodeForTokenRequestBody where+  toJSON ExchangeCodeForTokenRequestBody' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("code" Data..= code),+            Prelude.Just ("redirectUri" Data..= redirectUri)+          ]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/FieldConfig.hs view
@@ -0,0 +1,138 @@+{-# 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.AmplifyUiBuilder.Types.FieldConfig+-- 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.AmplifyUiBuilder.Types.FieldConfig where++import Amazonka.AmplifyUiBuilder.Types.FieldInputConfig+import Amazonka.AmplifyUiBuilder.Types.FieldPosition+import Amazonka.AmplifyUiBuilder.Types.FieldValidationConfiguration+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 configuration information for a field in a table.+--+-- /See:/ 'newFieldConfig' smart constructor.+data FieldConfig = FieldConfig'+  { -- | Specifies whether to hide a field.+    excluded :: Prelude.Maybe Prelude.Bool,+    -- | Describes the configuration for the default input value to display for a+    -- field.+    inputType :: Prelude.Maybe FieldInputConfig,+    -- | The label for the field.+    label :: Prelude.Maybe Prelude.Text,+    -- | Specifies the field position.+    position :: Prelude.Maybe FieldPosition,+    -- | The validations to perform on the value in the field.+    validations :: Prelude.Maybe [FieldValidationConfiguration]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FieldConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'excluded', 'fieldConfig_excluded' - Specifies whether to hide a field.+--+-- 'inputType', 'fieldConfig_inputType' - Describes the configuration for the default input value to display for a+-- field.+--+-- 'label', 'fieldConfig_label' - The label for the field.+--+-- 'position', 'fieldConfig_position' - Specifies the field position.+--+-- 'validations', 'fieldConfig_validations' - The validations to perform on the value in the field.+newFieldConfig ::+  FieldConfig+newFieldConfig =+  FieldConfig'+    { excluded = Prelude.Nothing,+      inputType = Prelude.Nothing,+      label = Prelude.Nothing,+      position = Prelude.Nothing,+      validations = Prelude.Nothing+    }++-- | Specifies whether to hide a field.+fieldConfig_excluded :: Lens.Lens' FieldConfig (Prelude.Maybe Prelude.Bool)+fieldConfig_excluded = Lens.lens (\FieldConfig' {excluded} -> excluded) (\s@FieldConfig' {} a -> s {excluded = a} :: FieldConfig)++-- | Describes the configuration for the default input value to display for a+-- field.+fieldConfig_inputType :: Lens.Lens' FieldConfig (Prelude.Maybe FieldInputConfig)+fieldConfig_inputType = Lens.lens (\FieldConfig' {inputType} -> inputType) (\s@FieldConfig' {} a -> s {inputType = a} :: FieldConfig)++-- | The label for the field.+fieldConfig_label :: Lens.Lens' FieldConfig (Prelude.Maybe Prelude.Text)+fieldConfig_label = Lens.lens (\FieldConfig' {label} -> label) (\s@FieldConfig' {} a -> s {label = a} :: FieldConfig)++-- | Specifies the field position.+fieldConfig_position :: Lens.Lens' FieldConfig (Prelude.Maybe FieldPosition)+fieldConfig_position = Lens.lens (\FieldConfig' {position} -> position) (\s@FieldConfig' {} a -> s {position = a} :: FieldConfig)++-- | The validations to perform on the value in the field.+fieldConfig_validations :: Lens.Lens' FieldConfig (Prelude.Maybe [FieldValidationConfiguration])+fieldConfig_validations = Lens.lens (\FieldConfig' {validations} -> validations) (\s@FieldConfig' {} a -> s {validations = a} :: FieldConfig) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON FieldConfig where+  parseJSON =+    Data.withObject+      "FieldConfig"+      ( \x ->+          FieldConfig'+            Prelude.<$> (x Data..:? "excluded")+            Prelude.<*> (x Data..:? "inputType")+            Prelude.<*> (x Data..:? "label")+            Prelude.<*> (x Data..:? "position")+            Prelude.<*> (x Data..:? "validations" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable FieldConfig where+  hashWithSalt _salt FieldConfig' {..} =+    _salt+      `Prelude.hashWithSalt` excluded+      `Prelude.hashWithSalt` inputType+      `Prelude.hashWithSalt` label+      `Prelude.hashWithSalt` position+      `Prelude.hashWithSalt` validations++instance Prelude.NFData FieldConfig where+  rnf FieldConfig' {..} =+    Prelude.rnf excluded+      `Prelude.seq` Prelude.rnf inputType+      `Prelude.seq` Prelude.rnf label+      `Prelude.seq` Prelude.rnf position+      `Prelude.seq` Prelude.rnf validations++instance Data.ToJSON FieldConfig where+  toJSON FieldConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("excluded" Data..=) Prelude.<$> excluded,+            ("inputType" Data..=) Prelude.<$> inputType,+            ("label" Data..=) Prelude.<$> label,+            ("position" Data..=) Prelude.<$> position,+            ("validations" Data..=) Prelude.<$> validations+          ]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/FieldInputConfig.hs view
@@ -0,0 +1,275 @@+{-# 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.AmplifyUiBuilder.Types.FieldInputConfig+-- 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.AmplifyUiBuilder.Types.FieldInputConfig where++import Amazonka.AmplifyUiBuilder.Types.ValueMappings+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 configuration for the default input values to display for+-- a field.+--+-- /See:/ 'newFieldInputConfig' smart constructor.+data FieldInputConfig = FieldInputConfig'+  { -- | Specifies whether a field has a default value.+    defaultChecked :: Prelude.Maybe Prelude.Bool,+    -- | The default country code for a phone number.+    defaultCountryCode :: Prelude.Maybe Prelude.Text,+    -- | The default value for the field.+    defaultValue :: Prelude.Maybe Prelude.Text,+    -- | The text to display to describe the field.+    descriptiveText :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether to render the field as an array. This property is+    -- ignored if the @dataSourceType@ for the form is a Data Store.+    isArray :: Prelude.Maybe Prelude.Bool,+    -- | The maximum value to display for the field.+    maxValue :: Prelude.Maybe Prelude.Double,+    -- | The minimum value to display for the field.+    minValue :: Prelude.Maybe Prelude.Double,+    -- | The name of the field.+    name :: Prelude.Maybe Prelude.Text,+    -- | The text to display as a placeholder for the field.+    placeholder :: Prelude.Maybe Prelude.Text,+    -- | Specifies a read only field.+    readOnly :: Prelude.Maybe Prelude.Bool,+    -- | Specifies a field that requires input.+    required :: Prelude.Maybe Prelude.Bool,+    -- | The stepping increment for a numeric value in a field.+    step :: Prelude.Maybe Prelude.Double,+    -- | The value for the field.+    value :: Prelude.Maybe Prelude.Text,+    -- | The information to use to customize the input fields with data at+    -- runtime.+    valueMappings :: Prelude.Maybe ValueMappings,+    -- | The input type for the field.+    type' :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FieldInputConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'defaultChecked', 'fieldInputConfig_defaultChecked' - Specifies whether a field has a default value.+--+-- 'defaultCountryCode', 'fieldInputConfig_defaultCountryCode' - The default country code for a phone number.+--+-- 'defaultValue', 'fieldInputConfig_defaultValue' - The default value for the field.+--+-- 'descriptiveText', 'fieldInputConfig_descriptiveText' - The text to display to describe the field.+--+-- 'isArray', 'fieldInputConfig_isArray' - Specifies whether to render the field as an array. This property is+-- ignored if the @dataSourceType@ for the form is a Data Store.+--+-- 'maxValue', 'fieldInputConfig_maxValue' - The maximum value to display for the field.+--+-- 'minValue', 'fieldInputConfig_minValue' - The minimum value to display for the field.+--+-- 'name', 'fieldInputConfig_name' - The name of the field.+--+-- 'placeholder', 'fieldInputConfig_placeholder' - The text to display as a placeholder for the field.+--+-- 'readOnly', 'fieldInputConfig_readOnly' - Specifies a read only field.+--+-- 'required', 'fieldInputConfig_required' - Specifies a field that requires input.+--+-- 'step', 'fieldInputConfig_step' - The stepping increment for a numeric value in a field.+--+-- 'value', 'fieldInputConfig_value' - The value for the field.+--+-- 'valueMappings', 'fieldInputConfig_valueMappings' - The information to use to customize the input fields with data at+-- runtime.+--+-- 'type'', 'fieldInputConfig_type' - The input type for the field.+newFieldInputConfig ::+  -- | 'type''+  Prelude.Text ->+  FieldInputConfig+newFieldInputConfig pType_ =+  FieldInputConfig'+    { defaultChecked = Prelude.Nothing,+      defaultCountryCode = Prelude.Nothing,+      defaultValue = Prelude.Nothing,+      descriptiveText = Prelude.Nothing,+      isArray = Prelude.Nothing,+      maxValue = Prelude.Nothing,+      minValue = Prelude.Nothing,+      name = Prelude.Nothing,+      placeholder = Prelude.Nothing,+      readOnly = Prelude.Nothing,+      required = Prelude.Nothing,+      step = Prelude.Nothing,+      value = Prelude.Nothing,+      valueMappings = Prelude.Nothing,+      type' = pType_+    }++-- | Specifies whether a field has a default value.+fieldInputConfig_defaultChecked :: Lens.Lens' FieldInputConfig (Prelude.Maybe Prelude.Bool)+fieldInputConfig_defaultChecked = Lens.lens (\FieldInputConfig' {defaultChecked} -> defaultChecked) (\s@FieldInputConfig' {} a -> s {defaultChecked = a} :: FieldInputConfig)++-- | The default country code for a phone number.+fieldInputConfig_defaultCountryCode :: Lens.Lens' FieldInputConfig (Prelude.Maybe Prelude.Text)+fieldInputConfig_defaultCountryCode = Lens.lens (\FieldInputConfig' {defaultCountryCode} -> defaultCountryCode) (\s@FieldInputConfig' {} a -> s {defaultCountryCode = a} :: FieldInputConfig)++-- | The default value for the field.+fieldInputConfig_defaultValue :: Lens.Lens' FieldInputConfig (Prelude.Maybe Prelude.Text)+fieldInputConfig_defaultValue = Lens.lens (\FieldInputConfig' {defaultValue} -> defaultValue) (\s@FieldInputConfig' {} a -> s {defaultValue = a} :: FieldInputConfig)++-- | The text to display to describe the field.+fieldInputConfig_descriptiveText :: Lens.Lens' FieldInputConfig (Prelude.Maybe Prelude.Text)+fieldInputConfig_descriptiveText = Lens.lens (\FieldInputConfig' {descriptiveText} -> descriptiveText) (\s@FieldInputConfig' {} a -> s {descriptiveText = a} :: FieldInputConfig)++-- | Specifies whether to render the field as an array. This property is+-- ignored if the @dataSourceType@ for the form is a Data Store.+fieldInputConfig_isArray :: Lens.Lens' FieldInputConfig (Prelude.Maybe Prelude.Bool)+fieldInputConfig_isArray = Lens.lens (\FieldInputConfig' {isArray} -> isArray) (\s@FieldInputConfig' {} a -> s {isArray = a} :: FieldInputConfig)++-- | The maximum value to display for the field.+fieldInputConfig_maxValue :: Lens.Lens' FieldInputConfig (Prelude.Maybe Prelude.Double)+fieldInputConfig_maxValue = Lens.lens (\FieldInputConfig' {maxValue} -> maxValue) (\s@FieldInputConfig' {} a -> s {maxValue = a} :: FieldInputConfig)++-- | The minimum value to display for the field.+fieldInputConfig_minValue :: Lens.Lens' FieldInputConfig (Prelude.Maybe Prelude.Double)+fieldInputConfig_minValue = Lens.lens (\FieldInputConfig' {minValue} -> minValue) (\s@FieldInputConfig' {} a -> s {minValue = a} :: FieldInputConfig)++-- | The name of the field.+fieldInputConfig_name :: Lens.Lens' FieldInputConfig (Prelude.Maybe Prelude.Text)+fieldInputConfig_name = Lens.lens (\FieldInputConfig' {name} -> name) (\s@FieldInputConfig' {} a -> s {name = a} :: FieldInputConfig)++-- | The text to display as a placeholder for the field.+fieldInputConfig_placeholder :: Lens.Lens' FieldInputConfig (Prelude.Maybe Prelude.Text)+fieldInputConfig_placeholder = Lens.lens (\FieldInputConfig' {placeholder} -> placeholder) (\s@FieldInputConfig' {} a -> s {placeholder = a} :: FieldInputConfig)++-- | Specifies a read only field.+fieldInputConfig_readOnly :: Lens.Lens' FieldInputConfig (Prelude.Maybe Prelude.Bool)+fieldInputConfig_readOnly = Lens.lens (\FieldInputConfig' {readOnly} -> readOnly) (\s@FieldInputConfig' {} a -> s {readOnly = a} :: FieldInputConfig)++-- | Specifies a field that requires input.+fieldInputConfig_required :: Lens.Lens' FieldInputConfig (Prelude.Maybe Prelude.Bool)+fieldInputConfig_required = Lens.lens (\FieldInputConfig' {required} -> required) (\s@FieldInputConfig' {} a -> s {required = a} :: FieldInputConfig)++-- | The stepping increment for a numeric value in a field.+fieldInputConfig_step :: Lens.Lens' FieldInputConfig (Prelude.Maybe Prelude.Double)+fieldInputConfig_step = Lens.lens (\FieldInputConfig' {step} -> step) (\s@FieldInputConfig' {} a -> s {step = a} :: FieldInputConfig)++-- | The value for the field.+fieldInputConfig_value :: Lens.Lens' FieldInputConfig (Prelude.Maybe Prelude.Text)+fieldInputConfig_value = Lens.lens (\FieldInputConfig' {value} -> value) (\s@FieldInputConfig' {} a -> s {value = a} :: FieldInputConfig)++-- | The information to use to customize the input fields with data at+-- runtime.+fieldInputConfig_valueMappings :: Lens.Lens' FieldInputConfig (Prelude.Maybe ValueMappings)+fieldInputConfig_valueMappings = Lens.lens (\FieldInputConfig' {valueMappings} -> valueMappings) (\s@FieldInputConfig' {} a -> s {valueMappings = a} :: FieldInputConfig)++-- | The input type for the field.+fieldInputConfig_type :: Lens.Lens' FieldInputConfig Prelude.Text+fieldInputConfig_type = Lens.lens (\FieldInputConfig' {type'} -> type') (\s@FieldInputConfig' {} a -> s {type' = a} :: FieldInputConfig)++instance Data.FromJSON FieldInputConfig where+  parseJSON =+    Data.withObject+      "FieldInputConfig"+      ( \x ->+          FieldInputConfig'+            Prelude.<$> (x Data..:? "defaultChecked")+            Prelude.<*> (x Data..:? "defaultCountryCode")+            Prelude.<*> (x Data..:? "defaultValue")+            Prelude.<*> (x Data..:? "descriptiveText")+            Prelude.<*> (x Data..:? "isArray")+            Prelude.<*> (x Data..:? "maxValue")+            Prelude.<*> (x Data..:? "minValue")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "placeholder")+            Prelude.<*> (x Data..:? "readOnly")+            Prelude.<*> (x Data..:? "required")+            Prelude.<*> (x Data..:? "step")+            Prelude.<*> (x Data..:? "value")+            Prelude.<*> (x Data..:? "valueMappings")+            Prelude.<*> (x Data..: "type")+      )++instance Prelude.Hashable FieldInputConfig where+  hashWithSalt _salt FieldInputConfig' {..} =+    _salt+      `Prelude.hashWithSalt` defaultChecked+      `Prelude.hashWithSalt` defaultCountryCode+      `Prelude.hashWithSalt` defaultValue+      `Prelude.hashWithSalt` descriptiveText+      `Prelude.hashWithSalt` isArray+      `Prelude.hashWithSalt` maxValue+      `Prelude.hashWithSalt` minValue+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` placeholder+      `Prelude.hashWithSalt` readOnly+      `Prelude.hashWithSalt` required+      `Prelude.hashWithSalt` step+      `Prelude.hashWithSalt` value+      `Prelude.hashWithSalt` valueMappings+      `Prelude.hashWithSalt` type'++instance Prelude.NFData FieldInputConfig where+  rnf FieldInputConfig' {..} =+    Prelude.rnf defaultChecked+      `Prelude.seq` Prelude.rnf defaultCountryCode+      `Prelude.seq` Prelude.rnf defaultValue+      `Prelude.seq` Prelude.rnf descriptiveText+      `Prelude.seq` Prelude.rnf isArray+      `Prelude.seq` Prelude.rnf maxValue+      `Prelude.seq` Prelude.rnf minValue+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf placeholder+      `Prelude.seq` Prelude.rnf readOnly+      `Prelude.seq` Prelude.rnf required+      `Prelude.seq` Prelude.rnf step+      `Prelude.seq` Prelude.rnf value+      `Prelude.seq` Prelude.rnf valueMappings+      `Prelude.seq` Prelude.rnf type'++instance Data.ToJSON FieldInputConfig where+  toJSON FieldInputConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("defaultChecked" Data..=)+              Prelude.<$> defaultChecked,+            ("defaultCountryCode" Data..=)+              Prelude.<$> defaultCountryCode,+            ("defaultValue" Data..=) Prelude.<$> defaultValue,+            ("descriptiveText" Data..=)+              Prelude.<$> descriptiveText,+            ("isArray" Data..=) Prelude.<$> isArray,+            ("maxValue" Data..=) Prelude.<$> maxValue,+            ("minValue" Data..=) Prelude.<$> minValue,+            ("name" Data..=) Prelude.<$> name,+            ("placeholder" Data..=) Prelude.<$> placeholder,+            ("readOnly" Data..=) Prelude.<$> readOnly,+            ("required" Data..=) Prelude.<$> required,+            ("step" Data..=) Prelude.<$> step,+            ("value" Data..=) Prelude.<$> value,+            ("valueMappings" Data..=) Prelude.<$> valueMappings,+            Prelude.Just ("type" Data..= type')+          ]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/FieldPosition.hs view
@@ -0,0 +1,110 @@+{-# 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.AmplifyUiBuilder.Types.FieldPosition+-- 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.AmplifyUiBuilder.Types.FieldPosition where++import Amazonka.AmplifyUiBuilder.Types.FixedPosition+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 field position.+--+-- /See:/ 'newFieldPosition' smart constructor.+data FieldPosition = FieldPosition'+  { -- | The field position is below the field specified by the string.+    below :: Prelude.Maybe Prelude.Text,+    -- | The field position is fixed and doesn\'t change in relation to other+    -- fields.+    fixed :: Prelude.Maybe FixedPosition,+    -- | The field position is to the right of the field specified by the string.+    rightOf :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FieldPosition' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'below', 'fieldPosition_below' - The field position is below the field specified by the string.+--+-- 'fixed', 'fieldPosition_fixed' - The field position is fixed and doesn\'t change in relation to other+-- fields.+--+-- 'rightOf', 'fieldPosition_rightOf' - The field position is to the right of the field specified by the string.+newFieldPosition ::+  FieldPosition+newFieldPosition =+  FieldPosition'+    { below = Prelude.Nothing,+      fixed = Prelude.Nothing,+      rightOf = Prelude.Nothing+    }++-- | The field position is below the field specified by the string.+fieldPosition_below :: Lens.Lens' FieldPosition (Prelude.Maybe Prelude.Text)+fieldPosition_below = Lens.lens (\FieldPosition' {below} -> below) (\s@FieldPosition' {} a -> s {below = a} :: FieldPosition)++-- | The field position is fixed and doesn\'t change in relation to other+-- fields.+fieldPosition_fixed :: Lens.Lens' FieldPosition (Prelude.Maybe FixedPosition)+fieldPosition_fixed = Lens.lens (\FieldPosition' {fixed} -> fixed) (\s@FieldPosition' {} a -> s {fixed = a} :: FieldPosition)++-- | The field position is to the right of the field specified by the string.+fieldPosition_rightOf :: Lens.Lens' FieldPosition (Prelude.Maybe Prelude.Text)+fieldPosition_rightOf = Lens.lens (\FieldPosition' {rightOf} -> rightOf) (\s@FieldPosition' {} a -> s {rightOf = a} :: FieldPosition)++instance Data.FromJSON FieldPosition where+  parseJSON =+    Data.withObject+      "FieldPosition"+      ( \x ->+          FieldPosition'+            Prelude.<$> (x Data..:? "below")+            Prelude.<*> (x Data..:? "fixed")+            Prelude.<*> (x Data..:? "rightOf")+      )++instance Prelude.Hashable FieldPosition where+  hashWithSalt _salt FieldPosition' {..} =+    _salt+      `Prelude.hashWithSalt` below+      `Prelude.hashWithSalt` fixed+      `Prelude.hashWithSalt` rightOf++instance Prelude.NFData FieldPosition where+  rnf FieldPosition' {..} =+    Prelude.rnf below+      `Prelude.seq` Prelude.rnf fixed+      `Prelude.seq` Prelude.rnf rightOf++instance Data.ToJSON FieldPosition where+  toJSON FieldPosition' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("below" Data..=) Prelude.<$> below,+            ("fixed" Data..=) Prelude.<$> fixed,+            ("rightOf" Data..=) Prelude.<$> rightOf+          ]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/FieldValidationConfiguration.hs view
@@ -0,0 +1,126 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.AmplifyUiBuilder.Types.FieldValidationConfiguration+-- 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.AmplifyUiBuilder.Types.FieldValidationConfiguration 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 validation configuration for a field.+--+-- /See:/ 'newFieldValidationConfiguration' smart constructor.+data FieldValidationConfiguration = FieldValidationConfiguration'+  { -- | The validation to perform on a number value.+    numValues :: Prelude.Maybe [Prelude.Int],+    -- | The validation to perform on a string value.+    strValues :: Prelude.Maybe [Prelude.Text],+    -- | The validation message to display.+    validationMessage :: Prelude.Maybe Prelude.Text,+    -- | The validation to perform on an object type.+    type' :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FieldValidationConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'numValues', 'fieldValidationConfiguration_numValues' - The validation to perform on a number value.+--+-- 'strValues', 'fieldValidationConfiguration_strValues' - The validation to perform on a string value.+--+-- 'validationMessage', 'fieldValidationConfiguration_validationMessage' - The validation message to display.+--+-- 'type'', 'fieldValidationConfiguration_type' - The validation to perform on an object type.+newFieldValidationConfiguration ::+  -- | 'type''+  Prelude.Text ->+  FieldValidationConfiguration+newFieldValidationConfiguration pType_ =+  FieldValidationConfiguration'+    { numValues =+        Prelude.Nothing,+      strValues = Prelude.Nothing,+      validationMessage = Prelude.Nothing,+      type' = pType_+    }++-- | The validation to perform on a number value.+fieldValidationConfiguration_numValues :: Lens.Lens' FieldValidationConfiguration (Prelude.Maybe [Prelude.Int])+fieldValidationConfiguration_numValues = Lens.lens (\FieldValidationConfiguration' {numValues} -> numValues) (\s@FieldValidationConfiguration' {} a -> s {numValues = a} :: FieldValidationConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The validation to perform on a string value.+fieldValidationConfiguration_strValues :: Lens.Lens' FieldValidationConfiguration (Prelude.Maybe [Prelude.Text])+fieldValidationConfiguration_strValues = Lens.lens (\FieldValidationConfiguration' {strValues} -> strValues) (\s@FieldValidationConfiguration' {} a -> s {strValues = a} :: FieldValidationConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The validation message to display.+fieldValidationConfiguration_validationMessage :: Lens.Lens' FieldValidationConfiguration (Prelude.Maybe Prelude.Text)+fieldValidationConfiguration_validationMessage = Lens.lens (\FieldValidationConfiguration' {validationMessage} -> validationMessage) (\s@FieldValidationConfiguration' {} a -> s {validationMessage = a} :: FieldValidationConfiguration)++-- | The validation to perform on an object type.+fieldValidationConfiguration_type :: Lens.Lens' FieldValidationConfiguration Prelude.Text+fieldValidationConfiguration_type = Lens.lens (\FieldValidationConfiguration' {type'} -> type') (\s@FieldValidationConfiguration' {} a -> s {type' = a} :: FieldValidationConfiguration)++instance Data.FromJSON FieldValidationConfiguration where+  parseJSON =+    Data.withObject+      "FieldValidationConfiguration"+      ( \x ->+          FieldValidationConfiguration'+            Prelude.<$> (x Data..:? "numValues" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "strValues" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "validationMessage")+            Prelude.<*> (x Data..: "type")+      )++instance+  Prelude.Hashable+    FieldValidationConfiguration+  where+  hashWithSalt _salt FieldValidationConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` numValues+      `Prelude.hashWithSalt` strValues+      `Prelude.hashWithSalt` validationMessage+      `Prelude.hashWithSalt` type'++instance Prelude.NFData FieldValidationConfiguration where+  rnf FieldValidationConfiguration' {..} =+    Prelude.rnf numValues+      `Prelude.seq` Prelude.rnf strValues+      `Prelude.seq` Prelude.rnf validationMessage+      `Prelude.seq` Prelude.rnf type'++instance Data.ToJSON FieldValidationConfiguration where+  toJSON FieldValidationConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("numValues" Data..=) Prelude.<$> numValues,+            ("strValues" Data..=) Prelude.<$> strValues,+            ("validationMessage" Data..=)+              Prelude.<$> validationMessage,+            Prelude.Just ("type" Data..= type')+          ]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/FixedPosition.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.AmplifyUiBuilder.Types.FixedPosition+-- 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.AmplifyUiBuilder.Types.FixedPosition+  ( FixedPosition+      ( ..,+        FixedPosition_First+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype FixedPosition = FixedPosition'+  { fromFixedPosition ::+      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 FixedPosition_First :: FixedPosition+pattern FixedPosition_First = FixedPosition' "first"++{-# COMPLETE+  FixedPosition_First,+  FixedPosition'+  #-}
+ gen/Amazonka/AmplifyUiBuilder/Types/Form.hs view
@@ -0,0 +1,243 @@+{-# 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.AmplifyUiBuilder.Types.Form+-- 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.AmplifyUiBuilder.Types.Form where++import Amazonka.AmplifyUiBuilder.Types.FieldConfig+import Amazonka.AmplifyUiBuilder.Types.FormActionType+import Amazonka.AmplifyUiBuilder.Types.FormCTA+import Amazonka.AmplifyUiBuilder.Types.FormDataTypeConfig+import Amazonka.AmplifyUiBuilder.Types.FormStyle+import Amazonka.AmplifyUiBuilder.Types.SectionalElement+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++-- | Contains the configuration settings for a @Form@ user interface (UI)+-- element for an Amplify app. A form is a component you can add to your+-- project by specifying a data source as the default configuration for the+-- form.+--+-- /See:/ 'newForm' smart constructor.+data Form = Form'+  { -- | Stores the call to action configuration for the form.+    cta :: Prelude.Maybe FormCTA,+    -- | One or more key-value pairs to use when tagging the form.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The unique ID of the Amplify app associated with the form.+    appId :: Prelude.Text,+    -- | The type of data source to use to create the form.+    dataType :: FormDataTypeConfig,+    -- | The name of the backend environment that is a part of the Amplify app.+    environmentName :: Prelude.Text,+    -- | Stores the information about the form\'s fields.+    fields :: Prelude.HashMap Prelude.Text FieldConfig,+    -- | The operation to perform on the specified form.+    formActionType :: FormActionType,+    -- | The unique ID of the form.+    id :: Prelude.Text,+    -- | The name of the form.+    name :: Prelude.Text,+    -- | The schema version of the form when it was imported.+    schemaVersion :: Prelude.Text,+    -- | Stores the visual helper elements for the form that are not associated+    -- with any data.+    sectionalElements :: Prelude.HashMap Prelude.Text SectionalElement,+    -- | Stores the configuration for the form\'s style.+    style :: FormStyle+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Form' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cta', 'form_cta' - Stores the call to action configuration for the form.+--+-- 'tags', 'form_tags' - One or more key-value pairs to use when tagging the form.+--+-- 'appId', 'form_appId' - The unique ID of the Amplify app associated with the form.+--+-- 'dataType', 'form_dataType' - The type of data source to use to create the form.+--+-- 'environmentName', 'form_environmentName' - The name of the backend environment that is a part of the Amplify app.+--+-- 'fields', 'form_fields' - Stores the information about the form\'s fields.+--+-- 'formActionType', 'form_formActionType' - The operation to perform on the specified form.+--+-- 'id', 'form_id' - The unique ID of the form.+--+-- 'name', 'form_name' - The name of the form.+--+-- 'schemaVersion', 'form_schemaVersion' - The schema version of the form when it was imported.+--+-- 'sectionalElements', 'form_sectionalElements' - Stores the visual helper elements for the form that are not associated+-- with any data.+--+-- 'style', 'form_style' - Stores the configuration for the form\'s style.+newForm ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'dataType'+  FormDataTypeConfig ->+  -- | 'environmentName'+  Prelude.Text ->+  -- | 'formActionType'+  FormActionType ->+  -- | 'id'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  -- | 'schemaVersion'+  Prelude.Text ->+  -- | 'style'+  FormStyle ->+  Form+newForm+  pAppId_+  pDataType_+  pEnvironmentName_+  pFormActionType_+  pId_+  pName_+  pSchemaVersion_+  pStyle_ =+    Form'+      { cta = Prelude.Nothing,+        tags = Prelude.Nothing,+        appId = pAppId_,+        dataType = pDataType_,+        environmentName = pEnvironmentName_,+        fields = Prelude.mempty,+        formActionType = pFormActionType_,+        id = pId_,+        name = pName_,+        schemaVersion = pSchemaVersion_,+        sectionalElements = Prelude.mempty,+        style = pStyle_+      }++-- | Stores the call to action configuration for the form.+form_cta :: Lens.Lens' Form (Prelude.Maybe FormCTA)+form_cta = Lens.lens (\Form' {cta} -> cta) (\s@Form' {} a -> s {cta = a} :: Form)++-- | One or more key-value pairs to use when tagging the form.+form_tags :: Lens.Lens' Form (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+form_tags = Lens.lens (\Form' {tags} -> tags) (\s@Form' {} a -> s {tags = a} :: Form) Prelude.. Lens.mapping Lens.coerced++-- | The unique ID of the Amplify app associated with the form.+form_appId :: Lens.Lens' Form Prelude.Text+form_appId = Lens.lens (\Form' {appId} -> appId) (\s@Form' {} a -> s {appId = a} :: Form)++-- | The type of data source to use to create the form.+form_dataType :: Lens.Lens' Form FormDataTypeConfig+form_dataType = Lens.lens (\Form' {dataType} -> dataType) (\s@Form' {} a -> s {dataType = a} :: Form)++-- | The name of the backend environment that is a part of the Amplify app.+form_environmentName :: Lens.Lens' Form Prelude.Text+form_environmentName = Lens.lens (\Form' {environmentName} -> environmentName) (\s@Form' {} a -> s {environmentName = a} :: Form)++-- | Stores the information about the form\'s fields.+form_fields :: Lens.Lens' Form (Prelude.HashMap Prelude.Text FieldConfig)+form_fields = Lens.lens (\Form' {fields} -> fields) (\s@Form' {} a -> s {fields = a} :: Form) Prelude.. Lens.coerced++-- | The operation to perform on the specified form.+form_formActionType :: Lens.Lens' Form FormActionType+form_formActionType = Lens.lens (\Form' {formActionType} -> formActionType) (\s@Form' {} a -> s {formActionType = a} :: Form)++-- | The unique ID of the form.+form_id :: Lens.Lens' Form Prelude.Text+form_id = Lens.lens (\Form' {id} -> id) (\s@Form' {} a -> s {id = a} :: Form)++-- | The name of the form.+form_name :: Lens.Lens' Form Prelude.Text+form_name = Lens.lens (\Form' {name} -> name) (\s@Form' {} a -> s {name = a} :: Form)++-- | The schema version of the form when it was imported.+form_schemaVersion :: Lens.Lens' Form Prelude.Text+form_schemaVersion = Lens.lens (\Form' {schemaVersion} -> schemaVersion) (\s@Form' {} a -> s {schemaVersion = a} :: Form)++-- | Stores the visual helper elements for the form that are not associated+-- with any data.+form_sectionalElements :: Lens.Lens' Form (Prelude.HashMap Prelude.Text SectionalElement)+form_sectionalElements = Lens.lens (\Form' {sectionalElements} -> sectionalElements) (\s@Form' {} a -> s {sectionalElements = a} :: Form) Prelude.. Lens.coerced++-- | Stores the configuration for the form\'s style.+form_style :: Lens.Lens' Form FormStyle+form_style = Lens.lens (\Form' {style} -> style) (\s@Form' {} a -> s {style = a} :: Form)++instance Data.FromJSON Form where+  parseJSON =+    Data.withObject+      "Form"+      ( \x ->+          Form'+            Prelude.<$> (x Data..:? "cta")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "appId")+            Prelude.<*> (x Data..: "dataType")+            Prelude.<*> (x Data..: "environmentName")+            Prelude.<*> (x Data..:? "fields" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "formActionType")+            Prelude.<*> (x Data..: "id")+            Prelude.<*> (x Data..: "name")+            Prelude.<*> (x Data..: "schemaVersion")+            Prelude.<*> ( x+                            Data..:? "sectionalElements"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..: "style")+      )++instance Prelude.Hashable Form where+  hashWithSalt _salt Form' {..} =+    _salt+      `Prelude.hashWithSalt` cta+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` dataType+      `Prelude.hashWithSalt` environmentName+      `Prelude.hashWithSalt` fields+      `Prelude.hashWithSalt` formActionType+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` schemaVersion+      `Prelude.hashWithSalt` sectionalElements+      `Prelude.hashWithSalt` style++instance Prelude.NFData Form where+  rnf Form' {..} =+    Prelude.rnf cta+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf appId+      `Prelude.seq` Prelude.rnf dataType+      `Prelude.seq` Prelude.rnf environmentName+      `Prelude.seq` Prelude.rnf fields+      `Prelude.seq` Prelude.rnf formActionType+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf schemaVersion+      `Prelude.seq` Prelude.rnf sectionalElements+      `Prelude.seq` Prelude.rnf style
+ gen/Amazonka/AmplifyUiBuilder/Types/FormActionType.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.AmplifyUiBuilder.Types.FormActionType+-- 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.AmplifyUiBuilder.Types.FormActionType+  ( FormActionType+      ( ..,+        FormActionType_Create,+        FormActionType_Update+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype FormActionType = FormActionType'+  { fromFormActionType ::+      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 FormActionType_Create :: FormActionType+pattern FormActionType_Create = FormActionType' "create"++pattern FormActionType_Update :: FormActionType+pattern FormActionType_Update = FormActionType' "update"++{-# COMPLETE+  FormActionType_Create,+  FormActionType_Update,+  FormActionType'+  #-}
+ gen/Amazonka/AmplifyUiBuilder/Types/FormBindingElement.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.AmplifyUiBuilder.Types.FormBindingElement+-- 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.AmplifyUiBuilder.Types.FormBindingElement 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 how to bind a component property to form data.+--+-- /See:/ 'newFormBindingElement' smart constructor.+data FormBindingElement = FormBindingElement'+  { -- | The name of the component to retrieve a value from.+    element :: Prelude.Text,+    -- | The property to retrieve a value from.+    property :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FormBindingElement' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'element', 'formBindingElement_element' - The name of the component to retrieve a value from.+--+-- 'property', 'formBindingElement_property' - The property to retrieve a value from.+newFormBindingElement ::+  -- | 'element'+  Prelude.Text ->+  -- | 'property'+  Prelude.Text ->+  FormBindingElement+newFormBindingElement pElement_ pProperty_ =+  FormBindingElement'+    { element = pElement_,+      property = pProperty_+    }++-- | The name of the component to retrieve a value from.+formBindingElement_element :: Lens.Lens' FormBindingElement Prelude.Text+formBindingElement_element = Lens.lens (\FormBindingElement' {element} -> element) (\s@FormBindingElement' {} a -> s {element = a} :: FormBindingElement)++-- | The property to retrieve a value from.+formBindingElement_property :: Lens.Lens' FormBindingElement Prelude.Text+formBindingElement_property = Lens.lens (\FormBindingElement' {property} -> property) (\s@FormBindingElement' {} a -> s {property = a} :: FormBindingElement)++instance Data.FromJSON FormBindingElement where+  parseJSON =+    Data.withObject+      "FormBindingElement"+      ( \x ->+          FormBindingElement'+            Prelude.<$> (x Data..: "element")+            Prelude.<*> (x Data..: "property")+      )++instance Prelude.Hashable FormBindingElement where+  hashWithSalt _salt FormBindingElement' {..} =+    _salt+      `Prelude.hashWithSalt` element+      `Prelude.hashWithSalt` property++instance Prelude.NFData FormBindingElement where+  rnf FormBindingElement' {..} =+    Prelude.rnf element+      `Prelude.seq` Prelude.rnf property++instance Data.ToJSON FormBindingElement where+  toJSON FormBindingElement' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("element" Data..= element),+            Prelude.Just ("property" Data..= property)+          ]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/FormButton.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.AmplifyUiBuilder.Types.FormButton+-- 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.AmplifyUiBuilder.Types.FormButton where++import Amazonka.AmplifyUiBuilder.Types.FieldPosition+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 configuration for a button UI element that is a part of a+-- form.+--+-- /See:/ 'newFormButton' smart constructor.+data FormButton = FormButton'+  { -- | Describes the button\'s properties.+    children :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether the button is visible on the form.+    excluded :: Prelude.Maybe Prelude.Bool,+    -- | The position of the button.+    position :: Prelude.Maybe FieldPosition+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FormButton' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'children', 'formButton_children' - Describes the button\'s properties.+--+-- 'excluded', 'formButton_excluded' - Specifies whether the button is visible on the form.+--+-- 'position', 'formButton_position' - The position of the button.+newFormButton ::+  FormButton+newFormButton =+  FormButton'+    { children = Prelude.Nothing,+      excluded = Prelude.Nothing,+      position = Prelude.Nothing+    }++-- | Describes the button\'s properties.+formButton_children :: Lens.Lens' FormButton (Prelude.Maybe Prelude.Text)+formButton_children = Lens.lens (\FormButton' {children} -> children) (\s@FormButton' {} a -> s {children = a} :: FormButton)++-- | Specifies whether the button is visible on the form.+formButton_excluded :: Lens.Lens' FormButton (Prelude.Maybe Prelude.Bool)+formButton_excluded = Lens.lens (\FormButton' {excluded} -> excluded) (\s@FormButton' {} a -> s {excluded = a} :: FormButton)++-- | The position of the button.+formButton_position :: Lens.Lens' FormButton (Prelude.Maybe FieldPosition)+formButton_position = Lens.lens (\FormButton' {position} -> position) (\s@FormButton' {} a -> s {position = a} :: FormButton)++instance Data.FromJSON FormButton where+  parseJSON =+    Data.withObject+      "FormButton"+      ( \x ->+          FormButton'+            Prelude.<$> (x Data..:? "children")+            Prelude.<*> (x Data..:? "excluded")+            Prelude.<*> (x Data..:? "position")+      )++instance Prelude.Hashable FormButton where+  hashWithSalt _salt FormButton' {..} =+    _salt+      `Prelude.hashWithSalt` children+      `Prelude.hashWithSalt` excluded+      `Prelude.hashWithSalt` position++instance Prelude.NFData FormButton where+  rnf FormButton' {..} =+    Prelude.rnf children+      `Prelude.seq` Prelude.rnf excluded+      `Prelude.seq` Prelude.rnf position++instance Data.ToJSON FormButton where+  toJSON FormButton' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("children" Data..=) Prelude.<$> children,+            ("excluded" Data..=) Prelude.<$> excluded,+            ("position" Data..=) Prelude.<$> position+          ]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/FormButtonsPosition.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.AmplifyUiBuilder.Types.FormButtonsPosition+-- 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.AmplifyUiBuilder.Types.FormButtonsPosition+  ( FormButtonsPosition+      ( ..,+        FormButtonsPosition_Bottom,+        FormButtonsPosition_Top,+        FormButtonsPosition_Top_and_bottom+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype FormButtonsPosition = FormButtonsPosition'+  { fromFormButtonsPosition ::+      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 FormButtonsPosition_Bottom :: FormButtonsPosition+pattern FormButtonsPosition_Bottom = FormButtonsPosition' "bottom"++pattern FormButtonsPosition_Top :: FormButtonsPosition+pattern FormButtonsPosition_Top = FormButtonsPosition' "top"++pattern FormButtonsPosition_Top_and_bottom :: FormButtonsPosition+pattern FormButtonsPosition_Top_and_bottom = FormButtonsPosition' "top_and_bottom"++{-# COMPLETE+  FormButtonsPosition_Bottom,+  FormButtonsPosition_Top,+  FormButtonsPosition_Top_and_bottom,+  FormButtonsPosition'+  #-}
+ gen/Amazonka/AmplifyUiBuilder/Types/FormCTA.hs view
@@ -0,0 +1,121 @@+{-# 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.AmplifyUiBuilder.Types.FormCTA+-- 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.AmplifyUiBuilder.Types.FormCTA where++import Amazonka.AmplifyUiBuilder.Types.FormButton+import Amazonka.AmplifyUiBuilder.Types.FormButtonsPosition+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 call to action button configuration for the form.+--+-- /See:/ 'newFormCTA' smart constructor.+data FormCTA = FormCTA'+  { -- | Displays a cancel button.+    cancel :: Prelude.Maybe FormButton,+    -- | Displays a clear button.+    clear :: Prelude.Maybe FormButton,+    -- | The position of the button.+    position :: Prelude.Maybe FormButtonsPosition,+    -- | Displays a submit button.+    submit :: Prelude.Maybe FormButton+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FormCTA' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cancel', 'formCTA_cancel' - Displays a cancel button.+--+-- 'clear', 'formCTA_clear' - Displays a clear button.+--+-- 'position', 'formCTA_position' - The position of the button.+--+-- 'submit', 'formCTA_submit' - Displays a submit button.+newFormCTA ::+  FormCTA+newFormCTA =+  FormCTA'+    { cancel = Prelude.Nothing,+      clear = Prelude.Nothing,+      position = Prelude.Nothing,+      submit = Prelude.Nothing+    }++-- | Displays a cancel button.+formCTA_cancel :: Lens.Lens' FormCTA (Prelude.Maybe FormButton)+formCTA_cancel = Lens.lens (\FormCTA' {cancel} -> cancel) (\s@FormCTA' {} a -> s {cancel = a} :: FormCTA)++-- | Displays a clear button.+formCTA_clear :: Lens.Lens' FormCTA (Prelude.Maybe FormButton)+formCTA_clear = Lens.lens (\FormCTA' {clear} -> clear) (\s@FormCTA' {} a -> s {clear = a} :: FormCTA)++-- | The position of the button.+formCTA_position :: Lens.Lens' FormCTA (Prelude.Maybe FormButtonsPosition)+formCTA_position = Lens.lens (\FormCTA' {position} -> position) (\s@FormCTA' {} a -> s {position = a} :: FormCTA)++-- | Displays a submit button.+formCTA_submit :: Lens.Lens' FormCTA (Prelude.Maybe FormButton)+formCTA_submit = Lens.lens (\FormCTA' {submit} -> submit) (\s@FormCTA' {} a -> s {submit = a} :: FormCTA)++instance Data.FromJSON FormCTA where+  parseJSON =+    Data.withObject+      "FormCTA"+      ( \x ->+          FormCTA'+            Prelude.<$> (x Data..:? "cancel")+            Prelude.<*> (x Data..:? "clear")+            Prelude.<*> (x Data..:? "position")+            Prelude.<*> (x Data..:? "submit")+      )++instance Prelude.Hashable FormCTA where+  hashWithSalt _salt FormCTA' {..} =+    _salt+      `Prelude.hashWithSalt` cancel+      `Prelude.hashWithSalt` clear+      `Prelude.hashWithSalt` position+      `Prelude.hashWithSalt` submit++instance Prelude.NFData FormCTA where+  rnf FormCTA' {..} =+    Prelude.rnf cancel+      `Prelude.seq` Prelude.rnf clear+      `Prelude.seq` Prelude.rnf position+      `Prelude.seq` Prelude.rnf submit++instance Data.ToJSON FormCTA where+  toJSON FormCTA' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("cancel" Data..=) Prelude.<$> cancel,+            ("clear" Data..=) Prelude.<$> clear,+            ("position" Data..=) Prelude.<$> position,+            ("submit" Data..=) Prelude.<$> submit+          ]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/FormDataSourceType.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.AmplifyUiBuilder.Types.FormDataSourceType+-- 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.AmplifyUiBuilder.Types.FormDataSourceType+  ( FormDataSourceType+      ( ..,+        FormDataSourceType_Custom,+        FormDataSourceType_DataStore+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype FormDataSourceType = FormDataSourceType'+  { fromFormDataSourceType ::+      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 FormDataSourceType_Custom :: FormDataSourceType+pattern FormDataSourceType_Custom = FormDataSourceType' "Custom"++pattern FormDataSourceType_DataStore :: FormDataSourceType+pattern FormDataSourceType_DataStore = FormDataSourceType' "DataStore"++{-# COMPLETE+  FormDataSourceType_Custom,+  FormDataSourceType_DataStore,+  FormDataSourceType'+  #-}
+ gen/Amazonka/AmplifyUiBuilder/Types/FormDataTypeConfig.hs view
@@ -0,0 +1,107 @@+{-# 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.AmplifyUiBuilder.Types.FormDataTypeConfig+-- 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.AmplifyUiBuilder.Types.FormDataTypeConfig where++import Amazonka.AmplifyUiBuilder.Types.FormDataSourceType+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 data type configuration for the data source associated+-- with a form.+--+-- /See:/ 'newFormDataTypeConfig' smart constructor.+data FormDataTypeConfig = FormDataTypeConfig'+  { -- | The data source type, either an Amplify DataStore model or a custom data+    -- type.+    dataSourceType :: FormDataSourceType,+    -- | The unique name of the data type you are using as the data source for+    -- the form.+    dataTypeName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FormDataTypeConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataSourceType', 'formDataTypeConfig_dataSourceType' - The data source type, either an Amplify DataStore model or a custom data+-- type.+--+-- 'dataTypeName', 'formDataTypeConfig_dataTypeName' - The unique name of the data type you are using as the data source for+-- the form.+newFormDataTypeConfig ::+  -- | 'dataSourceType'+  FormDataSourceType ->+  -- | 'dataTypeName'+  Prelude.Text ->+  FormDataTypeConfig+newFormDataTypeConfig pDataSourceType_ pDataTypeName_ =+  FormDataTypeConfig'+    { dataSourceType =+        pDataSourceType_,+      dataTypeName = pDataTypeName_+    }++-- | The data source type, either an Amplify DataStore model or a custom data+-- type.+formDataTypeConfig_dataSourceType :: Lens.Lens' FormDataTypeConfig FormDataSourceType+formDataTypeConfig_dataSourceType = Lens.lens (\FormDataTypeConfig' {dataSourceType} -> dataSourceType) (\s@FormDataTypeConfig' {} a -> s {dataSourceType = a} :: FormDataTypeConfig)++-- | The unique name of the data type you are using as the data source for+-- the form.+formDataTypeConfig_dataTypeName :: Lens.Lens' FormDataTypeConfig Prelude.Text+formDataTypeConfig_dataTypeName = Lens.lens (\FormDataTypeConfig' {dataTypeName} -> dataTypeName) (\s@FormDataTypeConfig' {} a -> s {dataTypeName = a} :: FormDataTypeConfig)++instance Data.FromJSON FormDataTypeConfig where+  parseJSON =+    Data.withObject+      "FormDataTypeConfig"+      ( \x ->+          FormDataTypeConfig'+            Prelude.<$> (x Data..: "dataSourceType")+            Prelude.<*> (x Data..: "dataTypeName")+      )++instance Prelude.Hashable FormDataTypeConfig where+  hashWithSalt _salt FormDataTypeConfig' {..} =+    _salt+      `Prelude.hashWithSalt` dataSourceType+      `Prelude.hashWithSalt` dataTypeName++instance Prelude.NFData FormDataTypeConfig where+  rnf FormDataTypeConfig' {..} =+    Prelude.rnf dataSourceType+      `Prelude.seq` Prelude.rnf dataTypeName++instance Data.ToJSON FormDataTypeConfig where+  toJSON FormDataTypeConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("dataSourceType" Data..= dataSourceType),+            Prelude.Just ("dataTypeName" Data..= dataTypeName)+          ]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/FormInputValueProperty.hs view
@@ -0,0 +1,77 @@+{-# 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.AmplifyUiBuilder.Types.FormInputValueProperty+-- 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.AmplifyUiBuilder.Types.FormInputValueProperty 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 configuration for an input field on a form. Use+-- @FormInputValueProperty@ to specify the values to render or bind by+-- default.+--+-- /See:/ 'newFormInputValueProperty' smart constructor.+data FormInputValueProperty = FormInputValueProperty'+  { -- | The value to assign to the input field.+    value :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FormInputValueProperty' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'value', 'formInputValueProperty_value' - The value to assign to the input field.+newFormInputValueProperty ::+  FormInputValueProperty+newFormInputValueProperty =+  FormInputValueProperty' {value = Prelude.Nothing}++-- | The value to assign to the input field.+formInputValueProperty_value :: Lens.Lens' FormInputValueProperty (Prelude.Maybe Prelude.Text)+formInputValueProperty_value = Lens.lens (\FormInputValueProperty' {value} -> value) (\s@FormInputValueProperty' {} a -> s {value = a} :: FormInputValueProperty)++instance Data.FromJSON FormInputValueProperty where+  parseJSON =+    Data.withObject+      "FormInputValueProperty"+      ( \x ->+          FormInputValueProperty'+            Prelude.<$> (x Data..:? "value")+      )++instance Prelude.Hashable FormInputValueProperty where+  hashWithSalt _salt FormInputValueProperty' {..} =+    _salt `Prelude.hashWithSalt` value++instance Prelude.NFData FormInputValueProperty where+  rnf FormInputValueProperty' {..} = Prelude.rnf value++instance Data.ToJSON FormInputValueProperty where+  toJSON FormInputValueProperty' {..} =+    Data.object+      ( Prelude.catMaybes+          [("value" Data..=) Prelude.<$> value]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/FormStyle.hs view
@@ -0,0 +1,107 @@+{-# 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.AmplifyUiBuilder.Types.FormStyle+-- 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.AmplifyUiBuilder.Types.FormStyle where++import Amazonka.AmplifyUiBuilder.Types.FormStyleConfig+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 configuration for the form\'s style.+--+-- /See:/ 'newFormStyle' smart constructor.+data FormStyle = FormStyle'+  { -- | The spacing for the horizontal gap.+    horizontalGap :: Prelude.Maybe FormStyleConfig,+    -- | The size of the outer padding for the form.+    outerPadding :: Prelude.Maybe FormStyleConfig,+    -- | The spacing for the vertical gap.+    verticalGap :: Prelude.Maybe FormStyleConfig+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FormStyle' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'horizontalGap', 'formStyle_horizontalGap' - The spacing for the horizontal gap.+--+-- 'outerPadding', 'formStyle_outerPadding' - The size of the outer padding for the form.+--+-- 'verticalGap', 'formStyle_verticalGap' - The spacing for the vertical gap.+newFormStyle ::+  FormStyle+newFormStyle =+  FormStyle'+    { horizontalGap = Prelude.Nothing,+      outerPadding = Prelude.Nothing,+      verticalGap = Prelude.Nothing+    }++-- | The spacing for the horizontal gap.+formStyle_horizontalGap :: Lens.Lens' FormStyle (Prelude.Maybe FormStyleConfig)+formStyle_horizontalGap = Lens.lens (\FormStyle' {horizontalGap} -> horizontalGap) (\s@FormStyle' {} a -> s {horizontalGap = a} :: FormStyle)++-- | The size of the outer padding for the form.+formStyle_outerPadding :: Lens.Lens' FormStyle (Prelude.Maybe FormStyleConfig)+formStyle_outerPadding = Lens.lens (\FormStyle' {outerPadding} -> outerPadding) (\s@FormStyle' {} a -> s {outerPadding = a} :: FormStyle)++-- | The spacing for the vertical gap.+formStyle_verticalGap :: Lens.Lens' FormStyle (Prelude.Maybe FormStyleConfig)+formStyle_verticalGap = Lens.lens (\FormStyle' {verticalGap} -> verticalGap) (\s@FormStyle' {} a -> s {verticalGap = a} :: FormStyle)++instance Data.FromJSON FormStyle where+  parseJSON =+    Data.withObject+      "FormStyle"+      ( \x ->+          FormStyle'+            Prelude.<$> (x Data..:? "horizontalGap")+            Prelude.<*> (x Data..:? "outerPadding")+            Prelude.<*> (x Data..:? "verticalGap")+      )++instance Prelude.Hashable FormStyle where+  hashWithSalt _salt FormStyle' {..} =+    _salt+      `Prelude.hashWithSalt` horizontalGap+      `Prelude.hashWithSalt` outerPadding+      `Prelude.hashWithSalt` verticalGap++instance Prelude.NFData FormStyle where+  rnf FormStyle' {..} =+    Prelude.rnf horizontalGap+      `Prelude.seq` Prelude.rnf outerPadding+      `Prelude.seq` Prelude.rnf verticalGap++instance Data.ToJSON FormStyle where+  toJSON FormStyle' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("horizontalGap" Data..=) Prelude.<$> horizontalGap,+            ("outerPadding" Data..=) Prelude.<$> outerPadding,+            ("verticalGap" Data..=) Prelude.<$> verticalGap+          ]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/FormStyleConfig.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.AmplifyUiBuilder.Types.FormStyleConfig+-- 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.AmplifyUiBuilder.Types.FormStyleConfig 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 configuration settings for the form\'s style properties.+--+-- /See:/ 'newFormStyleConfig' smart constructor.+data FormStyleConfig = FormStyleConfig'+  { -- | A reference to a design token to use to bind the form\'s style+    -- properties to an existing theme.+    tokenReference :: Prelude.Maybe Prelude.Text,+    -- | The value of the style setting.+    value :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FormStyleConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tokenReference', 'formStyleConfig_tokenReference' - A reference to a design token to use to bind the form\'s style+-- properties to an existing theme.+--+-- 'value', 'formStyleConfig_value' - The value of the style setting.+newFormStyleConfig ::+  FormStyleConfig+newFormStyleConfig =+  FormStyleConfig'+    { tokenReference = Prelude.Nothing,+      value = Prelude.Nothing+    }++-- | A reference to a design token to use to bind the form\'s style+-- properties to an existing theme.+formStyleConfig_tokenReference :: Lens.Lens' FormStyleConfig (Prelude.Maybe Prelude.Text)+formStyleConfig_tokenReference = Lens.lens (\FormStyleConfig' {tokenReference} -> tokenReference) (\s@FormStyleConfig' {} a -> s {tokenReference = a} :: FormStyleConfig)++-- | The value of the style setting.+formStyleConfig_value :: Lens.Lens' FormStyleConfig (Prelude.Maybe Prelude.Text)+formStyleConfig_value = Lens.lens (\FormStyleConfig' {value} -> value) (\s@FormStyleConfig' {} a -> s {value = a} :: FormStyleConfig)++instance Data.FromJSON FormStyleConfig where+  parseJSON =+    Data.withObject+      "FormStyleConfig"+      ( \x ->+          FormStyleConfig'+            Prelude.<$> (x Data..:? "tokenReference")+            Prelude.<*> (x Data..:? "value")+      )++instance Prelude.Hashable FormStyleConfig where+  hashWithSalt _salt FormStyleConfig' {..} =+    _salt+      `Prelude.hashWithSalt` tokenReference+      `Prelude.hashWithSalt` value++instance Prelude.NFData FormStyleConfig where+  rnf FormStyleConfig' {..} =+    Prelude.rnf tokenReference+      `Prelude.seq` Prelude.rnf value++instance Data.ToJSON FormStyleConfig where+  toJSON FormStyleConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("tokenReference" Data..=)+              Prelude.<$> tokenReference,+            ("value" Data..=) Prelude.<$> value+          ]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/FormSummary.hs view
@@ -0,0 +1,152 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.AmplifyUiBuilder.Types.FormSummary+-- 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.AmplifyUiBuilder.Types.FormSummary where++import Amazonka.AmplifyUiBuilder.Types.FormActionType+import Amazonka.AmplifyUiBuilder.Types.FormDataTypeConfig+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 basic information about a form.+--+-- /See:/ 'newFormSummary' smart constructor.+data FormSummary = FormSummary'+  { -- | The unique ID for the app associated with the form summary.+    appId :: Prelude.Text,+    -- | The form\'s data source type.+    dataType :: FormDataTypeConfig,+    -- | The name of the backend environment that is part of the Amplify app.+    environmentName :: Prelude.Text,+    -- | The type of operation to perform on the form.+    formActionType :: FormActionType,+    -- | The ID of the form.+    id :: Prelude.Text,+    -- | The name of the form.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FormSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'formSummary_appId' - The unique ID for the app associated with the form summary.+--+-- 'dataType', 'formSummary_dataType' - The form\'s data source type.+--+-- 'environmentName', 'formSummary_environmentName' - The name of the backend environment that is part of the Amplify app.+--+-- 'formActionType', 'formSummary_formActionType' - The type of operation to perform on the form.+--+-- 'id', 'formSummary_id' - The ID of the form.+--+-- 'name', 'formSummary_name' - The name of the form.+newFormSummary ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'dataType'+  FormDataTypeConfig ->+  -- | 'environmentName'+  Prelude.Text ->+  -- | 'formActionType'+  FormActionType ->+  -- | 'id'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  FormSummary+newFormSummary+  pAppId_+  pDataType_+  pEnvironmentName_+  pFormActionType_+  pId_+  pName_ =+    FormSummary'+      { appId = pAppId_,+        dataType = pDataType_,+        environmentName = pEnvironmentName_,+        formActionType = pFormActionType_,+        id = pId_,+        name = pName_+      }++-- | The unique ID for the app associated with the form summary.+formSummary_appId :: Lens.Lens' FormSummary Prelude.Text+formSummary_appId = Lens.lens (\FormSummary' {appId} -> appId) (\s@FormSummary' {} a -> s {appId = a} :: FormSummary)++-- | The form\'s data source type.+formSummary_dataType :: Lens.Lens' FormSummary FormDataTypeConfig+formSummary_dataType = Lens.lens (\FormSummary' {dataType} -> dataType) (\s@FormSummary' {} a -> s {dataType = a} :: FormSummary)++-- | The name of the backend environment that is part of the Amplify app.+formSummary_environmentName :: Lens.Lens' FormSummary Prelude.Text+formSummary_environmentName = Lens.lens (\FormSummary' {environmentName} -> environmentName) (\s@FormSummary' {} a -> s {environmentName = a} :: FormSummary)++-- | The type of operation to perform on the form.+formSummary_formActionType :: Lens.Lens' FormSummary FormActionType+formSummary_formActionType = Lens.lens (\FormSummary' {formActionType} -> formActionType) (\s@FormSummary' {} a -> s {formActionType = a} :: FormSummary)++-- | The ID of the form.+formSummary_id :: Lens.Lens' FormSummary Prelude.Text+formSummary_id = Lens.lens (\FormSummary' {id} -> id) (\s@FormSummary' {} a -> s {id = a} :: FormSummary)++-- | The name of the form.+formSummary_name :: Lens.Lens' FormSummary Prelude.Text+formSummary_name = Lens.lens (\FormSummary' {name} -> name) (\s@FormSummary' {} a -> s {name = a} :: FormSummary)++instance Data.FromJSON FormSummary where+  parseJSON =+    Data.withObject+      "FormSummary"+      ( \x ->+          FormSummary'+            Prelude.<$> (x Data..: "appId")+            Prelude.<*> (x Data..: "dataType")+            Prelude.<*> (x Data..: "environmentName")+            Prelude.<*> (x Data..: "formActionType")+            Prelude.<*> (x Data..: "id")+            Prelude.<*> (x Data..: "name")+      )++instance Prelude.Hashable FormSummary where+  hashWithSalt _salt FormSummary' {..} =+    _salt+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` dataType+      `Prelude.hashWithSalt` environmentName+      `Prelude.hashWithSalt` formActionType+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` name++instance Prelude.NFData FormSummary where+  rnf FormSummary' {..} =+    Prelude.rnf appId+      `Prelude.seq` Prelude.rnf dataType+      `Prelude.seq` Prelude.rnf environmentName+      `Prelude.seq` Prelude.rnf formActionType+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/AmplifyUiBuilder/Types/MutationActionSetStateParameter.hs view
@@ -0,0 +1,130 @@+{-# 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.AmplifyUiBuilder.Types.MutationActionSetStateParameter+-- 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.AmplifyUiBuilder.Types.MutationActionSetStateParameter where++import Amazonka.AmplifyUiBuilder.Types.ComponentProperty+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 state configuration when an action modifies a property of+-- another element within the same component.+--+-- /See:/ 'newMutationActionSetStateParameter' smart constructor.+data MutationActionSetStateParameter = MutationActionSetStateParameter'+  { -- | The name of the component that is being modified.+    componentName :: Prelude.Text,+    -- | The name of the component property to apply the state configuration to.+    property :: Prelude.Text,+    -- | The state configuration to assign to the property.+    set :: ComponentProperty+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MutationActionSetStateParameter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'componentName', 'mutationActionSetStateParameter_componentName' - The name of the component that is being modified.+--+-- 'property', 'mutationActionSetStateParameter_property' - The name of the component property to apply the state configuration to.+--+-- 'set', 'mutationActionSetStateParameter_set' - The state configuration to assign to the property.+newMutationActionSetStateParameter ::+  -- | 'componentName'+  Prelude.Text ->+  -- | 'property'+  Prelude.Text ->+  -- | 'set'+  ComponentProperty ->+  MutationActionSetStateParameter+newMutationActionSetStateParameter+  pComponentName_+  pProperty_+  pSet_ =+    MutationActionSetStateParameter'+      { componentName =+          pComponentName_,+        property = pProperty_,+        set = pSet_+      }++-- | The name of the component that is being modified.+mutationActionSetStateParameter_componentName :: Lens.Lens' MutationActionSetStateParameter Prelude.Text+mutationActionSetStateParameter_componentName = Lens.lens (\MutationActionSetStateParameter' {componentName} -> componentName) (\s@MutationActionSetStateParameter' {} a -> s {componentName = a} :: MutationActionSetStateParameter)++-- | The name of the component property to apply the state configuration to.+mutationActionSetStateParameter_property :: Lens.Lens' MutationActionSetStateParameter Prelude.Text+mutationActionSetStateParameter_property = Lens.lens (\MutationActionSetStateParameter' {property} -> property) (\s@MutationActionSetStateParameter' {} a -> s {property = a} :: MutationActionSetStateParameter)++-- | The state configuration to assign to the property.+mutationActionSetStateParameter_set :: Lens.Lens' MutationActionSetStateParameter ComponentProperty+mutationActionSetStateParameter_set = Lens.lens (\MutationActionSetStateParameter' {set} -> set) (\s@MutationActionSetStateParameter' {} a -> s {set = a} :: MutationActionSetStateParameter)++instance+  Data.FromJSON+    MutationActionSetStateParameter+  where+  parseJSON =+    Data.withObject+      "MutationActionSetStateParameter"+      ( \x ->+          MutationActionSetStateParameter'+            Prelude.<$> (x Data..: "componentName")+            Prelude.<*> (x Data..: "property")+            Prelude.<*> (x Data..: "set")+      )++instance+  Prelude.Hashable+    MutationActionSetStateParameter+  where+  hashWithSalt+    _salt+    MutationActionSetStateParameter' {..} =+      _salt+        `Prelude.hashWithSalt` componentName+        `Prelude.hashWithSalt` property+        `Prelude.hashWithSalt` set++instance+  Prelude.NFData+    MutationActionSetStateParameter+  where+  rnf MutationActionSetStateParameter' {..} =+    Prelude.rnf componentName+      `Prelude.seq` Prelude.rnf property+      `Prelude.seq` Prelude.rnf set++instance Data.ToJSON MutationActionSetStateParameter where+  toJSON MutationActionSetStateParameter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("componentName" Data..= componentName),+            Prelude.Just ("property" Data..= property),+            Prelude.Just ("set" Data..= set)+          ]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/Predicate.hs view
@@ -0,0 +1,133 @@+{-# 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.AmplifyUiBuilder.Types.Predicate+-- 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.AmplifyUiBuilder.Types.Predicate 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++-- | Stores information for generating Amplify DataStore queries. Use a+-- @Predicate@ to retrieve a subset of the data in a collection.+--+-- /See:/ 'newPredicate' smart constructor.+data Predicate = Predicate'+  { -- | A list of predicates to combine logically.+    and :: Prelude.Maybe [Predicate],+    -- | The field to query.+    field :: Prelude.Maybe Prelude.Text,+    -- | The value to use when performing the evaluation.+    operand :: Prelude.Maybe Prelude.Text,+    -- | The operator to use to perform the evaluation.+    operator :: Prelude.Maybe Prelude.Text,+    -- | A list of predicates to combine logically.+    or :: Prelude.Maybe [Predicate]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Predicate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'and', 'predicate_and' - A list of predicates to combine logically.+--+-- 'field', 'predicate_field' - The field to query.+--+-- 'operand', 'predicate_operand' - The value to use when performing the evaluation.+--+-- 'operator', 'predicate_operator' - The operator to use to perform the evaluation.+--+-- 'or', 'predicate_or' - A list of predicates to combine logically.+newPredicate ::+  Predicate+newPredicate =+  Predicate'+    { and = Prelude.Nothing,+      field = Prelude.Nothing,+      operand = Prelude.Nothing,+      operator = Prelude.Nothing,+      or = Prelude.Nothing+    }++-- | A list of predicates to combine logically.+predicate_and :: Lens.Lens' Predicate (Prelude.Maybe [Predicate])+predicate_and = Lens.lens (\Predicate' {and} -> and) (\s@Predicate' {} a -> s {and = a} :: Predicate) Prelude.. Lens.mapping Lens.coerced++-- | The field to query.+predicate_field :: Lens.Lens' Predicate (Prelude.Maybe Prelude.Text)+predicate_field = Lens.lens (\Predicate' {field} -> field) (\s@Predicate' {} a -> s {field = a} :: Predicate)++-- | The value to use when performing the evaluation.+predicate_operand :: Lens.Lens' Predicate (Prelude.Maybe Prelude.Text)+predicate_operand = Lens.lens (\Predicate' {operand} -> operand) (\s@Predicate' {} a -> s {operand = a} :: Predicate)++-- | The operator to use to perform the evaluation.+predicate_operator :: Lens.Lens' Predicate (Prelude.Maybe Prelude.Text)+predicate_operator = Lens.lens (\Predicate' {operator} -> operator) (\s@Predicate' {} a -> s {operator = a} :: Predicate)++-- | A list of predicates to combine logically.+predicate_or :: Lens.Lens' Predicate (Prelude.Maybe [Predicate])+predicate_or = Lens.lens (\Predicate' {or} -> or) (\s@Predicate' {} a -> s {or = a} :: Predicate) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON Predicate where+  parseJSON =+    Data.withObject+      "Predicate"+      ( \x ->+          Predicate'+            Prelude.<$> (x Data..:? "and" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "field")+            Prelude.<*> (x Data..:? "operand")+            Prelude.<*> (x Data..:? "operator")+            Prelude.<*> (x Data..:? "or" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable Predicate where+  hashWithSalt _salt Predicate' {..} =+    _salt+      `Prelude.hashWithSalt` and+      `Prelude.hashWithSalt` field+      `Prelude.hashWithSalt` operand+      `Prelude.hashWithSalt` operator+      `Prelude.hashWithSalt` or++instance Prelude.NFData Predicate where+  rnf Predicate' {..} =+    Prelude.rnf and+      `Prelude.seq` Prelude.rnf field+      `Prelude.seq` Prelude.rnf operand+      `Prelude.seq` Prelude.rnf operator+      `Prelude.seq` Prelude.rnf or++instance Data.ToJSON Predicate where+  toJSON Predicate' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("and" Data..=) Prelude.<$> and,+            ("field" Data..=) Prelude.<$> field,+            ("operand" Data..=) Prelude.<$> operand,+            ("operator" Data..=) Prelude.<$> operator,+            ("or" Data..=) Prelude.<$> or+          ]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/PutMetadataFlagBody.hs view
@@ -0,0 +1,68 @@+{-# 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.AmplifyUiBuilder.Types.PutMetadataFlagBody+-- 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.AmplifyUiBuilder.Types.PutMetadataFlagBody 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++-- | Stores the metadata information about a feature on a form or view.+--+-- /See:/ 'newPutMetadataFlagBody' smart constructor.+data PutMetadataFlagBody = PutMetadataFlagBody'+  { -- | The new information to store.+    newValue' :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutMetadataFlagBody' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'newValue'', 'putMetadataFlagBody_newValue' - The new information to store.+newPutMetadataFlagBody ::+  -- | 'newValue''+  Prelude.Text ->+  PutMetadataFlagBody+newPutMetadataFlagBody pNewValue_ =+  PutMetadataFlagBody' {newValue' = pNewValue_}++-- | The new information to store.+putMetadataFlagBody_newValue :: Lens.Lens' PutMetadataFlagBody Prelude.Text+putMetadataFlagBody_newValue = Lens.lens (\PutMetadataFlagBody' {newValue'} -> newValue') (\s@PutMetadataFlagBody' {} a -> s {newValue' = a} :: PutMetadataFlagBody)++instance Prelude.Hashable PutMetadataFlagBody where+  hashWithSalt _salt PutMetadataFlagBody' {..} =+    _salt `Prelude.hashWithSalt` newValue'++instance Prelude.NFData PutMetadataFlagBody where+  rnf PutMetadataFlagBody' {..} = Prelude.rnf newValue'++instance Data.ToJSON PutMetadataFlagBody where+  toJSON PutMetadataFlagBody' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("newValue" Data..= newValue')]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/RefreshTokenRequestBody.hs view
@@ -0,0 +1,74 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.AmplifyUiBuilder.Types.RefreshTokenRequestBody+-- 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.AmplifyUiBuilder.Types.RefreshTokenRequestBody 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 refresh token.+--+-- /See:/ 'newRefreshTokenRequestBody' smart constructor.+data RefreshTokenRequestBody = RefreshTokenRequestBody'+  { -- | The token to use to refresh a previously issued access token that might+    -- have expired.+    token :: Data.Sensitive Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RefreshTokenRequestBody' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'token', 'refreshTokenRequestBody_token' - The token to use to refresh a previously issued access token that might+-- have expired.+newRefreshTokenRequestBody ::+  -- | 'token'+  Prelude.Text ->+  RefreshTokenRequestBody+newRefreshTokenRequestBody pToken_ =+  RefreshTokenRequestBody'+    { token =+        Data._Sensitive Lens.# pToken_+    }++-- | The token to use to refresh a previously issued access token that might+-- have expired.+refreshTokenRequestBody_token :: Lens.Lens' RefreshTokenRequestBody Prelude.Text+refreshTokenRequestBody_token = Lens.lens (\RefreshTokenRequestBody' {token} -> token) (\s@RefreshTokenRequestBody' {} a -> s {token = a} :: RefreshTokenRequestBody) Prelude.. Data._Sensitive++instance Prelude.Hashable RefreshTokenRequestBody where+  hashWithSalt _salt RefreshTokenRequestBody' {..} =+    _salt `Prelude.hashWithSalt` token++instance Prelude.NFData RefreshTokenRequestBody where+  rnf RefreshTokenRequestBody' {..} = Prelude.rnf token++instance Data.ToJSON RefreshTokenRequestBody where+  toJSON RefreshTokenRequestBody' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("token" Data..= token)]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/SectionalElement.hs view
@@ -0,0 +1,149 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.AmplifyUiBuilder.Types.SectionalElement+-- 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.AmplifyUiBuilder.Types.SectionalElement where++import Amazonka.AmplifyUiBuilder.Types.FieldPosition+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++-- | Stores the configuration information for a visual helper element for a+-- form. A sectional element can be a header, a text block, or a divider.+-- These elements are static and not associated with any data.+--+-- /See:/ 'newSectionalElement' smart constructor.+data SectionalElement = SectionalElement'+  { -- | Specifies the size of the font for a @Heading@ sectional element. Valid+    -- values are @1 | 2 | 3 | 4 | 5 | 6@.+    level :: Prelude.Maybe Prelude.Int,+    -- | Specifies the orientation for a @Divider@ sectional element. Valid+    -- values are @horizontal@ or @vertical@.+    orientation :: Prelude.Maybe Prelude.Text,+    -- | Specifies the position of the text in a field for a @Text@ sectional+    -- element.+    position :: Prelude.Maybe FieldPosition,+    -- | The text for a @Text@ sectional element.+    text :: Prelude.Maybe Prelude.Text,+    -- | The type of sectional element. Valid values are @Heading@, @Text@, and+    -- @Divider@.+    type' :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SectionalElement' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'level', 'sectionalElement_level' - Specifies the size of the font for a @Heading@ sectional element. Valid+-- values are @1 | 2 | 3 | 4 | 5 | 6@.+--+-- 'orientation', 'sectionalElement_orientation' - Specifies the orientation for a @Divider@ sectional element. Valid+-- values are @horizontal@ or @vertical@.+--+-- 'position', 'sectionalElement_position' - Specifies the position of the text in a field for a @Text@ sectional+-- element.+--+-- 'text', 'sectionalElement_text' - The text for a @Text@ sectional element.+--+-- 'type'', 'sectionalElement_type' - The type of sectional element. Valid values are @Heading@, @Text@, and+-- @Divider@.+newSectionalElement ::+  -- | 'type''+  Prelude.Text ->+  SectionalElement+newSectionalElement pType_ =+  SectionalElement'+    { level = Prelude.Nothing,+      orientation = Prelude.Nothing,+      position = Prelude.Nothing,+      text = Prelude.Nothing,+      type' = pType_+    }++-- | Specifies the size of the font for a @Heading@ sectional element. Valid+-- values are @1 | 2 | 3 | 4 | 5 | 6@.+sectionalElement_level :: Lens.Lens' SectionalElement (Prelude.Maybe Prelude.Int)+sectionalElement_level = Lens.lens (\SectionalElement' {level} -> level) (\s@SectionalElement' {} a -> s {level = a} :: SectionalElement)++-- | Specifies the orientation for a @Divider@ sectional element. Valid+-- values are @horizontal@ or @vertical@.+sectionalElement_orientation :: Lens.Lens' SectionalElement (Prelude.Maybe Prelude.Text)+sectionalElement_orientation = Lens.lens (\SectionalElement' {orientation} -> orientation) (\s@SectionalElement' {} a -> s {orientation = a} :: SectionalElement)++-- | Specifies the position of the text in a field for a @Text@ sectional+-- element.+sectionalElement_position :: Lens.Lens' SectionalElement (Prelude.Maybe FieldPosition)+sectionalElement_position = Lens.lens (\SectionalElement' {position} -> position) (\s@SectionalElement' {} a -> s {position = a} :: SectionalElement)++-- | The text for a @Text@ sectional element.+sectionalElement_text :: Lens.Lens' SectionalElement (Prelude.Maybe Prelude.Text)+sectionalElement_text = Lens.lens (\SectionalElement' {text} -> text) (\s@SectionalElement' {} a -> s {text = a} :: SectionalElement)++-- | The type of sectional element. Valid values are @Heading@, @Text@, and+-- @Divider@.+sectionalElement_type :: Lens.Lens' SectionalElement Prelude.Text+sectionalElement_type = Lens.lens (\SectionalElement' {type'} -> type') (\s@SectionalElement' {} a -> s {type' = a} :: SectionalElement)++instance Data.FromJSON SectionalElement where+  parseJSON =+    Data.withObject+      "SectionalElement"+      ( \x ->+          SectionalElement'+            Prelude.<$> (x Data..:? "level")+            Prelude.<*> (x Data..:? "orientation")+            Prelude.<*> (x Data..:? "position")+            Prelude.<*> (x Data..:? "text")+            Prelude.<*> (x Data..: "type")+      )++instance Prelude.Hashable SectionalElement where+  hashWithSalt _salt SectionalElement' {..} =+    _salt+      `Prelude.hashWithSalt` level+      `Prelude.hashWithSalt` orientation+      `Prelude.hashWithSalt` position+      `Prelude.hashWithSalt` text+      `Prelude.hashWithSalt` type'++instance Prelude.NFData SectionalElement where+  rnf SectionalElement' {..} =+    Prelude.rnf level+      `Prelude.seq` Prelude.rnf orientation+      `Prelude.seq` Prelude.rnf position+      `Prelude.seq` Prelude.rnf text+      `Prelude.seq` Prelude.rnf type'++instance Data.ToJSON SectionalElement where+  toJSON SectionalElement' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("level" Data..=) Prelude.<$> level,+            ("orientation" Data..=) Prelude.<$> orientation,+            ("position" Data..=) Prelude.<$> position,+            ("text" Data..=) Prelude.<$> text,+            Prelude.Just ("type" Data..= type')+          ]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/SortDirection.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.AmplifyUiBuilder.Types.SortDirection+-- 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.AmplifyUiBuilder.Types.SortDirection+  ( SortDirection+      ( ..,+        SortDirection_ASC,+        SortDirection_DESC+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SortDirection = SortDirection'+  { fromSortDirection ::+      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 SortDirection_ASC :: SortDirection+pattern SortDirection_ASC = SortDirection' "ASC"++pattern SortDirection_DESC :: SortDirection+pattern SortDirection_DESC = SortDirection' "DESC"++{-# COMPLETE+  SortDirection_ASC,+  SortDirection_DESC,+  SortDirection'+  #-}
+ gen/Amazonka/AmplifyUiBuilder/Types/SortProperty.hs view
@@ -0,0 +1,98 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.AmplifyUiBuilder.Types.SortProperty+-- 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.AmplifyUiBuilder.Types.SortProperty where++import Amazonka.AmplifyUiBuilder.Types.SortDirection+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 how to sort the data that you bind to a component.+--+-- /See:/ 'newSortProperty' smart constructor.+data SortProperty = SortProperty'+  { -- | The direction of the sort, either ascending or descending.+    direction :: SortDirection,+    -- | The field to perform the sort on.+    field :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SortProperty' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'direction', 'sortProperty_direction' - The direction of the sort, either ascending or descending.+--+-- 'field', 'sortProperty_field' - The field to perform the sort on.+newSortProperty ::+  -- | 'direction'+  SortDirection ->+  -- | 'field'+  Prelude.Text ->+  SortProperty+newSortProperty pDirection_ pField_ =+  SortProperty'+    { direction = pDirection_,+      field = pField_+    }++-- | The direction of the sort, either ascending or descending.+sortProperty_direction :: Lens.Lens' SortProperty SortDirection+sortProperty_direction = Lens.lens (\SortProperty' {direction} -> direction) (\s@SortProperty' {} a -> s {direction = a} :: SortProperty)++-- | The field to perform the sort on.+sortProperty_field :: Lens.Lens' SortProperty Prelude.Text+sortProperty_field = Lens.lens (\SortProperty' {field} -> field) (\s@SortProperty' {} a -> s {field = a} :: SortProperty)++instance Data.FromJSON SortProperty where+  parseJSON =+    Data.withObject+      "SortProperty"+      ( \x ->+          SortProperty'+            Prelude.<$> (x Data..: "direction")+            Prelude.<*> (x Data..: "field")+      )++instance Prelude.Hashable SortProperty where+  hashWithSalt _salt SortProperty' {..} =+    _salt+      `Prelude.hashWithSalt` direction+      `Prelude.hashWithSalt` field++instance Prelude.NFData SortProperty where+  rnf SortProperty' {..} =+    Prelude.rnf direction+      `Prelude.seq` Prelude.rnf field++instance Data.ToJSON SortProperty where+  toJSON SortProperty' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("direction" Data..= direction),+            Prelude.Just ("field" Data..= field)+          ]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/Theme.hs view
@@ -0,0 +1,185 @@+{-# 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.AmplifyUiBuilder.Types.Theme+-- 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.AmplifyUiBuilder.Types.Theme where++import Amazonka.AmplifyUiBuilder.Types.ThemeValues+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A theme is a collection of style settings that apply globally to the+-- components associated with an Amplify application.+--+-- /See:/ 'newTheme' smart constructor.+data Theme = Theme'+  { -- | The time that the theme was modified.+    modifiedAt :: Prelude.Maybe Data.ISO8601,+    -- | Describes the properties that can be overriden to customize a theme.+    overrides :: Prelude.Maybe [ThemeValues],+    -- | One or more key-value pairs to use when tagging the theme.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The unique ID for the Amplify app associated with the theme.+    appId :: Prelude.Text,+    -- | The time that the theme was created.+    createdAt :: Data.ISO8601,+    -- | The name of the backend environment that is a part of the Amplify app.+    environmentName :: Prelude.Text,+    -- | The ID for the theme.+    id :: Prelude.Text,+    -- | The name of the theme.+    name :: Prelude.Text,+    -- | A list of key-value pairs that defines the properties of the theme.+    values :: [ThemeValues]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Theme' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'modifiedAt', 'theme_modifiedAt' - The time that the theme was modified.+--+-- 'overrides', 'theme_overrides' - Describes the properties that can be overriden to customize a theme.+--+-- 'tags', 'theme_tags' - One or more key-value pairs to use when tagging the theme.+--+-- 'appId', 'theme_appId' - The unique ID for the Amplify app associated with the theme.+--+-- 'createdAt', 'theme_createdAt' - The time that the theme was created.+--+-- 'environmentName', 'theme_environmentName' - The name of the backend environment that is a part of the Amplify app.+--+-- 'id', 'theme_id' - The ID for the theme.+--+-- 'name', 'theme_name' - The name of the theme.+--+-- 'values', 'theme_values' - A list of key-value pairs that defines the properties of the theme.+newTheme ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'createdAt'+  Prelude.UTCTime ->+  -- | 'environmentName'+  Prelude.Text ->+  -- | 'id'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  Theme+newTheme+  pAppId_+  pCreatedAt_+  pEnvironmentName_+  pId_+  pName_ =+    Theme'+      { modifiedAt = Prelude.Nothing,+        overrides = Prelude.Nothing,+        tags = Prelude.Nothing,+        appId = pAppId_,+        createdAt = Data._Time Lens.# pCreatedAt_,+        environmentName = pEnvironmentName_,+        id = pId_,+        name = pName_,+        values = Prelude.mempty+      }++-- | The time that the theme was modified.+theme_modifiedAt :: Lens.Lens' Theme (Prelude.Maybe Prelude.UTCTime)+theme_modifiedAt = Lens.lens (\Theme' {modifiedAt} -> modifiedAt) (\s@Theme' {} a -> s {modifiedAt = a} :: Theme) Prelude.. Lens.mapping Data._Time++-- | Describes the properties that can be overriden to customize a theme.+theme_overrides :: Lens.Lens' Theme (Prelude.Maybe [ThemeValues])+theme_overrides = Lens.lens (\Theme' {overrides} -> overrides) (\s@Theme' {} a -> s {overrides = a} :: Theme) Prelude.. Lens.mapping Lens.coerced++-- | One or more key-value pairs to use when tagging the theme.+theme_tags :: Lens.Lens' Theme (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+theme_tags = Lens.lens (\Theme' {tags} -> tags) (\s@Theme' {} a -> s {tags = a} :: Theme) Prelude.. Lens.mapping Lens.coerced++-- | The unique ID for the Amplify app associated with the theme.+theme_appId :: Lens.Lens' Theme Prelude.Text+theme_appId = Lens.lens (\Theme' {appId} -> appId) (\s@Theme' {} a -> s {appId = a} :: Theme)++-- | The time that the theme was created.+theme_createdAt :: Lens.Lens' Theme Prelude.UTCTime+theme_createdAt = Lens.lens (\Theme' {createdAt} -> createdAt) (\s@Theme' {} a -> s {createdAt = a} :: Theme) Prelude.. Data._Time++-- | The name of the backend environment that is a part of the Amplify app.+theme_environmentName :: Lens.Lens' Theme Prelude.Text+theme_environmentName = Lens.lens (\Theme' {environmentName} -> environmentName) (\s@Theme' {} a -> s {environmentName = a} :: Theme)++-- | The ID for the theme.+theme_id :: Lens.Lens' Theme Prelude.Text+theme_id = Lens.lens (\Theme' {id} -> id) (\s@Theme' {} a -> s {id = a} :: Theme)++-- | The name of the theme.+theme_name :: Lens.Lens' Theme Prelude.Text+theme_name = Lens.lens (\Theme' {name} -> name) (\s@Theme' {} a -> s {name = a} :: Theme)++-- | A list of key-value pairs that defines the properties of the theme.+theme_values :: Lens.Lens' Theme [ThemeValues]+theme_values = Lens.lens (\Theme' {values} -> values) (\s@Theme' {} a -> s {values = a} :: Theme) Prelude.. Lens.coerced++instance Data.FromJSON Theme where+  parseJSON =+    Data.withObject+      "Theme"+      ( \x ->+          Theme'+            Prelude.<$> (x Data..:? "modifiedAt")+            Prelude.<*> (x Data..:? "overrides" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "appId")+            Prelude.<*> (x Data..: "createdAt")+            Prelude.<*> (x Data..: "environmentName")+            Prelude.<*> (x Data..: "id")+            Prelude.<*> (x Data..: "name")+            Prelude.<*> (x Data..:? "values" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable Theme where+  hashWithSalt _salt Theme' {..} =+    _salt+      `Prelude.hashWithSalt` modifiedAt+      `Prelude.hashWithSalt` overrides+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` environmentName+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` values++instance Prelude.NFData Theme where+  rnf Theme' {..} =+    Prelude.rnf modifiedAt+      `Prelude.seq` Prelude.rnf overrides+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf appId+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf environmentName+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf values
+ gen/Amazonka/AmplifyUiBuilder/Types/ThemeSummary.hs view
@@ -0,0 +1,116 @@+{-# 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.AmplifyUiBuilder.Types.ThemeSummary+-- 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.AmplifyUiBuilder.Types.ThemeSummary 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 basic information about a theme.+--+-- /See:/ 'newThemeSummary' smart constructor.+data ThemeSummary = ThemeSummary'+  { -- | The unique ID for the app associated with the theme summary.+    appId :: Prelude.Text,+    -- | The name of the backend environment that is part of the Amplify app.+    environmentName :: Prelude.Text,+    -- | The ID of the theme.+    id :: Prelude.Text,+    -- | The name of the theme.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ThemeSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'themeSummary_appId' - The unique ID for the app associated with the theme summary.+--+-- 'environmentName', 'themeSummary_environmentName' - The name of the backend environment that is part of the Amplify app.+--+-- 'id', 'themeSummary_id' - The ID of the theme.+--+-- 'name', 'themeSummary_name' - The name of the theme.+newThemeSummary ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'environmentName'+  Prelude.Text ->+  -- | 'id'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  ThemeSummary+newThemeSummary pAppId_ pEnvironmentName_ pId_ pName_ =+  ThemeSummary'+    { appId = pAppId_,+      environmentName = pEnvironmentName_,+      id = pId_,+      name = pName_+    }++-- | The unique ID for the app associated with the theme summary.+themeSummary_appId :: Lens.Lens' ThemeSummary Prelude.Text+themeSummary_appId = Lens.lens (\ThemeSummary' {appId} -> appId) (\s@ThemeSummary' {} a -> s {appId = a} :: ThemeSummary)++-- | The name of the backend environment that is part of the Amplify app.+themeSummary_environmentName :: Lens.Lens' ThemeSummary Prelude.Text+themeSummary_environmentName = Lens.lens (\ThemeSummary' {environmentName} -> environmentName) (\s@ThemeSummary' {} a -> s {environmentName = a} :: ThemeSummary)++-- | The ID of the theme.+themeSummary_id :: Lens.Lens' ThemeSummary Prelude.Text+themeSummary_id = Lens.lens (\ThemeSummary' {id} -> id) (\s@ThemeSummary' {} a -> s {id = a} :: ThemeSummary)++-- | The name of the theme.+themeSummary_name :: Lens.Lens' ThemeSummary Prelude.Text+themeSummary_name = Lens.lens (\ThemeSummary' {name} -> name) (\s@ThemeSummary' {} a -> s {name = a} :: ThemeSummary)++instance Data.FromJSON ThemeSummary where+  parseJSON =+    Data.withObject+      "ThemeSummary"+      ( \x ->+          ThemeSummary'+            Prelude.<$> (x Data..: "appId")+            Prelude.<*> (x Data..: "environmentName")+            Prelude.<*> (x Data..: "id")+            Prelude.<*> (x Data..: "name")+      )++instance Prelude.Hashable ThemeSummary where+  hashWithSalt _salt ThemeSummary' {..} =+    _salt+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` environmentName+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` name++instance Prelude.NFData ThemeSummary where+  rnf ThemeSummary' {..} =+    Prelude.rnf appId+      `Prelude.seq` Prelude.rnf environmentName+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/AmplifyUiBuilder/Types/ThemeValue.hs view
@@ -0,0 +1,94 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.AmplifyUiBuilder.Types.ThemeValue+-- 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.AmplifyUiBuilder.Types.ThemeValue where++import {-# SOURCE #-} Amazonka.AmplifyUiBuilder.Types.ThemeValues+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 configuration of a theme\'s properties.+--+-- /See:/ 'newThemeValue' smart constructor.+data ThemeValue = ThemeValue'+  { -- | A list of key-value pairs that define the theme\'s properties.+    children :: Prelude.Maybe [ThemeValues],+    -- | The value of a theme property.+    value :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ThemeValue' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'children', 'themeValue_children' - A list of key-value pairs that define the theme\'s properties.+--+-- 'value', 'themeValue_value' - The value of a theme property.+newThemeValue ::+  ThemeValue+newThemeValue =+  ThemeValue'+    { children = Prelude.Nothing,+      value = Prelude.Nothing+    }++-- | A list of key-value pairs that define the theme\'s properties.+themeValue_children :: Lens.Lens' ThemeValue (Prelude.Maybe [ThemeValues])+themeValue_children = Lens.lens (\ThemeValue' {children} -> children) (\s@ThemeValue' {} a -> s {children = a} :: ThemeValue) Prelude.. Lens.mapping Lens.coerced++-- | The value of a theme property.+themeValue_value :: Lens.Lens' ThemeValue (Prelude.Maybe Prelude.Text)+themeValue_value = Lens.lens (\ThemeValue' {value} -> value) (\s@ThemeValue' {} a -> s {value = a} :: ThemeValue)++instance Data.FromJSON ThemeValue where+  parseJSON =+    Data.withObject+      "ThemeValue"+      ( \x ->+          ThemeValue'+            Prelude.<$> (x Data..:? "children" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "value")+      )++instance Prelude.Hashable ThemeValue where+  hashWithSalt _salt ThemeValue' {..} =+    _salt+      `Prelude.hashWithSalt` children+      `Prelude.hashWithSalt` value++instance Prelude.NFData ThemeValue where+  rnf ThemeValue' {..} =+    Prelude.rnf children+      `Prelude.seq` Prelude.rnf value++instance Data.ToJSON ThemeValue where+  toJSON ThemeValue' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("children" Data..=) Prelude.<$> children,+            ("value" Data..=) Prelude.<$> value+          ]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/ThemeValue.hs-boot view
@@ -0,0 +1,33 @@+{-# OPTIONS_GHC -Wno-missing-methods #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.AmplifyUiBuilder.Types.ThemeValue+-- 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.AmplifyUiBuilder.Types.ThemeValue where++import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++data ThemeValue++instance Prelude.Eq ThemeValue++instance Prelude.Read ThemeValue++instance Prelude.Show ThemeValue++instance Prelude.Generic ThemeValue++instance Data.ToJSON ThemeValue++instance Data.FromJSON ThemeValue++instance Prelude.NFData ThemeValue++instance Prelude.Hashable ThemeValue
+ gen/Amazonka/AmplifyUiBuilder/Types/ThemeValues.hs view
@@ -0,0 +1,93 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.AmplifyUiBuilder.Types.ThemeValues+-- 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.AmplifyUiBuilder.Types.ThemeValues where++import {-# SOURCE #-} Amazonka.AmplifyUiBuilder.Types.ThemeValue+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A key-value pair that defines a property of a theme.+--+-- /See:/ 'newThemeValues' smart constructor.+data ThemeValues = ThemeValues'+  { -- | The name of the property.+    key :: Prelude.Maybe Prelude.Text,+    -- | The value of the property.+    value :: Prelude.Maybe ThemeValue+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ThemeValues' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'key', 'themeValues_key' - The name of the property.+--+-- 'value', 'themeValues_value' - The value of the property.+newThemeValues ::+  ThemeValues+newThemeValues =+  ThemeValues'+    { key = Prelude.Nothing,+      value = Prelude.Nothing+    }++-- | The name of the property.+themeValues_key :: Lens.Lens' ThemeValues (Prelude.Maybe Prelude.Text)+themeValues_key = Lens.lens (\ThemeValues' {key} -> key) (\s@ThemeValues' {} a -> s {key = a} :: ThemeValues)++-- | The value of the property.+themeValues_value :: Lens.Lens' ThemeValues (Prelude.Maybe ThemeValue)+themeValues_value = Lens.lens (\ThemeValues' {value} -> value) (\s@ThemeValues' {} a -> s {value = a} :: ThemeValues)++instance Data.FromJSON ThemeValues where+  parseJSON =+    Data.withObject+      "ThemeValues"+      ( \x ->+          ThemeValues'+            Prelude.<$> (x Data..:? "key")+            Prelude.<*> (x Data..:? "value")+      )++instance Prelude.Hashable ThemeValues where+  hashWithSalt _salt ThemeValues' {..} =+    _salt+      `Prelude.hashWithSalt` key+      `Prelude.hashWithSalt` value++instance Prelude.NFData ThemeValues where+  rnf ThemeValues' {..} =+    Prelude.rnf key `Prelude.seq` Prelude.rnf value++instance Data.ToJSON ThemeValues where+  toJSON ThemeValues' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("key" Data..=) Prelude.<$> key,+            ("value" Data..=) Prelude.<$> value+          ]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/ThemeValues.hs-boot view
@@ -0,0 +1,33 @@+{-# OPTIONS_GHC -Wno-missing-methods #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.AmplifyUiBuilder.Types.ThemeValues+-- 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.AmplifyUiBuilder.Types.ThemeValues where++import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++data ThemeValues++instance Prelude.Eq ThemeValues++instance Prelude.Read ThemeValues++instance Prelude.Show ThemeValues++instance Prelude.Generic ThemeValues++instance Data.ToJSON ThemeValues++instance Data.FromJSON ThemeValues++instance Prelude.NFData ThemeValues++instance Prelude.Hashable ThemeValues
+ gen/Amazonka/AmplifyUiBuilder/Types/TokenProviders.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.AmplifyUiBuilder.Types.TokenProviders+-- 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.AmplifyUiBuilder.Types.TokenProviders+  ( TokenProviders+      ( ..,+        TokenProviders_Figma+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype TokenProviders = TokenProviders'+  { fromTokenProviders ::+      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 TokenProviders_Figma :: TokenProviders+pattern TokenProviders_Figma = TokenProviders' "figma"++{-# COMPLETE+  TokenProviders_Figma,+  TokenProviders'+  #-}
+ gen/Amazonka/AmplifyUiBuilder/Types/UpdateComponentData.hs view
@@ -0,0 +1,231 @@+{-# 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.AmplifyUiBuilder.Types.UpdateComponentData+-- 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.AmplifyUiBuilder.Types.UpdateComponentData where++import Amazonka.AmplifyUiBuilder.Types.ComponentBindingPropertiesValue+import Amazonka.AmplifyUiBuilder.Types.ComponentChild+import Amazonka.AmplifyUiBuilder.Types.ComponentDataConfiguration+import Amazonka.AmplifyUiBuilder.Types.ComponentEvent+import Amazonka.AmplifyUiBuilder.Types.ComponentProperty+import Amazonka.AmplifyUiBuilder.Types.ComponentVariant+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++-- | Updates and saves all of the information about a component, based on+-- component ID.+--+-- /See:/ 'newUpdateComponentData' smart constructor.+data UpdateComponentData = UpdateComponentData'+  { -- | The data binding information for the component\'s properties.+    bindingProperties :: Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentBindingPropertiesValue),+    -- | The components that are instances of the main component.+    children :: Prelude.Maybe [ComponentChild],+    -- | The configuration for binding a component\'s properties to a data model.+    -- Use this for a collection component.+    collectionProperties :: Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentDataConfiguration),+    -- | The type of the component. This can be an Amplify custom UI component or+    -- another custom component.+    componentType :: Prelude.Maybe Prelude.Text,+    -- | The event configuration for the component. Use for the workflow feature+    -- in Amplify Studio that allows you to bind events and actions to+    -- components.+    events :: Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentEvent),+    -- | The unique ID of the component to update.+    id :: Prelude.Maybe Prelude.Text,+    -- | The name of the component to update.+    name :: Prelude.Maybe Prelude.Text,+    -- | Describes the properties that can be overriden to customize the+    -- component.+    overrides :: Prelude.Maybe (Prelude.HashMap Prelude.Text (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | Describes the component\'s properties.+    properties :: Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentProperty),+    -- | The schema version of the component when it was imported.+    schemaVersion :: Prelude.Maybe Prelude.Text,+    -- | The unique ID of the component in its original source system, such as+    -- Figma.+    sourceId :: Prelude.Maybe Prelude.Text,+    -- | A list of the unique variants of the main component being updated.+    variants :: Prelude.Maybe [ComponentVariant]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateComponentData' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'bindingProperties', 'updateComponentData_bindingProperties' - The data binding information for the component\'s properties.+--+-- 'children', 'updateComponentData_children' - The components that are instances of the main component.+--+-- 'collectionProperties', 'updateComponentData_collectionProperties' - The configuration for binding a component\'s properties to a data model.+-- Use this for a collection component.+--+-- 'componentType', 'updateComponentData_componentType' - The type of the component. This can be an Amplify custom UI component or+-- another custom component.+--+-- 'events', 'updateComponentData_events' - The event configuration for the component. Use for the workflow feature+-- in Amplify Studio that allows you to bind events and actions to+-- components.+--+-- 'id', 'updateComponentData_id' - The unique ID of the component to update.+--+-- 'name', 'updateComponentData_name' - The name of the component to update.+--+-- 'overrides', 'updateComponentData_overrides' - Describes the properties that can be overriden to customize the+-- component.+--+-- 'properties', 'updateComponentData_properties' - Describes the component\'s properties.+--+-- 'schemaVersion', 'updateComponentData_schemaVersion' - The schema version of the component when it was imported.+--+-- 'sourceId', 'updateComponentData_sourceId' - The unique ID of the component in its original source system, such as+-- Figma.+--+-- 'variants', 'updateComponentData_variants' - A list of the unique variants of the main component being updated.+newUpdateComponentData ::+  UpdateComponentData+newUpdateComponentData =+  UpdateComponentData'+    { bindingProperties =+        Prelude.Nothing,+      children = Prelude.Nothing,+      collectionProperties = Prelude.Nothing,+      componentType = Prelude.Nothing,+      events = Prelude.Nothing,+      id = Prelude.Nothing,+      name = Prelude.Nothing,+      overrides = Prelude.Nothing,+      properties = Prelude.Nothing,+      schemaVersion = Prelude.Nothing,+      sourceId = Prelude.Nothing,+      variants = Prelude.Nothing+    }++-- | The data binding information for the component\'s properties.+updateComponentData_bindingProperties :: Lens.Lens' UpdateComponentData (Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentBindingPropertiesValue))+updateComponentData_bindingProperties = Lens.lens (\UpdateComponentData' {bindingProperties} -> bindingProperties) (\s@UpdateComponentData' {} a -> s {bindingProperties = a} :: UpdateComponentData) Prelude.. Lens.mapping Lens.coerced++-- | The components that are instances of the main component.+updateComponentData_children :: Lens.Lens' UpdateComponentData (Prelude.Maybe [ComponentChild])+updateComponentData_children = Lens.lens (\UpdateComponentData' {children} -> children) (\s@UpdateComponentData' {} a -> s {children = a} :: UpdateComponentData) Prelude.. Lens.mapping Lens.coerced++-- | The configuration for binding a component\'s properties to a data model.+-- Use this for a collection component.+updateComponentData_collectionProperties :: Lens.Lens' UpdateComponentData (Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentDataConfiguration))+updateComponentData_collectionProperties = Lens.lens (\UpdateComponentData' {collectionProperties} -> collectionProperties) (\s@UpdateComponentData' {} a -> s {collectionProperties = a} :: UpdateComponentData) Prelude.. Lens.mapping Lens.coerced++-- | The type of the component. This can be an Amplify custom UI component or+-- another custom component.+updateComponentData_componentType :: Lens.Lens' UpdateComponentData (Prelude.Maybe Prelude.Text)+updateComponentData_componentType = Lens.lens (\UpdateComponentData' {componentType} -> componentType) (\s@UpdateComponentData' {} a -> s {componentType = a} :: UpdateComponentData)++-- | The event configuration for the component. Use for the workflow feature+-- in Amplify Studio that allows you to bind events and actions to+-- components.+updateComponentData_events :: Lens.Lens' UpdateComponentData (Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentEvent))+updateComponentData_events = Lens.lens (\UpdateComponentData' {events} -> events) (\s@UpdateComponentData' {} a -> s {events = a} :: UpdateComponentData) Prelude.. Lens.mapping Lens.coerced++-- | The unique ID of the component to update.+updateComponentData_id :: Lens.Lens' UpdateComponentData (Prelude.Maybe Prelude.Text)+updateComponentData_id = Lens.lens (\UpdateComponentData' {id} -> id) (\s@UpdateComponentData' {} a -> s {id = a} :: UpdateComponentData)++-- | The name of the component to update.+updateComponentData_name :: Lens.Lens' UpdateComponentData (Prelude.Maybe Prelude.Text)+updateComponentData_name = Lens.lens (\UpdateComponentData' {name} -> name) (\s@UpdateComponentData' {} a -> s {name = a} :: UpdateComponentData)++-- | Describes the properties that can be overriden to customize the+-- component.+updateComponentData_overrides :: Lens.Lens' UpdateComponentData (Prelude.Maybe (Prelude.HashMap Prelude.Text (Prelude.HashMap Prelude.Text Prelude.Text)))+updateComponentData_overrides = Lens.lens (\UpdateComponentData' {overrides} -> overrides) (\s@UpdateComponentData' {} a -> s {overrides = a} :: UpdateComponentData) Prelude.. Lens.mapping Lens.coerced++-- | Describes the component\'s properties.+updateComponentData_properties :: Lens.Lens' UpdateComponentData (Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentProperty))+updateComponentData_properties = Lens.lens (\UpdateComponentData' {properties} -> properties) (\s@UpdateComponentData' {} a -> s {properties = a} :: UpdateComponentData) Prelude.. Lens.mapping Lens.coerced++-- | The schema version of the component when it was imported.+updateComponentData_schemaVersion :: Lens.Lens' UpdateComponentData (Prelude.Maybe Prelude.Text)+updateComponentData_schemaVersion = Lens.lens (\UpdateComponentData' {schemaVersion} -> schemaVersion) (\s@UpdateComponentData' {} a -> s {schemaVersion = a} :: UpdateComponentData)++-- | The unique ID of the component in its original source system, such as+-- Figma.+updateComponentData_sourceId :: Lens.Lens' UpdateComponentData (Prelude.Maybe Prelude.Text)+updateComponentData_sourceId = Lens.lens (\UpdateComponentData' {sourceId} -> sourceId) (\s@UpdateComponentData' {} a -> s {sourceId = a} :: UpdateComponentData)++-- | A list of the unique variants of the main component being updated.+updateComponentData_variants :: Lens.Lens' UpdateComponentData (Prelude.Maybe [ComponentVariant])+updateComponentData_variants = Lens.lens (\UpdateComponentData' {variants} -> variants) (\s@UpdateComponentData' {} a -> s {variants = a} :: UpdateComponentData) Prelude.. Lens.mapping Lens.coerced++instance Prelude.Hashable UpdateComponentData where+  hashWithSalt _salt UpdateComponentData' {..} =+    _salt+      `Prelude.hashWithSalt` bindingProperties+      `Prelude.hashWithSalt` children+      `Prelude.hashWithSalt` collectionProperties+      `Prelude.hashWithSalt` componentType+      `Prelude.hashWithSalt` events+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` overrides+      `Prelude.hashWithSalt` properties+      `Prelude.hashWithSalt` schemaVersion+      `Prelude.hashWithSalt` sourceId+      `Prelude.hashWithSalt` variants++instance Prelude.NFData UpdateComponentData where+  rnf UpdateComponentData' {..} =+    Prelude.rnf bindingProperties+      `Prelude.seq` Prelude.rnf children+      `Prelude.seq` Prelude.rnf collectionProperties+      `Prelude.seq` Prelude.rnf componentType+      `Prelude.seq` Prelude.rnf events+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf overrides+      `Prelude.seq` Prelude.rnf properties+      `Prelude.seq` Prelude.rnf schemaVersion+      `Prelude.seq` Prelude.rnf sourceId+      `Prelude.seq` Prelude.rnf variants++instance Data.ToJSON UpdateComponentData where+  toJSON UpdateComponentData' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("bindingProperties" Data..=)+              Prelude.<$> bindingProperties,+            ("children" Data..=) Prelude.<$> children,+            ("collectionProperties" Data..=)+              Prelude.<$> collectionProperties,+            ("componentType" Data..=) Prelude.<$> componentType,+            ("events" Data..=) Prelude.<$> events,+            ("id" Data..=) Prelude.<$> id,+            ("name" Data..=) Prelude.<$> name,+            ("overrides" Data..=) Prelude.<$> overrides,+            ("properties" Data..=) Prelude.<$> properties,+            ("schemaVersion" Data..=) Prelude.<$> schemaVersion,+            ("sourceId" Data..=) Prelude.<$> sourceId,+            ("variants" Data..=) Prelude.<$> variants+          ]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/UpdateFormData.hs view
@@ -0,0 +1,169 @@+{-# 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.AmplifyUiBuilder.Types.UpdateFormData+-- 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.AmplifyUiBuilder.Types.UpdateFormData where++import Amazonka.AmplifyUiBuilder.Types.FieldConfig+import Amazonka.AmplifyUiBuilder.Types.FormActionType+import Amazonka.AmplifyUiBuilder.Types.FormCTA+import Amazonka.AmplifyUiBuilder.Types.FormDataTypeConfig+import Amazonka.AmplifyUiBuilder.Types.FormStyle+import Amazonka.AmplifyUiBuilder.Types.SectionalElement+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++-- | Updates and saves all of the information about a form, based on form ID.+--+-- /See:/ 'newUpdateFormData' smart constructor.+data UpdateFormData = UpdateFormData'+  { -- | The @FormCTA@ object that stores the call to action configuration for+    -- the form.+    cta :: Prelude.Maybe FormCTA,+    -- | The type of data source to use to create the form.+    dataType :: Prelude.Maybe FormDataTypeConfig,+    -- | The configuration information for the form\'s fields.+    fields :: Prelude.Maybe (Prelude.HashMap Prelude.Text FieldConfig),+    -- | Specifies whether to perform a create or update action on the form.+    formActionType :: Prelude.Maybe FormActionType,+    -- | The name of the form.+    name :: Prelude.Maybe Prelude.Text,+    -- | The schema version of the form.+    schemaVersion :: Prelude.Maybe Prelude.Text,+    -- | The configuration information for the visual helper elements for the+    -- form. These elements are not associated with any data.+    sectionalElements :: Prelude.Maybe (Prelude.HashMap Prelude.Text SectionalElement),+    -- | The configuration for the form\'s style.+    style :: Prelude.Maybe FormStyle+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateFormData' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cta', 'updateFormData_cta' - The @FormCTA@ object that stores the call to action configuration for+-- the form.+--+-- 'dataType', 'updateFormData_dataType' - The type of data source to use to create the form.+--+-- 'fields', 'updateFormData_fields' - The configuration information for the form\'s fields.+--+-- 'formActionType', 'updateFormData_formActionType' - Specifies whether to perform a create or update action on the form.+--+-- 'name', 'updateFormData_name' - The name of the form.+--+-- 'schemaVersion', 'updateFormData_schemaVersion' - The schema version of the form.+--+-- 'sectionalElements', 'updateFormData_sectionalElements' - The configuration information for the visual helper elements for the+-- form. These elements are not associated with any data.+--+-- 'style', 'updateFormData_style' - The configuration for the form\'s style.+newUpdateFormData ::+  UpdateFormData+newUpdateFormData =+  UpdateFormData'+    { cta = Prelude.Nothing,+      dataType = Prelude.Nothing,+      fields = Prelude.Nothing,+      formActionType = Prelude.Nothing,+      name = Prelude.Nothing,+      schemaVersion = Prelude.Nothing,+      sectionalElements = Prelude.Nothing,+      style = Prelude.Nothing+    }++-- | The @FormCTA@ object that stores the call to action configuration for+-- the form.+updateFormData_cta :: Lens.Lens' UpdateFormData (Prelude.Maybe FormCTA)+updateFormData_cta = Lens.lens (\UpdateFormData' {cta} -> cta) (\s@UpdateFormData' {} a -> s {cta = a} :: UpdateFormData)++-- | The type of data source to use to create the form.+updateFormData_dataType :: Lens.Lens' UpdateFormData (Prelude.Maybe FormDataTypeConfig)+updateFormData_dataType = Lens.lens (\UpdateFormData' {dataType} -> dataType) (\s@UpdateFormData' {} a -> s {dataType = a} :: UpdateFormData)++-- | The configuration information for the form\'s fields.+updateFormData_fields :: Lens.Lens' UpdateFormData (Prelude.Maybe (Prelude.HashMap Prelude.Text FieldConfig))+updateFormData_fields = Lens.lens (\UpdateFormData' {fields} -> fields) (\s@UpdateFormData' {} a -> s {fields = a} :: UpdateFormData) Prelude.. Lens.mapping Lens.coerced++-- | Specifies whether to perform a create or update action on the form.+updateFormData_formActionType :: Lens.Lens' UpdateFormData (Prelude.Maybe FormActionType)+updateFormData_formActionType = Lens.lens (\UpdateFormData' {formActionType} -> formActionType) (\s@UpdateFormData' {} a -> s {formActionType = a} :: UpdateFormData)++-- | The name of the form.+updateFormData_name :: Lens.Lens' UpdateFormData (Prelude.Maybe Prelude.Text)+updateFormData_name = Lens.lens (\UpdateFormData' {name} -> name) (\s@UpdateFormData' {} a -> s {name = a} :: UpdateFormData)++-- | The schema version of the form.+updateFormData_schemaVersion :: Lens.Lens' UpdateFormData (Prelude.Maybe Prelude.Text)+updateFormData_schemaVersion = Lens.lens (\UpdateFormData' {schemaVersion} -> schemaVersion) (\s@UpdateFormData' {} a -> s {schemaVersion = a} :: UpdateFormData)++-- | The configuration information for the visual helper elements for the+-- form. These elements are not associated with any data.+updateFormData_sectionalElements :: Lens.Lens' UpdateFormData (Prelude.Maybe (Prelude.HashMap Prelude.Text SectionalElement))+updateFormData_sectionalElements = Lens.lens (\UpdateFormData' {sectionalElements} -> sectionalElements) (\s@UpdateFormData' {} a -> s {sectionalElements = a} :: UpdateFormData) Prelude.. Lens.mapping Lens.coerced++-- | The configuration for the form\'s style.+updateFormData_style :: Lens.Lens' UpdateFormData (Prelude.Maybe FormStyle)+updateFormData_style = Lens.lens (\UpdateFormData' {style} -> style) (\s@UpdateFormData' {} a -> s {style = a} :: UpdateFormData)++instance Prelude.Hashable UpdateFormData where+  hashWithSalt _salt UpdateFormData' {..} =+    _salt+      `Prelude.hashWithSalt` cta+      `Prelude.hashWithSalt` dataType+      `Prelude.hashWithSalt` fields+      `Prelude.hashWithSalt` formActionType+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` schemaVersion+      `Prelude.hashWithSalt` sectionalElements+      `Prelude.hashWithSalt` style++instance Prelude.NFData UpdateFormData where+  rnf UpdateFormData' {..} =+    Prelude.rnf cta+      `Prelude.seq` Prelude.rnf dataType+      `Prelude.seq` Prelude.rnf fields+      `Prelude.seq` Prelude.rnf formActionType+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf schemaVersion+      `Prelude.seq` Prelude.rnf sectionalElements+      `Prelude.seq` Prelude.rnf style++instance Data.ToJSON UpdateFormData where+  toJSON UpdateFormData' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("cta" Data..=) Prelude.<$> cta,+            ("dataType" Data..=) Prelude.<$> dataType,+            ("fields" Data..=) Prelude.<$> fields,+            ("formActionType" Data..=)+              Prelude.<$> formActionType,+            ("name" Data..=) Prelude.<$> name,+            ("schemaVersion" Data..=) Prelude.<$> schemaVersion,+            ("sectionalElements" Data..=)+              Prelude.<$> sectionalElements,+            ("style" Data..=) Prelude.<$> style+          ]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/UpdateThemeData.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.AmplifyUiBuilder.Types.UpdateThemeData+-- 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.AmplifyUiBuilder.Types.UpdateThemeData where++import Amazonka.AmplifyUiBuilder.Types.ThemeValues+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++-- | Saves the data binding information for a theme.+--+-- /See:/ 'newUpdateThemeData' smart constructor.+data UpdateThemeData = UpdateThemeData'+  { -- | The unique ID of the theme to update.+    id :: Prelude.Maybe Prelude.Text,+    -- | The name of the theme to update.+    name :: Prelude.Maybe Prelude.Text,+    -- | Describes the properties that can be overriden to customize the theme.+    overrides :: Prelude.Maybe [ThemeValues],+    -- | A list of key-value pairs that define the theme\'s properties.+    values :: [ThemeValues]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateThemeData' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'updateThemeData_id' - The unique ID of the theme to update.+--+-- 'name', 'updateThemeData_name' - The name of the theme to update.+--+-- 'overrides', 'updateThemeData_overrides' - Describes the properties that can be overriden to customize the theme.+--+-- 'values', 'updateThemeData_values' - A list of key-value pairs that define the theme\'s properties.+newUpdateThemeData ::+  UpdateThemeData+newUpdateThemeData =+  UpdateThemeData'+    { id = Prelude.Nothing,+      name = Prelude.Nothing,+      overrides = Prelude.Nothing,+      values = Prelude.mempty+    }++-- | The unique ID of the theme to update.+updateThemeData_id :: Lens.Lens' UpdateThemeData (Prelude.Maybe Prelude.Text)+updateThemeData_id = Lens.lens (\UpdateThemeData' {id} -> id) (\s@UpdateThemeData' {} a -> s {id = a} :: UpdateThemeData)++-- | The name of the theme to update.+updateThemeData_name :: Lens.Lens' UpdateThemeData (Prelude.Maybe Prelude.Text)+updateThemeData_name = Lens.lens (\UpdateThemeData' {name} -> name) (\s@UpdateThemeData' {} a -> s {name = a} :: UpdateThemeData)++-- | Describes the properties that can be overriden to customize the theme.+updateThemeData_overrides :: Lens.Lens' UpdateThemeData (Prelude.Maybe [ThemeValues])+updateThemeData_overrides = Lens.lens (\UpdateThemeData' {overrides} -> overrides) (\s@UpdateThemeData' {} a -> s {overrides = a} :: UpdateThemeData) Prelude.. Lens.mapping Lens.coerced++-- | A list of key-value pairs that define the theme\'s properties.+updateThemeData_values :: Lens.Lens' UpdateThemeData [ThemeValues]+updateThemeData_values = Lens.lens (\UpdateThemeData' {values} -> values) (\s@UpdateThemeData' {} a -> s {values = a} :: UpdateThemeData) Prelude.. Lens.coerced++instance Prelude.Hashable UpdateThemeData where+  hashWithSalt _salt UpdateThemeData' {..} =+    _salt+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` overrides+      `Prelude.hashWithSalt` values++instance Prelude.NFData UpdateThemeData where+  rnf UpdateThemeData' {..} =+    Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf overrides+      `Prelude.seq` Prelude.rnf values++instance Data.ToJSON UpdateThemeData where+  toJSON UpdateThemeData' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("id" Data..=) Prelude.<$> id,+            ("name" Data..=) Prelude.<$> name,+            ("overrides" Data..=) Prelude.<$> overrides,+            Prelude.Just ("values" Data..= values)+          ]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/ValueMapping.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.AmplifyUiBuilder.Types.ValueMapping+-- 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.AmplifyUiBuilder.Types.ValueMapping where++import Amazonka.AmplifyUiBuilder.Types.FormInputValueProperty+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++-- | Associates a complex object with a display value. Use @ValueMapping@ to+-- store how to represent complex objects when they are displayed.+--+-- /See:/ 'newValueMapping' smart constructor.+data ValueMapping = ValueMapping'+  { -- | The value to display for the complex object.+    displayValue :: Prelude.Maybe FormInputValueProperty,+    -- | The complex object.+    value :: FormInputValueProperty+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ValueMapping' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'displayValue', 'valueMapping_displayValue' - The value to display for the complex object.+--+-- 'value', 'valueMapping_value' - The complex object.+newValueMapping ::+  -- | 'value'+  FormInputValueProperty ->+  ValueMapping+newValueMapping pValue_ =+  ValueMapping'+    { displayValue = Prelude.Nothing,+      value = pValue_+    }++-- | The value to display for the complex object.+valueMapping_displayValue :: Lens.Lens' ValueMapping (Prelude.Maybe FormInputValueProperty)+valueMapping_displayValue = Lens.lens (\ValueMapping' {displayValue} -> displayValue) (\s@ValueMapping' {} a -> s {displayValue = a} :: ValueMapping)++-- | The complex object.+valueMapping_value :: Lens.Lens' ValueMapping FormInputValueProperty+valueMapping_value = Lens.lens (\ValueMapping' {value} -> value) (\s@ValueMapping' {} a -> s {value = a} :: ValueMapping)++instance Data.FromJSON ValueMapping where+  parseJSON =+    Data.withObject+      "ValueMapping"+      ( \x ->+          ValueMapping'+            Prelude.<$> (x Data..:? "displayValue")+            Prelude.<*> (x Data..: "value")+      )++instance Prelude.Hashable ValueMapping where+  hashWithSalt _salt ValueMapping' {..} =+    _salt+      `Prelude.hashWithSalt` displayValue+      `Prelude.hashWithSalt` value++instance Prelude.NFData ValueMapping where+  rnf ValueMapping' {..} =+    Prelude.rnf displayValue+      `Prelude.seq` Prelude.rnf value++instance Data.ToJSON ValueMapping where+  toJSON ValueMapping' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("displayValue" Data..=) Prelude.<$> displayValue,+            Prelude.Just ("value" Data..= value)+          ]+      )
+ gen/Amazonka/AmplifyUiBuilder/Types/ValueMappings.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.AmplifyUiBuilder.Types.ValueMappings+-- 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.AmplifyUiBuilder.Types.ValueMappings where++import Amazonka.AmplifyUiBuilder.Types.ValueMapping+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 data binding configuration for a value map.+--+-- /See:/ 'newValueMappings' smart constructor.+data ValueMappings = ValueMappings'+  { -- | The value and display value pairs.+    values :: [ValueMapping]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ValueMappings' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'values', 'valueMappings_values' - The value and display value pairs.+newValueMappings ::+  ValueMappings+newValueMappings =+  ValueMappings' {values = Prelude.mempty}++-- | The value and display value pairs.+valueMappings_values :: Lens.Lens' ValueMappings [ValueMapping]+valueMappings_values = Lens.lens (\ValueMappings' {values} -> values) (\s@ValueMappings' {} a -> s {values = a} :: ValueMappings) Prelude.. Lens.coerced++instance Data.FromJSON ValueMappings where+  parseJSON =+    Data.withObject+      "ValueMappings"+      ( \x ->+          ValueMappings'+            Prelude.<$> (x Data..:? "values" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable ValueMappings where+  hashWithSalt _salt ValueMappings' {..} =+    _salt `Prelude.hashWithSalt` values++instance Prelude.NFData ValueMappings where+  rnf ValueMappings' {..} = Prelude.rnf values++instance Data.ToJSON ValueMappings where+  toJSON ValueMappings' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("values" Data..= values)]+      )
+ gen/Amazonka/AmplifyUiBuilder/UpdateComponent.hs view
@@ -0,0 +1,231 @@+{-# 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.AmplifyUiBuilder.UpdateComponent+-- 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 component.+module Amazonka.AmplifyUiBuilder.UpdateComponent+  ( -- * Creating a Request+    UpdateComponent (..),+    newUpdateComponent,++    -- * Request Lenses+    updateComponent_clientToken,+    updateComponent_appId,+    updateComponent_environmentName,+    updateComponent_id,+    updateComponent_updatedComponent,++    -- * Destructuring the Response+    UpdateComponentResponse (..),+    newUpdateComponentResponse,++    -- * Response Lenses+    updateComponentResponse_entity,+    updateComponentResponse_httpStatus,+  )+where++import Amazonka.AmplifyUiBuilder.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++-- | /See:/ 'newUpdateComponent' smart constructor.+data UpdateComponent = UpdateComponent'+  { -- | The unique client token.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The unique ID for the Amplify app.+    appId :: Prelude.Text,+    -- | The name of the backend environment that is part of the Amplify app.+    environmentName :: Prelude.Text,+    -- | The unique ID for the component.+    id :: Prelude.Text,+    -- | The configuration of the updated component.+    updatedComponent :: UpdateComponentData+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateComponent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'updateComponent_clientToken' - The unique client token.+--+-- 'appId', 'updateComponent_appId' - The unique ID for the Amplify app.+--+-- 'environmentName', 'updateComponent_environmentName' - The name of the backend environment that is part of the Amplify app.+--+-- 'id', 'updateComponent_id' - The unique ID for the component.+--+-- 'updatedComponent', 'updateComponent_updatedComponent' - The configuration of the updated component.+newUpdateComponent ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'environmentName'+  Prelude.Text ->+  -- | 'id'+  Prelude.Text ->+  -- | 'updatedComponent'+  UpdateComponentData ->+  UpdateComponent+newUpdateComponent+  pAppId_+  pEnvironmentName_+  pId_+  pUpdatedComponent_ =+    UpdateComponent'+      { clientToken = Prelude.Nothing,+        appId = pAppId_,+        environmentName = pEnvironmentName_,+        id = pId_,+        updatedComponent = pUpdatedComponent_+      }++-- | The unique client token.+updateComponent_clientToken :: Lens.Lens' UpdateComponent (Prelude.Maybe Prelude.Text)+updateComponent_clientToken = Lens.lens (\UpdateComponent' {clientToken} -> clientToken) (\s@UpdateComponent' {} a -> s {clientToken = a} :: UpdateComponent)++-- | The unique ID for the Amplify app.+updateComponent_appId :: Lens.Lens' UpdateComponent Prelude.Text+updateComponent_appId = Lens.lens (\UpdateComponent' {appId} -> appId) (\s@UpdateComponent' {} a -> s {appId = a} :: UpdateComponent)++-- | The name of the backend environment that is part of the Amplify app.+updateComponent_environmentName :: Lens.Lens' UpdateComponent Prelude.Text+updateComponent_environmentName = Lens.lens (\UpdateComponent' {environmentName} -> environmentName) (\s@UpdateComponent' {} a -> s {environmentName = a} :: UpdateComponent)++-- | The unique ID for the component.+updateComponent_id :: Lens.Lens' UpdateComponent Prelude.Text+updateComponent_id = Lens.lens (\UpdateComponent' {id} -> id) (\s@UpdateComponent' {} a -> s {id = a} :: UpdateComponent)++-- | The configuration of the updated component.+updateComponent_updatedComponent :: Lens.Lens' UpdateComponent UpdateComponentData+updateComponent_updatedComponent = Lens.lens (\UpdateComponent' {updatedComponent} -> updatedComponent) (\s@UpdateComponent' {} a -> s {updatedComponent = a} :: UpdateComponent)++instance Core.AWSRequest UpdateComponent where+  type+    AWSResponse UpdateComponent =+      UpdateComponentResponse+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateComponentResponse'+            Prelude.<$> (Data.eitherParseJSON x)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateComponent where+  hashWithSalt _salt UpdateComponent' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` environmentName+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` updatedComponent++instance Prelude.NFData UpdateComponent where+  rnf UpdateComponent' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf appId+      `Prelude.seq` Prelude.rnf environmentName+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf updatedComponent++instance Data.ToHeaders UpdateComponent where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateComponent where+  toJSON UpdateComponent' {..} =+    Data.toJSON updatedComponent++instance Data.ToPath UpdateComponent where+  toPath UpdateComponent' {..} =+    Prelude.mconcat+      [ "/app/",+        Data.toBS appId,+        "/environment/",+        Data.toBS environmentName,+        "/components/",+        Data.toBS id+      ]++instance Data.ToQuery UpdateComponent where+  toQuery UpdateComponent' {..} =+    Prelude.mconcat ["clientToken" Data.=: clientToken]++-- | /See:/ 'newUpdateComponentResponse' smart constructor.+data UpdateComponentResponse = UpdateComponentResponse'+  { -- | Describes the configuration of the updated component.+    entity :: Prelude.Maybe Component,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateComponentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'entity', 'updateComponentResponse_entity' - Describes the configuration of the updated component.+--+-- 'httpStatus', 'updateComponentResponse_httpStatus' - The response's http status code.+newUpdateComponentResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateComponentResponse+newUpdateComponentResponse pHttpStatus_ =+  UpdateComponentResponse'+    { entity = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Describes the configuration of the updated component.+updateComponentResponse_entity :: Lens.Lens' UpdateComponentResponse (Prelude.Maybe Component)+updateComponentResponse_entity = Lens.lens (\UpdateComponentResponse' {entity} -> entity) (\s@UpdateComponentResponse' {} a -> s {entity = a} :: UpdateComponentResponse)++-- | The response's http status code.+updateComponentResponse_httpStatus :: Lens.Lens' UpdateComponentResponse Prelude.Int+updateComponentResponse_httpStatus = Lens.lens (\UpdateComponentResponse' {httpStatus} -> httpStatus) (\s@UpdateComponentResponse' {} a -> s {httpStatus = a} :: UpdateComponentResponse)++instance Prelude.NFData UpdateComponentResponse where+  rnf UpdateComponentResponse' {..} =+    Prelude.rnf entity+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/AmplifyUiBuilder/UpdateForm.hs view
@@ -0,0 +1,228 @@+{-# 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.AmplifyUiBuilder.UpdateForm+-- 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 form.+module Amazonka.AmplifyUiBuilder.UpdateForm+  ( -- * Creating a Request+    UpdateForm (..),+    newUpdateForm,++    -- * Request Lenses+    updateForm_clientToken,+    updateForm_appId,+    updateForm_environmentName,+    updateForm_id,+    updateForm_updatedForm,++    -- * Destructuring the Response+    UpdateFormResponse (..),+    newUpdateFormResponse,++    -- * Response Lenses+    updateFormResponse_entity,+    updateFormResponse_httpStatus,+  )+where++import Amazonka.AmplifyUiBuilder.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++-- | /See:/ 'newUpdateForm' smart constructor.+data UpdateForm = UpdateForm'+  { -- | The unique client token.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The unique ID for the Amplify app.+    appId :: Prelude.Text,+    -- | The name of the backend environment that is part of the Amplify app.+    environmentName :: Prelude.Text,+    -- | The unique ID for the form.+    id :: Prelude.Text,+    -- | The request accepts the following data in JSON format.+    updatedForm :: UpdateFormData+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateForm' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'updateForm_clientToken' - The unique client token.+--+-- 'appId', 'updateForm_appId' - The unique ID for the Amplify app.+--+-- 'environmentName', 'updateForm_environmentName' - The name of the backend environment that is part of the Amplify app.+--+-- 'id', 'updateForm_id' - The unique ID for the form.+--+-- 'updatedForm', 'updateForm_updatedForm' - The request accepts the following data in JSON format.+newUpdateForm ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'environmentName'+  Prelude.Text ->+  -- | 'id'+  Prelude.Text ->+  -- | 'updatedForm'+  UpdateFormData ->+  UpdateForm+newUpdateForm+  pAppId_+  pEnvironmentName_+  pId_+  pUpdatedForm_ =+    UpdateForm'+      { clientToken = Prelude.Nothing,+        appId = pAppId_,+        environmentName = pEnvironmentName_,+        id = pId_,+        updatedForm = pUpdatedForm_+      }++-- | The unique client token.+updateForm_clientToken :: Lens.Lens' UpdateForm (Prelude.Maybe Prelude.Text)+updateForm_clientToken = Lens.lens (\UpdateForm' {clientToken} -> clientToken) (\s@UpdateForm' {} a -> s {clientToken = a} :: UpdateForm)++-- | The unique ID for the Amplify app.+updateForm_appId :: Lens.Lens' UpdateForm Prelude.Text+updateForm_appId = Lens.lens (\UpdateForm' {appId} -> appId) (\s@UpdateForm' {} a -> s {appId = a} :: UpdateForm)++-- | The name of the backend environment that is part of the Amplify app.+updateForm_environmentName :: Lens.Lens' UpdateForm Prelude.Text+updateForm_environmentName = Lens.lens (\UpdateForm' {environmentName} -> environmentName) (\s@UpdateForm' {} a -> s {environmentName = a} :: UpdateForm)++-- | The unique ID for the form.+updateForm_id :: Lens.Lens' UpdateForm Prelude.Text+updateForm_id = Lens.lens (\UpdateForm' {id} -> id) (\s@UpdateForm' {} a -> s {id = a} :: UpdateForm)++-- | The request accepts the following data in JSON format.+updateForm_updatedForm :: Lens.Lens' UpdateForm UpdateFormData+updateForm_updatedForm = Lens.lens (\UpdateForm' {updatedForm} -> updatedForm) (\s@UpdateForm' {} a -> s {updatedForm = a} :: UpdateForm)++instance Core.AWSRequest UpdateForm where+  type AWSResponse UpdateForm = UpdateFormResponse+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateFormResponse'+            Prelude.<$> (Data.eitherParseJSON x)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateForm where+  hashWithSalt _salt UpdateForm' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` environmentName+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` updatedForm++instance Prelude.NFData UpdateForm where+  rnf UpdateForm' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf appId+      `Prelude.seq` Prelude.rnf environmentName+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf updatedForm++instance Data.ToHeaders UpdateForm where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateForm where+  toJSON UpdateForm' {..} = Data.toJSON updatedForm++instance Data.ToPath UpdateForm where+  toPath UpdateForm' {..} =+    Prelude.mconcat+      [ "/app/",+        Data.toBS appId,+        "/environment/",+        Data.toBS environmentName,+        "/forms/",+        Data.toBS id+      ]++instance Data.ToQuery UpdateForm where+  toQuery UpdateForm' {..} =+    Prelude.mconcat ["clientToken" Data.=: clientToken]++-- | /See:/ 'newUpdateFormResponse' smart constructor.+data UpdateFormResponse = UpdateFormResponse'+  { -- | Describes the configuration of the updated form.+    entity :: Prelude.Maybe Form,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateFormResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'entity', 'updateFormResponse_entity' - Describes the configuration of the updated form.+--+-- 'httpStatus', 'updateFormResponse_httpStatus' - The response's http status code.+newUpdateFormResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateFormResponse+newUpdateFormResponse pHttpStatus_ =+  UpdateFormResponse'+    { entity = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Describes the configuration of the updated form.+updateFormResponse_entity :: Lens.Lens' UpdateFormResponse (Prelude.Maybe Form)+updateFormResponse_entity = Lens.lens (\UpdateFormResponse' {entity} -> entity) (\s@UpdateFormResponse' {} a -> s {entity = a} :: UpdateFormResponse)++-- | The response's http status code.+updateFormResponse_httpStatus :: Lens.Lens' UpdateFormResponse Prelude.Int+updateFormResponse_httpStatus = Lens.lens (\UpdateFormResponse' {httpStatus} -> httpStatus) (\s@UpdateFormResponse' {} a -> s {httpStatus = a} :: UpdateFormResponse)++instance Prelude.NFData UpdateFormResponse where+  rnf UpdateFormResponse' {..} =+    Prelude.rnf entity+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/AmplifyUiBuilder/UpdateTheme.hs view
@@ -0,0 +1,228 @@+{-# 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.AmplifyUiBuilder.UpdateTheme+-- 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 theme.+module Amazonka.AmplifyUiBuilder.UpdateTheme+  ( -- * Creating a Request+    UpdateTheme (..),+    newUpdateTheme,++    -- * Request Lenses+    updateTheme_clientToken,+    updateTheme_appId,+    updateTheme_environmentName,+    updateTheme_id,+    updateTheme_updatedTheme,++    -- * Destructuring the Response+    UpdateThemeResponse (..),+    newUpdateThemeResponse,++    -- * Response Lenses+    updateThemeResponse_entity,+    updateThemeResponse_httpStatus,+  )+where++import Amazonka.AmplifyUiBuilder.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++-- | /See:/ 'newUpdateTheme' smart constructor.+data UpdateTheme = UpdateTheme'+  { -- | The unique client token.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The unique ID for the Amplify app.+    appId :: Prelude.Text,+    -- | The name of the backend environment that is part of the Amplify app.+    environmentName :: Prelude.Text,+    -- | The unique ID for the theme.+    id :: Prelude.Text,+    -- | The configuration of the updated theme.+    updatedTheme :: UpdateThemeData+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateTheme' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'updateTheme_clientToken' - The unique client token.+--+-- 'appId', 'updateTheme_appId' - The unique ID for the Amplify app.+--+-- 'environmentName', 'updateTheme_environmentName' - The name of the backend environment that is part of the Amplify app.+--+-- 'id', 'updateTheme_id' - The unique ID for the theme.+--+-- 'updatedTheme', 'updateTheme_updatedTheme' - The configuration of the updated theme.+newUpdateTheme ::+  -- | 'appId'+  Prelude.Text ->+  -- | 'environmentName'+  Prelude.Text ->+  -- | 'id'+  Prelude.Text ->+  -- | 'updatedTheme'+  UpdateThemeData ->+  UpdateTheme+newUpdateTheme+  pAppId_+  pEnvironmentName_+  pId_+  pUpdatedTheme_ =+    UpdateTheme'+      { clientToken = Prelude.Nothing,+        appId = pAppId_,+        environmentName = pEnvironmentName_,+        id = pId_,+        updatedTheme = pUpdatedTheme_+      }++-- | The unique client token.+updateTheme_clientToken :: Lens.Lens' UpdateTheme (Prelude.Maybe Prelude.Text)+updateTheme_clientToken = Lens.lens (\UpdateTheme' {clientToken} -> clientToken) (\s@UpdateTheme' {} a -> s {clientToken = a} :: UpdateTheme)++-- | The unique ID for the Amplify app.+updateTheme_appId :: Lens.Lens' UpdateTheme Prelude.Text+updateTheme_appId = Lens.lens (\UpdateTheme' {appId} -> appId) (\s@UpdateTheme' {} a -> s {appId = a} :: UpdateTheme)++-- | The name of the backend environment that is part of the Amplify app.+updateTheme_environmentName :: Lens.Lens' UpdateTheme Prelude.Text+updateTheme_environmentName = Lens.lens (\UpdateTheme' {environmentName} -> environmentName) (\s@UpdateTheme' {} a -> s {environmentName = a} :: UpdateTheme)++-- | The unique ID for the theme.+updateTheme_id :: Lens.Lens' UpdateTheme Prelude.Text+updateTheme_id = Lens.lens (\UpdateTheme' {id} -> id) (\s@UpdateTheme' {} a -> s {id = a} :: UpdateTheme)++-- | The configuration of the updated theme.+updateTheme_updatedTheme :: Lens.Lens' UpdateTheme UpdateThemeData+updateTheme_updatedTheme = Lens.lens (\UpdateTheme' {updatedTheme} -> updatedTheme) (\s@UpdateTheme' {} a -> s {updatedTheme = a} :: UpdateTheme)++instance Core.AWSRequest UpdateTheme where+  type AWSResponse UpdateTheme = UpdateThemeResponse+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateThemeResponse'+            Prelude.<$> (Data.eitherParseJSON x)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateTheme where+  hashWithSalt _salt UpdateTheme' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` appId+      `Prelude.hashWithSalt` environmentName+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` updatedTheme++instance Prelude.NFData UpdateTheme where+  rnf UpdateTheme' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf appId+      `Prelude.seq` Prelude.rnf environmentName+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf updatedTheme++instance Data.ToHeaders UpdateTheme where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateTheme where+  toJSON UpdateTheme' {..} = Data.toJSON updatedTheme++instance Data.ToPath UpdateTheme where+  toPath UpdateTheme' {..} =+    Prelude.mconcat+      [ "/app/",+        Data.toBS appId,+        "/environment/",+        Data.toBS environmentName,+        "/themes/",+        Data.toBS id+      ]++instance Data.ToQuery UpdateTheme where+  toQuery UpdateTheme' {..} =+    Prelude.mconcat ["clientToken" Data.=: clientToken]++-- | /See:/ 'newUpdateThemeResponse' smart constructor.+data UpdateThemeResponse = UpdateThemeResponse'+  { -- | Describes the configuration of the updated theme.+    entity :: Prelude.Maybe Theme,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateThemeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'entity', 'updateThemeResponse_entity' - Describes the configuration of the updated theme.+--+-- 'httpStatus', 'updateThemeResponse_httpStatus' - The response's http status code.+newUpdateThemeResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateThemeResponse+newUpdateThemeResponse pHttpStatus_ =+  UpdateThemeResponse'+    { entity = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Describes the configuration of the updated theme.+updateThemeResponse_entity :: Lens.Lens' UpdateThemeResponse (Prelude.Maybe Theme)+updateThemeResponse_entity = Lens.lens (\UpdateThemeResponse' {entity} -> entity) (\s@UpdateThemeResponse' {} a -> s {entity = a} :: UpdateThemeResponse)++-- | The response's http status code.+updateThemeResponse_httpStatus :: Lens.Lens' UpdateThemeResponse Prelude.Int+updateThemeResponse_httpStatus = Lens.lens (\UpdateThemeResponse' {httpStatus} -> httpStatus) (\s@UpdateThemeResponse' {} a -> s {httpStatus = a} :: UpdateThemeResponse)++instance Prelude.NFData UpdateThemeResponse where+  rnf UpdateThemeResponse' {..} =+    Prelude.rnf entity+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/AmplifyUiBuilder/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.AmplifyUiBuilder.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.AmplifyUiBuilder.Waiters where++import Amazonka.AmplifyUiBuilder.Lens+import Amazonka.AmplifyUiBuilder.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.AmplifyUiBuilder+import Test.Amazonka.AmplifyUiBuilder.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "AmplifyUiBuilder"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/AmplifyUiBuilder.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.AmplifyUiBuilder+-- 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.AmplifyUiBuilder+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/AmplifyUiBuilder/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.AmplifyUiBuilder.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.AmplifyUiBuilder.Internal where
+ test/Test/Amazonka/Gen/AmplifyUiBuilder.hs view
@@ -0,0 +1,478 @@+{-# 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.AmplifyUiBuilder+-- 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.AmplifyUiBuilder where++import Amazonka.AmplifyUiBuilder+import qualified Data.Proxy as Proxy+import Test.Amazonka.AmplifyUiBuilder.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"+--         [ requestCreateComponent $+--             newCreateComponent+--+--         , requestCreateForm $+--             newCreateForm+--+--         , requestCreateTheme $+--             newCreateTheme+--+--         , requestDeleteComponent $+--             newDeleteComponent+--+--         , requestDeleteForm $+--             newDeleteForm+--+--         , requestDeleteTheme $+--             newDeleteTheme+--+--         , requestExchangeCodeForToken $+--             newExchangeCodeForToken+--+--         , requestExportComponents $+--             newExportComponents+--+--         , requestExportForms $+--             newExportForms+--+--         , requestExportThemes $+--             newExportThemes+--+--         , requestGetComponent $+--             newGetComponent+--+--         , requestGetForm $+--             newGetForm+--+--         , requestGetMetadata $+--             newGetMetadata+--+--         , requestGetTheme $+--             newGetTheme+--+--         , requestListComponents $+--             newListComponents+--+--         , requestListForms $+--             newListForms+--+--         , requestListThemes $+--             newListThemes+--+--         , requestPutMetadataFlag $+--             newPutMetadataFlag+--+--         , requestRefreshToken $+--             newRefreshToken+--+--         , requestUpdateComponent $+--             newUpdateComponent+--+--         , requestUpdateForm $+--             newUpdateForm+--+--         , requestUpdateTheme $+--             newUpdateTheme+--+--           ]++--     , testGroup "response"+--         [ responseCreateComponent $+--             newCreateComponentResponse+--+--         , responseCreateForm $+--             newCreateFormResponse+--+--         , responseCreateTheme $+--             newCreateThemeResponse+--+--         , responseDeleteComponent $+--             newDeleteComponentResponse+--+--         , responseDeleteForm $+--             newDeleteFormResponse+--+--         , responseDeleteTheme $+--             newDeleteThemeResponse+--+--         , responseExchangeCodeForToken $+--             newExchangeCodeForTokenResponse+--+--         , responseExportComponents $+--             newExportComponentsResponse+--+--         , responseExportForms $+--             newExportFormsResponse+--+--         , responseExportThemes $+--             newExportThemesResponse+--+--         , responseGetComponent $+--             newGetComponentResponse+--+--         , responseGetForm $+--             newGetFormResponse+--+--         , responseGetMetadata $+--             newGetMetadataResponse+--+--         , responseGetTheme $+--             newGetThemeResponse+--+--         , responseListComponents $+--             newListComponentsResponse+--+--         , responseListForms $+--             newListFormsResponse+--+--         , responseListThemes $+--             newListThemesResponse+--+--         , responsePutMetadataFlag $+--             newPutMetadataFlagResponse+--+--         , responseRefreshToken $+--             newRefreshTokenResponse+--+--         , responseUpdateComponent $+--             newUpdateComponentResponse+--+--         , responseUpdateForm $+--             newUpdateFormResponse+--+--         , responseUpdateTheme $+--             newUpdateThemeResponse+--+--           ]+--     ]++-- Requests++requestCreateComponent :: CreateComponent -> TestTree+requestCreateComponent =+  req+    "CreateComponent"+    "fixture/CreateComponent.yaml"++requestCreateForm :: CreateForm -> TestTree+requestCreateForm =+  req+    "CreateForm"+    "fixture/CreateForm.yaml"++requestCreateTheme :: CreateTheme -> TestTree+requestCreateTheme =+  req+    "CreateTheme"+    "fixture/CreateTheme.yaml"++requestDeleteComponent :: DeleteComponent -> TestTree+requestDeleteComponent =+  req+    "DeleteComponent"+    "fixture/DeleteComponent.yaml"++requestDeleteForm :: DeleteForm -> TestTree+requestDeleteForm =+  req+    "DeleteForm"+    "fixture/DeleteForm.yaml"++requestDeleteTheme :: DeleteTheme -> TestTree+requestDeleteTheme =+  req+    "DeleteTheme"+    "fixture/DeleteTheme.yaml"++requestExchangeCodeForToken :: ExchangeCodeForToken -> TestTree+requestExchangeCodeForToken =+  req+    "ExchangeCodeForToken"+    "fixture/ExchangeCodeForToken.yaml"++requestExportComponents :: ExportComponents -> TestTree+requestExportComponents =+  req+    "ExportComponents"+    "fixture/ExportComponents.yaml"++requestExportForms :: ExportForms -> TestTree+requestExportForms =+  req+    "ExportForms"+    "fixture/ExportForms.yaml"++requestExportThemes :: ExportThemes -> TestTree+requestExportThemes =+  req+    "ExportThemes"+    "fixture/ExportThemes.yaml"++requestGetComponent :: GetComponent -> TestTree+requestGetComponent =+  req+    "GetComponent"+    "fixture/GetComponent.yaml"++requestGetForm :: GetForm -> TestTree+requestGetForm =+  req+    "GetForm"+    "fixture/GetForm.yaml"++requestGetMetadata :: GetMetadata -> TestTree+requestGetMetadata =+  req+    "GetMetadata"+    "fixture/GetMetadata.yaml"++requestGetTheme :: GetTheme -> TestTree+requestGetTheme =+  req+    "GetTheme"+    "fixture/GetTheme.yaml"++requestListComponents :: ListComponents -> TestTree+requestListComponents =+  req+    "ListComponents"+    "fixture/ListComponents.yaml"++requestListForms :: ListForms -> TestTree+requestListForms =+  req+    "ListForms"+    "fixture/ListForms.yaml"++requestListThemes :: ListThemes -> TestTree+requestListThemes =+  req+    "ListThemes"+    "fixture/ListThemes.yaml"++requestPutMetadataFlag :: PutMetadataFlag -> TestTree+requestPutMetadataFlag =+  req+    "PutMetadataFlag"+    "fixture/PutMetadataFlag.yaml"++requestRefreshToken :: RefreshToken -> TestTree+requestRefreshToken =+  req+    "RefreshToken"+    "fixture/RefreshToken.yaml"++requestUpdateComponent :: UpdateComponent -> TestTree+requestUpdateComponent =+  req+    "UpdateComponent"+    "fixture/UpdateComponent.yaml"++requestUpdateForm :: UpdateForm -> TestTree+requestUpdateForm =+  req+    "UpdateForm"+    "fixture/UpdateForm.yaml"++requestUpdateTheme :: UpdateTheme -> TestTree+requestUpdateTheme =+  req+    "UpdateTheme"+    "fixture/UpdateTheme.yaml"++-- Responses++responseCreateComponent :: CreateComponentResponse -> TestTree+responseCreateComponent =+  res+    "CreateComponentResponse"+    "fixture/CreateComponentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateComponent)++responseCreateForm :: CreateFormResponse -> TestTree+responseCreateForm =+  res+    "CreateFormResponse"+    "fixture/CreateFormResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateForm)++responseCreateTheme :: CreateThemeResponse -> TestTree+responseCreateTheme =+  res+    "CreateThemeResponse"+    "fixture/CreateThemeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateTheme)++responseDeleteComponent :: DeleteComponentResponse -> TestTree+responseDeleteComponent =+  res+    "DeleteComponentResponse"+    "fixture/DeleteComponentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteComponent)++responseDeleteForm :: DeleteFormResponse -> TestTree+responseDeleteForm =+  res+    "DeleteFormResponse"+    "fixture/DeleteFormResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteForm)++responseDeleteTheme :: DeleteThemeResponse -> TestTree+responseDeleteTheme =+  res+    "DeleteThemeResponse"+    "fixture/DeleteThemeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteTheme)++responseExchangeCodeForToken :: ExchangeCodeForTokenResponse -> TestTree+responseExchangeCodeForToken =+  res+    "ExchangeCodeForTokenResponse"+    "fixture/ExchangeCodeForTokenResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ExchangeCodeForToken)++responseExportComponents :: ExportComponentsResponse -> TestTree+responseExportComponents =+  res+    "ExportComponentsResponse"+    "fixture/ExportComponentsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ExportComponents)++responseExportForms :: ExportFormsResponse -> TestTree+responseExportForms =+  res+    "ExportFormsResponse"+    "fixture/ExportFormsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ExportForms)++responseExportThemes :: ExportThemesResponse -> TestTree+responseExportThemes =+  res+    "ExportThemesResponse"+    "fixture/ExportThemesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ExportThemes)++responseGetComponent :: GetComponentResponse -> TestTree+responseGetComponent =+  res+    "GetComponentResponse"+    "fixture/GetComponentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetComponent)++responseGetForm :: GetFormResponse -> TestTree+responseGetForm =+  res+    "GetFormResponse"+    "fixture/GetFormResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetForm)++responseGetMetadata :: GetMetadataResponse -> TestTree+responseGetMetadata =+  res+    "GetMetadataResponse"+    "fixture/GetMetadataResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetMetadata)++responseGetTheme :: GetThemeResponse -> TestTree+responseGetTheme =+  res+    "GetThemeResponse"+    "fixture/GetThemeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetTheme)++responseListComponents :: ListComponentsResponse -> TestTree+responseListComponents =+  res+    "ListComponentsResponse"+    "fixture/ListComponentsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListComponents)++responseListForms :: ListFormsResponse -> TestTree+responseListForms =+  res+    "ListFormsResponse"+    "fixture/ListFormsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListForms)++responseListThemes :: ListThemesResponse -> TestTree+responseListThemes =+  res+    "ListThemesResponse"+    "fixture/ListThemesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListThemes)++responsePutMetadataFlag :: PutMetadataFlagResponse -> TestTree+responsePutMetadataFlag =+  res+    "PutMetadataFlagResponse"+    "fixture/PutMetadataFlagResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy PutMetadataFlag)++responseRefreshToken :: RefreshTokenResponse -> TestTree+responseRefreshToken =+  res+    "RefreshTokenResponse"+    "fixture/RefreshTokenResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy RefreshToken)++responseUpdateComponent :: UpdateComponentResponse -> TestTree+responseUpdateComponent =+  res+    "UpdateComponentResponse"+    "fixture/UpdateComponentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateComponent)++responseUpdateForm :: UpdateFormResponse -> TestTree+responseUpdateForm =+  res+    "UpdateFormResponse"+    "fixture/UpdateFormResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateForm)++responseUpdateTheme :: UpdateThemeResponse -> TestTree+responseUpdateTheme =+  res+    "UpdateThemeResponse"+    "fixture/UpdateThemeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateTheme)